使用python入口点构建Google云gsutil

2024-04-20 16:19:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用python脚本在云构建步骤中通过python脚本内的subprocess.check_call()调用gsutil,从Google存储下载几个文件

因此,我在cloudbuild.yaml中使用以下步骤:

- name: 'gcr.io/cloud-builders/gsutil'
  entrypoint: 'bash'
  args: ['-c',
         'pip install google-cloud-storage && python /path_to_script/script.py --arg1 $_ARG1 --arg2 $TAG_NAME --arg3 $BRANCH_NAME --arg4 $_ARG4'
  ]

但是云构建抛出了一个奇怪的SyntaxError: invalid syntaxPython错误。我可以使用相同的参数在本地运行相同的Python脚本,也可以通过使用python:3.7-sim在云构建中使用该语法错误运行相同的Python脚本:

- name: 'python:3.7-slim'
  entrypoint: /bin/sh
  args: ['-c',
         'pip install google-cloud-storage && python python /path_to_script/script.py --arg1 $_ARG1 --arg2 $TAG_NAME --arg3 $BRANCH_NAME --arg4 $_ARG4'
  ]

后面的示例一直工作到调用gsutil,因为它不是python:3.7-slim容器的一部分(因此是预期的行为)

关于gcr.io/cloud-builders/gsutil为什么抛出这个错误,有什么有用的评论吗?入口点是否指定错误


Tags: installpipnameio脚本cloud错误script
1条回答
网友
1楼 · 发布于 2024-04-20 16:19:20

通过调用专用的gsutil映像并结合通配符来完成类似于python脚本中的过滤,我找到了一个更简单的解决方案。 请参见下面的简化示例:

- name: 'gcr.io/cloud-builders/gsutil'
  entrypoint: 'bash'
  args:
  - '-c'
  - |
    gsutil -m cp -r 'gs://bucket/*/' '/workspace'

这对我来说真的很好

相关问题 更多 >