EventBridge コンソールで HTTP/HTTPS トリガー を使用してカスタムイベントソースを作成し、HTTP リクエストを受信してイベントとしてルーティングします。
背景情報
HTTP/HTTPS トリガー を使用してカスタムイベントソースを作成すると、EventBridge は HTTP リクエストを受信するためのエンドポイントとなる Webhook URL を生成します。この Webhook を設定したサーバー上でイベントが発生すると、サーバーはそのメッセージを URL 経由で EventBridge に送信します。EventBridge は、そのメッセージをイベントに変換してイベントターゲットにプッシュするかどうかを判断します。
前提条件
操作手順
- EventBridge コンソールにログインします。
- 左側のナビゲーションウィンドウで、Event Buses をクリックします。
- 上部のナビゲーションバーでリージョンを選択します。
Event Buses ページで、管理対象のイベントバスの名前をクリックします。
左側のナビゲーションウィンドウで、Event Sources をクリックします。
- Event Source ページで、イベントソースの追加 をクリックします。
- カスタムイベントソースの追加 パネルで、名前 および 説明 を入力し、イベントプロバイダー として HTTP/HTTPS トリガー を選択します。以下のパラメーターを構成し、OK をクリックします。
パラメーター 説明 リクエストタイプ HTTPS、HTTP、または HTTP and HTTPS を選択します。 リクエスト方法 サポートされている HTTP リクエストメソッドを 1 つ以上選択します。有効な値: - GET
- POST
- PUT
- DELETE
- HEAD
- PATCH
セキュリティ設定 セキュリティ設定を選択します。有効な値: - None:セキュリティ構成は不要です。受信したすべてのリクエストがイベントに変換され、EventBridge にプッシュされます。
- CIDR ブロックCIDR Block:有効な IP アドレスまたは CIDR ブロックを入力します。指定された IP アドレスまたは CIDR ブロックからのリクエストのみがイベントに変換され、EventBridge にプッシュされます。 は、それ以外のすべてのリクエストをフィルターで除外します。
- セキュリティドメイン名: 安全なドメイン名を入力します。指定されたドメイン名からのリクエストのみがイベントに変換され、EventBridge にプッシュされます。EventBridge は他のすべてのリクエストをフィルターにより除外します。
CIDR ブロック セキュリティ設定 を CIDR Block に設定した場合にのみ、このパラメーターが必要になります。詳細については、セキュリティ設定 の説明をご参照ください。 説明 IP アドレスまたは CIDR ブロックは最大 5 つまで追加できます。セキュリティドメイン セキュリティ設定 を Security Domain Name に設定した場合にのみ、このパラメーターが必要になります。詳細については、セキュリティ設定 の説明をご参照ください。 説明 セキュリティドメイン名は最大 5 つまで追加できます。
イベント例
EventBridge は、準拠した HTTP リクエストをイベントに変換し、リクエストヘッダーおよびリクエストボディをイベントの data フィールド内の headers フィールドおよび body フィールドにマッピングします。
{
"datacontenttype": "application/json",
"aliyunaccountid": "175299981560****",
"data": {
"headers": {
"Host": "175299981560****.eventbridge.cn-hangzhou.aliyuncs.com",
"Accept-Encoding": "gzip, deflate, br",
"accept": "*/*",
"Content-Length": "538",
"Content-Type": "application/json"
},
"path": "/webhook/putEvents",
"body": {
"infoId": 1,
"ruleName": "Test",
"state": "alerting",
"message": "EventBridge test info.",
"ruleId": "796014154722826****"
},
"httpMethod": "GET",
"queryString": {}
},
"subject": "acs:eventbridge:cn-hangzhou:175299981560****:eventbus/EventBridgeDemoBus/eventsource/my.httpSource",
"aliyunoriginalaccountid": "175299981560****",
"source": "my.httpSource",
"type": "eventbridge:Events:HTTPEvent",
"aliyunpublishtime": "2022-03-03T03:33:14.097Z",
"specversion": "1.0",
"aliyuneventbusname": "EventBridgeDemoBus",
"id": "ac0d574c-d862-4662-a87b-784e3d77****",
"time": "2022-03-03T11:33:14.093+08:00",
"aliyunregionid": "cn-hangzhou",
"aliyunpublishaddr": "42.120.XX.XX"
}
CloudEvents 仕様で定義されているパラメーターの詳細については、「イベント概要」をご参照ください。
data フィールドには、以下のパラメーターが含まれます。
| パラメーター | タイプ | 例 | 説明 |
headers |
Map | |
HTTP リクエストヘッダー。 |
path |
String | /webhook/putEvents | HTTP リクエストパス。 |
body |
String/Map | |
HTTP リクエストボディ。HTTP リクエストの Content-Type フィールドが application/json に設定されている場合、EventBridge はリクエストボディを JSON オブジェクトとして解析します。それ以外の場合は、文字列として解析されます。 |
httpMethod |
String | GET | HTTP リクエストメソッド。 |
queryString |
Map | なし | token パラメーターを除く、リクエストのクエリパラメーター。 |