问题:
我正在尝试在第二级编译(second-level-compilation.yaml)的此步骤中部署功能

- name: 'gcr.io/cloud-builders/gcloud'
  args: ['beta', 'functions',
       'deploy', '${_FUNCTION_NAME}',
       '--source', 'path/to/function',
       '--runtime', 'go111',
       '--region', '${_GCP_CLOUD_FUNCTION_REGION}',
       '--entry-point', '${_ENTRYPOINT}',
       '--env-vars-file', '${_FUNCTION_PATH}/.env.${_DEPLOY_ENV}.yaml',
       '--trigger-topic', '${_TRIGGER_TOPIC_NAME}',
       '--timeout', '${_FUNCTION_TIMEOUT}',
       '--service-account', '${_SERVICE_ACCOUNT}']

我使用控制台从Cloud Build收到此错误。

步骤#1:步骤#11:错误:(gcloud.beta.functions.deploy)使用目录路径/到/功能的源代码创建ZIP存档时出错:1980年之前,ZIP不支持时间戳

这是全局流:
  • 下一步是在第一级编译(first-level-compilation.yaml)中。这是由使用Github存储库的Cloud构建触发的(通过Application GitHub Cloud Build):
    - name: 'gcr.io/cloud-builders/gcloud'
      entrypoint: 'bash'
      args: ['-c', 'launch-second-level-compilation.sh ${_MY_VAR}']
    
  • 脚本“launch-second-level-compilation.sh”基于$ {_ MY_VAR}进行特定的操作,然后启动第二级编译,并传递大量替换变量,并带有“gcloud builds commit --config = second-level- editor.yaml --substitutions = _FUNCTION_NAME = val,_GCP_CLOUD_FUNCTION_REGION = val,.....“
  • 然后,使用生成的替换值并通过launch-second-level-compilation.sh脚本传递该问题开始处描述的“second-level-compilation.yaml”。

  • 这里的主要思想是让通用的first-level-compilation.yaml负责调用具有特定动态生成的替换的第二级编译。

    尝试/调查
  • 如本期Cloud Container Builder, ZIP does not support timestamps before 1980中所述,我试图“ls” / workspace目录中的文件。但是/ workspace根目录下的所有文件都没有奇怪的DATE。
  • 我将path / to / function从相对路径更改为/ workspace / path / to / function,但是没有成功,也不会出现意外,因为目录结束了。
  • 最佳答案

    请确保您没有没有文件的文件夹。例如:

    |--dir
       |--subdir1
       |  |--file1
       |--subdir2
          |--file2
    

    在此示例中,dir不直接包含任何文件,仅包含子目录。在本地部署期间,gcp sdk将dir放入tarball中,而不复制last modified字段。
    因此,将其设置为1st Jan 1970会导致ZIP问题。

    可能的解决方法是确保每个目录至少包含一个文件。

    关于go - 通过触发器在GCP上部署Go Cloud功能时,收到“ZIP不支持1980年之前的时间戳”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58862909/

    10-13 04:10