首页 > 解决方案 > Google Cloud Composer 变量不会传播到 Airflow

问题描述

我正在尝试在Google Cloud Composer 文档中运行该示例,但我发现了问题,主要是两个:

我已经检查了服务帐户(默认情况下使用环境创建)有权编辑和更新变量(编辑角色)也可以通过 API 访问。

我发现文档不是最新的,例如创建我需要使用的变量:

gcloud composer environments update test-environment \ 
--location=us-central1 \
--update-env-variables=gcs_bucket=gs://airflow2

而不是文章所说的。

我还要检查什么?自文档编写以来还有哪些变化?

编辑:这里描述了一个相关问题,似乎解决了第二个问题。

编辑:有趣的是,如果我运行这个免费实验室,第二个问题就不会发生。第一个还在。我正在比较一个和另一个中的角色,从与自动创建的作曲家项目无关的开始。并且没有以替代解决方案的格式创建服务帐户。

我将感谢任何人可以提供的任何帮助。

标签: google-cloud-platformairflowgoogle-cloud-composer

解决方案


Airflow v1.10.10(自 2020 年 9 月 17 日起在 Composer 中可用)起,遵循格式的全大写环境变量AIRFLOW_VAR_<VARIABLE_NAME>将作为 Airflow 变量以<variable_name>小写形式提供给 Airflow。

例如:

AIRFLOW_VAR_GCS_BUCKET="example-bucket-name"

...会导致

models.Variable.get("gcs_bucket") # --> example-bucket-name

您现在还可以使用 Secret Manager 来存储 Airflow 连接、机密和变量。(文档


推荐阅读