在使用输入转换器的Eventbridge规则中,必须在触发目标中明确指定转换后的消息格式。以下代码示例展示了如何在Lambda函数中使用Eventbridge规则,并指定转换后的消息格式:
import boto3
import json
client = boto3.client('events')
def lambda_handler(event, context):
input_event = {
'key1': 'value1',
'key2': 'value2',
'key3': 'value3',
}
put_event_response = client.put_events(
Entries=[
{
'Source': 'example',
'DetailType': 'exampleType',
'Detail': json.dumps(input_event),
'EventBusName': 'default',
'InputTransformer': {
'InputPathsMap': {
'message': '$.key1'
},
'InputTemplate': '{"message": }' # 指定转换后的消息格式
}
}
]
)
print(put_event_response)
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
在上述示例中,InputTransformer
部分定义了一个输入映射以及一个输入模板。'message': '$.key1'
定义了输入映射,将'key1'
的值映射到目标转换后的消息的'message'
字段中。 '{"message":
定义了输入模板,将'message'
字段插入到目标转换后的消息中。这样,当应用程序从Eventbridge接收到触发事件时,就可以按预期的方式处理转换后的消息了。