Publier des événements dans des rubriques personnalisées Azure Event Grid à l’aide de clés d’accès

Cet article explique comment publier un événement dans une rubrique personnalisée à l’aide d’une clé d’accès. Il montre le format des données de publication et d’événement. Le Contrat de niveau de service (SLA) s’applique uniquement aux publications qui correspondent au format attendu.

Remarque

L'authentification Microsoft Entra offre une prise en charge d'authentification supérieure à celle offerte par l'authentification par clé d'accès ou par jeton de signature d'accès partagé (SAS). Avec l'authentification Microsoft Entra, l'identité est validée par rapport au fournisseur d'identité Microsoft Entra. En tant que développeur, vous n'aurez pas à gérer les clés dans votre code si vous utilisez l'authentification Microsoft Entra. vous bénéficierez également de toutes les fonctionnalités de sécurité intégrées à la plateforme d'identité Microsoft, telles que l'accès conditionnel, qui peuvent vous aider à améliorer la sécurité de votre application. Pour plus d'informations, consultez Authentifier les clients de publication à l'aide de Microsoft Entra ID.

Point de terminaison

Quand vous envoyez la demande HTTP POST à une rubrique personnalisée, utilisez le format d’URI https://<topic-endpoint>?api-version=2018-01-01. Par exemple, un URI valide est https://exampletopic.westus2-1.eventgrid.azure.net/api/events?api-version=2018-01-01. Pour obtenir le point de terminaison pour une rubrique personnalisée au moyen de l’interface de ligne de commande Azure, utilisez :

az eventgrid topic show --name <topic-name> -g <topic-resource-group> --query "endpoint"

Pour obtenir le point de terminaison pour une rubrique personnalisée au moyen d’Azure PowerShell, utilisez :

(Get-AzEventGridTopic -ResourceGroupName <topic-resource-group> -Name <topic-name>).Endpoint

Dans la demande, incluez une valeur d’en-tête nommée aeg-sas-key qui contient une clé pour l’authentification. Par exemple, une valeur d’en-tête valide est aeg-sas-key: xxxxxxxxxxxxxxxxxxxxxxx. Pour obtenir la clé pour une rubrique personnalisée au moyen de l’interface de ligne de commande Azure, utilisez :

az eventgrid topic key list --name <topic-name> -g <topic-resource-group> --query "key1"

Pour obtenir la clé pour une rubrique personnalisée au moyen de PowerShell, utilisez :

(Get-AzEventGridTopicKey -ResourceGroupName <topic-resource-group> -Name <topic-name>).Key1

Données d’événement

Pour les rubriques personnalisées, les données de premier niveau contiennent les mêmes champs que les événements standard définis par les ressources. Une de ces propriétés est une propriété data qui contient des propriétés propres à la rubrique personnalisée. En tant qu’éditeur d’événements, vous déterminez des propriétés de cet objet de données. Voici le schéma :

[
  {
    "id": string,    
    "eventType": string,
    "subject": string,
    "eventTime": string-in-date-time-format,
    "data":{
      object-unique-to-each-publisher
    },
    "dataVersion": string
  }
]

Pour obtenir une description de ces propriétés, consultez Schéma d’événement Azure Event Grid. Quand les événements sont envoyés vers une rubrique Event Grid, le tableau peut avoir une taille totale de 1 Mo. La taille maximale autorisée pour un événement est également de 1 Mo. Les événements de plus de 64 Ko donnent lieu à une facturation par incréments de 64 Ko. Lors de la réception d’événements dans un lot, le nombre maximal d’événements autorisé est de 5 000 par lot.

Par exemple, un schéma de données d’événement valide est :

[{
  "id": "1807",
  "eventType": "recordInserted",
  "subject": "myapp/vehicles/motorcycles",
  "eventTime": "2017-08-10T21:03:07+00:00",
  "data": {
    "make": "Ducati",
    "model": "Monster"
  },
  "dataVersion": "1.0"
}]

response

Après la validation pour le point de terminaison de la rubrique, vous recevez une réponse. La réponse est un code de réponse HTTP standard. Certaines réponses courantes sont :

Résultats response
Succès 200 OK
Les données d’événement ont un format incorrect 400 Demande incorrecte
Clé d’accès non valide 401 Non autorisé
Point de terminaison incorrecte 404 Introuvable
La taille du tableau ou de l’événement dépasse la limite autorisée 413 charge utile maximale dépassée

Pour les erreurs, le corps du message a le format suivant :

{
    "error": {
        "code": "<HTTP status code>",
        "message": "<description>",
        "details": [{
            "code": "<HTTP status code>",
            "message": "<description>"
    }]
  }
}

Étapes suivantes