翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
注記
当社のパートナーがインバウンドウェブフックにアクセスできるようにするため、サードパーティーパートナーから送信された認証署名を検証することで、Lambda アプリケーションレベルで保護される Open Lambda を AWS アカウントに作成しています。この設定をセキュリティチームと確認してください。詳細については、「Security and auth model for Lambda function URLs」(Lambda 関数 URL におけるセキュリティと認証モデル) を参照してください。
Amazon EventBridge イベントバスは、 AWS CloudFormation テンプレートで作成した AWS Lambda 関数 URL を使用して、サポートされている SaaS プロバイダーからイベントを受け取ることができます。関数 URL を使用すると、イベントデータは Lambda 関数に送信されます。次に、関数はこのデータをイベントに変換します。EventBridge は、このデータを取り込んでイベントバスに送信して処理できます。イベントがイベントバスに入ると、ルールを使用してイベントをフィルタリングし、設定済みの入力変換を適用して、正しいターゲットにルーティングできます。
注記
Lambda 関数 URL を作成すると、月額のコストが増加します。詳細については、AWS Lambda の料金
EventBridge への接続をセットアップするには、接続をセットアップする SaaS プロバイダーを最初に選択します。次に、そのプロバイダーで作成した署名シークレットを指定し、イベントの送信先の EventBridge イベントバスを選択します。最後に、 AWS CloudFormation テンプレートを使用して、接続を完了するために必要なリソースを作成します。
現在、Lambda 関数 URL を使用して EventBridge で利用できる SaaS プロバイダーは以下のとおりです。
-
GitHub
-
Twilio
トピック
ステップ 1: AWS CloudFormation スタックを作成する
最初に、Amazon EventBridge コンソールを使用して CloudFormation スタックを作成します。
Amazon EventBridge コンソールの https://console.aws.amazon.com/events/
を開いてください。 -
ナビゲーションペインで、[Quick starts] (クイックスタート) を選択します。
-
[Inbound webhooks using Lambda fURLs] (Lambda fURL を使用したインバウンドウェブフック) で、[Get started] (使用を開始する) を選択します。
-
[GitHub] で、[Set up] (設定) を選択します。
-
[Step 1: Select an event bus] (ステップ 1: イベントバスを選択する) で、ドロップダウンリストからイベントバスを選択します。このイベントバスは、GitHub に指定した Lambda 関数 URL からデータを受け取ります。[New event bus] (新しいイベントバス) を選択して、イベントバスを作成することもできます。
-
[ステップ 2: CloudFormation を使用してセットアップする] で、[新しい GitHub ウェブフック] を選択します。
-
[I acknowledge that the Inbound Webhook I create will be publicly accessible] (作成したインバウンドウェブフックが一般公開されることを承認します) を選択し、[Confirm] (確認) を選択します。
-
スタックの名前を入力します。
-
パラメータの下に正しいイベントバスが表示されていることを確認し、GitHubWebhookSecret の安全なトークンを指定します。安全なトークンの作成の詳細については、GitHub ドキュメントの「シークレットトークンを設定する
」を参照してください。 -
[Capabilities and transforms] (機能と変換) で、以下のそれぞれを選択します。
-
が IAM リソースを作成する AWS CloudFormation 可能性があることを確認します。
-
がカスタム名で IAM リソースを作成する AWS CloudFormation 可能性があることを確認します。
-
には以下の機能が必要になる AWS CloudFormation 場合があることを了承します。
CAPABILITY_AUTO_EXPAND
-
-
[スタックの作成] を選択してください。
ステップ 3: GitHub ウェブフックを作成する
次に、GitHub でウェブフックを作成します。このステップを完了するには、ステップ 2 で作成した安全なトークンと Lambda 関数 URL の両方が必要です。詳細については、GitHub ドキュメントの「ウェブフックの作成
Twilio への接続をセットアップする
ステップ 1: Twilio Auth トークンを見つける
Twilio と EventBridge の間の接続をセットアップするには、まず Twilio アカウントで Auth トークンまたはシークレットを使用して Twilio への接続をセットアップします。詳細については、Twilio ドキュメントで「Auth トークンとその変更方法
ステップ 2: AWS CloudFormation スタックを作成する
Amazon EventBridge コンソールの https://console.aws.amazon.com/events/
を開いてください。 -
ナビゲーションペインで、[Quick starts] (クイックスタート) を選択します。
-
[Inbound webhooks using Lambda fURLs] (Lambda fURL を使用したインバウンドウェブフック) で、[Get started] (使用を開始する) を選択します。
-
[Twilio] で、[Set up] (設定) を選択します。
-
[Step 1: Select an event bus] (ステップ 1: イベントバスを選択する) で、ドロップダウンリストからイベントバスを選択します。このイベントバスは、Twilio に指定した Lambda 関数 URL からデータを受け取ります。[New event bus] (新しいイベントバス) を選択して、イベントバスを作成することもできます。
-
[ステップ 2: CloudFormation を使用してセットアップする] で、[新しい Twilio ウェブフック] を選択します。
-
[I acknowledge that the Inbound Webhook I create will be publicly accessible] (作成したインバウンドウェブフックが一般公開されることを承認します) を選択し、[Confirm] (確認) を選択します。
-
スタックの名前を入力します。
-
パラメータの下に正しいイベントバスが表示されていることを確認し、ステップ 1 で作成した TwilioWebhookSecret を入力します。
-
[Capabilities and transforms] (機能と変換) で、以下のそれぞれを選択します。
-
が IAM リソースを作成する AWS CloudFormation 可能性があることを確認します。
-
がカスタム名で IAM リソースを作成する AWS CloudFormation 可能性があることを確認します。
-
次の機能が必要になる AWS CloudFormation 可能性があることを確認します: CAPABILITY_AUTO_EXPAND
-
-
[スタックの作成] を選択してください。
ステップ 3: Twilio ウェブフックを作成する
Lambda 関数 URL を設定したら、それを Twilio に渡してイベントデータを送信できるようにする必要があります。詳細については、Twilio ドキュメントで「Twilio でパブリック URL を設定する
ウェブフックまたは Auth トークンを更新する
GitHub シークレットを更新する
注記
GitHub では、2 つのシークレットを同時に持つことをサポートしていません。 AWS CloudFormation スタック内のGitHubシークレットとシークレットが同期していない間にリソースのダウンタイムが発生する可能性があります。シークレットの同期中に送信されたGitHubメッセージは、誤った署名が原因で失敗します。GitHub と CloudFormation のシークレットが同期するまで待ってから、もう一度試してください。
-
新しい GitHub シークレットを作成する 詳細については、GitHub ドキュメントの「暗号化されたシークレット
」を参照してください。 AWS CloudFormation コンソールを https://console.aws.amazon.com/cloudformation
://https://https://https://https://https -
ナビゲーションペインで [Stacks] (スタック) を選択します。
-
更新するシークレットが含まれているウェブフックでスタックを選択します。
-
[Update] (更新) を選択します。
-
[Use current template] (現在のテンプレートの使用) が選択されていることを確認し、[Next] (次へ) を選択します。
-
[GitHubWebhookSecret] で、[Use existing value] (既存の値の使用) をオフにし、ステップ 1 で作成した新しい GitHub シークレットを入力して、[Next] (次へ) を選択します。
-
[Next (次へ)] を選択します。
-
[Update stack] (スタックの更新) を選択します。
シークレットが伝播されるまでに最大で 1 時間かかる場合があります。このダウンタイムを減らすには、Lambda 実行コンテキストを更新できます。
Twilio シークレットを更新する
注記
Twilio では、2 つのシークレットを同時に持つことをサポートしていません。 AWS CloudFormation スタック内のTwilioシークレットとシークレットが同期していない間は、リソースのダウンタイムが発生する可能性があります。シークレットが同期していない間に送信されたTwilioメッセージは、署名が正しくないために失敗します。Twilio と CloudFormation のシークレットが同期するまで待ってから、もう一度試してください。
-
新しい Twilio シークレットを作成する 詳細については、Twilio ドキュメントで「Auth トークンとその変更方法
」を参照してください。 AWS CloudFormation コンソールを https://console.aws.amazon.com/cloudformation
://https://https://https://https://https -
ナビゲーションペインで [Stacks] (スタック) を選択します。
-
更新するシークレットが含まれているウェブフックでスタックを選択します。
-
[Update] (更新) を選択します。
-
[Use current template] (現在のテンプレートの使用) が選択されていることを確認し、[Next] (次へ) を選択します。
-
[TwilioWebhookSecret] で、[Use existing value] (既存の値の使用) をオフにし、ステップ 1 で作成した新しい Twilio シークレットを入力して、[Next] (次へ) を選択します。
-
[Next (次へ)] を選択します。
-
[Update stack] (スタックの更新) を選択します。
シークレットが伝播されるまでに最大で 1 時間かかる場合があります。このダウンタイムを減らすには、Lambda 実行コンテキストを更新します。
Lambda 関数を更新する
CloudFormation スタックによって作成された Lambda 関数は、基本的なウェブフックを作成します。カスタマイズされたログ記録など、特定のユースケースに合わせて Lambda 関数をカスタマイズする場合は、CloudFormation コンソールを使用して関数にアクセスし、Lambda コンソールを使用して Lambda 関数コードを更新します。
Lambda 関数にアクセスする
AWS CloudFormation コンソールを https://console.aws.amazon.com/cloudformation
://https://https://https://https://https -
ナビゲーションペインで [Stacks] (スタック) を選択します。
-
更新する Lambda 関数が含まれているウェブフックでスタックを選択します。
-
[Resources] (リソース) タブを選択します。
-
Lambda コンソールで Lambda 関数を開くには、[Physical ID] (物理 ID) で、Lambda 関数の ID を選択します。
Lambda 関数にアクセスしたら、Lambda コンソールを使用して関数コードを更新します。
Lambda 関数コードを更新する
-
[Actions] (アクション) で、[Export function] (関数のエクスポート) を選択します。
-
[Download deployment package] (デプロイパッケージのダウンロード) を選択し、ファイルをコンピュータに保存します。
-
デプロイパッケージの .zip ファイルを解凍して、
app.py
ファイルを更新し、更新したデプロイパッケージを圧縮します。元の .zip ファイル内のすべてのファイルが含まれていることを確認してください。 -
Lambda コンソールで、[Code] (コード) タブを選択します。
-
[Code source (コードソース)] で、[Upload from (アップロード元)] を選択します。
-
[.zip file (.zip ファイル)]、[Upload (アップロード) ] の順に選択します。
ファイルの選択画面で、更新するファイルを選択し、[Open] (開く)、[Save] (保存) の順に選択します。
-
[Actions] (アクション) メニューで、[Publish new version] (新しいバージョンを発行) を選択します。
利用可能なイベントタイプ
CloudFormation イベントバスで現在サポートしているイベントタイプは以下のとおりです。
-
GitHub - すべてのイベントタイプ
をサポートしています。 -
Twilio - イベント後のウェブフック
をサポートしています。
クォータ、エラーコード、配信の再試行
クォータ
ウェブフックへの受信リクエストの数は、基盤となる AWS サービスによって制限されます。次の表に関連するクォータを示します。
サービス | クォータ |
---|---|
AWS Lambda |
デフォルト: 10 件の同時実行 クォータの引き上げのリクエストを含む、クォータの詳細については、「Lambda のクォータ」を参照してください。 |
AWS Secrets Manager |
デフォルト: 1 秒あたり 5,000 個のリクエスト クォータの引き上げのリクエストを含む、クォータの詳細については、「AWS Secrets Manager のクォータ」を参照してください。 注記1 秒あたりのリクエスト数は、AWS Secrets Manager Python キャッシュクライアント |
Amazon EventBridge |
PutEvents アクションの最大エントリサイズは 256 KB です。 EventBridge はリージョンベースのレートクォータを強制します。詳細については、「EventBridge イベントバスのクォータ」を参照してください。 |
エラーコード
エラーが発生すると、各 AWS サービスは特定のエラーコードを返します。次の表に関連するエラーコードを示します。
サービス | エラーコード | 説明 |
---|---|---|
AWS Lambda |
429 「TooManyRequestsExption」 |
同時実行のクォータの制限を超えています。 |
AWS Secrets Manager |
500 「Internal Server Error」 |
1 秒あたりのリクエスト数がクォータを超えています。 |
Amazon EventBridge |
500 「Internal Server Error」 |
リージョンのレートクォータを超えています。 |
イベント再配信
エラーが発生した場合は、該当するイベントの配信を再試行できます。SaaS プロバイダーごとに再試行手順が異なります。
GitHub
GitHub ウェブフック API を使用すると、ウェブフック呼び出しの配信ステータスをチェックし、必要に応じてイベントを再配信できます。詳細については、次の GitHubドキュメントを参照してください。
-
組織 - 組織ウェブフックの配信を再配信する
-
リポジトリ - リポジトリウェブフックの配信を再配信する
-
アプリケーション - アプリウェブフックの配信を再配信
Twilio
Twilio ユーザーは、接続の上書きを使用してイベント再試行オプションをカスタマイズできます。詳細については、Twilio ドキュメントの「Webhooks (HTTP callbacks): Connection Overrides