如何创建包含 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"
},

解决方法

  1. 创建并订阅 SNS 主题。记住主题 ARN(例如,arn:aws:sns:us-east-1:111122223333:my-topic)。这将在后面用到此信息。
  2. 打开 Data Pipeline 控制台
  3. 列出管道页面上,选择您的管道 ID,然后选择编辑管道以打开架构师页面。
  4. 在右侧窗格中,选择活动,然后选择您收到通知的活动(例如,SqlActivity)。
  5. 添加可选字段下拉列表中,选择失败时
  6. 失败时列表中,选择新建:操作。Data Pipeline 会自动为新操作命名,诸如 DefaultAction1。您可以在其他部分编辑操作,从而修改操作的名称。
  7. 在右侧窗格中,选择其他,然后选择您在上一步创建的操作(例如,DefaultAction1)。
  8. 类型列表中,选择 SnsAlarm
  9. 消息字段中,输入您希望在活动失败时收到的消息内容。您可以使用表达式 #{node.activityfield} 将任何活动字段包含在消息中。例如,如要在 SNS 通知中收到堆栈跟踪,则输入类似于“Error: #{node.errorStackTrace}”的消息。有关各项 Data Pipeline 活动的可用字段的更多信息,请参阅活动
  10. 主题字段中,输入通知的主题行。主题还可以包含活动的任何字段(例如,“Failed PipelineId: #{node.@pipelineId} Error: #{node.errorMessage}”)。
  11. 主题 ARN 字段中,输入 SNS 主题的 ARN(例如,arn:aws:sns:us-east-1:111122223333:my-topic)。
  12. 选择 保存。当您激活管道时,您将在指定的活动失败时收到通知。

这篇文章对您有帮助吗?


您是否需要账单或技术支持?