如何使用无服务器框架管理生产,测试和开发环境

时间:2018-11-06 03:54:43

标签: aws-lambda serverless-framework serverless

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

我想分离开发,测试和生产环境,并计划为其使用AWS Parameter存储。

我不想让开发人员了解我的生产环境配置。如果开发人员运行命令serverless offline -s production start,则不应获得生产配置。

仅当无服务器功能已成功部署到AWS Lambda时,才应获取它。

1 个答案:

答案 0 :(得分:0)

根据您的问题,这里有几点考虑事项:

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

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

  • 考虑到要与公司中的给定组隔离的生产环境,应创建VPC并相应地配置其资源访问权限。
  • 然后,您创建具有差异访问权限的用户。当您的开发人员尝试执行代码以访问他们无权访问的VPC中的资源(例如,dynamoDB)时,它们将被阻止。
  • AWS配置为定义哪个用户将执行SLS命令。
  • 您的开发团队仍然可以访问您的配置文件。

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

如果答案不足,您能否在您的无服务器项目中加强对哪种类型的资源敏感?我认为这是数据库,因为这是最常见的情况。