gpt4 book ai didi

amazon-web-services - 尽管有关于 lambda 的资源策略声明,EventBridge 规则不会触发 Lambda

转载 作者:行者123 更新时间:2023-12-03 07:30:30 26 4
gpt4 key购买 nike

我有一个无服务器文件,它在默认事件总线上创建 eventbridge 规则:

    StepFunctionErrorEvent:
Type: AWS::Events::Rule
Properties:
Name: ${self:custom.resourcePrefix}-step-function-error-event-rule
Description: Event bus rule coordinating what targets receive Step Function error events
EventPattern:
source:
- "aws.states"
"detail-type":
- "Step Functions Execution Status Change"
detail:
state:
- "FAILED"
- "TIMED_OUT"
- "ABORTED"
Targets:
- Arn: ${cf:${self:custom.resourcePrefix}-service-internal-slack-integration.PostSlackMessageLambdaArn}
Id: "ErrorSlackMessage"
DeadLetterConfig:
Arn: !GetAtt DefaultErrorTargetDLQ.Arn
DefaultErrorTargetDLQ:
Type: AWS::SQS::Queue
Properties:
QueueName: ${self:custom.resourcePrefix}-DefaultErrorTargetDL

在一个单独的无服务器文件(也已部署)中,我将以下 Lambda 权限添加到 pl-us-east-2-pilot-post-slack-message :

resources:
Resources:
TriggerPostSlackMessageLambda:
Type: AWS::Lambda::Permission
Properties:
FunctionName: !GetAtt PostSlackMessageLambdaFunction.Arn
Action: lambda:InvokeFunction
Principal: events.amazonaws.com
SourceArn: !Sub arn:aws:events:${AWS::Region}:${AWS::AccountId}:rule/pl-us-east-2-pilot-step-function-error-event-rule

尽管pl-us-east-2-pilot-post-slack-message如果 lambda 将上述内容列为“基于资源的策略”(在 Lambda 控制台中)下的权限,则当 Lambda 失败时,EventBridge 规则不会触发。如果我使用 AWS 控制台创建新规则,它确实会触发,但无论出于何种原因,它都无法使用 serverless/CloudFormation 成功触发。

我似乎读到的有关此主题的每篇文章都提到了同一件事 - 即在 Lambda 上设置权限,但我已经这样做了,但它仍然不起作用。有谁知道它不触发的原因是什么?

最佳答案

很难发现,但因为我使用的是步进函数

          detail:
state:
- "FAILED"
- "TIMED_OUT"
- "ABORTED"

应该是

          detail:
status:
- "FAILED"
- "TIMED_OUT"
- "ABORTED"

关于amazon-web-services - 尽管有关于 lambda 的资源策略声明,EventBridge 规则不会触发 Lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71865327/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com