Crie uma fonte de eventos personalizada com HTTP/HTTPS Events no console do EventBridge para receber requisições HTTP e roteá-las como eventos.
Contexto
Após criar uma fonte de eventos personalizada com HTTP/HTTPS Events, o EventBridge gera uma URL de webhook que funciona como endpoint para receber requisições HTTP. Quando um evento ocorre em um servidor configurado com esse webhook, o servidor envia uma mensagem ao EventBridge por meio da URL. Em seguida, o EventBridge determina se deve converter a mensagem em evento e enviá-la a um destino de evento.
Pré-requisitos
Procedimento
Faça login no console do EventBridge.
No painel de navegação à esquerda, clique em Event Buses.
Na barra de navegação superior, selecione uma região.
Na página Event Buses, clique no nome do barramento de eventos que deseja gerenciar.
No painel de navegação à esquerda, clique em Event Sources.
Na página Event Source, clique em Add Event Source.
-
No painel Add Custom Event Source, insira um Name e uma Description, selecione HTTP/HTTPS Events como Event Provider, configure os parâmetros a seguir e clique em OK.
Parâmetro Descrição Request Type Selecione HTTPS, HTTP ou HTTP and HTTPS. Request Method Selecione um ou mais métodos de requisição HTTP suportados. Valores válidos: - GET
- POST
- PUT
- DELETE
- HEAD
- PATCH
Security Settings Defina uma configuração de segurança. Valores válidos: - None: Nenhuma configuração de segurança é necessária. O sistema converte todas as requisições recebidas em eventos e as envia ao EventBridge.
- CIDR Block: Insira um endereço IP ou bloco CIDR válido. O EventBridge converte em eventos apenas as requisições originadas dos endereços IP ou blocos CIDR especificados e as envia ao EventBridge, filtrando todas as demais.
- Security Domain Name: Informe um nome de domínio seguro. O EventBridge converte em eventos apenas as requisições provenientes dos nomes de domínio especificados e as envia ao EventBridge, descartando quaisquer outras.
CIDR Block Este parâmetro é obrigatório apenas quando você define Security Settings como CIDR Block. Para mais detalhes, consulte a descrição de Security Settings. Nota É possível adicionar até cinco endereços IP ou blocos CIDR.Security Domain Name Campo necessário somente se Security Settings estiver definido como Security Domain Name. Consulte a descrição de Security Settings para mais informações. Nota O limite é de até cinco nomes de domínio seguros.
Exemplo de evento
O EventBridge converte requisições HTTP compatíveis em eventos e mapeia os cabeçalhos e o corpo da requisição para os campos headers e body dentro do campo data do evento.
{
"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"
}
Para obter mais informações sobre os parâmetros definidos na especificação CloudEvents, consulte Event overview.
O campo data contém os seguintes parâmetros.
| Parâmetro | Tipo | Exemplo | Descrição |
headers |
Map | |
Cabeçalhos da requisição HTTP. |
path |
String | /webhook/putEvents | Caminho da requisição HTTP. |
body |
String/Map | |
Corpo da requisição HTTP. Se o campo Content-Type da requisição HTTP estiver definido como application/json, o EventBridge analisa o corpo como um objeto JSON. Caso contrário, o sistema o analisa como string. |
httpMethod |
String | GET | Método da requisição HTTP. |
queryString |
Map | None | Parâmetros de consulta da requisição, exceto o parâmetro token. |