Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python入口点构建Google云gsutil_Python_Google Cloud Build_Gsutil - Fatal编程技术网

使用python入口点构建Google云gsutil

使用python入口点构建Google云gsutil,python,google-cloud-build,gsutil,Python,Google Cloud Build,Gsutil,我想通过子流程调用gsutil,使用python脚本从Google存储下载几个文件。在云构建步骤中,检查python脚本中的\u call() 因此,我在cloudbuild.yaml中使用以下步骤: - name: 'gcr.io/cloud-builders/gsutil' entrypoint: 'bash' args: ['-c', 'pip install google-cloud-storage && python /path_to_scri

我想通过
子流程调用
gsutil
,使用python脚本从Google存储下载几个文件。在云构建步骤中,检查python脚本中的\u call()

因此,我在
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:无效语法
Python错误。我可以使用相同的参数在本地运行相同的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
抛出该错误的任何帮助性评论?入口点指定错误了吗?

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

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

这实际上对我来说做得很好。

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

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

这实际上对我来说做得很好。

你在脚本中做什么?脚本提取bucket中所有文件的列表,并根据一些用户输入进行过滤(在cloud build中使用替换变量)。然后,文件被下载到云构建中的当前工作区。有趣的是,这些脚本在函数定义的开头就中断了。如前所述,脚本本身在本地以及python:3.7-slim容器中运行。我无法重现您的错误。这就是为什么我想了解你为了失败而做的特殊事情。如果你有一个最小的代码来重现这个问题,它是完美的!你在脚本中做什么?脚本提取bucket中所有文件的列表,并根据一些用户输入过滤它们(使用云构建中的替换变量)。然后,文件被下载到云构建中的当前工作区。有趣的是,这些脚本在函数定义的开头就中断了。如前所述,脚本本身在本地以及python:3.7-slim容器中运行。我无法重现您的错误。这就是为什么我想了解你为了失败而做的特殊事情。如果你有一个最小的代码来重现这个问题,它是完美的!