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

Posted

技术标签:

【中文标题】如何在本地计算机上模拟 AWS Parameter Store 以进行 lambda 函数开发?【英文标题】:How to emulate AWS Parameter Store on local computer for lambda function development? 【发布时间】:2021-09-12 06:47:26 【问题描述】:

我正在使用无服务器框架和 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 值。有什么办法吗?谢谢!

【问题讨论】:

【参考方案1】:

它应该像这样工作:在您的 serverless.yml 中,您可以使用 $env:keyname 引用 .env 参数和使用 $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

【讨论】:

以上是关于如何在本地计算机上模拟 AWS Parameter Store 以进行 lambda 函数开发?的主要内容,如果未能解决你的问题,请参考以下文章

如何访问在 AWS EC2 Ubuntu 的本地主机上运行的 Parse 服务器?

在 AWS 和 Google 之间传输时本地计算机的角色

Dart/flutter:如何在模拟器的本地主机上显示来自 API 的图像

如何在本地主机上模拟 HTTP POST(*Windows* 不是 Unix)? [复制]

AWS Lambda 内部的 Parameter Store 请求超时

模拟本地主机上的慢速连接