从事件桥API目的地调用AWS Lambda函数URL。

3
我正在使用Eventbridge API Destination调用我的Lambda函数的URL并将其限制为我的期望速率。当Lambda函数的调用URL身份验证类型设置为None时,此方法可行。但是,当我将函数URL身份验证类型设置为AWS_IAM并创建基于资源的调用函数URL策略时,它不起作用。
我已经尝试将策略的主体设置为:
1. 帐户根 2. 事件桥接角色ARN 3. EventBridgeApiDestinations服务角色ARN(arn:aws:iam::xxxxxxxxx:role/aws-service-role/apidestinations.events.amazonaws.com/AWSServiceRoleForAmazonEventBridgeApiDestinations)
上述任何一种方式都无法工作。不确定自己做错了什么或者是否有可能这样做。
策略语句详细信息:
Statement ID
invoke-from-event-bridge-rule
Principal
arn:aws:iam::xxxxxxx:role/< my eventBridge role >
Effect
Allow
Action
lambda:InvokeFunctionUrl
Conditions
{
 "StringEquals": {
  "lambda:FunctionUrlAuthType": "AWS_IAM"
 }
}
1个回答

0

来自文档:

Amazon EventBridge API 目标是 HTTP 终端节点,您可以将其作为规则的目标调用,类似于您将 AWS 服务或资源作为目标调用。

当您以这种方式让 EventBridge 调用 Lambda 时,EventBridge 不知道它正在调用一个 Lambda 函数。它甚至不知道它在调用一个 AWS 服务。它将其视为与 AWS 外部的第三方“webhook”相同处理,不会使用 AWS IAM 凭证签署 HTTP 请求。

我建议使用来自 EventBridge 的标准 AWS Lambda 调用,而不是 HTTP 终端节点调用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接