打包后覆盖变量或环境值

时间:2019-12-23 14:39:02

标签: aws-lambda serverless-framework

我们的目标是创建不可变的工件并将其部署在不同的环境中。 无服务器框架已经通过package函数支持此功能,因此我们只能构建一个构建包并将其部署在不同的环境/ AWS帐户中。 我们在构建帐户/环境中使用sls package -v -p build创建程序包,然后使用sls deploy -v -p build在开发,集成和生产环境中部署此程序包。

不幸的是,我们还没有找到一种方法来覆盖不同帐户/环境中的环境变量。打包后,将使用的变量和环境硬编码在cloudformation-template-update-stack.json中。

我们尝试了什么:

    使用外部文件的
  • 配置,例如SQS_QUEUE_NAME: ${file(config/config.${self:provider.stage}.json):SQS_QUEUE_NAME}SQS_QUEUE_NAME: ${file(config/config.${opt:stage}.json):SQS_QUEUE_NAME}
  • serverless-plugin-composed-vars
  • 在部署过程中覆盖配置文件,例如sls deploy -v -c config/config.production.json -p build

我们missed有什么东西吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

您是否尝试过使用--stage标志?表示环境?