2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

StripeのWebhookイベントをAmazon EventBridgeで受け取る

Posted at

AWSのEventBridgeにStripe連携のクイックスタートが追加された

EventBridgeで一部のSaaSサービスとの連携を簡単に構築できるようになりました(GitHub、Stripe、Twillio)

どんな感じでできるのかStripe連携を試してみたので、記事に残します。
あくまで作業の記録ですので、各サービスの詳細な説明は割愛します。

なお、作業は↓の記事を参照しながらやりました。
https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-saas-furls.html

Step 1: StripeのWebhookエンドポイントを追加する

StripeのダッシュボードからWebhookのエンドポイントを追加します。※テスト環境でやりました
今回は顧客が追加されたときのイベント customer.created をリッスンします。
エンドポイントURLは現時点ではまだ分からないので適当に入れます。
image.png

エンドポイントを追加したら、whsec_ から始まる署名シークレットをメモします。後のステップで必要です。
image.png

Step 2:EventBridgeのセットアップ

EventBridgeのコンソール画面を開いて、左側のペインにある「クイックスタート」をクリックします。
※リージョンに注意
image.png
「Lambda fURL を使用したインバウンドウェブフック」を選択します。
最近登場した Lambda Function URLsLambda fURL と略すようです。誤植かと思いましたが、このように略すのが正しいようです。
mojikyo45_640-2.gif
下にスクロールしていくとStripe用の設定ボタンがあるので、そちらをクリックしてください。
image.png

使用するイベントバスを指定します。今回はStripe用のイベントバスを作成しました。
image.png

「新しいStripeウェブフック」をクリック
image.png

作成されるLambda fURLがパブリックに公開されますよ、いいですか?という内容の警告が出ます。チェックを入れて次に進みます。
mojikyo45_640-2.gif

テンプレートから作成するCloudFormationのスタック名、パラメータをそれぞれ入力します。
StripeWebhookSecretの欄がありますので、そこに Step1 でメモしていたStripeの署名シークレットを入れます。
image.png

IAMリソースの作成とCFが要求する権限についての注意書きにチェックを入れて、スタックの作成を行います。
image.png

CloudFormationのコンソール画面 を開いて先ほどのスタックのステータスが ✔CREATE_COMPLETE となれば作成完了です。
作成したスタックの詳細を開き、「出力」タブからWebhook先のURLを確認します。
image.png

再度Stripeのコンソールを開き、Step1で作成したWebhookのURLを上書きします。
以上でEventBridgeとの連携は完了です。
image.png

Webhookの内容をCloudWatch Logsに出力してみる

EventBridgeで受け取ったイベントはルールを定義して他のAWSサービスに連携できます。
今回はその一例として、CloudWatch Logsにデータを流す構成を作ってみます。
↓イメージ図は以下の通りです
image.png

まずは EventBridgeのコンソール画面 からルールを作成します。
ルールはStripe用に作ったイベントバスと紐づけて作成してください。

  • イベントバスの作成
    image.png

  • ルールの詳細を定義
    image.png

  • イベントパターンを構築
    image.png
    image.png

  • ターゲットを選択
    image.png

  • タグを設定
    image.png

CloudWatch Logsへの連携設定は以上です。
Stripe CLIで顧客を作成してWebhookイベントを受け取ってみましょう。

ブラウザから stripe.sh を開くと簡単にCLIを使えます。

mojikyo45_640-2.gif

  • 実行結果
    CloudWatch Logsのコンソールを確認すると、しっかりとイベントの内容が出力されています!
    image.png

今回は分かりやすい例としてCloudWatchに連携しましたが、他にもStepFunctionsでワークフローを流したりLambda関数で外部サービスを連携したり、EventBridge経由で他のAWSアカウントにイベント連携したりも可能です。

CloudFormationで作成されるAWSリソース

作成されるAWSリソースは以下の通りです。

タイプ 用途
AWS::CloudWatch::Alarm アラート、5分間あたりの実行回数の閾値を監視
AWS::Lambda::Function Lambda関数
AWS::IAM::Role IAMロール
AWS::Lambda::Url Lambda関数のHTTPエンドポイント
AWS::Lambda::Permission Lambda関数をパブリック公開する許可
AWS::SecretsManager::Secret Webhookの署名シークレットをSecretsManagerに保存

参照

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?