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

如何获取触发AWS Glue工作流的EventBridge事件数据?

解决EventBridge触发Glue作业时无法获取事件数据的问题

一、修正参数传递配置

Glue作业的自定义参数必须以--开头,这是核心注意点,以下是两种方法的正确配置:

方法1:传递完整EventBridge事件

在EventBridge目标的作业参数中添加:

  • 键:--event_data
  • 值:$($代表完整的事件对象)

方法2:用Input Transformer映射指定字段

如果只需事件中的部分数据,按以下配置Input Transformer:

  1. 输入路径:定义要提取的事件字段,例如提取detail字段:
    {"event_detail": "$.detail"}
    
  2. 输入模板:将提取的字段映射为Glue可识别的参数格式:
    {"--event_data": "<event_detail>"}
    

这样EventBridge会直接生成带--前缀的参数传递给Glue作业。

二、调整Glue作业代码

在代码中增加参数排查逻辑,便于定位问题:

import json
import sys
from awsglue.utils import getResolvedOptions

# 先打印所有传入参数,确认event_data是否被传递
print("All input arguments:", sys.argv)

try:
    # 获取指定参数(注意这里用不带--的参数名)
    args = getResolvedOptions(sys.argv, ['event_data'])
    print("Raw event data received:", args['event_data'])
    
    # 解析JSON数据
    event_data = json.loads(args['event_data'])
    print("Parsed event data:", event_data)
except Exception as e:
    print(f"Error handling event data: {str(e)}")

三、排查验证步骤

  • 检查EventBridge执行历史:进入EventBridge规则的「执行历史」,查看触发记录的输入输出,确认参数是否按预期生成
  • 查看Glue作业日志:在CloudWatch中找到对应Glue作业的日志流,检查打印的sys.argv,确认--event_data参数是否存在
  • 验证Input Transformer语法:输入路径必须符合JSONPath规范,输入模板中的变量需用<>包裹,且输出必须是合法JSON

内容的提问来源于stack exchange,提问作者NaineeL SoyantaR

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 07:57:37