Come registrare eventi nell'Hub eventi di Azure in Gestione API di Azure
SI APPLICA A: Tutti i livelli di Gestione API
Questo articolo descrive come registrare gli eventi di Gestione API usando Hub eventi di Azure.
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. 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. 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.
Nota
Attualmente, questa funzionalità non è disponibile nelle aree di lavoro.
Prerequisiti
- Istanza del servizio Gestione API. Se non è disponibile, vedere Creare un'istanza del servizio Gestione API.
- Uno spazio dei nomi di Hub eventi di Azure e un hub eventi. Per informazioni dettagliate, vedere Creare uno spazio dei nomi di Hub eventi e un hub eventi usando il portale di Azure.
Nota
La risorsa Hub eventi può trovarsi in una sottoscrizione diversa o anche in un tenant diverso rispetto alla risorsa Gestione API
Configurare l'accesso all'hub eventi
Per registrare gli eventi nell'hub eventi, è necessario configurare le credenziali per l'accesso da Gestione API. Gestione API supporta uno dei due meccanismi di accesso seguenti:
- Un'identità gestita per un'istanza di Gestione API (scelta consigliata)
- Una stringa di connessione ad Hub eventi
Nota
Quando possibile, Microsoft consiglia di usare le credenziali dell'identità gestita per una sicurezza avanzata.
Opzione 1: Configurare l'identità gestita di Gestione API
Abilitare un'identità gestita per Gestione API assegnata dal sistema o assegnata dall'utente nell'istanza di Gestione API.
- Se si abilita un'identità gestita assegnata dall'utente, prendere nota dell'ID client dell'identità.
Assegnare all'identità il ruolo di mittente dei dati di Hub eventi di Azure, con ambito dello spazio dei nomi di Hub eventi o dell'hub eventi usato per la registrazione. Per assegnare il ruolo, usare il portale di Azure o altri strumenti di Azure.
Opzione 2: Configurare una stringa di connessione ad Hub eventi
Per creare una stringa di connessione ad Hub eventi vedere Ottenere una stringa di connessione ad Hub eventi.
- È possibile usare una stringa di connessione per lo spazio dei nomi di Hub eventi o per l'hub eventi specifico usato per la registrazione da Gestione API.
- I criteri di accesso condiviso per la stringa di connessione devono abilitare almeno le autorizzazioni Invia.
Creare un logger di Gestione API
Il passaggio successivo consiste nel configurare un logger nel servizio Gestione API, in modo che possa registrare eventi nell'hub eventi.
Creare e gestire logger di Gestione API usando direttamente l'API REST di Gestione API o usando strumenti che includono Azure PowerShell, un modello Bicep o un modello di Gestione risorse di Azure.
Opzione 1: Logger con credenziali dell'identità gestita (scelta consigliata)
È possibile configurare il logger Gestione API in un hub eventi usando credenziali dell'identità gestita assegnata dall'utente o assegnata dal sistema.
Logger con credenziali di identità gestita assegnata dal sistema
Per i prerequisiti, vedere Configurare l'identità gestita di Gestione API.
Usare l'API REST Gestione API Logger - Creare o aggiornare con il corpo della richiesta seguente.
{
"properties": {
"loggerType": "azureEventHub",
"description": "Event Hub logger with system-assigned managed identity",
"credentials": {
"endpointAddress":"<EventHubsNamespace>.servicebus.windows.net",
"identityClientId":"SystemAssigned",
"name":"<EventHubName>"
}
}
}
Logger con credenziali di identità gestita assegnata dall'utente
Per i prerequisiti, vedere Configurare l'identità gestita di Gestione API.
Usare l'API REST Gestione API Logger - Creare o aggiornare con il corpo della richiesta seguente.
{
"properties": {
"loggerType": "azureEventHub",
"description": "Event Hub logger with user-assigned managed identity",
"credentials": {
"endpointAddress":"<EventHubsNamespace>.servicebus.windows.net",
"identityClientId":"<ClientID>",
"name":"<EventHubName>"
}
}
}
Opzione 2. Logger con credenziali della stringa di connessione
Per i prerequisiti, vedere Configurare una stringa di connessione ad Hub eventi.
Nota
Quando possibile, Microsoft consiglia di configurare il logger con le credenziali dell'identità gestita. Vedere Configurare il logger con le credenziali dell'identità gestita in precedenza questo articolo.
L'esempio seguente usa il cmdlet New-AzApiManagementLogger per creare un logger in un hub eventi configurando una stringa di connessione.
# 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"
Configurare il criterio log-to-eventhub
Dopo la configurazione del logger in Gestione API, è possibile configurare il criterio log-to-eventhubs in modo da registrare gli eventi desiderati. Ad esempio, usare il criterio log-to-eventhub
nella sezione dei criteri in ingresso per registrare le richieste o nella sezione dei criteri in uscita per registrare le risposte.
Passare all'istanza di Gestione API.
Selezionare le API, quindi selezionare l'API a cui si vuole aggiungere il criterio. In questo esempio si aggiungono dei criteri all'API Echo nel prodotto Unlimited.
Selezionare Tutte le operazioni.
Nella parte superiore della schermata selezionare la scheda Progettazione.
Nella finestra Elaborazione in ingresso o Elaborazione in uscita selezionare l'icona
</>
(editor di codice). Per altre informazioni, vedere Come configurare o modificare i criteri.Posizionare il cursore nella sezione relativa ai criteri
inbound
ooutbound
.Nella finestra di destra selezionare Criteri avanzati>Log to EventHub (Accedi a hub eventi). In questo modo viene inserito il modello di istruzione del criterio
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>
- Sostituire
logger-id
con il nome del logger creato nei passaggi precedenti. - È possibile usare qualsiasi espressione che restituisce una stringa come valore dell'elemento
log-to-eventhub
. In questo esempio viene registrata una stringa in formato JSON contenente data e ora, nome del servizio, ID richiesta, indirizzo IP della richiesta e nome dell'operazione.
- Sostituire
Selezionare Salva per salvare la configurazione aggiornata dei criteri. Immediatamente dopo il salvataggio, il criterio risulta attivo e gli eventi vengono registrati nell'hub eventi designato.
Nota
La dimensione massima supportata dei messaggi che può essere inviata a un hub eventi da questo criterio di Gestione API è di 200 kilobyte (KB). Se un messaggio inviato a un hub eventi è maggiore di 200 kB, verrà troncato automaticamente e il messaggio troncato verrà trasferito all'hub eventi. Per i messaggi di dimensioni maggiori, prendere in considerazione l'uso di Archiviazione di Azure con Gestione API di Azure come soluzione alternativa per ignorare il limite di 200 kB. Altri dettagli sono disponibili in questo articolo.
Visualizzare in anteprima il log in Hub eventi usando Analisi di flusso di Azure
È possibile visualizzare in anteprima il log in Hub eventi usando Query di Analisi di flusso di Azure.
- Nel portale di Azure passare all'hub eventi a cui il logger invia gli eventi.
- In Funzionalità selezionare la scheda Elabora dati.
- Nella scheda Abilita informazioni dettagliate in tempo reale dagli eventi selezionare Avvia.
- Dovrebbe essere possibile visualizzare in anteprima il log nella scheda Anteprima input. Se i dati visualizzati non sono aggiornati, selezionare Aggiorna per visualizzare gli eventi più recenti.
Passaggi successivi
- Altre informazioni sull'Hub eventi di Azure
- Altre informazioni sull'integrazione di Gestione API e Hub eventi
- Altre informazioni sull'integrazione con Azure Application Insights