0

我已经在 EC2 上安装了 Airflow 2.0.1,并使用 PostgreSQL RDS 作为元数据数据库。我想从 Lambda 触发 DAG,因此尝试使用 curl 测试代码,但收到 Unauthorized 作为响应。如果我应该做不同的事情怎么办?

脚步:

  1. 为 lambda 创建用户
airflow users create -u lambda_user -p some_pwd -f Lambda -l User -r User -e someone@nowhere.com
  1. 在 shell 上定义变量(用于 lambda 用户、密码和端点 url)
  2. 拨打 curl 电话
curl -H "Authorization: Basic Base64(username:password)" -H "Content-type: application/json" -H "Accept: application/json" -X GET --user "${LAMBDA_USER}:${LAMBDA_PWD}" "${ENDPOINT_URL}/api/v1/dags/sns_test/dagRuns"

我收到的回复是这样的:

{
 "detail": null,
 "status": 401,
 "title": "Unauthorized",
 "type": "https://airflow.apache.org/docs/2.0.1/stable-rest-api-ref.html#section/Errors/Unauthenticated"
}
4

2 回答 2

0

修改调用后

curl -H "Content-type: application/json" -H "Accept: application/json"
-X POST --user "${LAMBDA_USER}:${LAMBDA_PWD}" "${ENDPOINT_URL}/api/v1/dags/sns_test/dagRuns" -d '{"conf": {}}'

dag被触发了!

于 2021-10-29T01:51:06.840 回答
0

您正在创建一个角色为 的用户User。这是因为你有-r User在命令中。

现在,Airflow 至少需要Viewer您调用的端点的权限。您可以在此处的 Apache Airflow 网站上找到该信息。

如果您更改命令,它将起作用。改变它从

airflow users create -u lambda_user -p some_pwd -f Lambda -l User -r User -e someone@nowhere.com

airflow users create -u lambda_user -p some_pwd -f Lambda -l User -r Viewer -e someone@nowhere.com
于 2021-10-22T13:29:11.370 回答