Créez une source d'événements personnalisée avec un déclencheur HTTP/HTTPS Events dans la console EventBridge pour recevoir des requêtes HTTP et les acheminer sous forme d'événements.
Contexte
Lorsque vous créez une source d'événements personnalisée avec un déclencheur HTTP/HTTPS Events, EventBridge génère une URL de webhook servant de point de terminaison pour recevoir les requêtes HTTP. Lorsqu'un événement se produit sur un serveur configuré avec ce webhook, le serveur envoie un message à EventBridge via cette URL. EventBridge détermine ensuite s'il doit convertir le message en événement et le transmettre à une cible d'événement.
Prérequis
Procédure
Connectez-vous à la console EventBridge.
Dans le volet de navigation de gauche, cliquez sur Event Buses.
Dans la barre de navigation supérieure, sélectionnez une région.
Sur la page Event Buses, cliquez sur le nom du bus d'événements à gérer.
Dans le volet de navigation de gauche, cliquez sur Event Sources.
Sur la page Event Source, cliquez sur Add Event Source.
-
Dans le panneau Add Custom Event Source, saisissez un Name et une Description, sélectionnez HTTP/HTTPS Events comme Event Provider, configurez les paramètres suivants, puis cliquez sur OK.
Paramètre Description Request Type Sélectionnez HTTPS, HTTP ou HTTP and HTTPS. Request Method Sélectionnez une ou plusieurs méthodes de requête HTTP prises en charge. Valeurs possibles : - GET
- POST
- PUT
- DELETE
- HEAD
- PATCH
Security Settings Sélectionnez un paramètre de sécurité. Valeurs possibles : - None : aucune configuration de sécurité n'est requise. Toutes les requêtes reçues sont converties en événements et transmises à EventBridge.
- CIDR Block : saisissez une adresse IP ou un bloc CIDR valide. Seules les requêtes provenant des adresses IP ou des blocs CIDR spécifiés sont converties en événements et transmises à EventBridge. EventBridge filtre toutes les autres requêtes.
- Security Domain Name : saisissez un nom de domaine sécurisé. Seules les requêtes provenant des noms de domaine spécifiés sont converties en événements et transmises à EventBridge. EventBridge filtre toutes les autres requêtes.
CIDR Block Ce paramètre est requis uniquement si vous définissez Security Settings sur CIDR Block. Pour plus d'informations, consultez la description de Security Settings. Remarque Vous pouvez ajouter jusqu'à cinq adresses IP ou blocs CIDR.Security Domain Name Ce paramètre est requis uniquement si vous définissez Security Settings sur Security Domain Name. Pour plus d'informations, consultez la description de Security Settings. Remarque Vous pouvez ajouter jusqu'à cinq noms de domaine sécurisés.
Exemple d'événement
EventBridge convertit les requêtes HTTP conformes en événements en mappant les en-têtes et le corps de la requête aux champs headers et body du champ data de l'événement.
{
"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"
}
Pour plus d'informations sur les paramètres définis dans la spécification CloudEvents, consultez la rubrique Présentation des événements.
Le champ data contient les paramètres suivants.
| Paramètre | Type | Exemple | Description |
headers |
Map | |
Les en-têtes de la requête HTTP. |
path |
String | /webhook/putEvents | Le chemin de la requête HTTP. |
body |
String/Map | |
Le corps de la requête HTTP. Si le champ Content-Type de la requête HTTP est défini sur application/json, EventBridge analyse le corps de la requête comme un objet JSON. Sinon, il l'analyse comme une chaîne. |
httpMethod |
String | GET | La méthode de la requête HTTP. |
queryString |
Map | None | Les paramètres de requête, à l'exclusion du paramètre token. |