google-cloud-platform - 在 GCP 中将谷歌云功能从一个项目迁移到另一个项目?
问题描述
我有一些云功能。我使用 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 中部署它。
解决方案
当您运行 Cloud Build 时,会自动设置一些变量,例如当前项目。部署功能的环境默认使用当前项目。
为了保持当前行为并添加将其扩展到下一个项目的能力,您可以这样做
- 定义一个替换变量,例如
_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。如果否,则当前行为(在当前项目中部署)将继续。
推荐阅读
- javascript - 正则表达式用字符串中的html标签替换字符
- java - 尝试在空对象引用上调用虚拟方法“int android.view.View.getImportantForAccessibility()”
- angular - 一个一个地显示 *ngFor 项目 Ionic 4
- rest - Javax.ws.rs.BadRequestExcection 在 Spring Rest 中不起作用
- django - 如何在 Django 中将多个参数从“if 条件”传递到“for 循环”?
- gitlab - 用于分叉 gitlab 存储库的命令行实用程序
- javascript - 如何将 onClick 事件添加到 PHP 上生成的链接?
- android - 如何使用 Google Place API 创建附近的地方 android 应用程序?
- java - 操作“setBrokerPubQ()”对“com.ibm.mq.jms.MQQueueConnectionFactory”类型无效
- android - Android - 在 onCreate() 之后调用 onDestroy()