从几天前开始,某些任务会在每次 DAG 运行开始时抛出错误。似乎找不到从任务中检索日志记录的日志文件。
*** 404 GET https://storage.googleapis.com/download/storage/v1/b/europe-west1-ventis-brand-f-65ab79d1-bucket/o/logs%2Fimport_ebay_snapshot_feeds_ES%2Fstart%2F2021-11-30T08%3A00%3A00%2B00%3A00%2F3.log?alt=media: No such object: europe-west1-ventis-brand-f-65ab79d1-bucket/logs/import_ebay_snapshot_feeds_ES/start/2021-11-30T08:00:00+00:00/3.log: ('Request failed with status code', 404, 'Expected one of', <HTTPStatus.OK: 200>, <HTTPStatus.PARTIAL_CONTENT: 206>)
我已经升级到最新版本的 Cloud Composer,任务在 Python3 上运行。
有环境配置:
资源:
工作负载配置:
- 调度员
- 1 个 vCPU、2 GB 内存、2 GB 存储空间
调度器数量:2
网络服务器:
- 1 个 vCPU、2 GB 内存、2 GB 存储空间
worker 1 个 vCPU,2 GB 内存,1 GB 存储
worker 数量:
- 在 1 到 4 个工作人员之间自动扩缩
核心基础设施: 环境大小:小
GKE集群 项目/************************************
Cloud Composer 更新日志中没有关于此错误的相关问题。 如何解决这个问题?
最佳答案
这是 Cloud composer 环境中的一个错误,已经被报告过。您可以跟踪此对话:Re: Log not visible via Airflow web log和其他类似的论坛。为了解决这个问题,建议更新您的 Composer 环境或使用稳定版本。
有一些建议的解决方法(您可以按此顺序尝试,它们彼此独立):
- 从 Composer GCS 存储桶中的/logs 文件夹中删除日志,并将其存档在其他地方(/logs 文件夹之外)。
或
- 手动更新网络服务器配置以直接从项目中的新存储桶读取日志。您首先需要将存储桶上的查看者角色(如 roles/storage.legacyBucketReader 和 roles/storage.legacyObjectReader)授予运行网络服务器的服务帐户。
- 编辑
/home/airflow/gcs/airflow.cfg
→remote_base_log_folder = <newbucket>
具有如上所述的适当权限。
或
- 如果您没有启用 DRS(域限制共享),我相信您没有。您可以创建一个新的 Composer 环境,这次是通过 v1 Composer API 或不在 Cloud Console 中启用 Beta 功能。这样,Composer 将创建一个没有 DRS 兼容设置的环境,因此没有桶到桶同步。 问题是您需要将 DAG 和数据迁移到新环境。
关于google-cloud-platform - Cloud Composer - 未找到 DAG 任务日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70167141/