【问题标题】:How to create EventBridge Rule with Lambda Target using the .NET SDK如何使用 .NET SDK 使用 Lambda 目标创建 EventBridge 规则
【发布时间】:2021-05-28 09:49:15
【问题描述】:
  1. 我有一个现有的 Lambda 函数。
  2. 我可以使用控制台以我的 Lambda 作为目标来创建新规则。
  3. 当我通过控制台执行此操作时,它会自动创建一个“EventBridge (CloudWatch Events)”触发器,该触发器在 Lambda 配置屏幕上可见。
  4. 规则执行并成功调用 Lambda。

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

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

规则和目标在 EventBridge 控制台中看起来非常正常且功能正常,但触发器根本不会出现在 Lambda 函数上,并且规则永远不会调用 Lambda。

如果我现在编辑规则,不要更改任何内容,只需在控制台中单击更新,它就会成功地将其与触发器连接起来。

我猜这是两种情况之一:

  1. 我需要向我的代码添加一个额外的请求 - 类似于 PutTriggerOnLambda
  2. 或者我只是缺少 IAM 权限并且它正在静默失败

有人有什么建议吗?

【问题讨论】:

  • 是否有任何特定要求,因为您想通过代码来完成。这可以通过 CFN 很好地实现

标签: c# amazon-web-services aws-lambda aws-sdk aws-event-bridge


【解决方案1】:

我从 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

【讨论】:

    猜你喜欢
    • 2021-07-15
    • 2021-04-18
    • 2021-05-11
    • 2021-05-13
    • 1970-01-01
    • 1970-01-01
    • 2021-03-11
    • 1970-01-01
    • 2021-08-06
    相关资源
    最近更新 更多