Condividi tramite


Creare un’app Python con l’SDK di Azure per Python

Questo documento mostra degli esempi su come usare l’SDK di Azure per Python per accedere ai dati in Configurazione app di Azure.

Suggerimento

Configurazione app offre una libreria di provider per Python basata sull’SDK di Python ed è progettata per essere più semplice da usare con funzionalità più avanzate. Consente di usare le impostazioni di configurazione come un dizionario e offre altre funzionalità, come la composizione della configurazione da più etichette, il ritaglio del nome della chiave e la risoluzione automatica dei riferimenti a Key Vault. Per altre informazioni, vedere l’Avvio rapido di Python.

Prerequisiti

Creare un valore chiave

Aggiungere il valore chiave seguente all’archivio di Configurazione app e lasciare Etichetta e Tipo di contenuto con i valori predefiniti. Per altre informazioni su come aggiungere valori chiave a un archivio usando il portale di Azure o l’interfaccia della riga di comando, andare a Creare un valore chiave.

Chiave valore
TestApp:Settings:Message Dati di Configurazione app di Azure

Configurare l’app Python

  1. Creare una nuova directory per il progetto chiamato app-configuration-example.

    mkdir app-configuration-example
    
  2. Passare alla directory app-configuration-example appena creata.

    cd app-configuration-example
    
  3. Installare la libreria client di Configurazione app di Azure usando il comando pip install.

    pip install azure-appconfiguration
    
  4. Creare un nuovo file chiamato app-configuration-example.py nella directory app-configuration-example e aggiungere il codice seguente:

    import os
    from azure.appconfiguration import AzureAppConfigurationClient, ConfigurationSetting
    
    try:
        print("Azure App Configuration - Python example")
        # Example code goes here
    except Exception as ex:
        print('Exception:')
        print(ex)
    

Note

I frammenti di codice in questo esempio consentono di iniziare a usare la libreria client di Configurazione app per Python. Per l'applicazione, è consigliabile gestire le eccezioni in base alle esigenze. Per altre informazioni sulla gestione delle eccezioni, vedere la documentazione di Python SDK.

Esempi di codice

I frammenti di codice di esempio di questa sezione illustrano come eseguire operazioni comuni con la libreria client di Configurazione app per Python. Aggiungere questi frammenti di codice al blocco try nel file app-configuration-example.py creato in precedenza.

Note

La libreria client di Configurazione app fa riferimento a un oggetto chiave-valore come ConfigurationSetting. Pertanto, in questo articolo, gli oggetti chiave-valore nell'archivio di Configurazione app verranno definiti come impostazioni di configurazione.

Di seguito viene descritto come:

Connettersi a un archivio di Configurazione app

Il frammento di codice seguente crea un’istanza di AzureAppConfigurationClient. È possibile connettersi all'archivio di Configurazione app usando Microsoft Entra ID (scelta consigliata) o una stringa di connessione.

Usare DefaultAzureCredential per eseguire l'autenticazione nell'archivio di Configurazione app. Seguire le istruzioni per assegnare le credenziali al ruolo Lettore dati di Configurazione app. Assicurarsi di consentire tempo sufficiente per la propagazione dell’autorizzazione prima di eseguire l’applicazione.

from azure.identity import DefaultAzureCredential

credential = DefaultAzureCredential()

endpoint = os.getenv('AZURE_APPCONFIG_ENDPOINT')
app_config_client = AzureAppConfigurationClient(base_url=endpoint, credential=credential)

Ottenere un'impostazione di configurazione

Il frammento di codice seguente recupera un'impostazione di configurazione in base al nome key.

retrieved_config_setting = app_config_client.get_configuration_setting(key='TestApp:Settings:Message')
print("\nRetrieved configuration setting:")
print("Key: " + retrieved_config_setting.key + ", Value: " + retrieved_config_setting.value)

Aggiungere un'impostazione di configurazione

Il frammento di codice seguente crea un oggetto ConfigurationSetting con i campi key e value e richiama il metodo add_configuration_setting. Questo metodo genererà un'eccezione se si prova ad aggiungere un'impostazione di configurazione già esistente nell'archivio. Per evitare questa eccezione, in alternativa è possibile usare il metodo set_configuration_setting.

config_setting = ConfigurationSetting(
    key='TestApp:Settings:NewSetting',
    value='New setting value'
)
added_config_setting = app_config_client.add_configuration_setting(config_setting)
print("\nAdded configuration setting:")
print("Key: " + added_config_setting.key + ", Value: " + added_config_setting.value)

Ottenere un elenco di impostazioni di configurazione

Il frammento di codice seguente recupera un elenco di impostazioni di configurazione. Gli argomenti key_filter e label_filter possono essere specificati per filtrare rispettivamente gli oggetti chiave-valore basati su key e label. Per altre informazioni sui filtri, vedere come eseguire query sulle impostazioni di configurazione.

filtered_settings_list = app_config_client.list_configuration_settings(key_filter="TestApp*")
print("\nRetrieved list of configuration settings:")
for item in filtered_settings_list:
    print("Key: " + item.key + ", Value: " + item.value)

Bloccare un'impostazione di configurazione

Lo stato di blocco di un oggetto chiave-valore in Configurazione app è indicato dall'attributo read_only dell'oggetto ConfigurationSetting. Se read_only è True, l'impostazione è bloccata. È possibile richiamare il metodo set_read_only con l'argomento read_only=True per bloccare l'impostazione di configurazione.

locked_config_setting = app_config_client.set_read_only(added_config_setting, read_only=True)
print("\nRead-only status for " + locked_config_setting.key + ": " + str(locked_config_setting.read_only))

Sbloccare un'impostazione di configurazione

Se l'attributo read_only di ConfigurationSetting è False, l'impostazione è sbloccata. È possibile richiamare il metodo set_read_only con l'argomento read_only=False per sbloccare l'impostazione di configurazione.

unlocked_config_setting = app_config_client.set_read_only(locked_config_setting, read_only=False)
print("\nRead-only status for " + unlocked_config_setting.key + ": " + str(unlocked_config_setting.read_only))

Aggiornare un'impostazione di configurazione

È possibile usare il metodo set_configuration_setting per aggiornare un'impostazione esistente o crearne una nuova. Il frammento di codice seguente cambia il valore di un'impostazione di configurazione esistente.

added_config_setting.value = "Value has been updated!"
updated_config_setting = app_config_client.set_configuration_setting(added_config_setting)
print("\nUpdated configuration setting:")
print("Key: " + updated_config_setting.key + ", Value: " + updated_config_setting.value)

Eliminare un'impostazione di configurazione

Il frammento di codice seguente elimina un'impostazione di configurazione in base al nome key.

deleted_config_setting = app_config_client.delete_configuration_setting(key="TestApp:Settings:NewSetting")
print("\nDeleted configuration setting:")
print("Key: " + deleted_config_setting.key + ", Value: " + deleted_config_setting.value)

Eseguire l'app

In questo esempio è stata creata un’app Python che usa la libreria client di Configurazione app di Azure per recuperare un’impostazione di configurazione creata tramite il portale di Azure, aggiungere una nuova impostazione, recuperare un elenco di impostazioni esistenti, bloccare e sbloccare un’impostazione, aggiornare un’impostazione e, infine, eliminare un’impostazione.

A questo punto, il file app-configuration-example.py dovrebbe avere il codice seguente:

import os
from azure.identity import DefaultAzureCredential
from azure.appconfiguration import AzureAppConfigurationClient, ConfigurationSetting

try:
    print("Azure App Configuration - Python example")
    # Example code goes here

    credential = DefaultAzureCredential()
    endpoint = os.getenv('AZURE_APPCONFIG_ENDPOINT')
    app_config_client = AzureAppConfigurationClient(base_url=endpoint, credential=credential)

    retrieved_config_setting = app_config_client.get_configuration_setting(key='TestApp:Settings:Message')
    print("\nRetrieved configuration setting:")
    print("Key: " + retrieved_config_setting.key + ", Value: " + retrieved_config_setting.value)

    config_setting = ConfigurationSetting(
        key='TestApp:Settings:NewSetting',
        value='New setting value'
    )
    added_config_setting = app_config_client.add_configuration_setting(config_setting)
    print("\nAdded configuration setting:")
    print("Key: " + added_config_setting.key + ", Value: " + added_config_setting.value)

    filtered_settings_list = app_config_client.list_configuration_settings(key_filter="TestApp*")
    print("\nRetrieved list of configuration settings:")
    for item in filtered_settings_list:
        print("Key: " + item.key + ", Value: " + item.value)

    locked_config_setting = app_config_client.set_read_only(added_config_setting, read_only=True)
    print("\nRead-only status for " + locked_config_setting.key + ": " + str(locked_config_setting.read_only))

    unlocked_config_setting = app_config_client.set_read_only(locked_config_setting, read_only=False)
    print("\nRead-only status for " + unlocked_config_setting.key + ": " + str(unlocked_config_setting.read_only))

    added_config_setting.value = "Value has been updated!"
    updated_config_setting = app_config_client.set_configuration_setting(added_config_setting)
    print("\nUpdated configuration setting:")
    print("Key: " + updated_config_setting.key + ", Value: " + updated_config_setting.value)

    deleted_config_setting = app_config_client.delete_configuration_setting(key="TestApp:Settings:NewSetting")
    print("\nDeleted configuration setting:")
    print("Key: " + deleted_config_setting.key + ", Value: " + deleted_config_setting.value)

except Exception as ex:
    print('Exception:')
    print(ex)
  1. Configurare una variabile di ambiente

    Impostare la variabile di ambiente denominata AZURE_APPCONFIG_ENDPOINT sull'endpoint dell'archivio di Configurazione app disponibile in Panoramica dello store nel portale di Azure.

    Se si usa il prompt dei comandi di Windows, eseguire il comando seguente e riavviare il prompt per rendere effettiva la modifica:

    setx AZURE_APPCONFIG_ENDPOINT "endpoint-of-your-app-configuration-store"
    

    Se si usa PowerShell, eseguire il comando seguente:

    $Env:AZURE_APPCONFIG_ENDPOINT = "endpoint-of-your-app-configuration-store"
    

    Se si usa macOS o Linux, eseguire il comando seguente:

    export AZURE_APPCONFIG_ENDPOINT='<endpoint-of-your-app-configuration-store>'
    
  2. Dopo aver impostato correttamente la variabile di ambiente, passare alla directory contenente il file app-configuration-example.py, nella finestra della console, ed eseguire il comando Python seguente per eseguire l’app:

    python app-configuration-example.py
    

    Dovrebbe venire visualizzato l'output seguente.

    Azure App Configuration - Python example
    
    Retrieved configuration setting:
    Key: TestApp:Settings:Message, Value: Data from Azure App Configuration
    
    Added configuration setting:
    Key: TestApp:Settings:NewSetting, Value: New setting value
    
    Retrieved list of configuration settings:
    Key: TestApp:Settings:Message, Value: Data from Azure App Configuration
    Key: TestApp:Settings:NewSetting, Value: New setting value
    
    Read-only status for TestApp:Settings:NewSetting: True
    
    Read-only status for TestApp:Settings:NewSetting: False
    
    Updated configuration setting:
    Key: TestApp:Settings:NewSetting, Value: Value has been updated!
    
    Deleted configuration setting:
    Key: TestApp:Settings:NewSetting, Value: Value has been updated!
    

Pulire le risorse

Se non si vuole continuare a usare le risorse create in questo articolo, eliminare il gruppo di risorse creato qui per evitare addebiti.

Importante

L'eliminazione di un gruppo di risorse è irreversibile. Il gruppo di risorse e tutte le risorse in esso contenute vengono eliminati in modo permanente. Assicurarsi di non eliminare accidentalmente il gruppo di risorse o le risorse sbagliate. Se le risorse per questo articolo sono state create in un gruppo di risorse che contiene altre risorse che si vogliono mantenere, eliminare ogni risorsa singolarmente dal rispettivo riquadro anziché eliminare il gruppo di risorse.

  1. Accedere al portale di Azure e selezionare Gruppi di risorse.
  2. Nella casella Filtra per nome immettere il nome del gruppo di risorse.
  3. Nell'elenco dei risultati selezionare il nome del gruppo di risorse per visualizzare una panoramica.
  4. Selezionare Elimina gruppo di risorse.
  5. Verrà chiesto di confermare l'eliminazione del gruppo di risorse. Immettere il nome del gruppo di risorse per confermare e selezionare Elimina.

Dopo qualche istante, il gruppo di risorse e tutte le risorse che contiene vengono eliminati.

Passaggi successivi

Questa guida ha illustrato come usare l’SDK di Azure per Python per accedere ai dati in Configurazione app di Azure.

Per altri esempi di codice, vedere:

Per informazioni su come usare Configurazione app di Azure con le app Python, vedere: