Google cloud storage 如何从Cloud Composer Web服务器写入dags目录?
我正在编写CloudComposer插件,我需要在运行时创建DAG。如何从webserver创建DAG文件,或者如何从插件代码访问bucket ID(这样我就可以使用gcs客户端并只上传DAG)?我尝试了下面的代码,但它不起作用,我没有得到任何异常,但也没有看到任何结果:Google cloud storage 如何从Cloud Composer Web服务器写入dags目录?,google-cloud-storage,airflow,google-cloud-composer,Google Cloud Storage,Airflow,Google Cloud Composer,我正在编写CloudComposer插件,我需要在运行时创建DAG。如何从webserver创建DAG文件,或者如何从插件代码访问bucket ID(这样我就可以使用gcs客户端并只上传DAG)?我尝试了下面的代码,但它不起作用,我没有得到任何异常,但也没有看到任何结果: dag_path = os.path.join(settings.DAGS_FOLDER, dag_id + '.py') with open(dag_path, 'w') as dag: dag.write(resu
dag_path = os.path.join(settings.DAGS_FOLDER, dag_id + '.py')
with open(dag_path, 'w') as dag:
dag.write(result)
可能的解决方案是从读取存储桶ID。您可以使用,也可以使用提供的API
gcloud composer环境描述--format=json--project=--location=
这将返回cloud composer集群的详细信息。
它将把dag位置放在键refix
dagGcsPrefix
的格式将是gs:///dags
谢谢。我遇到了下一个问题-连接到Web服务器的服务帐户没有写入dags文件夹的权限。所以问题是:worker是否具有写入dags文件夹的权限?如果是,我如何从webserver为worker声明作业?(可能通过在运行时创建并触发DAG,将指定字符串保存到GCS bucket?)
gcloud composer environments describe --format=json --project=<project-name> --location=<region> <cluster-name>