该错误可能是由于AWS Chatbot和EventBridge无法正确解析Glue作业状态更改事件导致的。为了解决这个问题,您可以创建一个Lambda函数,该函数将订阅Glue作业状态更改事件并根据需要转换事件格式。然后将此Lambda函数配置为将新格式的事件发送到EventBridge。
以下是一个示例Python代码,可用于将Glue作业状态更改事件转换为AWS Chatbot和EventBridge支持的格式:
import boto3
import json
def lambda_handler(event, context):
glue = boto3.client('glue')
message = json.loads(event['Records'][0]['Sns']['Message'])
status = message['state']
job_name = message['jobName']
event_bridge = boto3.client('events')
event_bridge.put_events(
Entries=[
{
'Source': 'aws.glue',
'DetailType': 'Glue Job Status Change',
'Detail': json.dumps({'status': status, 'jobName': job_name}),
'EventBusName': 'default'
}]
)
此Lambda函数将接收SNS消息,该消息包含Glue作业状态更改事件的详细信息。然后,它将生成一个新的事件并将其发送到EventBridge进行处理。
请注意,“Event received is not supported”错误可以由其他原因引起,因此您应该检查AWS Chatbot和EventBridge的日志以确定根本原因。