【发布时间】:2021-12-10 07:52:55
【问题描述】:
Lambda 层 ARN 存储在 SSM 参数中,在定义函数并将层附加到它时,需要访问此参数的值以作为层 arn。
错误:SayHelloLayerARN 是无效的层 ARN。
参数存储中的参数名称:SayHelloLayerARN
这是 SAM 模板:
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: >
CREATE-WITH-SSM
Sample SAM Template for CREATE-WITH-SSM
Parameters:
HelloLayerARN:
Type: AWS::SSM::Parameter::Value<String>
Default: SayHelloLayerARN
Description: Layer ARN from SSM
Globals:
Function:
Timeout: 3
Resources:
HelloWorldFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: hello_world/
Handler: app.lambda_handler
Runtime: python3.8
Environment:
Variables:
LAYER_NAME: !Ref HelloLayerARN
Layers:
- !Ref HelloLayerARN
Events:
HelloWorld:
Type: Api # More info about API Event Source: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api
Properties:
Path: /hello
Method: get
【问题讨论】:
-
是的,SAM 无法解析 SSM 参数,因为我使用的是 sam cli 1.17 版,在更高版本的 SAM 中这个问题已经解决。我将我的 SAM cli 升级到 1.36 并且它工作正常。感谢 @user17589914 和 virenstack 的建议。
标签: aws-lambda aws-sam