API 送信先 - Amazon EventBridge

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

API 送信先

Amazon EventBridge API の送信先は、 AWS サービスまたはリソースをターゲットとして呼び出す方法と同様に、ルール のターゲットとして呼び出すことができる HTTP エンドポイントです。API 送信先を使用すると、API コールを使用して、 AWS サービス、統合された Software as a Service (SaaS) アプリケーション、および の外部アプリケーション間でイベント AWS をルーティングできます。API 送信先をルールのターゲットとして指定すると、 はルールで指定されたイベントパターンに一致するイベントの HTTP エンドポイントを EventBridge 呼び出し、リクエストとともにイベント情報を配信します。では EventBridge、リクエストに CONNECT と TRACE 以外の任意の HTTP メソッドを使用できます。最もよく使用する HTTP メソッドは PUT と POST です。また、入力トランスフォーマーを使用して、イベントを特定の HTTP エンドポイントのパラメータにカスタマイズすることもできます。詳細については、「Amazon EventBridge 入力変換」を参照してください。

注記

API 送信先は、インターフェイス VPC エンドポイントなどのプライベート送信先をサポートしていません。これには、プライベートネットワーク、Application Load Balancer、インターフェイス VPC エンドポイントを使用する仮想プライベートクラウド (VPC) のプライベート HTTPS APIs が含まれます。

詳細については、「インターフェイス VPC エンドポイントでの Amazon EventBridge の使用 」を参照してください。

重要

EventBridge API 送信先エンドポイントへの リクエストの最大クライアント実行タイムアウトは 5 秒である必要があります。ターゲットエンドポイントの応答に 5 秒以上かかる場合、 はリクエストを EventBridge タイムアウトします。 EventBridge は、再試行ポリシーで設定された最大値までリクエストをタイムアウトします。デフォルトでは、最大値は 24 時間と 185 回です。再試行の最大回数を超えると、デッドレターキューがあればイベントはそこに送られ、なければイベントはドロップされます。

次のビデオでは、API 送信先の使用を示しています。

API 送信先の作成

API 送信先ごとに接続が必要です。接続 には、API 送信先エンドポイントでの認証に使用する認証タイプと認証情報を指定します。既存の接続を選択することも、API 送信先の作成と同時に接続を作成することもできます。詳細については、「HTTP エンドポイントターゲットの接続」を参照してください。

EventBridge コンソールを使用して API 送信先を作成するには
  1. コンソール を管理 EventBridge および開くアクセス許可を持つアカウント AWS を使用して、 にログインします。 EventBridge

  2. 左のナビゲーションペインで、[API destinations] (API 送信先) を選択します。

  3. [API destinations] (API 送信先) テーブルまで下にスクロールし、[Create API destination] (API 送信先の作成) を選択します。

  4. [Create API destination] (API 送信先の作成) ページで、API 送信先の [Name] (名前) を入力します。大文字または小文字のアルファベット、数字、ドット (.)、ダッシュ (-)、アンダースコア (_) を最大 64 文字まで使用できます。

    この名前は、現在のリージョンのアカウントで一意であることが必要です。

  5. API 送信先の [Description] (説明) を入力します。

  6. API 送信先の [API destination endpoint] (API 送信先エンドポイント) を入力します。-API 送信先エンドポイントは、イベントの HTTP 呼び出しエンドポイントのターゲットです。この API 送信先に使用される接続に含める認証情報は、このエンドポイントに対する認証に使用されます。URL には HTTPS を使用してください。

  7. API 送信先エンドポイントへの接続に使用する HTTP メソッドを入力します。

  8. (オプション) [Invocation rate limit per second] (1 秒あたりの呼び出しレート制限) フィールドに、API 送信先エンドポイントに送信する 1 秒あたりの最大呼び出し回数を入力します。

    設定したレート制限は、 がイベントを EventBridge 配信する方法に影響を与える可能性があります。詳細については、「呼び出しレートがイベント配信に与える影響」を参照してください。

  9. [Connection] (接続) で、次のいずれかを実行します。

    • [Use an existing connection] (既存の接続を使用) を選択して、この API 送信先に使用する接続を選択します。

    • [Create a new connection] (新しい接続を作成) を選択して、作成する接続の詳細を入力します。詳細については、「接続」を参照してください。

  10. [作成] を選択します。

API 送信先にイベントを送信するルールの作成

API 送信先を作成したら、それをルールのターゲットとして選択できます。API 送信先をターゲットとして使用するには、適切なアクセス許可を持つ IAM ロールを指定する必要があります。詳細については、「が IAM ロールを使用してターゲットにアクセス EventBridge するために必要なアクセス許可」を参照してください。

API 送信先をターゲットとして選択することは、ルール作成の一部です。

コンソールを使用して、API 送信先にイベントを送信するルールを作成するには
  1. イベントに反応する Amazon EventBridge ルールの作成」のステップに従います。

  2. ターゲットを選択する ステップでは、ターゲットタイプとして API 送信先を選択するように求められた場合:

    1. EventBridge API 送信先 を選択します。

    2. 次のいずれかを行います。

      • 既存の API 送信先を使用を選択し、既存の API 送信先を選択します。

      • 新しい API 送信先の作成を選択し、新しい API 送信先を定義するために必要な設定を指定します。

        必要な設定の指定の詳細については、「」を参照してくださいAPI 送信先の作成

    3. (オプション): イベントのヘッダーパラメータを指定するには、ヘッダーパラメータ でヘッダーパラメータ を追加 を選択します。

      次に、 ヘッダーパラメータのキーと値を指定します。

    4. (オプション): イベントのクエリ文字列パラメータを指定するには、「クエリ文字列パラメータ」で「クエリ文字列パラメータを追加」を選択します。

      次に、クエリ文字列パラメータのキーと値を指定します。

  3. 手順のステップ に従ってルールの作成を完了します。

API 送信先のサービスにリンクされたロール

API 送信先の接続を作成すると、 という名前のサービスにリンクされたロールAWS ServiceRoleForAmazonEventBridgeApiDestinationsがアカウントに追加されます。 は、サービスにリンクされたロール EventBridge を使用してシークレットを作成し、Secrets Manager に保存します。サービスにリンクされたロールに必要なアクセス許可を付与するために、 EventBridge はAmazonEventBridgeApiDestinationsServiceRolePolicyポリシーをロールにアタッチします。このポリシーは、付与されるアクセス許可を、ロールが接続用のシークレットと対話するために必要なものだけに制限します。他のアクセス許可は含まれず、ロールはシークレットを管理するためにアカウント内の接続のみと対話できます。

以下のポリシーは AmazonEventBridgeApiDestinationsServiceRolePolicy です。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:CreateSecret", "secretsmanager:UpdateSecret", "secretsmanager:DescribeSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue" ], "Resource": "arn:aws:secretsmanager:*:*:secret:events!connection/*" } ] }

サービスにリンクされたロールの詳細については、IAM ドキュメントの「サービスにリンクされたロールの使用」を参照してください。

AmazonEventBridgeApiDestinationsServiceRolePolicy サービスにリンクされたロールは、次の AWS リージョンでサポートされています。

  • 米国東部 (バージニア北部)

  • 米国東部 (オハイオ)

  • 米国西部 (北カリフォルニア)

  • 米国西部 (オレゴン)

  • アフリカ (ケープタウン)

  • アジアパシフィック (香港)

  • アジアパシフィック (ムンバイ)

  • アジアパシフィック (大阪)

  • アジアパシフィック (ソウル)

  • アジアパシフィック (シンガポール)

  • アジアパシフィック (シドニー)

  • アジアパシフィック (東京)

  • カナダ (中部)

  • 欧州 (フランクフルト)

  • 欧州 (アイルランド)

  • 欧州 (ロンドン)

  • 欧州 (ミラノ)

  • ヨーロッパ (パリ)

  • 欧州 (ストックホルム)

  • 南米(サンパウロ)

  • 中国 (寧夏)

  • 中国 (北京)

API 送信先へのリクエストのヘッダー

次のセクションでは、 が API 送信先へのリクエストで HTTP ヘッダー EventBridge を処理する方法について詳しく説明します。

API 送信先へのリクエストに含まれるヘッダー

API 送信先に使用される接続に定義されている認証ヘッダーに加えて、 は各リクエストに次のヘッダー EventBridge を含めます。

ヘッダーキー ヘッダー値

ユーザーエージェント

Amazon/EventBridge/ApiDestinations

Content-Type

カスタム Content-Type 値を指定しない場合、 には Content-Type として次のデフォルト値 EventBridge が含まれます。

application/json; charset=utf-8

Range

bytes=0-1048575

Accept-Encoding

gzip、deflate

Connection

CLOSE

Content-Length

受信者に送信されるエンティティボディのサイズをバイト単位で示すエンティティヘッダー。

ホスト

リクエストを送信するサーバーのホストおよびポート番号を指定するリクエストヘッダー。

API 送信先へのリクエストの上書きできないヘッダー

EventBridge では、次のヘッダーを上書きすることはできません。

  • ユーザーエージェント

  • [Range] (範囲)

ヘッダーは API 送信先へのリクエストから EventBridge を削除します

EventBridge は、すべての API 送信先リクエストの次のヘッダーを削除します。

  • A-IM

  • Accept-Charset

  • Accept-Datetime

  • Accept-Encoding

  • Cache-Control

  • Connection

  • Content-Encoding

  • Content-Length

  • Content−MD5

  • 日付

  • Expect

  • Forwarded

  • From

  • ホスト

  • HTTP2-Settings

  • If-Match

  • If-Modified-Since

  • If-None-Match

  • If-Range

  • If-Unmodified-Since

  • Max-Forwards

  • オリジン

  • Pragma

  • Proxy-Authorization

  • [Range] (範囲)

  • リファラー

  • TE

  • Trailer

  • Transfer-Encoding

  • ユーザーエージェント

  • Upgrade

  • Via

  • 警告

API 送信先のエラーコード

が API 送信先にイベントを配信 EventBridge しようとしてエラーが発生すると、 EventBridge は以下を実行します。

  • エラーコード 409、429 および 5xx に関連するイベントが再試行されます。

  • エラーコード 1xx、2xx、3xx、4xx (429 を除く) に関連するイベントは再試行されません。

EventBridge API 送信先は、標準の HTTP レスポンスヘッダーを読み取りRetry-After、フォローアップリクエストを実行する前に待機する時間を調べます。 は、定義された再試行ポリシーと Retry-After ヘッダーの間のより保守的な値 EventBridge を選択します。Retry-After 値が負の場合、 はそのイベントの配信の再試行を EventBridge 停止します。

呼び出しレートがイベント配信に与える影響

1 秒あたりの呼び出しレートを、生成された呼び出しの数より大幅に低い値に設定した場合、イベントの 24 時間の再試行時間内にはイベントが配信されないことがあります。例えば、呼び出しレートを 1 秒あたり 10 回に設定しても、1 秒あたり数千のイベントが生成されると、24 時間を超えるイベントのバックログがすぐに作成されてしまいます。イベントが失われないようにするには、デッドレターキューを設定して、呼び出しが失敗したイベントを送信し、後で処理できるようにします。詳細については、「デッドレターキューを使用した未配信イベントの処理」を参照してください。