AWS Airflow v2.0.2 不显示 Google 云连接类型
AWS Airflow v2.0.2 doesn't show Google Cloud connection type
我想将数据从 Google 存储加载到 S3
为此,我想使用 GoogleCloudStorageToS3Operator,这需要 gcp_conn_id
所以,我需要设置Google云连接类型
为此,我添加了
apache-airflow[google]==2.0.2
到requirements.txt
但 Google 云连接类型仍然不在 MWAA 的连接下拉列表中
同样的方法也适用于 mwaa local runner
https://github.com/aws/aws-mwaa-local-runner
由于此处讨论的安全原因,我猜它在 MWAA 中不起作用
https://lists.apache.org/thread.html/r67dca5845c48cec4c0b3c34c3584f7c759a0b010172b94d75b3188a3%40%3Cdev.airflow.apache.org%3E
但是,是否有任何解决方法可以在 MWAA 中添加 Google 云连接类型?
可以使用 UI 或环境变量创建和管理连接。
据我了解,MWAA 对某些提供程序包的过度安装的限制仅在 Web 服务器计算机上,这就是 UI 上未列出连接的原因。这并不意味着您根本无法创建连接,它只是意味着您无法从 UI.
你可以从CLI定义它:
airflow connections add [-h] [--conn-description CONN_DESCRIPTION]
[--conn-extra CONN_EXTRA] [--conn-host CONN_HOST]
[--conn-login CONN_LOGIN]
[--conn-password CONN_PASSWORD]
[--conn-port CONN_PORT] [--conn-schema CONN_SCHEMA]
[--conn-type CONN_TYPE] [--conn-uri CONN_URI]
conn_id
您也可以generate a connection URI设置起来更方便
连接也可以设置为环境变量。示例:
export AIRFLOW_CONN_GOOGLE_CLOUD_DEFAULT='google-cloud-platform://?extra__google_cloud_platform__key_path=%2Fkeys%2Fkey.json&extra__google_cloud_platform__scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform&extra__google_cloud_platform__project=airflow&extra__google_cloud_platform__num_retries=5'
如果需要,您可以查看 google provider package docs 以查看连接的配置选项。
对于 MWAA,有 2 个选项可以设置连接:
- 设置环境变量。
使用模式 AIRFLOW_CONN_YOUR_CONNECTION_NAME,
例如在哪里YOUR_CONNECTION_NAME = GOOGLE_CLOUD_DEFAULT。
这可以使用自定义插件来完成
https://docs.aws.amazon.com/mwaa/latest/userguide/samples-env-variables.html
- 使用秘密管理器
https://docs.aws.amazon.com/mwaa/latest/userguide/connections-secrets-manager.html
已针对 google 云连接进行测试,两者均正常工作。
我向 AWS Support 询问了这个问题。看起来他们正在努力。
他们告诉我一种配置 google 云平台连接的方法,在附加内容中传递一个 json 对象,Conn Type 为 HTTP。并且有效。
我已验证编辑 google_cloud_default(气流 > 管理 > 连接)
连接类型:HTTP
额外:
{
"extra__google_cloud_platform__project":"",
"extra__google_cloud_platform__key_path":"",
"extra__google_cloud_platform__keyfile_dict":"{"类型": "service_account","project_id": "","private_key_id": "< YOUR_VALUE>", "private_key": "-----私人开始 KEY-----\n\n-----私人结束 KEY-----\n ", "client_email": "", "client_id": "", "auth_uri": "https:/ /", "token_uri": "https://", "auth_provider_x509_cert_url": "https://", "client_x509_cert_url": "https://"}",
"extra__google_cloud_platform__scope":"",
“extra__google_cloud_platform__num_retries”:“5”
}
airflow conn screenshot
!!您必须转义 extra__google_cloud_platform__keyfile_dict !!
中的 " 和 /n
在requirements.txt中我使用了:
apache-气流[gcp]==2.0.2
(我相信 apache-airflow[google]==2.0.2 应该也能工作)
我想将数据从 Google 存储加载到 S3
为此,我想使用 GoogleCloudStorageToS3Operator,这需要 gcp_conn_id
所以,我需要设置Google云连接类型
为此,我添加了
apache-airflow[google]==2.0.2
到requirements.txt
但 Google 云连接类型仍然不在 MWAA 的连接下拉列表中
同样的方法也适用于 mwaa local runner
https://github.com/aws/aws-mwaa-local-runner
由于此处讨论的安全原因,我猜它在 MWAA 中不起作用 https://lists.apache.org/thread.html/r67dca5845c48cec4c0b3c34c3584f7c759a0b010172b94d75b3188a3%40%3Cdev.airflow.apache.org%3E
但是,是否有任何解决方法可以在 MWAA 中添加 Google 云连接类型?
可以使用 UI 或环境变量创建和管理连接。
据我了解,MWAA 对某些提供程序包的过度安装的限制仅在 Web 服务器计算机上,这就是 UI 上未列出连接的原因。这并不意味着您根本无法创建连接,它只是意味着您无法从 UI.
你可以从CLI定义它:
airflow connections add [-h] [--conn-description CONN_DESCRIPTION]
[--conn-extra CONN_EXTRA] [--conn-host CONN_HOST]
[--conn-login CONN_LOGIN]
[--conn-password CONN_PASSWORD]
[--conn-port CONN_PORT] [--conn-schema CONN_SCHEMA]
[--conn-type CONN_TYPE] [--conn-uri CONN_URI]
conn_id
您也可以generate a connection URI设置起来更方便
连接也可以设置为环境变量。示例:
export AIRFLOW_CONN_GOOGLE_CLOUD_DEFAULT='google-cloud-platform://?extra__google_cloud_platform__key_path=%2Fkeys%2Fkey.json&extra__google_cloud_platform__scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform&extra__google_cloud_platform__project=airflow&extra__google_cloud_platform__num_retries=5'
如果需要,您可以查看 google provider package docs 以查看连接的配置选项。
对于 MWAA,有 2 个选项可以设置连接:
- 设置环境变量。 使用模式 AIRFLOW_CONN_YOUR_CONNECTION_NAME, 例如在哪里YOUR_CONNECTION_NAME = GOOGLE_CLOUD_DEFAULT。 这可以使用自定义插件来完成 https://docs.aws.amazon.com/mwaa/latest/userguide/samples-env-variables.html
- 使用秘密管理器 https://docs.aws.amazon.com/mwaa/latest/userguide/connections-secrets-manager.html
已针对 google 云连接进行测试,两者均正常工作。
我向 AWS Support 询问了这个问题。看起来他们正在努力。
他们告诉我一种配置 google 云平台连接的方法,在附加内容中传递一个 json 对象,Conn Type 为 HTTP。并且有效。
我已验证编辑 google_cloud_default(气流 > 管理 > 连接)
连接类型:HTTP
额外:
{
"extra__google_cloud_platform__project":"
airflow conn screenshot
!!您必须转义 extra__google_cloud_platform__keyfile_dict !!
中的 " 和 /n在requirements.txt中我使用了: apache-气流[gcp]==2.0.2
(我相信 apache-airflow[google]==2.0.2 应该也能工作)