如何将默认GCP服务帐户设置为Cloud Composer

时间:2019-06-20 05:28:02

标签: google-cloud-platform google-compute-engine google-cloud-composer

我必须使用bash运算符在composer中运行一些python文件(.py),这些文件存在于计算引擎中,但我无法通过composer与计算引擎进行通信。 我想我需要添加连接变量进行通信。谁能帮忙解决此问题。

def checkfile():
    file_path = '/root/sample-pyspark.py'

    if os.path.exists(file_path):
        print("File present")
        return True
    else:
        print("File not present")
        return False
with DAG('Demo_spark_job',
     default_args=default_args,
     schedule_interval='0 * * * *',
     ) as dag:

    print_hello = BashOperator(task_id='print_hello',
                           bash_command='echo "hello"')
    check_file = PythonOperator(task_id='check_file',
                             python_callable=checkfile)
    sample_spark_job = BashOperator(task_id='run_spark_job',
                     bash_command='sudo python /root/sample-pyspark.py')

1 个答案:

答案 0 :(得分:0)

要在Cloud Composer Airflow工作人员上显示文件(例如Python脚本),请将它们放入环境的关联GCS存储桶中。例如,如果您将文件放在gs://my-composer-bucket/data/sample-pyspark.py(即数据目录)中,则可以在其安装路径中访问它:

sample_spark_job = BashOperator(task_id='run_spark_job',
                 bash_command='sudo python /home/airflow/gcs/data/sample-pyspark.py')

您可以在public documentation page上详细了解Composer的映射目录。


如果我对上面的问题有误解,而您实际上想在其他GCE实例上运行Bash命令,那么您应该考虑使用SSH operator