【问题标题】:How to manage production, test and development environments with serverless framework如何使用无服务器框架管理生产、测试​​和开发环境
【发布时间】:2019-04-09 11:16:51
【问题描述】:

我计划使用 aws lambda 和无服务器框架构建企业应用程序。

我想将开发、测试和生产环境分开,并计划为此使用 AWS Parameter store。

我不希望我的生产环境配置暴露给开发人员。如果开发者运行命令serverless offline -s production start,则不应获取生产配置。

只有在 serverless 功能成功部署到 aws lambda 后才能获取。

【问题讨论】:

    标签: aws-lambda serverless-framework serverless


    【解决方案1】:

    根据您的问题,以下是一些注意事项:

    • 要在无服务器框架上拥有不同的环境,您必须设置舞台。该值可以在执行 sls 命令时作为参数传递。
    • 如果您将代码保存在存储库中,开发人员将可以访问所有配置。如果这真的很重要,您可以将生产配置保存在一个差异存储库中,只有非常特定的人才能访问它,然后您在 serverless.yml 中引用 in。前任: custom: ${file(./config/${opt:stage, 'dev'}.json)} 然后在您的配置文件夹中创建 prod.json 文件,但指向您创建的新存储库的真实文件。注意:这会使您的项目更难维护。
    • 考虑到您不希望您的开发人员在本地执行您的生产环境。您可以使用无服务器离线的全局变量来阻止执行。您也可以告知当时不要这样做。

    根据您的问题,以下是一个好的做法和解决方案:

    • 考虑到您有一个想要与公司中的给定组隔离的生产环境,您应该创建 VPC 并相应地配置其资源访问权限。

    • 然后您创建具有差异访问权限的用户。当您的开发人员尝试执行代码访问他们无权访问的 VPC 中的资源(例如 dynamoDB)时,他们将被阻止。

    • AWS 配置以定义哪个用户将执行 SLS 命令。

    • 您的开发团队仍然可以访问您的配置文件。

      注意:在这种情况下,有权访问生产 VPC 的人员/组必须进行部署。

    如果答案不充分,您能否强调一下在您的无服务器项目中哪种类型的资源是敏感的?我理所当然地认为它是数据库,因为它是最常见的场景。

    【讨论】:

      猜你喜欢
      • 2013-09-14
      • 2016-01-27
      • 1970-01-01
      • 1970-01-01
      • 2011-04-02
      • 2021-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多