Comment enregistrer des événements sur Azure Event Hubs dans Gestion des API Azure
S’APPLIQUE À : Tous les niveaux de Gestion des API
Cet article décrit comment consigner les événements de Gestion des API à l’aide d’Azure Event Hubs.
Les concentrateurs d'événements Azure sont un service d'entrée de données hautement évolutif qui peut traiter des millions d'événements par seconde afin que vous puissiez traiter et analyser les grandes quantités de données générées par vos périphériques connectés et vos applications. Les concentrateurs d'événements fonctionnent comme la « porte d'entrée » d’un pipeline d’événements, et une fois que les données sont collectées dans un concentrateur d'événements, elles peuvent être transformées et stockées à l'aide de n'importe quel fournisseur d'analyse en temps réel ou d’adaptateurs de traitement par lot ou de stockage. Les concentrateurs d'événements dissocient la production d'un flux d'événements de la consommation de ces événements, de manière à ce que les consommateurs d'événements puissent accéder aux événements selon leur propre planification.
Remarque
Cette fonctionnalité n’est actuellement pas disponible dans les espaces de travail.
Prérequis
- Une instance du service Gestion des API. Si vous n’en avez pas, consultez Créer une instance du service Gestion des API.
- Un espace de noms et un Event Hub sur Azure Event Hubs. Pour plus d’informations, consultez l’article Créer un espace de noms Event Hubs et un Event Hub avec le Portail Azure.
Notes
La ressource d’Event Hub peut se trouver dans un autre abonnement, voire dans un autre locataire, que la ressource Gestion des API
Configurer l’accès au hub d’événements
Pour enregistrer des événements dans l’Event Hub, vous devez configurer les informations d’identification pour l’accès à partir de Gestion des API. Gestion des API prend en charge l’un des deux mécanismes d’accès suivants :
- Une identité managée pour une instance du service Gestion des API (recommandé)
- Une chaîne de connexion Event Hubs
Remarque
Si possible, Microsoft recommande d’utiliser les informations d’identification d’identité managée pour renforcer la sécurité.
Option 1 : configurer l’identité managée Gestion des API
Activez une identité managée affectée par le système ou par l’utilisateur pour Gestion des API dans votre instance Gestion des API.
- Si vous activez une identité managée affectée par l’utilisateur, prenez note de l’ID client de l’identité.
Attribuez à l’identité le rôle expéditeur de données Azure Event Hubs, limité à l’espace de noms Event Hubs ou au hub d’événements utilisé pour la journalisation. Pour attribuer le rôle, utilisez le portail Azure ou d’autres outils Azure.
Option 2 : configurer la chaîne de connexion Event Hubs
Pour plus d’informations sur la chaîne de connexion Event Hubs, consultez Obtenir une chaîne de connexion Event Hubs.
- Vous pouvez utiliser une chaîne de connexion pour l’espace de noms Event Hubs ou pour le hub d’événements spécifique que vous utilisez pour la journalisation à partir de Gestion des API.
- La stratégie d’accès partagé pour la chaîne de connexion doit activer au moins les autorisations d’envoi.
Créer un enregistreur d’événements de gestion des API
Maintenant que vous disposez d’un hub d’événements, l’étape suivante consiste à configurer un enregistreur d’événements dans votre service Gestion des API afin qu’il puisse enregistrer des événements dans le hub d’événements.
Créez et gérez Gestion des API enregistreurs d’événements directement à l’aide de l’API REST Gestion des API ou à l’aide d’outils tels que Azure PowerShell, un modèle Bicep ou un modèle Azure Resource Management.
Option 1 : enregistreur d’événements avec informations d’identification d’identité managée (recommandé)
Vous pouvez configurer un enregistreur d’événements Gestion des API sur un hub d’événements à l’aide des informations d’identification d’identité managée affectées par le système ou attribuées par l’utilisateur.
Enregistreur d’événements avec des informations d’identification d’identité managées affectées par le système
Pour connaître les prérequis, consultez Configurer l’identité managée Gestion des API.
Utilisez l’enregistreur d’événements gestion des API - Créer ou mettre à jour l’API REST avec le corps de la requête suivant.
{
"properties": {
"loggerType": "azureEventHub",
"description": "Event Hub logger with system-assigned managed identity",
"credentials": {
"endpointAddress":"<EventHubsNamespace>.servicebus.windows.net",
"identityClientId":"SystemAssigned",
"name":"<EventHubName>"
}
}
}
Enregistreur d’événements avec des informations d’identification d’identité managées affectées par l’utilisateur
Pour connaître les prérequis, consultez Configurer l’identité managée Gestion des API.
Utilisez l’enregistreur d’événements gestion des API - Créer ou mettre à jour l’API REST avec le corps de la requête suivant.
{
"properties": {
"loggerType": "azureEventHub",
"description": "Event Hub logger with user-assigned managed identity",
"credentials": {
"endpointAddress":"<EventHubsNamespace>.servicebus.windows.net",
"identityClientId":"<ClientID>",
"name":"<EventHubName>"
}
}
}
Option 2. Enregistreur d’événements avec les informations d’identification de chaîne de connexion
Pour connaître les prérequis, consultez Configurer la chaîne de connexion Event Hubs.
Remarque
Dans la mesure du possible, Microsoft recommande de configurer l’enregistreur d’événements avec des informations d’identification d’identité managée. Consultez Configurer le logger des identifiants de l’identité managée, plus haut dans cet article.
L’exemple suivant utilise le cmdlet New-AzApiManagementLogger pour créer un enregistreur d’événements dans un hub d’événements en configurant une chaîne de connexion.
# API Management service-specific details
$apimServiceName = "apim-hello-world"
$resourceGroupName = "myResourceGroup"
# Create logger
$context = New-AzApiManagementContext -ResourceGroupName $resourceGroupName -ServiceName $apimServiceName
New-AzApiManagementLogger -Context $context -LoggerId "ContosoLogger1" -Name "ApimEventHub" -ConnectionString "Endpoint=sb://<EventHubsNamespace>.servicebus.windows.net/;SharedAccessKeyName=<KeyName>;SharedAccessKey=<key>" -Description "Event hub logger with connection string"
Configurer des stratégies log-to-eventhub
Une fois que votre journal est configuré dans Gestion des API, vous pouvez configurer votre stratégie log-to-eventhub pour enregistrer les événements de votre choix. Par exemple, utilisez la stratégie log-to-eventhub
de la section stratégie entrante pour journaliser les demandes, ou dans la section stratégie sortante pour journaliser les réponses.
Accédez à votre instance Gestion des API.
Sélectionnez les API, puis sélectionnez l’API à ajouter la stratégie. Dans cet exemple, nous ajoutons une stratégie à l’API Echo dans le produit Illimité.
Sélectionnez Toutes les opérations.
En haut de l’écran, sélectionnez l’onglet Conception.
Sélectionnez l’icône
</>
(éditeur de code) dans la fenêtre Traitement entrant ou Traitement sortant. Pour plus d’informations, consultez la section Guide pratique pour configurer ou modifier des stratégies.Placez votre curseur dans la section des stratégies
inbound
ououtbound
.Dans la fenêtre de droite, sélectionnez Stratégies avancées>Consigner sur Event Hub. Cela permet d’insérer le modèle d’instruction de stratégie
log-to-eventhub
.<log-to-eventhub logger-id="logger-id"> @{ return new JObject( new JProperty("EventTime", DateTime.UtcNow.ToString()), new JProperty("ServiceName", context.Deployment.ServiceName), new JProperty("RequestId", context.RequestId), new JProperty("RequestIp", context.Request.IpAddress), new JProperty("OperationName", context.Operation.Name) ).ToString(); } </log-to-eventhub>
- Remplacez
logger-id
par le nom du fichier JSON que vous avez créé à l’étape précédente. - Vous pouvez utiliser toute expression qui renvoie une chaîne en tant que valeur pour l’élément
log-to-eventhub
. Dans cet exemple, une chaîne dans le format JSON contenant la date et l’heure, le nom du service, l’ID de la requête, son adresse IP et le nom de l’opération est consignée.
- Remplacez
Cliquez sur Enregistrer pour enregistrer la mise à jour de la configuration de la stratégie. Dès qu’elle est enregistrée, la stratégie est active et les événements sont enregistrés dans l’Event Hub désigné.
Notes
La taille maximale des messages pris en charge pouvant être envoyée à un Event Hub par cette stratégie Gestion des API est de 200 kilooctets (ko). Si un message envoyé à un Event Hub dépasse 200 ko, il est automatiquement tronqué. Le message tronqué est ensuite transféré vers le hub d’événements. Pour les messages plus grands, envisagez d’utiliser le Stockage avec la Gestion des API Azure comme solution de contournement pour éviter la limite de 200 Ko. Vous trouverez plus de détails dans cet article.
Afficher un aperçu du journal dans Event Hubs à l’aide d’Azure Stream Analytics
Vous pouvez afficher un aperçu du journal dans Event Hubs à l’aide de requêtes Azure Stream Analytics.
- Dans le Portail Azure, accédez au Event Hub auquel le journal envoie des événements.
- Sous Fonctionnalités, sélectionnez l’onglet Traiter les données.
- Sur la vignette Activer des insights en temps réel à partir d’événements, sélectionnez Démarrer.
- Vous devez être en mesure d’afficher un aperçu du journal dans l’onglet Aperçu de l’entrée. Si les données qui apparaissent ne sont pas à jour, sélectionnez Actualiser pour afficher les événements les plus récents.
Étapes suivantes
- En savoir plus sur Azure Event Hubs
- En savoir plus sur l’intégration de Gestion des API et Event Hubs
- Référence d’entité d’enregistreur
- Référence de stratégie log-to-eventhub
- En savoir plus sur l’intégration avec Azure Application Insights