Template error: instance of Fn::GetAtt references undefined resource EventHandlerLambdaFunction
Template error: instance of Fn::GetAtt references undefined resource EventHandlerLambdaFunction
谁能帮我找出问题所在?
我正在我的无服务器 yml 中导入此 cloudformation 资源。
这是我的功能配置:
Resources:
eventHandler:
Type: AWS::Serverless::Function
Properties:
CodeUri: eventLambda/
Handler: dist/app.eventHandler
Runtime: nodejs12.x
FunctionName: eventHandler
这是我引用它的地方:
eventSourceRule:
Type: 'AWS::Events::Rule'
Properties:
Name: eventSourceRule
EventBusName: omnibus-${self:custom.stage}
EventPattern: |
{
"source": ["op.api"]
}
RetryPolicy:
MaximumRetryAttempts: 5
MaximumEventAgeInSeconds: 900
DeadLetterConfig:
Type: SQS
QueueLogicalId: EBRuleDLQ
Targets:
- Arn:
Fn::GetAtt:
- 'EventHandlerLambdaFunction'
- 'Arn'
Id: 'eventSourceRule'
请注意,我已经尝试了 eventHandler
和 EventHandler
以及 none 这些方法。
那是我收到的错误:
The CloudFormation template is invalid: Template error: instance of Fn::GetAtt references undefined resource EventHandlerLambdaFunction
我认为您必须添加 资源 的逻辑名称。
将 EventHandlerLambdaFunction
替换为实际资源名称 eventHandler
.
您没有使用您定义的 Lambda 资源的逻辑名称。
您可以尝试使用简单的 YAML 语法:
Targets:
- Arn: !GetAtt eventHandler.Arn
谁能帮我找出问题所在?
我正在我的无服务器 yml 中导入此 cloudformation 资源。 这是我的功能配置:
Resources:
eventHandler:
Type: AWS::Serverless::Function
Properties:
CodeUri: eventLambda/
Handler: dist/app.eventHandler
Runtime: nodejs12.x
FunctionName: eventHandler
这是我引用它的地方:
eventSourceRule:
Type: 'AWS::Events::Rule'
Properties:
Name: eventSourceRule
EventBusName: omnibus-${self:custom.stage}
EventPattern: |
{
"source": ["op.api"]
}
RetryPolicy:
MaximumRetryAttempts: 5
MaximumEventAgeInSeconds: 900
DeadLetterConfig:
Type: SQS
QueueLogicalId: EBRuleDLQ
Targets:
- Arn:
Fn::GetAtt:
- 'EventHandlerLambdaFunction'
- 'Arn'
Id: 'eventSourceRule'
请注意,我已经尝试了 eventHandler
和 EventHandler
以及 none 这些方法。
那是我收到的错误:
The CloudFormation template is invalid: Template error: instance of Fn::GetAtt references undefined resource EventHandlerLambdaFunction
我认为您必须添加 资源 的逻辑名称。
将 EventHandlerLambdaFunction
替换为实际资源名称 eventHandler
.
您没有使用您定义的 Lambda 资源的逻辑名称。
您可以尝试使用简单的 YAML 语法:
Targets:
- Arn: !GetAtt eventHandler.Arn