我有一个名为getVendors的Cloud Function,它使用无服务器部署。我需要创建具有相同功能的开发实例和生产实例。当我在yml文件中使用dev
变量进行部署时,它将覆盖GCP中当前的功能。
如何在不覆盖生产实例的情况下部署具有相同云功能的开发实例?
作为参考,我在Deployment Manager中有两个堆栈(dev和prod)。当我查看项目中的Cloud Functions时,项目中仅列出了一个功能。这是被覆盖的功能。
service: get-vendor-info
provider:
name: google
stage: production
runtime: nodejs8
region: us-central1
project: {PROJECT NAME IS HIDDEN}
# the path to the credentials file needs to be absolute
credentials:{MY_CREDENTIALS}.json
plugins:
- serverless-google-cloudfunctions
package:
exclude:
- node_modules/**
- .gitignore
- .git/**
functions:
getVendors:
handler: getVendors
events:
- event:
eventType: providers/cloud.pubsub/eventTypes/topic.publish
resource: projects/{MY_PROJECT_NAME}/topics/getVendors
答案 0 :(得分:0)
我使用了两个不同的GCP项目;一个用于开发/测试,另一个用于产品。如果团队中有多个开发人员,则应考虑也给他们每个人自己的开发项目。
这样做可以减少开发或测试工作弄乱生产数据的风险。您可以每晚将生产数据库复制到dev / test项目中,并可能还会向其中添加特殊的测试数据。这些特殊的测试数据可以是极端情况,可以针对自动测试进行测试的知名数据,等等。
要进行更深入的讨论,请查看Google Cloud上的演讲接下来:https://youtu.be/41QvqGfbz9o?t=1142