dob*_*man 14 rules amazon-web-services event-bus aws-event-bridge
我在定义匹配我的事件的规则时遇到了这个问题。谷歌搜索,测试过。
假设我们有以下事件,其中包含user
数组中的对象events
:
{
"version": "0",
"...": "...",
"detail": {
"events": [
{
"user": {
"id": "5efdee60b48e7c1836078290"
}
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
有什么方法可以匹配user.id
EventBus 规则中的 吗?我已经尝试使用以下无效规则:
{
"detail": {
"events": [
{
"user": {
"id": [
"5efdee60b48e7c1836078290"
]
}
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
然后,
{
"detail": {
"events[0]": {
"user": {
"id": [
"5efdee60b48e7c1836078290"
]
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
也没有效果。
我不想放弃,但我已经厌倦了;)
小智 17
此模式应该可以匹配此事件:
{
"detail": {
"events": {
"user": {
"id": [
"5efdee60b48e7c1836078290"
]
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我用你的例子做了一些尝试,但我无法让它工作。基于阅读EventBridge 事件模式中的数组,我不得不得出结论,将内部数组与复杂值进行匹配是不可能的。
似乎证实这一点的引用是“如果事件中的值是一个数组,那么如果模式数组和事件数组的交集非空,则模式匹配。”
并从“事件模式”页面“匹配值始终位于数组中”。因此,如果您的模式是一个数组,并且事件中的值也是一个数组(这是您给出的示例),则会执行基于“集合”的交叉测试。您的模式必须匹配整个数组条目,而不仅仅是像示例中的单个字段。
归档时间: |
|
查看次数: |
6353 次 |
最近记录: |