AWS SAM 提供了多种选项来处理环境特定的参数。这些选项包括在SAM模板中定义参数、使用环境变量或使用 AWS 系统参数存储在 SSM Parameter Store 中。以下是其中一种使用 AWS 系统参数存储的示例:
aws ssm put-parameter \
--name "/example/parameter" \
--value "example-value" \
--type String \
--overwrite
AWSTemplateFormatVersion: '2010-09-09'
Transform: 'AWS::Serverless-2016-10-31'
Resources:
MyFunction:
Type: 'AWS::Serverless::Function'
Properties:
CodeUri: ./src
Handler: index.handler
Runtime: nodejs12.x
Environment:
Variables:
PARAMETER_NAME: '/example/parameter'
const AWS = require('aws-sdk');
const ssm = new AWS.SSM();
exports.handler = async function(event, context) {
const parameterValue = await ssm.getParameter({
Name: process.env.PARAMETER_NAME,
WithDecryption: false
}).promise();
console.log('Parameter value:', parameterValue);
// rest of the function code
}
通过这种方式,您可以根据需要在环境中维护不同的参数值,并通过 SSM Parameter Store 在 Lambda 函数中访问它们,无需手动在部署期间覆盖参数值。
上一篇:AWSSam部署失败。