AWS SAM (Serverless Application Model) 是一种用于构建和部署无服务器应用程序的开发框架。在 AWS SAM 中,可以使用模板来定义 Lambda 函数和其他服务资源,并指定它们之间的依赖关系。要向 Lambda 函数传递参数,可以在模板中使用环境变量或事件输入。
以下是两种常见的方式来向 Lambda 函数传递参数的解决方法。
Environment
属性向 Lambda 函数传递参数。下面是一个使用环境变量传递参数的示例:Resources:
MyLambdaFunction:
Type: AWS::Serverless::Function
Properties:
Handler: index.handler
Runtime: nodejs12.x
Environment:
Variables:
PARAMETER_NAME: parameter_value
在 Lambda 函数的代码中,可以使用 process.env.PARAMETER_NAME
来获取传递的参数值。
Resources:
MyLambdaFunction:
Type: AWS::Serverless::Function
Properties:
Handler: index.handler
Runtime: nodejs12.x
Events:
MyEvent:
Type: Api
Properties:
Path: /my-endpoint
Method: get
RestApiId: !Ref MyApi
Request:
Parameters:
parameterName: true
在 Lambda 函数的代码中,可以使用事件输入的参数值。下面是一个 Node.js 示例:
exports.handler = async (event) => {
const parameterValue = event['queryStringParameters']['parameterName'];
// 使用参数值进行处理
return {
statusCode: 200,
body: 'Success',
};
};
以上是向 AWS SAM 的 Lambda 函数传递参数的两种解决方法。可以根据具体需求选择适合的方式进行参数传递。