Amazon EventBridge のターゲットとしての API 送信先
EventBridge API 送信先は、AWS のサービスまたはリソースをターゲットとして呼び出す場合と同様に、イベントバスルールのターゲットとして呼び出せる HTTPS エンドポイントです。API 送信先を使用すると、API コールを使用して、AWS サービス、統合された Software as a Service (SaaS) アプリケーション、パブリックアプリケーションまたはプライベートアプリケーションの間でイベントをルーティングできます。
ルールまたはパイプのターゲットとして API 送信先を指定すると、EventBridge はルールまたはパイプで指定されたイベントパターンにマッチするイベントの HTTPS エンドポイントを呼び出し、イベント情報をリクエストとともに配信します。EventBridge では、CONNECT および TRACE 以外の任意の HTTP メソッドをリクエストに使用できます。最もよく使用する HTTP メソッドは PUT と POST です。
また、入力トランスフォーマーを使用して、イベントを特定の HTTP エンドポイントのパラメータにカスタマイズすることもできます。詳細については、「Amazon EventBridge 入力変換」を参照してください。
EventBridge API 送信先は接続を使用して、特定の HTTPS エンドポイントへの接続に EventBridge が使用する認証方法、認証情報およびネットワーク接続を定義します。接続は、パブリック API とプライベート API の両方をサポートします。詳細については、「接続」を参照してください。
注記
現在、EventBridge API 送信先は、プライベート API を使用する場合、HTTPS エンドポイントのパブリックに信頼された証明書を持つパブリックドメイン名のみをサポートしています。API 送信先は相互 TLS (mTLS) をサポートしていません。
重要
API 送信先エンドポイントへの EventBridge リクエストは、クライアント実行タイムアウト時間を最大 5 秒までにする必要があります。ターゲットエンドポイントが応答に 5 秒以上かかる場合、EventBridge はリクエストをタイムアウトします。EventBridge はタイムアウトしたリクエストを、再試行ポリシーで設定された最大値まで再試行します。
イベントバスの場合、デフォルトで最大値は 24 時間と 185 回です。
パイプの場合、再試行はパイプソースタイプとその設定によって決定されます。EventBridge は、イベントがソースから期限切れになるか、または設定された最大イベント経過時間または再試行回数に達するまで再試行します。
再試行の最大回数を超えると、デッドレターキューがあればイベントはそこに送られ、なければイベントはドロップされます。
次のビデオでは、API 送信先の使用を示しています。
API 送信先のサービスにリンクされたロール
API 送信先の接続を作成すると、サービスにリンクされたロール AmazonEventBridgeApiDestinationsServiceRolePolicy がアカウントに追加されます。EventBridge は、このサービスにリンクされたロールを使用して、Secrets Manager にシークレットを作成し、保存します。サービスにリンクされたロールに必要なアクセス許可を付与するために、EventBridge は、AmazonEventBridgeApiDestinationsServiceRolePolicy ポリシーをロールにアタッチします。このポリシーは、付与されるアクセス許可を、ロールが接続用のシークレットと対話するために必要なものだけに制限します。他のアクセス許可は含まれず、ロールはシークレットを管理するためにアカウント内の接続のみと対話できます。
サービスリンクロールの詳細については、「IAM ユーザーガイド」の「サービスリンクロールの使用」を参照してください。
API 送信先へのリクエストのヘッダー
次のセクションでは、EventBridge が API 送信先へのリクエストの HTTP ヘッダーをどのように処理するかについて詳しく説明します。
API 送信先へのリクエストに含まれるヘッダー
API 送信先に使用される接続に定義された認可ヘッダーに加えて、EventBridge は各リクエストに次のヘッダーを含めます。
| ヘッダーキー | ヘッダー値 |
|---|---|
|
User−Agent |
Amazon/EventBridge/ApiDestinations |
|
Content-Type |
カスタム Content-Type 値が指定されていない場合、EventBridge には Content-Type として次のデフォルト値が含まれます。 application/json; charset=utf-8 |
|
Range |
bytes=0-1048575 |
|
Accept-Encoding |
gzip、deflate |
|
接続 |
CLOSE |
|
Content-Length |
受信者に送信されるエンティティボディのサイズをバイト単位で示すエンティティヘッダー。 |
|
ホスト |
リクエストを送信するサーバーのホストおよびポート番号を指定するリクエストヘッダー。 |
API 送信先へのリクエストの上書きできないヘッダー
EventBridge は、以下のヘッダーの上書きを許可しません。
-
User−Agent
-
Range
EventBridge が API 送信先へのリクエストから削除するヘッダー
EventBridge は、API 送信先へのリクエストから以下のヘッダーを削除します。
-
A-IM
-
Accept-Charset
-
Accept-Datetime
-
Accept-Encoding
-
Cache-Control
-
接続
-
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
-
Origin
-
Pragma
-
Proxy-Authorization
-
Range
-
Referer
-
TE
-
Trailer
-
Transfer-Encoding
-
User−Agent
-
アップグレード
-
Via
-
警告
API 送信先のエラーコード
EventBridge が API にイベントを配信しようとしてエラーが発生した場合、EventBridge は次のように動作します。
-
エラーコード
401、407、409、429、5xxに関連するイベントを再試行します。 -
エラーコード
1xx、2xx、3xx、4xx(上記を除く) に関連するイベントを再試行しません。
EventBridge API の送信先は、標準的な HTTP レスポンスヘッダーの Retry-After を読み、フォローアップリクエストを行う前の待機時間を調べます。イベントバスの場合、EventBridge は、定義された再試行ポリシーと Retry-After ヘッダーとの間で、より控え目な値を選択します。Retry-After 値が負の場合、EventBridge はそのイベントの配信の再試行を停止します。
呼び出しレートがイベント配信に与える影響
1 秒あたりの呼び出しレートを、生成された呼び出しの数より大幅に低い値に設定した場合、イベントの 24 時間の再試行時間内にはイベントが配信されないことがあります。例えば、呼び出しレートを 1 秒あたり 10 回に設定しても、1 秒あたり数千のイベントが生成されると、24 時間を超えるイベントのバックログがすぐに作成されてしまいます。イベントが失われないようにするには、デッドレターキューを設定して、呼び出しが失敗したイベントを送信し、後で処理できるようにします。詳細については、「EventBridge で配信されていないイベントを処理するためのデッドレターキューの使用」を参照してください。
利用可能なリージョン
パブリック HTTPS エンドポイントへの API 送信先は、次の AWS リージョンでサポートされています。
米国東部 (バージニア北部)
米国東部 (オハイオ)
米国西部 (北カリフォルニア)
米国西部 (オレゴン)
アフリカ (ケープタウン)
アジアパシフィック (香港)
アジアパシフィック (東京)
アジアパシフィック (ソウル)
アジアパシフィック (大阪)
アジアパシフィック (ムンバイ)
アジアパシフィック (ハイデラバード)
アジアパシフィック (シンガポール)
アジアパシフィック (シドニー)
アジアパシフィック (ジャカルタ)
カナダ (中部)
中国 (北京)
中国 (寧夏)
欧州 (フランクフルト)
欧州 (チューリッヒ)
欧州 (ストックホルム)
欧州 (ミラノ)
欧州 (スペイン)
欧州 (アイルランド)
欧州 (ロンドン)
欧州 (パリ)
中東 (アラブ首長国連邦)
中東 (バーレーン)
南米 (サンパウロ)