问题标签 [aws-event-bridge]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
amazon-web-services - Cron 表达式 Aws 在 EventBridge(Cloudwatch 触发器)启用后每 5 分钟运行一次
我已经看过几个示例,所有示例都只是在特定时间触发一项工作,我现在有:
0 */5 * ? * *
它在 0、5、10 分钟等触发。但是,我需要触发器在触发器启用的 +5 时刻运行。
因此,如果服务在下午 12:07 启用,我需要它在下午 12:12 开始运行。有没有办法做到这一点?
aws-lambda - 是否可以在 lambda 上设置多个事件桥规则?
我想根据不同的规则触发单个 lambda。我可以在 lambda 上设置多个事件规则吗?类似于以下内容:
我发现这个https://www.serverless.com/framework/docs/providers/aws/events/event-bridge/ 似乎表明它是可能的,但我似乎无法让它工作。
我收到以下错误:
amazon-web-services - AWS EventBridge 作为 Lambda 目标
我有两个 Lambda 函数,一个 EventProducer 和一个 EventConsumer。所需的场景如下:EventProducer 在自定义 AWS EventBridge 总线中添加一个事件,而 EventConsumer 读取该事件。
我想使用 Lambda 目标来实现这一点,但 EventBridge 似乎没有工作。我已经设法通过显式调用“AmazonEventBridge::putEvent”来推送我的事件来使消费者可以使用事件,但我没有通过返回输出和发送输出来做到这一点。
如果我使用 Lambda 或 SQS 作为目标,而不是 EventBridge,则该代码有效。当我使用 AWS CLI 发送消息时,消费者也会读取它们。
有没有人有一个使用 Lambda 目标从 Lambda 函数推送 EventBridge 中的事件的工作示例?
我的代码如下:
amazon-web-services - 部署后带有计划事件的 Lambda 函数行为
因此,首先,我使用这样的配置部署我的功能以进行调试
然后,我决定将计划费率更改为1 天
我有两个问题:
- 是从部署那一刻起每天调用事件还是从最后 10 分钟触发?
- 下次部署后,事件的执行时间保持不变,还是从部署时开始?
amazon-web-services - 如何从 EventBridge 定位 http api 网关或 ALB
我需要将数据从 1 个 ecs 容器发送到另一个。我怎样才能做到这一点?AWS EventBridge 允许我将数据从 ECS 容器发送到 EventBridge。但我不知道如何将这些数据从 EventBridge 发送到另一个 ECS 容器。
PS 我有在 ECS 容器中运行的节点应用程序。我正在使用 HTTP API 网关和应用程序负载均衡器 (ALB)
回答评论中提出的问题
- 什么样的数据?文本数据
- 一个味精有多大?小的。只是简单的对象
- 它是否必须是实时的?不
amazon-web-services - 如何将 AWS Eventbridge 连接到 SNS 主题
我想要一个 SNS 主题来触发一个 Eventbridge 事件,这样我就可以调用一个 ECS 任务。我尝试将 Eventbridge 规则连接到 SNS 主题,如下所示(这是我的 eventbridge 规则的事件模式):
但是,当我向该主题发布消息时,不会触发 Eventbridge 规则。我试图看看其他人是否有这个问题,但一直找不到任何东西。我该如何解决这个问题?
amazon-web-services - 如何从 EventBridge 规则中定义阶跃函数执行名称?
我正在使用 EventBridge 来触发阶跃函数。CloudFormation 模板中的我的 EventBridge 规则如下所示:
不幸的是,在这种情况下,步进函数“执行名称”是随机生成的,因此很难将特定事件链接到特定的步进函数执行。在我的事件中,我有一个属性$.detail.id
,$.detail.state
我希望能够使用这些属性以格式发出步骤函数执行名称${detail.id}_${detail.state}_someRandomValueToGuaranteeNameUniqueness
,但是阅读有关规则目标的文档我不知道这将如何工作......
amazon-web-services - 如何使用 AWS Event Bridge Schema Registry 验证传入的 JSON
我正在尝试将传入的 JSON 事件验证到 AWS 事件桥中。
我遵循了有关如何下载代码绑定的文档。一切正常。
我还使用模式发现测试了事件桥,它工作正常,并使用 Firehose 作为目标将我的数据放置到正确的目标。
我想要实现的是能够验证带有模式注册表中现有模式的事件 json。然而,这个关于常见问题的文档有问题;
架构注册表如何减少我需要编写的代码量?
说:
首先,您可以使用模式发现来自动识别发送到 EventBridge 事件总线的任何事件的模式,并将它们存储在注册表中,从而使您不必手动管理事件模式。其次,当您编写处理总线上的事件的应用程序时,您可以为此模式生成和下载代码绑定,这样您就可以直接在代码中使用强类型对象。这为您的事件处理程序节省了反序列化、验证和猜测的开销。
但是,在我的事件处理程序 fn 中,我看不到这是怎么可能的,除非我安装了一个外部 json 模式验证器(类似于我之前所做的,但只是在来自 Kinesis Firehose 的 lambda 转换 fn 中)。
我认为如果在事件中提供了特定版本的模式,模式验证会自行发生。
有没有办法做到这一点?
json - 使用 EventBridge 输入转换器时如何从状态机输出中提取属性
我无法使用 EventBridge 服务将 AWS 状态机返回的值之一作为输入传递给 Lambda。
我在 AWS Step Functions 中创建了一个状态机来为我们领域中的特定问题建模。一旦状态机完成,我想从我的一个 Lambda 中执行另一个操作。为了实现这一点,我使用 EventBridge 创建了一个新规则:每当状态机完成时,它都会使用特定的 Json 输入触发我的 lambda。
我的问题是如何从状态机输出中提取属性并将它们作为 lambda 输入的属性传递。
假设我的状态机返回这个:
我想在我的 lambda 中接收以下有效负载:
最初,我认为我可以使用 EventBridge 规则上的“输入转换”选项来执行此操作,例如:
- 输入变压器路径:
- 输入转换器模板:
但是,在测试期间,我意识到事件有效负载包含的数据比我的状态机输出要多得多。实际上,状态机输出被包装在这个“事件容器”对象中,如下所示:
如您所见,在实际的事件负载中,我的状态机数据存储为output
节点内的字符串化 Json 值。如果然后我将输入转换路径更改为:
property
我在转换后的输入中得到一个空结果。事实证明,JsonPath 无法将字符串化值作为 Json 有效负载的一部分进行遍历,并且将在搜索中失败。
如何usefulProperty
从事件有效负载中的 Json 字符串中提取值,以便将其传递给我的 lambda 函数?有没有办法使用我缺少的纯 JsonPath 来做到这一点?也许有一种方法可以将 AWS 配置为不将有效负载转换为字符串,而将其作为整个事件有效负载的一部分?还有其他选择吗?