ヤマムギ

growing hard days.

*

SendGridのイベントをAPI Gateway -> Lambda(Python) -> DynamoDBに格納する

   


SendGridのメールイベントログはコンソールで確認出来るのは直近7日分で一括ダウンロードとかもないので、SendGridでメールを送信し始める前にはEvent Webhookを設定してどこかにイベントログを蓄積しておいた方がいいと思います。

後々に開封率やメール内URLとかのクリック率とか受信数とか出さないといけなくなったときにデータがない、とかになってしまうので。

※最低限の設定例です。

Amazon DynamoDB

  • 任意の名前のテーブル(ex:’sendgird_table’)を作成します。
  • プライマリパーティションキーは sg_event_idにしました。

AWS Lambda

  • ロールにAmazonDynamoDBFullAccessのポリシーをアタッチしました。
  • Python 2.7

コード

テーブル名は「sendgird_table」としています。

SendGrid Event Webhookからはイベントが配列で送られます。

API Gateway

  • POSTでLambdaを指定します。
  • マッピングも何も特にせずデプロイします。

SendGridの設定

  • [MailSettings]の[Event Notification]をONにします。
  • HTTP POST URLにAPI Gatewayのエンドポイントを設定します。
  • イベントは[All]にチェックしました。
  • [Test Your Integration]でテスト出来ます。

以上でした。


最後までお読みいただきましてありがとうございました!

【PR】 「AWS認定試験対策 AWS クラウドプラクティショナー」という本を書きました。

【PR】 「AWSではじめるLinux入門ガイド」という本を書きました。

i

【PR】 「ポケットスタディ AWS認定 デベロッパーアソシエイト」という本を書きました。

 - AWS , , , ,

ad

ad

  関連記事

Elastic BeanstalkでflaskアプリケーションデプロイのチュートリアルをCloud9で

Elastic Beanstalk への flask アプリケーションのデプロイ …

CloudFrontからのバーチャルホストなサイトのテストってどうしてます?

このブログの構成です。 AWSで構築しています。 4つのサイトを1つのEC2で配 …

Rocket.ChatにAWS Lambda(Python)から投稿する

Rocket.ChatにAPIで投稿するテスト(Postman)をやってみて、使 …

「ポケットスタディ AWS認定 デベロッパーアソシエイト」を執筆しました

2021年3月6日に、「ポケットスタディ AWS認定 デベロッパーアソシエイト」 …

AWS複数アカウントのリソースをLambda(Python)から一括操作したくて

AWSの複数アカウント(30ちょい)のリソースをまとめて自動処理したくて。 とり …

JAWS-UG Osaka 第14回勉強会 「DIY」 〜自社内システムを作る側からの物申す〜に参加、運営、登壇しました

先日、JAWS-UG Osaka 第14回勉強会 「DIY」 〜自社内システムを …

5分でAlexaスキルを作る

「JAWS-UG Osaka 第22回勉強会 東西の中の人が語る!!! Micr …

Redmineの添付ファイルをS3に同期する

RedmineをAWS上で構築するデザインを考えていて、せっかくなので冗長化しよ …

AWS BatchでPandocコンテナイメージを実行する

「ECR(Amazon Elastic Container Registry)に …

AWS Lambdaで Unable to import module エラーが発生したときは

そもそも、Pycharmのナビゲーションペインでディレクトリごとドラッグ&amp …