如何从状态机向 SNS 主题发送通知?

How can I send a notification from State machine to SNS topic?

我有一个步骤函数,我想在状态机完成执行后向 SNS 主题发送通知。我知道状态机可以触发 Lambda,我可以在 lambda 中实现逻辑,但想检查状态机是否可以直接通知 SNS?

State Machine 支持 SNS。您可以拥有一个 lambda 并从那里通知您的 SNS,但您可以直接将 SNS 与 SFN 一起使用,而无需使用任何 Lambda。下面你可以看到实现:

{
  "Publish to SNS to notify DataDog": {
    "Type": "Task",
    "Resource": "arn:aws:states:::sns:publish",
    "Parameters": {
      "TopicArn": "<SNS topic ARN>",
      "Message.$": "$",
      "MessageAttributes": {
        "notify": {
          "DataType": "String",
          "StringValue": "Send to SNS"
        }
      }
    },
    "Next": "<Next state>"
  }
}

您可以阅读更多相关信息here