如何使用 .NET SDK 通过 Lambda 目标创建 EventBridge 规则

How to create EventBridge Rule with Lambda Target using the .NET SDK

  1. 我有一个现有的 Lambda 函数。
  2. 我可以使用控制台创建一个以我的 Lambda 作为目标的新规则。
  3. 当我通过控制台这样做时,它会自动创建一个在 Lambda 配置屏幕上可见的“EventBridge (CloudWatch Events)”触发器。
  4. 规则执行并成功调用 Lambda。

尝试使用 C# 和 SDK(nuget 包:AWSSDK.EventBridge)自动执行上述步骤,我采取以下步骤:

  1. 我调用 PutRule 成功了。
  2. 我调用 PutTarget 成功了

Rule & Target 在 EventBridge 控制台中看起来非常正常且功能正常,但 Trigger 根本没有出现在 Lambda 函数中,并且 Lambda 从未被 Rule 调用。

如果我现在编辑规则,不要更改任何内容,只需单击控制台中的“更新”,它就会成功地使用触发器进行连接。

我猜这是两种情况之一:

  1. 我需要向我的代码添加一个额外的请求 - 比如 PutTriggerOnLambda
  2. 或者我只是缺少 IAM 权限,它正在悄无声息地失败

有人有什么建议吗?

我从 AWS 获得了一些非常好的技术支持,并了解到我缺少的步骤是向 lambda 函数添​​加权限以允许事件桥接规则触发它。

此文档解释了这种情况:https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/CWE_Troubleshooting.html#LAMfunctionNotInvoked

此文档 2.2 通过 CLI 解释了缺少的步骤:https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/RunLambdaSchedule.html

此文档说明了如何通过 SDK 执行此操作:https://docs.aws.amazon.com/lambda/latest/dg/API_AddPermission.html