Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 如何在存储在DAG文件夹中的python脚本中获取composer airflow的运行DAG列表?_Google Cloud Platform_Airflow_Airflow Scheduler_Google Cloud Composer - Fatal编程技术网

Google cloud platform 如何在存储在DAG文件夹中的python脚本中获取composer airflow的运行DAG列表?

Google cloud platform 如何在存储在DAG文件夹中的python脚本中获取composer airflow的运行DAG列表?,google-cloud-platform,airflow,airflow-scheduler,google-cloud-composer,Google Cloud Platform,Airflow,Airflow Scheduler,Google Cloud Composer,全部, 我们有几个带有DAG信息的JSON文件。我创建了一个python脚本来读取这些JSON文件,以便为Composer动态生成DAG。现在,我面临的挑战是在python脚本中获取正在运行的DAG列表,并从本地系统触发单个DAG 在我的本地服务器中,我设置了私有SSH密钥,因此我可以使用下面的命令获取在composer airflow中运行的DAG列表 gcloud -q composer environments run "$ENVIRONMENT" --location "$REGION"

全部,

我们有几个带有DAG信息的JSON文件。我创建了一个python脚本来读取这些JSON文件,以便为Composer动态生成DAG。现在,我面临的挑战是在python脚本中获取正在运行的DAG列表,并从本地系统触发单个DAG

在我的本地服务器中,我设置了私有SSH密钥,因此我可以使用下面的命令获取在composer airflow中运行的DAG列表

gcloud -q composer environments run "$ENVIRONMENT" --location "$REGION" list_dags
我可以通过使用airflow服务器URL使用POST/GET请求,但在触发它时会遇到身份验证错误

curl -X POST http://<airflow servername>api/experimental/dags/airflow_monitoring/dag_runs -H 'Cache-Control: no-cache' -H 'Content-Type: application/json' -H 'Content-Length: 0'
curl-X POSThttp://api/experimental/dags/airflow_monitoring/dag_runs -H'缓存控制:无缓存'-H'内容类型:应用程序/json'-H'内容长度:0'
有人能帮我回答以下问题吗

  • 如何获取python脚本中运行的DAG列表,该列表位于composer的DAG文件夹中
  • 我无法使用composer环境变量覆盖“webserver authenticate”配置变量,因为此变量已被阻止。如果无法覆盖配置变量,如何启用身份验证
  • 是否有一种方法可以通过提供通用凭据/个人凭据或其他方式从任何本地系统启动DAG?我想我可以通过使用Jenkins作业来完成这项任务,但我想知道从终端/命令行是否可行
  • 谢谢你的帮助


    Best问候

    Composer是来自谷歌的托管服务,根据,Airflow Web服务器被隔离在租户项目中。要能够访问,您必须通过身份感知代理处理身份验证。这可能有点难以实现,因为您无权访问租户项目的设置。您可以使用所有者帐户从Web浏览器进行身份验证,以访问Airflow Web服务器并使用Airflow API

    但是,如果您想在脚本内部执行此操作,则必须创建一个脚本。但是这个选项存在一些问题,因为您没有访问租户项目的权限,并且需要正确设置IAP和脚本才能创建令牌

    到达服务器的一个更可靠的选择是设置自己的服务器

    此外,如果您想要得到运行的DAG,您也可以尝试使用。这样你就可以找到解决办法

    对于DAG的执行,您可以查看如何触发DAG