Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questa guida introduttiva illustra come configurare un'app Durable Functions usando il provider predefinito Archiviazione di Azure per usare connessioni basate su identità, in modo che l'app possa accedere all'account di archiviazione senza gestire i segreti. Un'identità gestita da Microsoft Entra ID viene gestita dalla piattaforma Azure, non è necessario effettuare il provisioning o ruotare i segreti.
Contenuto dell'articolo:
- Configurazione di sviluppo locale : usare Azurite o le credenziali per gli sviluppatori per i test locali
- Connessioni basate su identità per un'applicazione distribuita in Azure - Per abilitare un'identità gestita e configurare l'applicazione delle funzioni.
Annotazioni
L'identità gestita è supportata nelle versioni Durable Functions dalla 2.7.0 in poi.
Se non si ha un account Azure, creare un account gratuito prima di iniziare.
Prerequisiti
Per completare questo avvio rapido, avrai bisogno di:
- Un progetto di Durable Functions esistente creato nel portale di Azure o un progetto di Durable Functions locale distribuito in Azure.
- Familiarità con l'esecuzione di un'app Durable Functions in Azure.
Se non è disponibile un progetto di Durable Functions esistente distribuito in Azure, è consigliabile iniziare con uno degli argomenti di avvio rapido seguenti:
- Creare la prima funzione permanente - C#
- Creare la prima funzione durevole - JavaScript
- Creare la prima funzione durevole - Python
- Creare la prima funzione durevole - PowerShell
- Creare la prima funzione durevole - Java
Configurazione di sviluppo locale
Sono disponibili due opzioni per lo sviluppo locale. Usare Azurite per test locali rapidi senza Azure credenziali. Se è necessario testare le connessioni basate sull'identità con un account Archiviazione di Azure reale, usare invece le credenziali dello sviluppatore.
Opzione 1: Usare l'emulatore Archiviazione di Azure
Quando si sviluppa in locale, è consigliabile usare Azurite, che è Archiviazione di Azure emulatore locale. Configurare l'app per l'emulatore specificando "AzureWebJobsStorage": "UseDevelopmentStorage=true" nel file local.settings.json.
Opzione 2: Connessioni basate su identità per lo sviluppo locale
In senso stretto, un'identità gestita è disponibile solo per le app durante l'esecuzione in Azure. Tuttavia, è comunque possibile configurare un'app in esecuzione in locale per usare la connessione basata sull'identità usando le credenziali dello sviluppatore per l'autenticazione con le risorse Azure. Quindi, quando viene distribuito in Azure, l'app utilizzerà invece la configurazione dell'identità gestita.
Quando si usano le credenziali dello sviluppatore, la connessione tenta di ottenere un token dalle posizioni seguenti, in questo ordine:
- Una cache locale condivisa tra le applicazioni Microsoft
- Il contesto utente attuale in Visual Studio
- Il contesto utente corrente in Visual Studio Code
- Il contesto utente corrente nell'interfaccia della riga di comando di Azure
Se nessuna di queste opzioni ha esito positivo, viene visualizzato un errore che indica che l'app non può recuperare un token di autenticazione. Assicurati di aver effettuato l'accesso a uno degli strumenti elencati con un account che abbia accesso al tuo account di archiviazione di Azure.
Configurare il runtime per l'uso dell'identità dello sviluppatore locale
Specificare il nome dell'account Archiviazione di Azure in local.settings.json, ad esempio:
{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage__accountName": "<<your Azure Storage account name>>", "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated" } }Accedi alla risorsa di account di archiviazione di Azure nel portale di Azure.
Selezionare la scheda Controllo di accesso (IAM) e quindi selezionare Aggiungi assegnazione di ruolo.
Assegnare a se stessi ognuno dei ruoli seguenti. Per ogni ruolo selezionare "+ Seleziona membri" e cercare il messaggio di posta elettronica usato per accedere a Visual Studio, Visual Studio Code o il interfaccia della riga di comando di Azure.
- Collaboratore ai dati della coda di archiviazione
- Collaboratore ai dati di Storage Blob
- Contributore dei dati alle tabelle di archiviazione
Annotazioni
Questi sono gli stessi tre ruoli necessari per l'identità gestita durante la distribuzione in Azure. Vedere Assegnare i ruoli di accesso all'identità gestita.
Connessioni basate su identità per l'app distribuita in Azure
Abilitare una risorsa di identità gestita
Per iniziare, abilitare un'identità gestita per l'applicazione. L'app per le funzioni deve disporre di un'identità gestita assegnata dal sistema o di un'identità gestita assegnata dall'utente. Per abilitare un'identità gestita per l'app per le funzioni e per altre informazioni sulle differenze tra i due tipi di identità, vedere Panoramica delle identità gestite.
Assegnare ruoli di accesso all'identità gestita
Passare alla risorsa di Archiviazione di Azure dell'app nel portale di Azure e assegnare tre ruoli di controllo degli accessi in base al ruolo alla risorsa di identità gestita:
- Collaboratore ai dati della coda di archiviazione
- Collaboratore ai dati di Storage Blob
- Contributore dei dati alle tabelle di archiviazione
Per trovare la risorsa di identità, selezionare Assegna accesso all'identità gestita e quindi + Seleziona membri
Aggiungere la configurazione dell'identità gestita all'app
Prima di poter usare l'identità gestita dell'app, apportare alcune modifiche alle impostazioni dell'app:
Nel portale di Azure, nel menu delle risorse dell'app per le funzioni in Impostazioni selezionare Variabili di ambiente.
Nell'elenco delle impostazioni trovare AzureWebJobsStorage e selezionare l'icona Elimina.
Aggiungere un'impostazione per collegare l'account di archiviazione Azure all'applicazione.
Usare uno dei metodi seguenti a seconda del cloud in cui viene eseguita l'app:
Azure cloud: se l'app viene eseguita in globale Azure, aggiungere l'impostazione
AzureWebJobsStorage__accountNameche identifica un nome di account di archiviazione Azure. Valore di esempio:mystorageaccount123Non-Azure cloud: se l'applicazione viene eseguita in un cloud al di fuori di Azure, è necessario aggiungere le tre impostazioni seguenti per fornire URI di servizio specifici (o endpoint) dell'account di archiviazione anziché un nome account.
Il nome dell'impostazione:
AzureWebJobsStorage__blobServiceUriValore di esempio:
https://mystorageaccount123.blob.core.windows.net/Il nome dell'impostazione:
AzureWebJobsStorage__queueServiceUriValore di esempio:
https://mystorageaccount123.queue.core.windows.net/Il nome dell'impostazione:
AzureWebJobsStorage__tableServiceUriValore di esempio:
https://mystorageaccount123.table.core.windows.net/
È possibile ottenere i valori per queste variabili URI nelle informazioni sull'account di archiviazione dalla scheda Endpoint.
Annotazioni
Se si usa Azure per enti pubblici o qualsiasi altro cloud separato dall'Azure globale, è necessario usare l'opzione che fornisce URI di servizio specifici anziché solo il nome dell'account di archiviazione. Per altre informazioni sull'uso di Archiviazione di Azure con Azure per enti pubblici, vedere Develop usando l'API di archiviazione in Azure per enti pubblici.
Completare la configurazione dell'identità gestita (ricordarsi di fare clic su "Applica" dopo aver apportato le modifiche alle impostazioni):
Se si usa un'identità assegnata dal sistema, non apportare altre modifiche.
Se si usa un'identità assegnata dall'utente, aggiungere le impostazioni seguenti nella configurazione dell'app:
AzureWebJobsStorage__credential, inserire managedidentity
AzureWebJobsStorage__clientId: ottenere questo valore GUID dalla risorsa di identità gestita
Annotazioni
Durable Functions non supporta
managedIdentityResourceIdquando si usa l'identità assegnata dall'utente. Utilizzare invececlientId.
Verificare la configurazione
Per verificare che la configurazione dell'identità gestita funzioni:
- Nel portale di Azure, passa all'app delle funzioni e attiva l'orchestrazione delle Durable Functions, per esempio utilizzando una funzione trigger HTTP.
- Verificare che l'orchestrazione venga completata correttamente eseguendo una query sull'endpoint di stato o controllando la scheda Monitoraggio .
- Se vengono visualizzati errori di autenticazione, verificare che:
- Tutti e tre i ruoli di "Collaboratore dati di archiviazione" sono assegnati all'identità corretta.
- L'impostazione
AzureWebJobsStoragestringa di connessione viene rimossa. - Le
AzureWebJobsStorage__accountNameimpostazioni (o URI del servizio) sono corrette.
Passaggi successivi
- Panoramica sulle identità gestite per App Service e Funzioni di Azure
- provider Durable Functions Archiviazione di Azure
- Panoramica dei provider di archiviazione Durable Functions