我正在开发一个具有开发环境和暂存环境的项目,因此每个环境都有自己的服务器、数据库,每个环境也应该有自己的 Pub/Subs 和 Cloud Functions。
我有一个名为 jsonToCsv
的云函数导出同名函数 jsonToCsv
,我想部署相同的代码但使用不同的名称,即 jsonToCsv_staging
,但是,GCloud 不允许我导出名称与 Cloud Functions 不同的函数
ERROR: (gcloud.beta.functions.deploy) OperationError: code=3,
message=Function load error: Node.js module defined by file index.js is
expected to export function named jsonToCsv-staging
来自 AWS 背景,我认为有一种方法可以让我调用不同版本的云函数(即最新版本是开发,我可以用
staging
标记一个版本,另一个用 production
标记版本) ) 但我找不到办法做到这一点。我能想到的一种解决方法是使用具有相同名称但不同的 Pub/Sub 或触发器的相同函数来传递环境变量。如果开发人员想要在不影响登台的情况下部署一些开发代码,那将行不通。你对此有何看法?这种情况下的最佳实践是什么?
最佳答案
在 Google Cloud Platform(因此也包括 Firebase)中隔离环境的推荐方法是为每个环境创建不同的项目。
GCP 项目中的环境 Multi-Tenancy 是一个坏主意,因为它使您的生产数据和代码相对容易损坏到您的开发实践的日常工作中。
关于google-cloud-platform - 为 Google Cloud Functions 创建开发和暂存环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49744470/