Step Function to Send Email on Error/Success

0

Dear Sir/Madam,

We have a couple of Step Functions running on a weekly basis, and we would like to know right after a Step Function encounter an error. Hence we place a "Send Email" Task (Amazon Pin Point Email Service) before the fail State.All the main task's error handling will Catch any error and continue the the "Send Email" State before failing the Step Function.

in side the "Send Email" configuration, there is one API Parameters field, and i filled it in with :

{
  "Content": {
    "Body": {
      "Text": {
        "Data": "ERROR"
      }
    },
    "Subject": {
      "Data": "ERROR"
    }
  },
  "Source": "source@me.com",
  "Destination": {
    "ToAddresses": [
      "notify@me.com"
    ]
  }
}

However, when i try to save the state machine, i got an error saying: The field "Body" is not supported by Step Functions It seems like i dont know what need to be fill inside the API Parameters for Send Email task, unfortunately i cant find any reference for it.

May i ask where to read up or refer for Step Function Send Email?

4回答
1

If you want to get a notification on the Step Function execution failure (or even successful runs), you can setup a CloudWatch rule to monitor the execution status and then set the target as SNS topic to send an email when the rule is triggered.

More information can be found here: https://aws.amazon.com/blogs/developer/handling-errors-retries-and-adding-alerting-to-step-function-state-machine-executions/

profile picture
joahna
回答済み 2年前
  • This solution is workable, since no code required.
    However, i wonder if anybody know how to use the Step Function Sent Email Task at all (it is more powerful since it is part of the step function)?

0
profile picture
Sri
回答済み 2年前
  • The above is using Lambda. What about directly from Step Function "Send Email" task?

0

You need to follow the structure of SES API V2 https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendEmail.html

In your case you are sending a Simple email:

{
    "Content": {
        "Simple": {
            "Body": {
                "Text": {
                    "Data": "ERROR"
                }
            },
            "Subject": {
                "Data": "ERROR"
            }
        }
    },
    "Source": "source@me.com",
    "Destination": {
        "ToAddresses": [
            "notify@me.com"
        ]
    }
}
AWS
回答済み 1年前
0

I ran into this today. The SES API V2 endpoint for state machines seems broken; I couldn't add Destination, which makes it pointless. I messed around with the GUI builder and could generate something that worked from a step using ses v1.

  "SendEmail": {
    "Type": "Task",
    "Resource": "arn:aws:states:::aws-sdk:ses:sendEmail",
    "Next": "Failure",
    "Parameters": {
      "Source": "from-email",
      "Message": {
        "Body": {
          "Text": {
            "Data": "text"
          }
        },
        "Subject": {
          "Data": "subject"
        }
      },
      "Destination": {
        "ToAddresses": []
      }
    }
  }
回答済み 4ヶ月前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ