Python 无法查明GCP Composer(气流)DAG任务失败的问题

Python 无法查明GCP Composer(气流)DAG任务失败的问题,python,google-cloud-platform,airflow,google-cloud-composer,apache-airflow-xcom,Python,Google Cloud Platform,Airflow,Google Cloud Composer,Apache Airflow Xcom,我对使用Apache Airflow是新手。 我的dag的某些操作员处于失败状态。我正在努力理解错误的根源 以下是问题的详细信息: 我的dag相当大,它的某些部分由子dag组成。 我在Composer UI中注意到,失败的子DAG都是在名为download\u file的task\u id中完成的,该文件使用XCom和GoogleCloudStorageDownloadOperator >> GoogleCloudStorageDownloadOperator( task_

我对使用Apache Airflow是新手。 我的dag的某些操作员处于失败状态。我正在努力理解错误的根源

以下是问题的详细信息: 我的dag相当大,它的某些部分由子dag组成。 我在Composer UI中注意到,失败的子DAG都是在名为
download\u file
task\u id
中完成的,该文件使用
XCom
GoogleCloudStorageDownloadOperator


>> GoogleCloudStorageDownloadOperator(
    task_id='download_file',
    bucket="sftp_sef",
    object="{{task_instance.xcom_pull(task_ids='find_file') | first }}",
    filename="/home/airflow/gcs/data/zips/{{{{ds_nodash}}}}_{0}.zip".format(table)
)
上述子数据集中的日志没有显示任何有用的内容

日志:

[2020-04-0715:19:25618]{models.py:1359}信息-所有依赖项都满足要求 对于[2020-04-0715:19:25660] {models.py:1359}INFO-所有依赖项都满足[2020-04-0715:19:25660] {models.py:1577}INFO-

-------------------------------------------------------------------------------开始尝试第10次,共1次 [2020-04-0715:19:25685]{models.py:1599}信息-正在执行 在…上 2020-04-06T11:44:31+00:00[2020-04-07 15:19:25685] {base_task_runner.py:118}INFO-Running:['bash','-c','气流运行 datamart_integration.approvement_电子邮件下载_文件 2020-04-06T11:44:31+00:00--job_id 156313--pool integration--raw-sd DAGS_文件夹/datamart/datamart_integration.py--cfg_路径 /tmp/tmpacazgnve']

我不确定是否有什么地方我没有检查。。。以下是我的问题:

  • 通常,如何调试Composer DAG中的错误
  • 创建一个本地气流环境来运行是一个好主意吗& 在本地调试我的DAG
  • 如何验证XCom中是否存在错误

  • 关于你的三个问题:

    首先使用Cloud Composer时,有几种方法可以调试代码中的错误。根据建议,你应该:

  • 检查气流记录 这些日志与单个DAG任务相关。可以在云存储的日志文件夹和Web界面中查看它们

    创建Cloud Composer环境时,还将创建一个云存储桶并与之关联。因此,Cloud Composer将单个DAG任务的日志存储在此bucket内的logs文件夹中,每个工作流文件夹都有一个用于其DAG和子DAG的文件夹。你可以检查它的结构

    关于Airflow web界面,它每60秒刷新一次。此外,您可以查看更多信息

  • 查看谷歌云的操作套件 您可以与Cloud Composer一起使用和。云监控提供了云驱动应用程序的性能和整体健康状况的可视性,而云日志显示了调度器和工作容器生成的日志。因此,根据您的需要,您可以同时使用两者或仅使用您认为更有用的一种

  • 在云控制台中,检查运行您的环境的Google云组件页面上的错误

  • 在气流web界面中,检查DAG中的失败任务实例

  • 因此,在对DAG进行故障排除时,建议执行以下步骤

    其次关于测试和调试,建议您将生产环境和测试环境分开,以避免DAG干扰

    此外,还可以在本地测试DAG,文档中有关于此主题的教程。本地测试允许您识别语法和任务错误。但是,我必须指出,不可能检查/评估依赖关系和与数据库的通信

    第三个,一般来说,为了验证Xcom中的错误,您应该检查:

    • 如果有任何错误代码/编号
    • 使用文档中的示例代码检查语法是否正确
    • 检查软件包是否已弃用
    我想指出的是,根据,到GoogleCloudStorageDownloadOperator的路径已更新为GCSToLocalOperator

    此外,我还鼓励您查看一下:并检查Xcom语法和错误


    如果需要进一步帮助,请随时与我共享错误代码

    谢谢大家!!我会在下一天给你更新,不用担心。如果您觉得这些信息有用,请考虑接受答案。虽然文档似乎指向了<代码> GooGeLoLoudStutoAdGooLoad运算符< /COD>的弃权,但在作曲家中,当前版本的AIR流是<代码> 1.10 10< /代码>,我相信?@阿埃托斯,根据最新版本,Cloud Composer支持的最新气流版本是1.10.6,并且a
    pip安装apache气流[gcp]
    返回
    成功安装的apache-Airflow-1.10.10