Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Um tópico personalizado do Event Grid é um ponto de extremidade para o qual seus aplicativos enviam eventos próprios, para que o Event Grid possa encaminhar esses eventos aos assinantes interessados. Este artigo mostra como publicar eventos em um tópico personalizado usando chaves de acesso, que autenticam suas solicitações sem precisar configurar o Microsoft Entra ID. Você obtém o endpoint do tópico e a chave de acesso, formata um payload de evento, envia um evento de exemplo e analisa a resposta.
O Acordo de Nível de Serviço (SLA) se aplica apenas a postagens que correspondem ao formato esperado.
Pré-requisitos
- Um tópico personalizado do Grade de Eventos do Azure. Para criar um, veja Enviar eventos personalizados para um endpoint web usando o portal do Azure.
- CLI do Azure, Azure PowerShell ou acesso ao portal do Azure para recuperar o endpoint do tópico e a chave de acesso.
- Uma ferramenta que pode enviar requisições HTTP POST, como
curl.
Observação
A autenticação Microsoft Entra oferece melhor suporte à autenticação do que a autenticação por chave de acesso ou token de assinatura compartilhada (SAS). Ao usar a autenticação Microsoft Entra, o provedor de identidade da Microsoft Entra valida a identidade, então você não lida com chaves no seu código. Você também se beneficia de recursos de segurança embutidos na plataforma de identidade da Microsoft, como o Acesso Condicional, que ajudam a melhorar a segurança do seu aplicativo. Para saber mais, confira Autenticar clientes de publicação usando o Microsoft Entra ID.
Obter o ponto de extremidade do tópico
Para publicar eventos em um tópico personalizado, envie uma requisição HTTP POST usando o seguinte formato URI: https://<topic-endpoint>?api-version=2018-01-01. Por exemplo, um URI válido é: https://exampletopic.westus2-1.eventgrid.azure.net/api/events?api-version=2018-01-01. Para obter o endpoint de um tópico personalizado, use o portal do Azure, CLI do Azure ou Azure PowerShell.
Encontre o ponto final do tópico na aba Visão Geral da página de Tópicos da Grade de Eventos no portal Azure.
Obter a chave de acesso
Na solicitação, inclua um valor de cabeçalho chamado aeg-sas-key que contém uma chave para autenticação. Por exemplo, um valor de cabeçalho válido é aeg-sas-key: xxxxxxxxxxxxxxxxxxxxxxx. Para obter a chave para um tópico personalizado, use o portal do Azure, CLI do Azure ou Azure PowerShell.
Para obter a chave de acesso para o tópico personalizado, selecione a aba Chaves de Acesso na página de Tópicos da Grade de Eventos no portal Azure.
Formate a carga do evento
Formate cada evento como um objeto JSON. Os campos de nível superior são os mesmos que os eventos padrão definidos por recurso, e a data propriedade contém as propriedades que são únicas para o seu tópico personalizado. Como editor, você define o conteúdo do data objeto. Para uma descrição de cada propriedade, veja Grade de Eventos do Azure event schema.
[
{
"id": string,
"eventType": string,
"subject": string,
"eventTime": string-in-date-time-format,
"data":{
object-unique-to-each-publisher
},
"dataVersion": string
}
]
Tenha esses limites de tamanho em mente ao construir a carga útil:
- O array de eventos pode ter um tamanho total de até 1 MB.
- O tamanho máximo para um único evento é de 1 MB. Eventos acima de 64 KB geram cobrança em incrementos de 64 KB.
- Um lote pode conter no máximo 5.000 eventos.
O exemplo a seguir mostra uma carga útil de evento válida:
[{
"id": "1807",
"eventType": "recordInserted",
"subject": "myapp/vehicles/motorcycles",
"eventTime": "2017-08-10T21:03:07+00:00",
"data": {
"make": "Ducati",
"model": "Monster"
},
"dataVersion": "1.0"
}]
Enviar um evento de exemplo
Esta seção mostra como enviar um evento de exemplo para o tópico personalizado.
No portal do Azure, inicie o Cloud Shell.
No Cloud Shell, execute os comandos do Azure PowerShell ou da CLI do Azure no Bash ou na sessão do PowerShell.
Examinar a resposta
Depois que você posta no endpoint do tópico, você recebe uma resposta. A resposta é um código de resposta HTTP padrão. Algumas respostas comuns são:
| Resultado | Resposta |
|---|---|
| Sucesso | 200 Tudo certo |
| Os dados de evento têm formato incorreto | 400 Solicitação Inválida |
| Chave de acesso inválida | 401 Não Autorizado |
| Ponto de extremidade incorreto | 404 Não Encontrado |
| Matriz ou evento excede os limites de tamanho | 413 Carga Útil Muito Grande |
Para mensagens de erro, o corpo da mensagem usa o formato a seguir:
{
"error": {
"code": "<HTTP status code>",
"message": "<description>",
"details": [{
"code": "<HTTP status code>",
"message": "<description>"
}]
}
}
Conteúdo relacionado
- Monitorar a entrega de mensagens da Grade de Eventos: saiba como acompanhar e solucionar problemas de entregas de eventos.
- Segurança e autenticação da Grade de Eventos: entenda como proteger seus eventos com chaves de autenticação.
- Esquema de assinatura da Grade de Eventos: diretrizes passo a passo sobre como criar uma assinatura da Grade de Eventos.