如何创建包含 Data Pipeline 出错信息的 SNS 通知?
上次更新日期:2021 年 6 月 8 日
当某个 AWS Data Pipeline 活动失败时,我希望收到包含具体信息的 Amazon Simple Notification Service (Amazon SNS) 通知,例如有关出错堆栈的跟踪信息。
简短描述
创建并订阅一个 SNS 主题,然后配置 SnsAlarm 操作以在 Data Pipeline 活动失败时运行。您可以使用 #{node.activityfield} 表达式将活动的任何字段(例如,errorStackTrace)发送到 SnsAlarm 。例如:
{
"role": "DataPipelineDefaultRole",
"subject": "Failed PipelineId: #{node.@pipelineId} Error: #{node.errorMessage}",
"message": "Error: #{node.errorStackTrace}",
"topicArn": "arn:aws:sns:us-east-1:917786601234:DPsqlActivityFail",
"name": "DefaultActionSNS1",
"id": "SnsAlarmActionOnfail",
"type": "SnsAlarm"
},
解决方法
- 创建并订阅 SNS 主题。记住主题 ARN(例如,arn:aws:sns:us-east-1:111122223333:my-topic)。这将在后面用到此信息。
- 打开 Data Pipeline 控制台。
- 在列出管道页面上,选择您的管道 ID,然后选择编辑管道以打开架构师页面。
- 在右侧窗格中,选择活动,然后选择您收到通知的活动(例如,SqlActivity)。
- 在添加可选字段下拉列表中,选择失败时。
- 在失败时列表中,选择新建:操作。Data Pipeline 会自动为新操作命名,诸如 DefaultAction1。您可以在其他部分编辑操作,从而修改操作的名称。
- 在右侧窗格中,选择其他,然后选择您在上一步创建的操作(例如,DefaultAction1)。
- 在类型列表中,选择 SnsAlarm。
- 在消息字段中,输入您希望在活动失败时收到的消息内容。您可以使用表达式 #{node.activityfield} 将任何活动字段包含在消息中。例如,如要在 SNS 通知中收到堆栈跟踪,则输入类似于“Error: #{node.errorStackTrace}”的消息。有关各项 Data Pipeline 活动的可用字段的更多信息,请参阅活动。
- 在主题字段中,输入通知的主题行。主题还可以包含活动的任何字段(例如,“Failed PipelineId: #{node.@pipelineId} Error: #{node.errorMessage}”)。
- 在主题 ARN 字段中,输入 SNS 主题的 ARN(例如,arn:aws:sns:us-east-1:111122223333:my-topic)。
- 选择 保存。当您激活管道时,您将在指定的活动失败时收到通知。