Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Um tópico personalizado do Event Grid é um endpoint para onde as suas aplicações enviam os seus próprios eventos, para que o Event Grid possa encaminhar esses eventos para subscritores interessados. Este artigo mostra-lhe como publicar eventos num tópico personalizado usando chaves de acesso, que autenticam os seus pedidos sem configurar o Microsoft Entra ID. Recebes o endpoint do tópico e a chave de acesso, formatas um payload de evento, envias um evento de exemplo e revês a resposta.
O Acordo de Nível de Serviço (SLA) aplica-se apenas a publicações que correspondam ao formato esperado.
Pré-requisitos
- Um tema personalizado do Azure Event Grid. Para criar uma, veja Enviar eventos personalizados para um endpoint web usando o portal Azure.
- CLI do Azure, Azure PowerShell, ou acesso ao portal Azure para recuperar o endpoint do tópico e a chave de acesso.
- Uma ferramenta que pode enviar pedidos HTTP POST, como
curl.
Nota
A autenticação Microsoft Entra oferece melhor suporte de autenticação do que a autenticação por chave de acesso ou token de assinatura partilhada (SAS). Ao utilizar a autenticação do Microsoft Entra, o fornecedor de identidades Microsoft Entra valida a identidade, pelo que não tem de gerir chaves no seu código. Também beneficia de funcionalidades de segurança incorporadas na plataforma de identidades da Microsoft, como o Acesso Condicional, que ajudam a melhorar a segurança da sua aplicação. Para obter mais informações, consulte Autenticar clientes de publicação usando o Microsoft Entra ID.
Obtém o ponto final do tema
Para publicar eventos num tópico personalizado, envie um pedido HTTP POST utilizando 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 para um tópico personalizado, use o portal Azure, CLI do Azure ou Azure PowerShell.
Encontre o ponto final do tema no separador Overview da página de Tópicos da Grelha de Eventos no portal Azure.
Obter a chave de acesso
Na solicitação, inclua um valor de cabeçalho chamado aeg-sas-key que contenha 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 Azure, CLI do Azure ou Azure PowerShell.
Para obter a chave de acesso para o tópico personalizado, selecione o separador Chaves de Acesso na página de Tópicos da Grelha de Eventos no portal Azure.
Formatar a carga útil do evento
Formate cada evento como um objeto JSON. Os campos de topo 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, defines o conteúdo do data objeto. Para uma descrição de cada propriedade, veja Azure Event Grid event schema.
[
{
"id": string,
"eventType": string,
"subject": string,
"eventTime": string-in-date-time-format,
"data":{
object-unique-to-each-publisher
},
"dataVersion": string
}
]
Tenha em mente estes limites de tamanho 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 superiores a 64 KB implicam custos em blocos de 64 KB.
- Um lote pode conter um máximo de 5.000 eventos.
O exemplo seguinte 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 exemplo de evento
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 na sessão Bash ou PowerShell .
Revise a resposta
Depois de publicar no endpoint do tópico, recebe uma resposta. A resposta é um código de resposta HTTP padrão. Algumas respostas comuns são:
| Resultado | Resposta |
|---|---|
| Com êxito | 200 OK |
| Os dados do evento têm formato incorreto | 400 Pedido Incorreto |
| Chave de acesso inválida | 401 Não Autorizado |
| Ponto final incorreto | 404 Não Encontrado |
| Matriz ou evento excede os limites de tamanho | 413 Payload Demasiado Grande |
Em caso de erro, o corpo da mensagem tem o seguinte formato:
{
"error": {
"code": "<HTTP status code>",
"message": "<description>",
"details": [{
"code": "<HTTP status code>",
"message": "<description>"
}]
}
}
Conteúdos relacionados
- 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: orientação passo a passo sobre como criar uma assinatura da Grade de Eventos.