为Google Cloud Functions创建开发和登台环境

Nag*_*hab 4 google-cloud-platform google-cloud-pubsub google-cloud-functions

我正在开发一个具有开发环境和登台环境的项目,因此每个环境都有自己的服务器,数据库,每个环境也应该有自己的Pub/Subs和Cloud Functions.

我有一个称为jsonToCsv导出一个具有相同名称的函数的云函数jsonToCsv,我想部署相同的代码但是使用不同的名称jsonToCsv_staging,但是,GCloud将不允许我导出名称与云函数不同的函数

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
Run Code Online (Sandbox Code Playgroud)

来自AWS的背景,我认为有一种方法可以让我调用不同版本的Cloud Function(即最新的将是开发,我可以用staging另一个版本标记一个版本production)但我不能找到一种方法来做到这一点.

我能想到解决这个问题的一种方法是使用具有相同名称的相同函数,但使用不同的Pub/Subs或触发环境变量的触发器.如果开发人员想要在不影响登台的情况下部署一些开发代码,这将无效.你对此有何看法?在这种情况下,最佳做法是什么?

Dou*_*son 6

在Google Cloud Platform(以及Firebase)中隔离环境的推荐方法是为每个环境创建不同的项目.

GCP项目中的环境多租户是一个坏主意,因为它可以让您轻松地将生产数据和代码损坏到开发实践的日常工作中.

  • 针对环境的不同项目?是否需要大量的设置和维护来使两个版本保持同步(例如,部署新功能,您就需要在两端同时进行)吗?还是有复制项目的聪明方法?您如何检查两个项目是否同步? (3认同)