【发布时间】:2020-04-29 14:04:33
【问题描述】:
我想摆脱部署到 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
这是用法:
const MONGODB_URI = process.env.MONGODB_URI;
console.log(MONGODB_URI);
到目前为止,一切都很好,并且符合规范。但我花了两个小时试图让它在本地工作。
配置文件env.json
{
"BUDAuthorizeUserHandler": {
"MONGODB_URI": "mongodb+srv://USER:PASSWORD@HOST/bud?retryWrites=true&w=majority"
}
}
我尝试了这些选项,但从未定义环境变量:
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"
我浏览了这些页面:
https://github.com/awslabs/aws-sam-cli/issues/1163 aws-sam-local environment variables How do I specify template parameters when running AWS SAM Local? Setting environmental variables with !Ref in AWS SAM?
SAM CLI,版本 0.39.0
如何让它发挥作用?我做错了什么?
【问题讨论】:
标签: node.js amazon-web-services aws-lambda aws-serverless