如何在AWS Lambda CloudFormation模板中添加AWS-Parameters-and-Secrets-Lambda-Extension公共扩展?
如何在CloudFormation模板中添加AWS Parameters and Secrets Lambda Extension公共扩展
你不需要通过AWS::Lambda::LayerVersion创建自定义层,直接在Lambda函数的配置中引用AWS官方提供的公共扩展ARN即可,具体步骤如下:
获取目标区域的扩展ARN
该公共扩展的ARN格式为:arn:aws:lambda:<区域代码>:015030872274:layer:AWS-Parameters-and-Secrets-Lambda-Extension:<版本号>你可以通过AWS CLI查询对应区域的最新版本号:
aws lambda list-layer-versions --layer-name AWS-Parameters-and-Secrets-Lambda-Extension --region <你的区域代码>比如us-east-1区域的某个版本ARN示例:
arn:aws:lambda:us-east-1:015030872274:layer:AWS-Parameters-and-Secrets-Lambda-Extension:10在CloudFormation模板中配置Lambda函数
在AWS::Lambda::Function资源的Layers属性中添加上述ARN,同时可以按需配置扩展的环境变量(比如日志级别、要加载的参数/秘密)。示例模板片段如下:Resources: MyLambdaFunction: Type: AWS::Lambda::Function Properties: FunctionName: MyTestFunction Runtime: python3.11 Handler: index.lambda_handler Code: S3Bucket: my-lambda-code-bucket S3Key: function-code.zip Layers: - arn:aws:lambda:us-east-1:015030872274:layer:AWS-Parameters-and-Secrets-Lambda-Extension:10 Environment: Variables: PARAMETERS_SECRETS_EXTENSION_LOG_LEVEL: INFO # 可选:指定要预加载的SSM参数或Secrets Manager秘密 # AWS_SSM_PARAMETERS: "/my/param1,/my/param2" # AWS_SECRETS_MANAGER_SECRETS: "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-secret-abc123" Role: !GetAtt MyLambdaExecutionRole.Arn关于控制台导出模板失败的说明
通过Lambda控制台导出的CloudFormation模板有时会遗漏公共层引用这类配置,因此需要手动在模板中添加Layers属性并填入正确的ARN。
内容的提问来源于stack exchange,提问作者user1729210
相关产品推荐
相关产品推荐

