HTTP isteklerini alıp bunları olay olarak yönlendirmek için EventBridge konsolunda HTTP/HTTPS Events türünde bir özel olay kaynağı oluşturun.
Arka plan
HTTP/HTTPS Events içeren bir özel olay kaynağı oluşturduğunuzda, EventBridge HTTP isteklerini almak için uç nokta görevi gören bir Webhook URL'si üretir. Bu Webhook ile yapılandırılmış bir sunucuda bir olay gerçekleştiğinde, sunucu URL aracılığıyla EventBridge adresine mesaj gönderir. EventBridge ardından mesajın bir olaya dönüştürülüp bir olay hedefine aktarılıp aktarılmayacağını belirler.
Ön koşullar
Yordam
EventBridge konsoluna giriş yapın.
Sol gezinme bölmesinde Event Buses seçeneğine tıklayın.
Üst gezinme çubuğunda bir bölge seçin.
Event Buses sayfasında yönetmek istediğiniz olay veri yolunun adına tıklayın.
Sol gezinme bölmesinde Event Sources seçeneğine tıklayın.
Event Source sayfasında Add Event Source seçeneğine tıklayın.
-
Add Custom Event Source panelinde bir Name ve Description girin, Event Provider için HTTP/HTTPS Events seçeneğini belirleyin, aşağıdaki parametreleri yapılandırın ve ardından OK seçeneğine tıklayın.
Parameter Description Request Type HTTPS, HTTP veya HTTP and HTTPS seçeneklerinden birini seçin. Request Method Desteklenen HTTP istek yöntemlerinden birini veya birkaçını seçin. Geçerli değerler: - GET
- POST
- PUT
- DELETE
- HEAD
- PATCH
Security Settings Bir güvenlik ayarı seçin. Geçerli değerler: - None: Güvenlik yapılandırması gerekmez. Alınan tüm istekler olaya dönüştürülür ve EventBridge adresine aktarılır.
- CIDR Block: Geçerli bir IP adresi veya CIDR bloğu girin. Yalnızca belirtilen IP adreslerinden veya CIDR bloklarından gelen istekler olaya dönüştürülür ve EventBridge adresine aktarılır. EventBridge diğer tüm istekleri filtreler.
- Security Domain Name: Güvenli bir alan adı girin. Yalnızca belirtilen alan adlarından gelen istekler olaya dönüştürülür ve EventBridge adresine aktarılır. EventBridge diğer tüm istekleri filtreler.
CIDR Block Bu parametre yalnızca Security Settings seçeneğini CIDR Block olarak ayarlamanız durumunda gereklidir. Daha fazla bilgi için Security Settings açıklamasına bakın. Not En fazla beş IP adresi veya CIDR bloğu ekleyebilirsiniz.Security Domain Name Bu parametre yalnızca Security Settings seçeneğini Security Domain Name olarak ayarlamanız durumunda gereklidir. Daha fazla bilgi için Security Settings açıklamasına bakın. Not En fazla beş güvenlik alan adı ekleyebilirsiniz.
Olay örneği
EventBridge uyumlu HTTP isteklerini olaylara dönüştürür; istek üstbilgilerini ve gövdesini olayın data alanındaki headers ve body alanlarına eşler.
{
"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 belirtiminde tanımlanan parametreler hakkında daha fazla bilgi için bkz. Olaylara genel bakış.
data alanı aşağıdaki parametreleri içerir.
| Parameter | Type | Example | Description |
headers |
Map | |
HTTP istek üstbilgileri. |
path |
String | /webhook/putEvents | HTTP istek yolu. |
body |
String/Map | |
HTTP istek gövdesi. HTTP isteğinin Content-Type alanı application/json olarak ayarlanmışsa EventBridge istek gövdesini bir JSON nesnesi olarak ayrıştırır. Aksi takdirde bir dize olarak ayrıştırılır. |
httpMethod |
String | GET | HTTP istek yöntemi. |
queryString |
Map | None | token parametresi hariç olmak üzere isteğin sorgu parametreleri. |