如何使用无服务器创建相同云功能的dev和prod实例?

时间:2019-05-23 23:29:33

标签: google-cloud-platform google-cloud-functions serverless

我有一个名为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

1 个答案:

答案 0 :(得分:0)

我使用了两个不同的GCP项目;一个用于开发/测试,另一个用于产品。如果团队中有多个开发人员,则应考虑也给他们每个人自己的开发项目。

这样做可以减少开发或测试工作弄乱生产数据的风险。您可以每晚将生产数据库复制到dev / test项目中,并可能还会向其中添加特殊的测试数据。这些特殊的测试数据可以是极端情况,可以针对自动测试进行测试的知名数据,等等。

要进行更深入的讨论,请查看Google Cloud上的演讲接下来:https://youtu.be/41QvqGfbz9o?t=1142