【问题标题】:Error copying pip.conf from bucket to Cloud Composer Airflow environment将 pip.conf 从存储桶复制到 Cloud Composer Airflow 环境时出错
【发布时间】:2020-02-06 17:30:04
【问题描述】:

类似于this lonely questioner 我正在尝试从私有 PyPI 存储库安装 Python 包,以便我们的 Google Cloud Composer Airflow 实例可以使用它。

我关注了these instructions,但 Airflow 仍然不知道我的包裹:

No module named 'foopackage'

我在任何地方的任何日志中都找不到对我的pip.conf 的任何引用,因此我不确定该文件是否在正确的位置,或者是否具有正确的内容。

如何继续调试此问题?


Cloud Composer 环境日志显示从存储桶复制pip.conf 时出现问题,但未提供任何其他详细信息:

{
 insertId: "16qa4c8g540zxs3"  
 logName: "projects/{my-env}/logs/composer-agent"  
 receiveTimestamp: "2020-02-06T15:59:03.164564368Z"  
 
resource: {…}  
 severity: "ERROR"  
 textPayload: "Copying gs://{my-bucket}/config/pip/pip.conf...
"  
 timestamp: "2020-02-06T15:59:00.857642186Z"  
}

我最初认为这可能是权限问题,但该文件似乎与此存储桶中的其他文件具有相同的权限集。

我在哪里可以获得有关复制该文件时出错的详细信息?

更新

我在composer-1.7.2-airflow-1.10.2

更新

我的 Composer 环境的服务帐户已经具有 project.editor 角色。

【问题讨论】:

  • 你能分享你的 Composer 版本吗?请检查您的 pip.conf 是否放在 /config/pip/ 文件夹中,而不是放在存储桶的某个子文件夹中。
  • 是的,文件在正确的位置。我已将版本号添加到问题文本中。谢谢!

标签: google-cloud-storage google-cloud-composer


【解决方案1】:

这表明用于 Web 服务器的 Docker 映像构建失败。要查找根本原因,请查看项目中的 Cloud Build 日志。

造成这种情况的原因是操作失败或耗时较长,它在 Composer 的后端超时。在某些情况下,这些错误会在后端持续存在,从而阻止未来的尝试。您可以尝试重新启用 API:

我想到的第一个解决方案是在云外壳中运行以下命令:

gcloud services disable composer.googleapis.com
gcloud services enable composer.googleapis.com

启用 API 后,请照常更新您的 Composer 环境。

当您安装软件包时,Composer 环境会为 Airflow 工作程序和调度程序重新创建 Docker 容器,然后在 GKE 集群中执行滚动更新以更新工作程序以保持工作程序可用。您可以查看Kubernetes Engine > Workloads 以查看您的环境是否因为等待调度程序和工作人员重新上线而超时。

当 Composer 环境使用自定义服务帐号且没有IAM 访问 Cloud Build 的权限时,构建会立即失败,请检查一下。您可以通过转到Cloud Build > History 来诊断这些问题,当您看到没有日志的构建时,这意味着构建甚至在尝试构建容器之前就失败了。

当您的包实现绑定时,如果系统上不存在这些库,它将在运行时失败。这意味着它与 Cloud Composer 不兼容,因为当前不支持将共享库放入构建环境。

另外,请确保您的项目是正确的packed。 希望以上信息对您有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-01
    • 2018-06-18
    • 2018-12-09
    • 2017-11-29
    • 2020-11-30
    • 2019-05-14
    • 2023-01-17
    相关资源
    最近更新 更多