在Airflow GUI外部创建连接

dre*_*mer 7 amazon-web-services airflow airbnb-js-styleguide apache-airflow

我想在不交互Airflow GUI的情况下创建S3连接。是否可以通过airflow.cfg或命令行?

我们正在使用AWS角色,并且以下连接参数对我们有用:{“ aws_account_id”:“ xxxx”,“ role_arn”:“ yyyyy”}

因此,可以在GUI上为S3手动创建连接正在工作,现在我们要使该过程自动化,并希望将其添加为Airflow部署过程的一部分。有没有解决的办法?

and*_*esp 5

您可以使用气流CLI。不幸的是,不支持编辑连接,因此您必须在部署过程中删除和添加,例如:

airflow connections -d --conn_id 'aws_default'
airflow connections -a --conn_id 'aws_default' --conn_uri 'aws:' --conn_extra '{"region_name": "eu-west-1"}'
Run Code Online (Sandbox Code Playgroud)


dre*_*mer 0

在查看 S3_hook.py 后我能够弄清楚

例如:

export AIRFLOW_CONN_S3_DEFAULT={"aws_account_id":"99999999","role_arn":"bbbbb"}
Run Code Online (Sandbox Code Playgroud)

这里:

  • “S3_DEFAULT”是这里的连接ID
  • 并传递AWS帐户id和role_arn并创建环境变量。

  • 我不确定你是如何让它工作的,因为 BaseHook 不需要环境变量中的 JSON,而是 URI:https://github.com/apache/incubator-airflow/blob/master/airflow/hooks/base_hook .py#L59-L64 (3认同)