Pro Yearly is on sale from $80 to $50! »

Azure Functions と SendGrid の良い関係

Azure Functions と SendGrid の良い関係

73c174b34dafaea64f2824eb008a6559?s=128

Tatsuro Shibamura

November 12, 2019
Tweet

Transcript

  1. Azure Functions と SendGrid の良い関係 SendGrid Night #8 @shibayan

  2. 自己紹介 Tatsuro Shibamura @shibayan https://shibayan.jp/ Azure / Serverless 好き

  3. メール送信に必要なもの • 大量送信・スパイクにも対応できる柔軟なスケーリング • 障害発生時にもメールが失われない仕組み • 復旧後にはリトライが行われる・行える仕組み • 送信したメールのトラッキング •

    送信完了、バウンス、スパム、メール開封など
  4. バックエンドに Azure Functions を • SendGrid に公式で対応済み • Microsoft.Azure.WebJobs.Extensions.SendGrid パッケージ

    • 柔軟なスケーリングオプション、イベントドリブンに最適 • 使った分だけ課金、インスタンスは自動で 200 まで増える • 従量課金プラン (Consumption Plan) の場合 • Queue を使った Load leveling や Event Webhook への対応
  5. SendGrid バインドを使う • テンプレートが用意されているので簡単 Azure 以外では SendGrid のみ標準サポート

  6. メール送信の Function • Function の実装も非常にシンプル SendGridMessage を 組み立てて返すだけ Queue からメッセージを受け取る

  7. モニタリングも標準装備 • 2000 メッセージを Queue に追加した時のグラフ例 Outgoing Request が Mail

    Send API の実行回数
  8. Mail Send API の状態も一目で • API のエラーレートが高くなった、など確認できる API 単位での統計を確認できる

  9. Event Webhook を受ける • HttpTrigger を使って簡単に受け取れる • Azure FunctionsでEvent Webhookデータを受信する

    • https://sendgrid.kke.co.jp/blog/?p=9403
  10. ワークフローの実装 • Azure Logic App の SendGrid Connector • 送信だけではなく、Global

    Suppressions も使える(らしい • 複雑なフローは Durable Functions で実現 • Azure Functions の 超イケてる Durable Functions を使ってみる • https://qiita.com/TsuyoshiUshio@github/items/3e8acb1b0388b604 5fdb