如何解决AWS SAM 未正确形成 AWS EventBridge 规则模式
我试图使用由 S3 事件触发的 AWS SAM 创建一个 AWS 状态机(步骤函数)。以下是我的 AWS SAM yml 代码段。
SampleStateMachine:
Type: AWS::Serverless::StateMachine
Properties:
Name: sample-state-machine
DefinitionUri: state-machines/my-definition.asl.json
Events:
S3PutEvent:
Type: EventBridgeRule
Properties:
Pattern:
source:
- "aws.s3"
detail:
eventSource:
- s3.amazonaws.com
eventName:
- PutObject
requestParameters:
bucketName:
- !Ref MyBucketName
在部署此应用程序时,它使用我在 sam yml 模板中指定的模式成功创建了规则。 (但 JSON 键值对的顺序略有变化)
{
"source": [
"aws.s3"
],"detail": {
"eventSource": [
"s3.amazonaws.com"
],"requestParameters": {
"bucketName": [
"my-bucket"
]
},"eventName": [
"PutObject"
]
}
}
不幸的是,此规则未从事件总线捕获任何事件。所以我尝试按照以下顺序更改 JSON 键值对,
{
"source": [ "aws.s3"
],"detail": {
"eventSource": [
"s3.amazonaws.com"
],"eventName": [
"PutObject"
],"requestParameters": {
"bucketName": [
"my-bucket"
]
}
}
}
它开始接收事件并且工作正常。
所以我的问题是,
- 这个顺序对于 AWS eventbridge 规则模式真的很重要吗?
- 如果是这样,我们如何在 AWS sam 执行(YML 到 JSON)时保留此顺序?
谢谢
解决方法
顺序应该无关紧要。如果您可以重现该问题,您应该向 AWS 支持提交错误报告,以便服务修复它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。