小编Sar*_*ain的帖子

AWS SAM 本地和环境参数

我想摆脱部署到 AWS 的 lambda 中的硬编码密码。我发现我要修改packaged.yaml

Parameters:
  DATABASE_URI:
    Description: 'Required. MongoDB connection URL'
    Type: 'String'
Resources:
  BUDAuthorizeUserHandler:
    Type: AWS::Serverless::Function
    Properties:
      FunctionName: BUDAuthorizeUserHandler
      Handler: src/handlers/users/authorizeUser.handler
      Runtime: nodejs10.x
      Environment:
        Variables:
          MONGODB_URI: !Ref DATABASE_URI
Run Code Online (Sandbox Code Playgroud)

这是用法:

const MONGODB_URI = process.env.MONGODB_URI;
console.log(MONGODB_URI);
Run Code Online (Sandbox Code Playgroud)

到目前为止一切顺利,符合规范。但我花了两个小时试图让它在本地工作。

配置文件 env.json

{
  "BUDAuthorizeUserHandler": {
     "MONGODB_URI": "mongodb+srv://USER:PASSWORD@HOST/bud?retryWrites=true&w=majority"
   }
}
Run Code Online (Sandbox Code Playgroud)

我尝试了这些选项,但从未定义环境变量:

sam local start-api --env-vars env.json

sam local start-api --parameter-overrides ParameterKey=DATABASE_URI,ParameterValue="mongodb+srv://USER:PASSWORD@HOST/bud?retryWrites=true&w=majority"
Run Code Online (Sandbox Code Playgroud)

我已经浏览了这些页面:

https://github.com/awslabs/aws-sam-cli/issues/1163 aws-sam-local 环境变量 运行 AWS SAM Local 时如何指定模板参数? 在 AWS SAM 中使用 !Ref 设置环境变量?

SAM CLI,版本 0.39.0

如何使它工作?我做错了什么?

amazon-web-services node.js aws-lambda aws-serverless

5
推荐指数
1
解决办法
3836
查看次数