Come registrare eventi nell'Hub eventi di Azure in Gestione API di AzureHow to log events to Azure Event Hubs in Azure API Management

Hub di eventi di Azure è un servizio di ingresso dati altamente scalabile che può inserire milioni di eventi al secondo in modo che è possibile elaborare e analizzare enormi quantità di dati generati per i dispositivi connessi e le applicazioni.Azure Event Hubs is a highly scalable data ingress service that can ingest millions of events per second so that you can process and analyze the massive amounts of data produced by your connected devices and applications. Gli hub di eventi fungono da "porta principale" per una pipeline di eventi e una volta che i dati vengono raccolti in un hub di eventi, possono essere trasformati e archiviati con qualsiasi provider di analisi in tempo reale o adattatori di invio in batch/archiviazione.Event Hubs acts as the "front door" for an event pipeline, and once data is collected into an event hub, it can be transformed and stored using any real-time analytics provider or batching/storage adapters. Gli hub di eventi separano la produzione di un flusso di eventi dal consumo di questi eventi, in modo che i consumer di eventi può accedere agli eventi in base a una pianificazione.Event Hubs decouples the production of a stream of events from the consumption of those events, so that event consumers can access the events on their own schedule.

Questo articolo è complementare al video su come Integrare la Gestione API di Azure con gli Hub di eventi e descrive come registrare gli eventi di gestione API mediante gli hub di eventi di Azure.This article is a companion to the Integrate Azure API Management with Event Hubs video and describes how to log API Management events using Azure Event Hubs.

Creare un Hub di eventi di AzureCreate an Azure Event Hub

Per creare un nuovo hub eventi, accedere al portale di Azure classico, quindi fare clic su Nuovo->Servizi app->Bus di servizio->Hub eventi->Creazione rapida.To create a new Event Hub, sign-in to the Azure classic portal and click New->App Services->Service Bus->Event Hub->Quick Create. Immettere un nome e un'area per l'hub eventi, selezionare una sottoscrizione e quindi uno spazio dei nomi.Enter an Event Hub name, region, select a subscription, and select a namespace. Se non è ancora stato creato uno spazio dei nomi, è possibile crearne uno immettendo un nome nella casella di testo Spazio dei nomi .If you haven't previously created a namespace you can create one by typing a name in the Namespace textbox. Al termine della configurazione di tutte le proprietà, fare clic su Crea un nuovo hub eventi per creare l'hub eventi.Once all properties are configured, click Create a new Event Hub to create the Event Hub.

Creare un hub eventi

Passare quindi alla scheda Configura per il nuovo hub eventi e creare due tipi di criteri di accesso condiviso.Next, navigate to the Configure tab for your new Event Hub and create two shared access policies. Denominare il primo tipo di criteri Invio e assegnare ad essi le autorizzazioni di invio.Name the first one Sending and give it Send permissions.

Criterio Invio

Denominare il secondo criterio Ricezione, assegnare al criterio le autorizzazioni Listen, quindi fare clic su Salva.Name the second one Receiving, give it Listen permissions, and click Save.

Criterio Ricezione

Ogni tipo di criteri di accesso condiviso consente alle applicazioni di inviare e ricevere eventi verso e dall'hub eventi.Each shared access policy allows applications to send and receive events to and from the Event Hub. Per accedere alle stringhe di connessione relative a questi criteri, passare alla scheda Dashboard dell'hub eventi e fare clic su Informazioni di connessione.To access the connection strings for these policies, navigate to the Dashboard tab of the Event Hub and click Connection information.

Stringa di connessione

La stringa di connessione di invio viene usata durante la registrazione di eventi, mentre la stringa di connessione di ricezione viene usata durante il download di eventi dall'hub eventi.The Sending connection string is used when logging events, and the Receiving connection string is used when downloading events from the Event Hub.

Stringa di connessione

Creare un logger di Gestione APICreate an API Management logger

Dopo aver creato un hub eventi, è necessario configurare un Logger nel servizio Gestione API, in modo che possa registrare eventi nell'hub eventi.Now that you have an Event Hub, the next step is to configure a Logger in your API Management service so that it can log events to the Event Hub.

I logger di Gestione API vengono configurati mediante l' API REST Gestione API.API Management loggers are configured using the API Management REST API. Prima di usare l'API REST per la prima volta, vedere i prerequisiti e assicurarsi di avere abilitato l'accesso all'API REST.Before using the REST API for the first time, review the prerequisites and ensure that you have enabled access to the REST API.

Per creare un logger, effettuare una richiesta HTTP PUT usando il seguente modello URL.To create a logger, make an HTTP PUT request using the following URL template.

https://{your service}.management.azure-api.net/loggers/{new logger name}?api-version=2014-02-14-preview

  • Sostituire {your service} con il nome dell'istanza del servizio Gestione API.Replace {your service} with the name of your API Management service instance.
  • Sostituire {new logger name} con il nome desiderato per il nuovo logger.Replace {new logger name} with the desired name for your new logger. Si farà riferimento a questo nome al momento di configurare i criteri log-to-eventhub .You will reference this name when you configure the log-to-eventhub policy

Aggiungere le intestazioni seguenti alla richiesta.Add the following headers to the request.

Specificare il corpo della richiesta usando il modello seguente.Specify the request body using the following template.

{
  "loggertype" : "AzureEventHub",
  "description" : "Sample logger description",
  "credentials" : {
    "name" : "Name of the Event Hub from the Azure Classic Portal",
    "connectionString" : "Endpoint=Event Hub Sender connection string"
    }
}
  • loggertype deve essere impostato su AzureEventHub.loggertype must be set to AzureEventHub.
  • description fornisce una descrizione facoltativa del logger e può essere una stringa di lunghezza zero, se lo si desidera.description provides an optional description of the logger and can be a zero length string if desired.
  • credentials contiene i valori name e connectionString di Hub eventi di Azure.credentials contains the name and connectionString of your Azure Event Hub.

Quando si esegue la richiesta, se viene creato il logger, verrà visualizzato un codice di stato 201 Created .When you make the request, if the logger is created a status code of 201 Created is returned.

Nota

Per altri possibili codici restituiti e i relativi motivi, vedere Creare un logger.For other possible return codes and their reasons, see Create a Logger. Per informazioni su come eseguire altre operazioni, ad esempio elencare, aggiornare o eliminare, vedere la documentazione relativa all'entità Logger .To see how perform other operations such as list, update, and delete, see the Logger entity documentation.

Configurare i criteri log-to-eventhubsConfigure log-to-eventhubs policies

Dopo la configurazione del logger in Gestione API, è possibile configurare i criteri log-to-eventhubs in modo da registrare gli eventi desiderati.Once your logger is configured in API Management, you can configure your log-to-eventhubs policies to log the desired events. I criteri log-to-eventhubs possono essere usati nella sezione relativa ai criteri in ingresso o in quella relativa ai criteri in uscita.The log-to-eventhubs policy can be used in either the inbound policy section or the outbound policy section.

Per configurare i criteri, accedere al portale di Azure, passare al servizio Gestione API e fare clic su Portale di pubblicazione per accedervi.To configure policies, sign-in to the Azure portal, navigate to your API Management service, and click Publisher portal to access the publisher portal.

Portale di pubblicazione

Scegliere Criteri dal menu di Gestione API a sinistra, selezionare il prodotto e l'API desiderati e quindi fare clic su Aggiungi criteri.Click Policies in the API Management menu on the left, select the desired product and API, and click Add policy. In questo esempio si aggiungono dei criteri all'API Echo nel prodotto Unlimited.In this example we're adding a policy to the Echo API in the Unlimited product.

Aggiungi criteri

Posizionare il cursore nella sezione dei criteri inbound e fare clic sui criteri Accedi a Hub eventi per inserire il modello di istruzione dei criteri log-to-eventhub.Position your cursor in the inbound policy section and click the Log to EventHub policy to insert the log-to-eventhub policy statement template.

Policy editor

<log-to-eventhub logger-id ='logger-id'>
  @( string.Join(",", DateTime.UtcNow, context.Deployment.ServiceName, context.RequestId, context.Request.IpAddress, context.Operation.Name))
</log-to-eventhub>

Sostituire logger-id con il nome del logger di Gestione API configurato nel passaggio precedente.Replace logger-id with the name of the API Management logger you configured in the previous step.

È possibile usare qualsiasi espressione che restituisce una stringa come valore dell'elemento log-to-eventhub .You can use any expression that returns a string as the value for the log-to-eventhub element. In questo esempio viene registrata una stringa contenente data e ora, nome del servizio, ID richiesta, indirizzo IP della richiesta e nome dell'operazione.In this example a string containing the date and time, service name, request id, request ip address, and operation name is logged.

Fare clic su Salva per salvare la configurazione aggiornata dei criteri.Click Save to save the updated policy configuration. Il criterio risulta attivo immediatamente dopo il salvataggio e gli eventi vengono registrati nell'hub eventi designato.As soon as it is saved the policy is active and events are logged to the designated Event Hub.

Passaggi successiviNext steps

Guardare un video con la procedura dettagliataWatch a video walkthrough