将Google Cloud功能从一个项目迁移到GCP中的另一个项目?

时间:2020-05-14 16:16:59

标签: git google-cloud-platform google-cloud-functions google-cloud-build google-source-repositories

我有一些云功能。我使用cloudbuild.yaml和Cloud Triggers通过源存储库部署这些云功能 cloudbuild.yaml是..

steps:

- name: 'python:3.7'
  entrypoint: 'bash'
  args: 
    - '-c'
    - |
        pip3 install -r requirements.txt
        pytest -rP

- name: 'gcr.io/cloud-builders/gcloud'
  args:
  - functions
  - deploy
  - Function_Name
  - --runtime=python37
  - --source=https://source.developers.google.com/projects/{}/repos/{}/moveable-aliases/master/paths/{}
  - --entry-point=main
  - --trigger-topic=TOPIC_NAME
  - --region=REGION

现在我想将此云功能从该项目移动到另一个项目(从项目A到项目B)

现在,因为我不在这里定义我的project_id。是从哪里获得项目ID的?是从服务帐户获得的?

我如何有效地将此云功能从存储库A移至存储库B?并将其部署到项目B。

1 个答案:

答案 0 :(得分:2)

运行Cloud Build时,some variable are set automatically就像当前项目一样。在环境中,默认情况下会使用此当前projet来部署功能。

要保持当前行为并添加将其扩展到下一个项目的功能,您可以这样做

  • 定义替换变量,例如_TARGET_PROJECT_ID
  • 默认情况下分配当前项目

...
- name: 'gcr.io/cloud-builders/gcloud'
  args:
  - functions
  - deploy
  - Function_Name
  - --runtime=python37
  - --source=https://source.developers.google.com/projects/{}/repos/{}/moveable-aliases/master/paths/{}
  - --entry-point=main
  - --trigger-topic=TOPIC_NAME
  - --region=REGION
  - --project=$_TARGET_PROJECT_ID
substitions:
  _TARGET_PROJECT_ID: $PROJECT_ID

现在,在触发器中(一个新触发器?)或当您手动运行Cloud Build时,如果需要,请指定新的project_ID。如果否,则当前行为(当前项目中的部署)将继续。