问题描述
我有一种情况,我需要在 eventbridge 中使用 eventpatterns 过滤掉某些事件。 我想为所有事件运行规则,除了那些用户名以 abc 或 xyz 开头的事件。 我尝试了以下 2 种语法,但都没有奏效:
"userIdentity": {
"sessionContext": {
"sessionIssuer": {
"userName": [
{
"anything-but": {
"prefix": [
"abc-","xyz-"
]
}
}
]
}
}
}
"userIdentity": {
"sessionContext": {
"sessionIssuer": {
"userName": [
{
"anything-but": [{
"prefix": "abc-","prefix": "xyz-"
}]
}
]
}
}
}
保存规则时出现以下错误: "事件模式无效。原因:在列表之外的任何内容中,不支持 start|null|boolean。"
我是否遗漏了语法中的某些内容,或者如果这是一个限制,那么是否有其他方法可以解决此问题?
解决方法
TLDR:用户@samtoddler 是正确的。
前缀匹配仅适用于 https://docs.aws.amazon.com/eventbridge/latest/userguide/content-filtering-with-event-patterns.html#filtering-prefix-matching 中调用的值。它们不适用于数组。您可以向 AWS 支持提交功能请求,但如果您想解除封锁;您最好控制用户名的前缀(猜测这是 IAM 相关的并且在您的控制范围内)。
如果这是不可能的;在发送到计算(可能是 lambda)以执行其他过滤之前,请考虑通过其他属性尽可能多地过滤。