1

我将文件放在 Github 上并连接到 Google Cloud Repository。下面是 .yaml 文件,当我更新 index.js 文件时,Cloud Build 会重建 Cloud Function,但为什么内容没有更新?手动设置 Cloud Function 工作

steps:
- name: 'gcr.io/cloud-builders/yarn'
  args: ['install']
  dir: 'functions/autodeploy'
- name: 'gcr.io/cloud-builders/gcloud'
  args: ['functions', 'deploy', 'function-1', '--trigger-http', '--runtime', 'nodejs10', '--entry-point', 'firstci']
  dir: 'functions/autodeploy'

下面是从 index.js 导出的函数,现在 Cloud Function 应该输出“test finally”,但是重建后仍然输出“test 3rd time”

exports.firstci = (req, res) => {
  let message = req.query.message || req.body.message || 'setup pineline, test finally cloud build!';
  res.status(200).send(message);
};

4

2 回答 2

0

我遇到这个问题一整天。最终,这是成功更新 Cloud Function 内容的 yaml 结构:

steps:
  - name: gcr.io/cloud-builders/gcloud
    args:
      - functions
      - deploy
      - my-function
      - '--trigger-topic'
      - my-topic
      - '--runtime'
      - dotnet3
      - '--entry-point'
      - Example.EntryPoint
      - '--region'
      - us-east1
      - '--allow-unauthenticated'
      - '--source=https://source.developers.google.com/projects/my-project/repos/github_dw_gcp/moveable-aliases/main/paths/cloud-functions/my-function'

这在推送到镜像到 GitHub 的 GCP 源代码库后从 Cloud Build 触发器调用。

于 2021-11-04T20:48:14.640 回答
0

Nodejs 10 运行时仍处于测试阶段。尝试将 beta 如下放入您的 cloudbuild.yaml 文件中并删除 2 dir 行,因为这不是必需的。

cloudbuild.yaml

steps:
  - name: 'gcr.io/cloud-builders/yarn'
    args: ['install']
  - name: 'gcr.io/cloud-builders/gcloud'
    args: ['beta','functions', 'deploy', 'function-1', '--trigger-http', '-- runtime', 'nodejs10', '--entry-point', 'firstci']
于 2020-01-27T15:04:40.727 回答