google-cloud-platform - 如何使用无服务器创建同一云函数的开发和生产实例?

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

我有一个名为 getVendors 的云函数,它是使用无服务器部署的。我需要创建同一功能的开发实例和生产实例。当我在我的 yml 文件中使用 dev 变量进行部署时,它会覆盖当前在 GCP 中的函数。

如何在不覆盖生产实例的情况下部署同一云函数的开发实例?

作为引用,我在部署管理器中有两个可见的堆栈(开发和生产)。就是看项目中的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

最佳答案

我使用两个不同的 GCP 项目;一个用于开发/测试,另一个用于生产。如果团队中有多名开发人员,您应该考虑为他们每个人提供自己的开发项目。

这样做可以降低开发或测试工作弄乱生产数据的风险。您可以每晚将生产数据库复制到开发/测试项目中,并可能向其中添加特殊测试数据。这种特殊的测试数据可能是极端情况、运行自动化测试的众所周知的数据等。

如需更深入的讨论,请查看来自 Google Cloud Next 的演讲:https://youtu.be/41QvqGfbz9o?t=1142

关于google-cloud-platform - 如何使用无服务器创建同一云函数的开发和生产实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56284097/

相关文章:

serverless-framework - 无服务器框架中的二进制媒体类型支持

php - 为什么找不到我的 php 页面?是我的yaml文件有问题吗?

firebase - 我可以在 Firebase 函数上实现 beforeCreate 触发器吗

google-cloud-platform - google-storage-object-creator@project-name.iam.gserviceaccount.com 没有 storage.objects.delete 访问 bucket-x/xxx.jpg

javascript - 如何针对此用例扩展 Firebase Cloud 功能中的推送通知?

javascript - 无法读取云功能中的托管文件

amazon-web-services - 如何将 lambda 函数放入无服务器的嵌套堆栈中?

sequelize.js - 无服务器功能因 Sequelize 而挂起?

python - 如何在python3标准应用引擎项目中访问谷歌云库?

machine-learning - gcloud ml-engine local train ...没有名为 XXX 的模块