Airflow 使用受IAP保护的应用程序验证Google Composer http调用任务

Airflow 使用受IAP保护的应用程序验证Google Composer http调用任务,airflow,google-cloud-composer,google-iam,google-iap,Airflow,Google Cloud Composer,Google Iam,Google Iap,我有一个设置,其中我有一个应用程序引擎REST应用程序和一个Google composer/airflow DAG,它有一个任务,应该从应用程序的一个端点获取数据。应用程序受IAP保护。我已经将Airflow运行的服务帐户添加到“IAP安全Web应用程序用户”列表中,但是每次执行http调用响应的步骤都是Google登录页面。是否需要任何额外的步骤 我的DAG步骤的代码: def get_data(): r=requests.get(url=“指向我的应用程序端点的url>”) 打印('stuf

我有一个设置,其中我有一个应用程序引擎REST应用程序和一个Google composer/airflow DAG,它有一个任务,应该从应用程序的一个端点获取数据。应用程序受IAP保护。我已经将Airflow运行的服务帐户添加到“IAP安全Web应用程序用户”列表中,但是每次执行http调用响应的步骤都是Google登录页面。是否需要任何额外的步骤

我的DAG步骤的代码:

def get_data():
r=requests.get(url=“指向我的应用程序端点的url>”)
打印('stuff:')
打印(r.状态\ U代码)
印刷品(r.content)
返回1
# ...
python\u fetch\u data=PythonOperator(
task_id='python_fetch_data',
python\u callable=get\u data,
dag=dag,
取决于过去=真,
优先级\权重=2
)
说明如何扩展DAG代码,以便将凭据发送到受IAP保护的API后端


一点背景:由于Composer是在GCP之上构建的,所以Composer部署有一个唯一的身份,它作为一个身份运行。您可以将该服务帐户添加到端点的IAP访问列表中


我不知道Composer UI是否可以轻松查看您的服务帐户的“电子邮件”地址,但如果您添加上面的代码并生成,就会显示出来

“一点背景:由于Composer是在GCP之上构建的,因此Composer部署有一个唯一的服务帐户标识,它作为该标识运行。您可以将该服务帐户添加到端点的IAP访问列表中。“正是这样,正如我所说,我就是这么做的,每当有人打http电话时,我仍然会得到谷歌登录页面作为一个链接response@Vee6您使用了哪个服务帐户?它应该与Composer环境的GCE实例使用的标识相同。它与服务帐户完全相同。如果不是这样,我想我会用所有可用的服务帐户测试它,直到它工作,然后找出哪个是真实的,否则我认为设置中可能有其他错误。