このトピックでは、EventBridge コンソールで [HTTP/HTTPS イベント] タイプのカスタムイベントソースを作成する方法について説明します。
背景情報
[HTTP/HTTPS イベント] タイプのカスタムイベントソースが作成されると、URLリクエストを受信するためのWebhook URLが生成されます。 Webhook URLで設定されたサーバーでイベントが発生すると、URLを介して EventBridge にメッセージが送信されます。 次に、EventBridge は、メッセージをイベントに変換してイベントターゲットにプッシュするかどうかを決定します。
前提条件
手順
- EventBridge コンソール にログオンします。
- 左側のナビゲーションペインで、[イベントバス] をクリックします。
- 上部のナビゲーションバーで、リージョンを選択します。
[イベントバス] ページで、管理するイベントバスの名前をクリックします。
左側のナビゲーションペインで、[イベントソース] をクリックします。
Event Source ページで、イベントソースの追加 をクリックします。
カスタムイベントソースの追加 パネルで、名前 パラメーターと 説明 パラメーターを指定し、イベントプロバイダー パラメーターを [HTTP/HTTPS イベント] に設定します。次の表で説明されているパラメーターを設定し、OK をクリックします。
パラメーター
説明
リクエストタイプ
[HTTPS]、[HTTP]、または [HTTP&HTTPS] を選択します。
リクエストメソッド
サポートされている 1 つ以上の HTTP リクエストメソッドを選択します。有効な値:
GET
POST
PUT
DELETE
HEAD
PATCH
セキュリティ設定
セキュリティ設定タイプを選択します。有効な値:
オプション: セキュリティ設定は構成されておらず、受信したすべての URL リクエストはイベントとして EventBridge にプッシュされます。
CIDR ブロック: リクエストが許可される 1 つ以上の IP アドレスまたは CIDR ブロックを入力します。指定された IP アドレス、または指定された CIDR ブロックに属する IP アドレスからのリクエストのみがイベントとして EventBridge にプッシュされます。その他の URL ベースのリクエストは除外されます。
セキュリティドメイン名: セキュリティドメイン名を入力します。指定されたドメイン名を使用するリクエストのみがイベントとして EventBridge にプッシュされます。その他の URL ベースのリクエストは除外されます。
CIDR ブロック
このパラメーターは、[セキュリティ設定] パラメーターを CIDR ブロック に設定した場合にのみ必須です。詳細については、[セキュリティ設定] パラメーターの説明をご参照ください。
説明最大 5 つの IP アドレスまたは CIDR ブロックを指定できます。
セキュリティドメイン名
このパラメーターは、[セキュリティ設定] パラメーターを [セキュリティドメイン名] に設定した場合にのみ必要です。詳細については、[セキュリティ設定] パラメーターの説明をご参照ください。
説明最大 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.", // EventBridgeテスト情報
"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 | マップ | | HTTP リクエストのヘッダー。 |
path | 文字列 | /webhook/putEvents | HTTP リクエストパス。 |
body | 文字列/マップ | | Content-Type パラメーターの値が application/json の場合、HTTP リクエストの本文は JSON オブジェクトとして解析されます。それ以外の場合、本文は通常の文字列として解析されます。 |
httpMethod | 文字列 | GET | HTTP リクエストメソッド。 |
queryString | マップ | 該当なし | HTTP リクエストの query パラメーターの値。token パラメーターの内容は除きます。 |