我有一个事件总线,其规则是将事件转发给 lambda 函数,它工作正常。 我创建了一个 SQS 队列来接收相同的事件,但我遇到了问题。 事件规则被转发到 lambda,但没有任何东西到达 SQS。
这是我的SQS的政策(我省略了私人信息):
{ "Version": "2008-10-17", "Id": "__default_policy_ID", "Statement": [ { "Sid": "EventsToMyQueue", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sqs:SendMessage", "Resource": "arn:aws:sqs:us-west-2:account:queue-name.fifo", "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:events:us-west-2:account:rule/event-bus/rule-name" } } } ] }
我希望只有添加的规则发送将消息放入 SQS,但它没有用。所以,我尝试了绝望的解决方案,为所有人添加权限:
{ "Sid": "EventsToMyQueue", "Effect": "Allow", "Principal": "*", "Action": "sqs:SendMessage", "Resource": "arn:aws:sqs:us-west-2:account:queue-name.fifo" }
然而,它也没有用。
我不知道我必须做什么。一些建议?
我尝试修改 SQS 策略并在 eventbridge 规则中查找配置,但没有任何效果。
我测试过,当我将 SQS 的类型更改为标准(它是一个队列)时它起作用了。我认为当类型是队列时有必要配置其他东西,但我还不能确认这一点。