我有一个由 EventBridge 事件触发的 AWS Glue 工作流,并且我正在尝试访问 Glue 作业内的事件数据。我已从 EventBridge 发送了
Matched event
、Part of matched event
和 Input Transformer
,EventBridge 被触发,但我没有在 Glue 作业中从 EventBridge 获取事件对象。
尝试了以下方法:
使用
$
作为作业参数中的占位符,用于从 EventBridge 到 Glue 作业的事件数据。
在 EventBridge 中使用输入转换器将事件对象字段映射并传递到 Glue 作业。
import json
import sys
from awsglue.utils import getResolvedOptions
args = getResolvedOptions(sys.argv, ['event_data'])
event_data = json.loads(args['event_data'])
print(event_data)
您可以尝试添加以下内容吗:
glue_client = boto3.client("glue")
args = getResolvedOptions(sys.argv, ['JOB_NAME','WORKFLOW_NAME', 'WORKFLOW_RUN_ID'])
workflow_name = args['WORKFLOW_NAME']
workflow_run_id = args['WORKFLOW_RUN_ID']
workflow_params = glue_client.get_workflow_run_properties(Name=workflow_name,RunId=workflow_run_id)
batched_events = workflow_params['aws:eventIds']
print(batched_events)
并检查 print 语句返回的内容。
此代码基于以下内容: