Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
S'APPLIQUE À : Tous les niveaux de Gestion des API
Cet article explique comment consigner les événements 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. Event Hubs agit comme la « porte d’entrée » d’un pipeline d’événements et une fois que les données sont collectées dans un hub d’événements, vous pouvez la transformer et la stocker à l’aide de n’importe quel fournisseur d’analyse en temps réel ou de traitement par lots/adaptateurs 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 Event Hubs et un hub d’événements. Pour plus d’informations, consultez l’article Créer un espace de noms Event Hubs et un Event Hub avec le Portail Azure.
Remarque
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
Nous vous recommandons d’utiliser les informations d’identification d’identité managée lorsque cela est possible, pour renforcer la sécurité.
Option 1 : Configurer une identité managée par 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, notez l’ID d’objet 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 un autre outil Azure.
Option 2 : Configurer une 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 des enregistreurs d’événements gestion des API à l’aide de l’API REST Gestion des API directement ou à l’aide d’autres outils, tels qu’Azure PowerShell, un fichier Bicep ou un modèle Azure Resource Management.
Option 1 : Créer un enregistreur d’événements avec des informations d’identification d’identité managée (recommandé)
Vous pouvez configurer un enregistreur de gestion des API à un hub d’événements en utilisant des identités managées attribuées par le système ou par l'utilisateur.
Créer un enregistreur d’événements avec les informations d’identification d’identité managée attribuées par le système
Pour connaître les prérequis, consultez Configurer une identité managée Gestion des API.
Utilisez le membre d’API REST Enregistreur d’événements : créer ou mettre à jour d’API Management avec le contenu 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>"
}
}
}
Créer un enregistreur d’événements avec les informations d’identification d’identité managée affectées par l’utilisateur
Pour connaître les prérequis, consultez Configurer une identité managée Gestion des API.
Utilisez le membre d’API REST Enregistreur d’événements : créer ou mettre à jour d’API Management avec le contenu 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. Créer un enregistreur d’événements avec des informations d’identification de chaîne de connexion
Pour connaître les prérequis, consultez Configurer une chaîne de connexion Event Hubs.
Remarque
Nous vous recommandons de configurer l’enregistreur d’événements avec des informations d’identification d’identité managée lorsque cela est possible. Consultez Configurer un enregistreur d’événements avec des informations d’identification d’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.
# Details specific to API Management
$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 enregistreur d’événements est configuré dans Gestion des API, vous pouvez configurer votre stratégie log-to-eventhub pour journaliser les événements souhaités. 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.
Sous API, sélectionnez API, puis l’API à laquelle vous souhaitez ajouter la stratégie. Dans cet exemple, nous ajoutons une stratégie à l’API Echo dans le produit Illimité.
Sous l’onglet Création , sélectionnez Toutes les opérations.
Dans le volet traitement entrant ou traitement sortant, sélectionnez le bouton <> (Éditeur de code de stratégie). 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
inboundououtbound.Sélectionnez Afficher les extraits de code en haut de l’onglet. Sélectionnez Politiques avancées>Consigner dans EventHub. Cette action insère le modèle de déclaration 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-idpar 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 que la configuration est enregistrée, la stratégie est active et les événements sont enregistrés dans le hub d’événements désigné.
Remarque
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 hub d’événements est supérieur à 200 Ko, il est automatiquement tronqué et le message tronqué est transféré vers le hub d’événements. Pour les messages plus volumineux, envisagez d’utiliser Stockage Azure avec Gestion des API comme solution de contournement pour contourner la limite de 200 Ko. Pour plus d’informations, consultez Envoyer des demandes au stockage Azure à partir de Gestion des API.
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 hub d’événements auquel l’enregistreur d’événements envoie des événements.
- Sous Fonctionnalités, sélectionnez 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.
Contenu connexe
- 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