标签: aws-event-bridge

AWS 中的低延迟事件溯源服务是什么?

我在我们的应用程序中用作EventBridge事件总线。根据其文档: https: //aws.amazon.com/eventbridge/faqs/,发送和接收事件之间的延迟为半秒,这在我的应用程序中是不可接受的。

我正在考虑其他选择。Kinesis 在过滤事件方面存在问题。一旦消费者附加到流上,它就需要提供一些逻辑来过滤掉不感兴趣的事件。由于我使用 lambda 作为消费者,并且会有许多不感兴趣的事件触发我的 lambda,这将导致高 AWS 账单。

AWS SNS 只能支持 AWS 服务的目标。

另一种选择是卡夫卡。但我无法找到使用 AWS 托管 Kafka 服务时的延迟情况。

使用 AWS 时延迟最低的事件源解决方案是什么

amazon-sqs amazon-web-services apache-kafka amazon-kinesis aws-event-bridge

5
推荐指数
1
解决办法
1892
查看次数

如何将标签传播到从 EventBridge 目标启动的 ECS 任务?

我有一个 EventBridge(以前称为 CloudWatch Events)RuleTarget用于Task计划 (cron)启动 ECS启动 ECS 。我想为任务应用一些标签。

我尝试在 中包含标签RegisterTaskDefinition,但这并没有导致在Tasks 上设置任何标签,因为RunTask如果未指定,则不会传播标签propagateTags

PutTargets是创建最终将调用的事件目标的操作RunTask。我在ecsParameters( EcsParameters) 和input( TaskOverride) 中搜索了对应于 或tagspropagateTags字段RunTask,但找不到任何相应的字段。

有没有办法将标签应用到从 EventBridge 规则目标运行的 ECS 任务?

2021-06-24 更新(感谢@baxang):EventBridge 昨天已添加ecsParameters.PropagateTags: "TASK_DEFINITION"到 API 文档和一些 SDK(containers-roadmap#89)!

tags amazon-ecs amazon-cloudwatch-events aws-event-bridge

5
推荐指数
1
解决办法
1735
查看次数

使用无服务器框架的 AWS Event Bridge DLQ 配置

这里的AWS Event Bridge的无服务器框架文档没有提到如何设置死信队列和重试尝试。我希望 serverless.yml 的配置如下所示,但它不起作用。

myLambda:
    handler:  ./src/functions/myLambda
    events:
      - eventBridge:
          eventBus: arn:aws:events:region:accountID:event-bus/busname
          deadLetterConfig: 
            arn: arn:aws:sqs:region:accountID:sqs-name
          pattern:
            source: 
              - ${self:custom.sourceNameForEventBus}
Run Code Online (Sandbox Code Playgroud)

可以在部署后手动添加这些属性,如下所示。但我想使用框架添加它,否则是否有办法使用 CloudFormation 来操作它? 在此输入图像描述

amazon-web-services dead-letter aws-lambda aws-event-bridge

5
推荐指数
1
解决办法
816
查看次数

Eventbridge 总线:无法在自定义事件总线上接收消息?

我正在使用 AWS Eventbridge,并且我的默认总线上的规则与自定义总线上的规则完全相同。两者的目标都是 SQS 队列。当我推送事件时,我可以在队列上看到一条消息,它是默认总线规则的目标。

我在自定义巴士规则的队列中没有看到任何内容。此外,指标不显示调用。我做错了什么?我创建了一辆定制巴士。

我在没有任何政策的情况下尝试了两者,如下政策:

{
  "Version": "2012-10-17",
  "Statement": [{
    "Sid": "allow_account_to_put_events",
    "Effect": "Allow",
    "Principal": {
      "AWS": "arn:aws:iam::my-account:root"
    },
    "Action": "events:PutEvents",
    "Resource": "arn:aws:events:xxx:my-account:event-bus/my-bus-name"
  }]
}
Run Code Online (Sandbox Code Playgroud)

我的活动模式:

  {
    "source": [
      "aws.ssm"
    ],
    "detail-type": [
      "Parameter Store Change"
    ],
    "detail": {
      "name": [
        "someparam"
      ],
      "operation": [
        "Update"
      ]
    }
  }
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-event-bridge

5
推荐指数
1
解决办法
2719
查看次数

AWS EventBridge API 目标响应

虽然我了解 EventBridge 将通过规则重试向目标(例如 API 目标)发送事件,但是否有任何方法可以读取接收 API 的响应代码以及相应调用的任何返回消息(即原始调用和任何后续重试)?

我所拥有的是:从 Step Function 触发的事件,该事件被发送到 EventBridge。该事件由“应用程序 ID”规则过滤,并调用外部 API(注意:注意通过 AWS 提供的预集成 API 之一)。我能够使用 webhook.site 接收 API 调用,但是,我想在发送 Web 应用程序中使用响应数据。因此,我需要能够按需调用最新的 API 响应 - 并且希望在大约 14 天的预设时间内定期尝试失败的尝试。

api amazon-web-services aws-event-bridge

5
推荐指数
1
解决办法
3014
查看次数

我可以通过 Lambda 将事件发送到 EventBridge 吗?

我想简单地将事件从 lambda 函数发送到事件桥。我在网上搜索的所有内容都是相反的。如果我进入 AWS 控制台并尝试查找 lambda 作为事件源,则不会出现任何结果。

我可以从 Lambda 将自定义事件发送到事件桥吗?

amazon-web-services aws-lambda aws-event-bridge

5
推荐指数
1
解决办法
4066
查看次数

如何在AWS eventbridge eventpattern中的anything-but子句中使用多个前缀?

我遇到一种情况,需要使用 eventbridge 中的 eventpatterns 过滤掉某些事件。我想对所有事件运行规则,除了用户名以 abc 或 xyz 开头的事件。我尝试过以下 2 种语法,但没有一个有效:

"userIdentity": {
      "sessionContext": {
        "sessionIssuer": {
          "userName": [
            {
              "anything-but": {
                "prefix": [
                  "abc-",
                  "xyz-"
                ]
              }
            }
          ]
        }
      }
    }

"userIdentity": {
      "sessionContext": {
        "sessionIssuer": {
          "userName": [
            {
              "anything-but": [{
                "prefix": "abc-",
                "prefix": "xyz-"
              }]
            }
          ]
        }
      }
    }
Run Code Online (Sandbox Code Playgroud)

保存规则时出现以下错误:“事件模式无效。原因:在除列表之外的任何内容中,不支持 start|null|boolean。

我是否在语法中遗漏了某些内容,或者如果这是一个限制,那么这个问题还有其他选择吗?

amazon-web-services amazon-cloudwatch serverless amazon-cloudwatch-events aws-event-bridge

4
推荐指数
1
解决办法
7926
查看次数

具有环境变量的 AWS Batch 的 AWS Cloudwatch (EventBridge) 事件规则

我创建了一个触发 AWS Batch 作业的 Cloudwatch 事件 (EventBridge) 规则,并且我想要指定环境变量和参数。我尝试使用以下配置的输入(常量 [JSON 文本])来执行此操作,但是提交作业时,不包括我尝试在作业中设置的环境变量,并且参数为默认值。参数按预期工作。

{
    "ContainerProperties": {
        "Environment": [
            {
                "Name": "MY_ENV_VAR",
                "Value": "MyVal"
            }
        ]
    },
    "Parameters": {
        "one": "1",
        "two": "2",
        "three": "3"
    }
}
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-cloudwatch aws-event-bridge

4
推荐指数
1
解决办法
2079
查看次数

Terraform - 将变量放置在 EOF 标记内

我有一个 terraform 文件,我正在重复使用该文件来创建多个 AWS Eventbridge(作为某些 lambda 的触发器)。在文件的不同部分,我可以使用For Each方法创建多个事件桥并相应地命名它们。我的问题是,我无法在 EOF 标记内执行相同的操作(每个 Eventbridge 上的标记需要不同),因为它将所有内容都视为字符串。我需要用"prefix": "arn:aws:medialive:us-west-2:11111111111:channel:3434343"变量替换 ARN。我怎么能这么做呢?

这是 terraform 代码的 EOF 部分:

      event_pattern = <<EOF
{
  "source": ["aws.medialive"],
  "detail-type": ["AWS API Call via CloudTrail"],
  "detail": {
    "eventSource": ["medialive.amazonaws.com"],
    "eventName": ["StopChannel"],
    "responseElements": {
      "arn": [{
        "prefix": "arn:aws:medialive:us-west-2:11111111111:channel:3434343"
      }]
    }
  }
}
EOF
}
Run Code Online (Sandbox Code Playgroud)

aws-lambda terraform aws-event-bridge

4
推荐指数
1
解决办法
9333
查看次数

Python Lambda boto3 未知服务:“调度程序”错误

我正在尝试在 Python 3.9.15 Lambda 中创建 EventBridgeScheduler 客户端,但该服务以UnknownServiceError: Unknown service: 'scheduler'. 尽管 boto3 的官方文档中包含此服务,但它是否不受支持?错误消息中包含的列表不包含scheduler在有效服务名称中。

import boto3

eb_client = boto3.client('scheduler')


def lambda_handler(event, context):
    print(json.dumps(event))

    schedule_name = event['resources']
    delete_schedule(schedule_name)


def delete_schedule(name):
    try:
        response = eb_client.delete_schedule(
            Name=name
        )
    except Exception as e:
        print(str(e))
Run Code Online (Sandbox Code Playgroud)

boto3 aws-lambda aws-event-bridge

4
推荐指数
1
解决办法
1035
查看次数