SendGridのイベントをLogic Apps経由でSlackに通知する
メール配信したい場合、AWSではSESがありますが、AzureではSendGridを使用することが推奨されています。
SendGridをガッツリ使う場合は、配信失敗の監視など、運用も考慮する必要がありますのでそのあたりを書いていきます。
SendGridアカウント準備
公式ページを参照してSendGridアカウントを用意しましょう。
SendGrid アカウントの作成
Azure上でSendGridアカウントを作成したら、ポータルのSendGridアカウント画面より[Manage]を押してSendGrid管理画面を開きます。
まずは送信制限の監視から
公式ページを参照してSendGridアカウントを用意しましょう。
SendGrid アカウントの作成
Azure上でSendGridアカウントを作成したら、ポータルのSendGridアカウント画面より[Manage]を押してSendGrid管理画面を開きます。
プランによって月のメール送信数の上限が決まっているのでまずはこれを監視したいと思います。
※この図は全プランを表示しているわけではありません
メール配信の失敗を検知させる
次にメール配信に失敗した場合の検知を考えてみます。
Event Webhookという、何かイベントが発生したら指定したURLにPOSTする機能があったのでこれが使えそうです。
SendGridからの送信先を直接SlackのIncoming WebhookのURLに指定しても通知できないので、一度LogicAppsを間に入れて、JSONをパースしてからSlackに通知する必要があります。
Logic Apps準備
公式ページを参照してLogic Appsを作成しましょう。
ロジックアプリを作成するSlackアクションの[投稿メッセージ]を選択します。Slackアカウント認証を求められたら自分のSlackIDとパスワードを入れて認証させます。
SendGrid Event Webhook準備
しばらく待つと、SlackにJSON生データが送られてくるはずです。見辛いので次にメッセージの見栄えをよくしたいと思います。
JSONパース
テストしてみる
存在しない宛先にメールを送ってちゃんと検知するか試してみます。
Cloud Shell (PowerShell) を開きます。やり方は公式サイトで。
Azure Cloud Shell PowerShell のクイックスタート
以下をコピペして実行します。中身は適宜変えてください。$MailToには存在しないメールアドレスを入れてください。
$SmtpServer = 'smtp.sendgrid.net'
$Port = 587
$UserName = '[email protected]'
$Password = '[your password]'
$MailFrom = '[email protected]'
$MailTo = '[your mail]'
$Subject = 'Test Mail'
$Body = 'This is test'
$pwd = ConvertTo-SecureString -String $Password -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential $UserName,$pwd
Send-MailMessage -UseSsl -From $MailFrom -To $MailTo -Subject $Subject -Body $Body -SmtpServer $SmtpServer -Port $Port -Credential $cred
Logic Appsの失敗を検知する
せっかくメール配信の失敗を検知できるようになったのに、なんらかのエラーでLogic Apps自体が失敗した場合、メール配信失敗を検知することができません。
Logic Appsの監視はメトリックアラートで実現できます。
Runs Failedメトリックが1以上のときに検知するように設定しましょう。
Author And Source
この問題について(SendGridのイベントをLogic Apps経由でSlackに通知する), 我々は、より多くの情報をここで見つけました https://qiita.com/shingo_kawahara/items/82a52ae183a821e95b45著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .