如何创建其中包含 Data Pipeline 活动错误消息的 SNS 通知?

上次更新时间:2019 年 2 月 12 日

我想要在 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 通知中接收堆栈跟踪,请输入“错误:#{node.errorStackTrace}”之类的消息。有关可用于每个 Data Pipeline 活动的字段的更多信息,请参阅活动
  10. 主题字段中,输入通知的主题行。主题还可以包括任何活动字段(例如,“Failed PipelineId: #{node.@pipelineId} 错误:#{node.errorMessage}”)。
  11. 主题 Arn 字段中,输入您的 SNS 主题的 ARN(例如,arn:aws:sns:us-east-1:111122223333:my-topic)。
  12. 选择保存。当您激活您的管道时,您将在指定活动失败时收到通知。

这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?