【发布时间】:2020-12-28 10:47:06
【问题描述】:
我正在尝试按计划触发 Lambda:alias(这里的别名是关键)。以下代码错误了
"SampleLambdaLiveAlias 无效。原因:如果 Arn 不在 正确的格式。 (服务:AmazonCloudWatchEvents;状态代码:400; 错误代码:ValidationException;"
如何在 CloudFormation 中正确定位 lambda:alias?我试过!Ref、!Sub 和逻辑名称。
我检索最新 lambda 版本的自定义资源方法似乎是设置“实时”别名的必要弊端,因为 AWS 维护旧 lambda 版本,即使在您删除 lambda 和堆栈并且需要有效版本之后一个新的别名。如果有人知道解决该问题的更优雅的方法,请参阅:how-to-use-sam-deploy-to-get-a-lambda-with-autopublishalias-and-additional-alises
SampleLambdaFunction:
Type: AWS::Serverless::Function
Properties:
FunctionName: SampleLambda
AutoPublishAlias: staging
CodeUri: src/
Handler: SampleLambda.handler
MemorySize: 512
Runtime: nodejs12.x
Role: !GetAtt SampleLambdaRole.Arn
SampleLambdaLiveAlias:
Type: AWS::Lambda::Alias
Properties:
FunctionName: !Ref SampleLambdaFunction
FunctionVersion: !GetAtt SampleLambdaGetMaxVersionFunction.version
Name: live
SampleLambdaFunctionScheduledEvent:
Type: AWS::Events::Rule
Properties:
State: ENABLED
ScheduleExpression: rate(1 minute) # same as cron(0/1 * * * ? *)
Description: Run SampleLambdaFunction once every 5 minutes.
Targets:
- Id: EventSampleLambda
Arn: SampleLambdaLiveAlias
【问题讨论】:
-
!Ref应该足够了。你能提供详细的错误信息吗?您的Targets中也存在缩进问题。
标签: aws-lambda amazon-cloudformation aws-sam