You need to enable JavaScript to run this app. Google Cloud Composer中Airflow调用新冠API任务失败求助
优惠活动
大模型
产品
解决方案
定价
更多

Google Cloud Composer中Airflow调用新冠API任务失败求助

Google Cloud Composer 任务失败排查方案

优先操作:查看任务报错日志

直接进入Airflow UI,找到失败的api_covid任务,点击「Log」按钮查看完整执行日志,优先定位报错类型,再针对性解决。以下是该场景下的高频故障原因和修复方案:

  • 网络连通性问题

    第一个汇率API可正常访问不代表所有公网域名都可连通,大概率是以下两种情况:

    1. Composer所在VPC的防火墙规则、Cloud NAT配置限制了该泰国API域名的公网访问
    2. 该API的服务端封禁了Composer工作节点的出口公网IP
      可在covid_api函数中增加异常捕获和日志打印,确认请求状态:
    def covid_api():
        import traceback
        try:
            url = "https://covid19.th-stat.com/json/covid19v2/getTimeline.json"
            # 增加超时配置,避免请求无限挂起
            response = requests.get(url, timeout=30)
            print(f"API请求返回状态码:{response.status_code}")
            # 校验请求是否成功,非200状态直接抛出异常
            response.raise_for_status()
            df = response.json()
            df = pd.DataFrame.from_dict(df['Data'])
            df['Date'] = pd.to_datetime(df['Date']).dt.date 
            df.to_csv("/home/airflow/gcs/data/result.csv", index=False)
        except Exception as e:
            print(f"报错详情:{str(e)}")
            print(f"错误调用栈:{traceback.format_exc()}")
            raise
    

    修改后重新运行任务,即可在日志中看到请求状态码和报错详情,确认是否为网络层面的问题。

  • 依赖包版本兼容问题

    本地Jupyter环境的pandas、requests包版本和Composer运行环境的版本不一致,可能导致JSON解析、日期处理逻辑报错。
    可先在本地Jupyter执行pip list | grep -E "pandas|requests"查看本地版本号,再到Google Cloud Composer的环境配置页面,在PYPI依赖包配置中指定和本地一致的版本安装即可。

  • API返回结构异常问题

    该API可能针对不同地区IP的请求返回不同结构的响应,或临时返回非JSON格式的错误内容,导致代码中取df['Data']时抛出KeyError,新增上述日志打印逻辑后即可确认返回内容是否符合预期。

  • GCS路径写入问题

    虽然第一个任务可正常写入GCS挂载路径,也可排查是否存在同名文件权限冲突、写入路径配置错误的问题,确认/home/airflow/gcs/data/路径在当前Composer版本下是否为正确的GCS挂载路径。

内容的提问来源于stack exchange,提问作者Hect blunk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 01:57:03