Publiez des événements sur des sujets personnalisés sur Azure Event Grid en utilisant des clés d’accès

Un sujet personnalisé Event Grid est un point de terminaison auquel vos applications envoient leurs propres événements, afin qu’Event Grid puisse les acheminer vers des abonnés intéressés. Cet article vous montre comment publier des événements sur un sujet personnalisé en utilisant des clés d’accès, qui authentifient vos requêtes sans configurer Microsoft Entra ID. Vous obtenez le point de terminaison du sujet et la clé d’accès, formatez une charge utile d’événement, envoyez un événement d’exemple, puis relisez la réponse.

L’Accord de niveau de service (SLA) ne s’applique qu’aux postes correspondant au format attendu.

Prerequisites

Remarque

L’authentification Microsoft Entra offre un meilleur support de l’authentification que l’authentification par clé d’accès ou par signature d’accès partagée (SAS). En utilisant l'authentification Microsoft Entra, le fournisseur d'identité Microsoft Entra valide l'identité, donc vous ne manipulez pas les clés dans votre code. Vous bénéficiez également de fonctionnalités de sécurité intégrées à la Plateforme d'identités Microsoft, telles que l'accès conditionnel, qui contribuent à améliorer la sécurité de votre application. Pour plus d'informations, consultez Authentifier les clients de publication à l'aide de Microsoft Entra ID.

Obtenir le point de terminaison de la rubrique

Pour publier des événements sur un sujet personnalisé, envoyez une requête HTTP POST en utilisant le format URI suivant : 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 d’accès d’un sujet personnalisé, utilisez le portail Azure, Azure CLI ou Azure PowerShell.

Trouvez le point final du sujet dans l'onglet Aperçu de la page Event Grid Topic du portail Azure.

Capture d’écran de la page thématique Event Grid dans le portail Azure avec le point de terminaison du sujet mis en surbrillance.

Obtenir la clé d’accès

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é d’un sujet personnalisé, utilisez le portail Azure, Azure CLI ou Azure PowerShell.

Pour obtenir la clé d’accès du sujet personnalisé, sélectionnez l’onglet Clés d’accès sur la page Event Grid Topic du portail Azure.

Capture d’écran illustrant l’onglet Clés d’accès de la page Rubrique Event Grid sur le Portail Azure.

Formatez la charge utile de l’événement

Formatez chaque événement comme un objet JSON. Les champs de premier niveau sont les mêmes que les événements définis par ressource standard, et la data propriété contient les propriétés propres à votre sujet personnalisé. En tant qu’éditeur, vous définissez le contenu de l’objet data . Pour une description de chaque propriété, voir 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
  }
]

Gardez à l’esprit ces limites de taille lorsque vous construisez la charge utile :

  • Le tableau d’événements peut avoir une taille totale allant jusqu’à 1 Mo.
  • La taille maximale pour un événement unique est de 1 Mo. Les événements dépassant 64 Ko sont facturés par tranches de 64 Ko.
  • Un lot peut contenir un maximum de 5 000 événements.

L’exemple suivant montre une charge utile d’événement valide :

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

Envoyer un événement d’exemple

Cette section montre comment envoyer un exemple d’événement à la rubrique personnalisée.

  1. Dans le Portail Azure, lancez Cloud Shell.

  2. Dans Cloud Shell, exécutez les commandes à partir d’Azure PowerShell ou d’Azure CLI dans la session Bash ou PowerShell.

    Capture d’écran illustrant Cloud Shell dans le Portail Azure.

Passer en revue la réponse

Après avoir posté sur le point de départ du sujet, vous recevez une réponse. La réponse est un code de réponse HTTP standard. Certaines réponses courantes sont :

Résultats Réponse
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 utilise le format suivant :

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