You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EventBridge调用Lambda目标:资源策略与Targets字段配置咨询

问题解答

1. 基于资源的策略配置位置

基于资源的策略是直接配置在目标Lambda函数上的,和EventBridge put_rule里的RoleArn字段无关。你需要给目标Lambda添加资源权限策略,允许EventBridge服务主体(events.amazonaws.com)调用它,这样就不用给EventBridge规则指定IAM角色了。

用boto3配置Lambda资源策略的示例代码:

lambda_client = boto3.client('lambda')

response = lambda_client.add_permission(
    FunctionName='目标Lambda的函数名或ARN',
    StatementId='EventBridgeInvokePermission',
    Action='lambda:InvokeFunction',
    Principal='events.amazonaws.com',
    SourceArn='你的EventBridge规则ARN'  # 可选配置,限制仅该规则能调用,更安全
)

2. RoleArn字段的处理

当使用基于资源的策略时,EventBridge规则的RoleArn字段可以留空,不需要填写任何值。因为调用权限已经通过目标Lambda的资源策略授予,规则无需额外IAM角色就能执行调用。

3. Targets部分必填字段

在put_targets的Targets列表中,每个目标对象至少需要以下字段:

  • Id: 目标的唯一标识符(比如"NotificationLambdaTarget"),用于区分多个目标
  • Arn: 目标Lambda函数的完整ARN

可选但常用的字段:

  • Input: 传递给Lambda的自定义输入数据(JSON字符串格式)
  • InputPath: 提取事件中的特定路径作为Lambda输入(比如"$.detail")

完整的put_targets示例代码:

response = eventclient.put_targets(
    Rule='notificationScheduler',
    Targets=[
        {
            'Id': 'NotificationTargetLambda',
            'Arn': 'arn:aws:lambda:区域:账号ID:function:目标函数名'
            # 可选:'Input': '{"reminder": "即将到期"}'
        }
    ]
)

内容的提问来源于stack exchange,提问作者Ahmed Youniss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 05:10:23