amazon-web-services - Aws EventBridge 规则模式未与 AWS SAM 正确形成
问题描述
我试图使用由 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 支持提交错误报告,以让该服务修复它。
推荐阅读
- javascript - 如何在力有向图中配置力参数以使图稳定
- python - 处理 dogpile.cache 装饰器异常
- swift - 如何向日期选择器添加时间
- reactjs - 有没有很好的 CLI 工具来开发、搭建和维护 React 应用程序?
- tally - 用于在计数中创建成本中心的 xml 格式
- c# - 如何将链接名称与链接 URL 进行比较(使用 C# 中的 Selenium webdriver)
- angular - Nativescript 代码共享:处理类变量
- android - 拖动时MapView非常慢
- r - 自动识别打开pdf文件的错误
- javascript - 如何使用 axios 处理 500 错误消息