如何在本地计算机上模拟 AWS Parameter Store 进行 lambda 函数开发?

问题描述

我正在使用无服务器框架和 NodeJS 来开发我的 AWS Lambda 函数。到目前为止,我已经使用 .env 文件来存储我的机密。因此,我可以像这样在 serverless.yml 中访问它们

provider:
  ...
  environment:
    DB_HOST: ${env:DB_HOST}
    DB_PORT: ${env:DB_PORT}

但现在我需要使用 AWS Parameter Store 而不是 .env 文件。我试图找到有关如何在本地计算机上模拟它的信息,但我找不到。

我想,我必须在本地和暂存上使用一个无服务器配置文件。我需要一种方法来从 .env 文件(如果它是本地机器)或从 Parameter Store(如果它是 AWS Lambda)中以某种方式选择 env 值。有什么办法可以做到吗?谢谢!

解决方法

它应该是这样工作的:在您的 serverless.yml 中,您可以使用 .env 引用 ${env:keyname} 参数,使用 ${param:keyname} 语法引用 AWS 参数。

如果您需要同时支持它们,则只需编写 ${env:keyname,param:keyname}

这是一个例子:

provider:
  ...
  environment:
    ALLOWED_ORIGINS: ${env:ALLOWED_ORIGINS,param:ALLOWED_ORIGINS}
    AUTHORIZER_ARN: ${env:AUTHORIZER_ARN,param:AUTHORIZER_ARN}
    MONGODB_URL: ${env:MONGODB_URL,param:MONGODB_URL}