Configurazione app di Azure libreria client per Python - versione 1.5.0
Configurazione app di Azure è un servizio gestito che consente agli sviluppatori di centralizzare le configurazioni delle loro applicazioni in modo semplice e sicuro.
I programmi moderni, specialmente quelli eseguiti nel cloud, hanno in genere molti componenti che sono distribuiti per natura. Disseminare le impostazioni di configurazione tra questi componenti può generare errori difficili da risolvere durante la distribuzione di un'applicazione. Usare Configurazione app per archiviare in modo sicuro tutte le impostazioni per l'applicazione in un'unica posizione.
Usare la libreria client per Configurazione app per creare e gestire le impostazioni di configurazione dell'applicazione.
Codice | sorgentePacchetto (Pypi) | Pacchetto (Conda) | Documentazione di | riferimento sulle APIDocumentazione del prodotto
Dichiarazione di non responsabilità
Il supporto dei pacchetti Python di Azure SDK per Python 2.7 è terminato 01 gennaio 2022. Per altre informazioni e domande, vedere https://github.com/Azure/azure-sdk-for-python/issues/20691Python 3.7 o versione successiva per usare questo pacchetto. Per altre informazioni, vedere Criteri di supporto per la versione di Azure SDK per Python.
Introduzione
Installare il pacchetto
Installare la libreria client Configurazione app di Azure per Python con pip:
pip install azure-appconfiguration
Prerequisiti
- Python 3.7 o versione successiva è necessario per usare questo pacchetto.
- È necessaria una sottoscrizione di Azure e un Archivio configurazione per usare questo pacchetto.
Per creare un archivio di configurazione, è possibile usare il portale di Azure o l'interfaccia della riga di comando di Azure.
Successivamente, creare l'archivio di configurazione:
az appconfig create --name <config-store-name> --resource-group <resource-group-name> --location eastus
Autenticare il client
Per interagire con il servizio Configurazione app, è necessario creare un'istanza della classe AzureAppConfigurationClient. Per rendere possibile questa operazione, è possibile usare la stringa di connessione dell'archivio di configurazione o usare un token AAD.
Usa stringa di connessione
Ottenere le credenziali
Usare il frammento di interfaccia della riga di comando di Azure seguente per ottenere il stringa di connessione dall'archivio di configurazione.
az appconfig credential list --name <config-store-name>
In alternativa, ottenere il stringa di connessione dal portale di Azure.
Creare il client
Dopo aver ottenuto il valore dell'stringa di connessione, è possibile creare AzureAppConfigurationClient:
import os
from azure.appconfiguration import AzureAppConfigurationClient
CONNECTION_STRING = os.environ["APPCONFIGURATION_CONNECTION_STRING"]
# Create app config client
client = AzureAppConfigurationClient.from_connection_string(CONNECTION_STRING)
Usare il token AAD
Di seguito viene illustrato l'uso di DefaultAzureCredential per l'autenticazione come entità servizio. AzureAppConfigurationClient accetta tuttavia tutte le credenziali di azure-identity. Per altre informazioni sulle altre credenziali, vedere la documentazione di azure-identity .
Creare un'entità servizio (facoltativo)
Questo frammento di interfaccia della riga di comando di Azure illustra come creare una nuova entità servizio. Prima di usarlo, sostituire "your-application-name" con il nome appropriato per l'entità servizio.
Creare un'entità servizio:
az ad sp create-for-rbac --name http://my-application --skip-assignment
Output:
{ "appId": "generated app id", "displayName": "my-application", "name": "http://my-application", "password": "random password", "tenant": "tenant id" }
Usare l'output per impostare AZURE_CLIENT_ID ("appId" sopra), AZURE_CLIENT_SECRET ("password" precedente) e AZURE_TENANT_ID ("tenant" sopra). Nell'esempio seguente viene illustrato un modo per eseguire questa operazione in Bash:
export AZURE_CLIENT_ID="generated app id"
export AZURE_CLIENT_SECRET="random password"
export AZURE_TENANT_ID="tenant id"
Assegnare uno dei ruoli Configurazione app applicabili all'entità servizio.
Creare un client
Dopo aver impostato le AZURE_CLIENT_ID, AZURE_CLIENT_SECRET e AZURE_TENANT_ID variabili di ambiente, DefaultAzureCredential sarà in grado di autenticare AzureAppConfigurationClient.
La creazione del client richiede anche l'URL dell'archivio di configurazione, che è possibile ottenere dall'interfaccia della riga di comando di Azure o dal portale di Azure. Nel portale di Azure è possibile trovare l'URL come "Endpoint" del servizio
from azure.identity import DefaultAzureCredential
from azure.appconfiguration import AzureAppConfigurationClient
credential = DefaultAzureCredential()
client = AzureAppConfigurationClient(base_url="your_endpoint_url", credential=credential)
Concetti chiave
Impostazione di configurazione
Un'impostazione di configurazione è la risorsa fondamentale all'interno di un archivio di configurazione. Nella forma più semplice è una chiave e un valore. Esistono tuttavia proprietà aggiuntive, ad esempio il tipo di contenuto modificabile e i campi tag che consentono di interpretare o associare il valore in modi diversi.
La proprietà Label di un'impostazione di configurazione consente di separare le impostazioni di configurazione in dimensioni diverse. Queste dimensioni sono definite dall'utente e possono assumere qualsiasi forma. Alcuni esempi comuni di dimensioni da usare per un'etichetta includono aree, versioni semantiche o ambienti. Molte applicazioni hanno un set obbligatorio di chiavi di configurazione che hanno valori variabili in quanto l'applicazione esiste in dimensioni diverse.
Ad esempio, MaxRequests può essere 100 in "NorthAmerica" e 200 in "WestEurope". Creando un'impostazione di configurazione denominata MaxRequests con un'etichetta "NorthAmerica" e un'altra, solo con un valore diverso, nell'etichetta "WestEurope", un'applicazione può recuperare facilmente Impostazioni di configurazione durante l'esecuzione in queste due dimensioni.
Proprietà di un'impostazione di configurazione:
key : str
label : str
content_type : str
value : str
last_modified : str
read_only : bool
tags : dict
etag : str
Snapshot
Configurazione app di Azure consente agli utenti di creare uno snapshot temporizzato dell'archivio di configurazione, fornendo loro la possibilità di trattare le impostazioni come una versione coerente. Questa funzionalità consente alle applicazioni di mantenere una visualizzazione coerente della configurazione, assicurandosi che non siano presenti mancate corrispondenze di versione alle singole impostazioni a causa della lettura degli aggiornamenti. Gli snapshot sono non modificabili, assicurandosi che la configurazione possa essere eseguito in modo sicuro a una configurazione valida per l'ultima nota in caso di problema.
Esempio
Le sezioni seguenti forniscono diversi frammenti di codice che coprono alcune delle attività del servizio di configurazione più comuni, tra cui:
- Creare un'impostazione di configurazione
- Ottenere un'impostazione di configurazione
- Eliminare un'impostazione di configurazione
- Impostazioni di configurazione elenco
- Creare uno snapshot
- Ottenere uno snapshot
- Archiviare uno snapshot
- Ripristinare uno snapshot
- Elencare gli snapshot
- Elencare le impostazioni di configurazione di uno snapshot
- API asincrone
Creare un'impostazione di configurazione
Creare un'impostazione di configurazione da archiviare nell'archivio di configurazione. Esistono due modi per archiviare un'impostazione di configurazione:
- add_configuration_setting crea un'impostazione solo se l'impostazione non esiste già nell'archivio.
config_setting = ConfigurationSetting(
key="MyKey", label="MyLabel", value="my value", content_type="my content type", tags={"my tag": "my tag value"}
)
added_config_setting = client.add_configuration_setting(config_setting)
- set_configuration_setting crea un'impostazione se non esiste o esegue l'override di un'impostazione esistente.
added_config_setting.value = "new value"
added_config_setting.content_type = "new content type"
updated_config_setting = client.set_configuration_setting(added_config_setting)
Ottenere un'impostazione di configurazione
Ottenere un'impostazione di configurazione archiviata in precedenza.
fetched_config_setting = client.get_configuration_setting(key="MyKey", label="MyLabel")
Eliminare un'impostazione di configurazione
Eliminare un'impostazione di configurazione esistente.
client.delete_configuration_setting(
key="MyKey",
label="MyLabel",
)
Impostazioni di configurazione elenco
Elencare tutte le impostazioni di configurazione filtrate con label_filter e/o key_filter.
config_settings = client.list_configuration_settings(label_filter="MyLabel")
for item in config_settings:
print_configuration_setting(item)
Creare uno snapshot
from azure.appconfiguration import ConfigurationSettingsFilter
filters = [ConfigurationSettingsFilter(key="my_key1", label="my_label1")]
response = client.begin_create_snapshot(name=snapshot_name, filters=filters)
created_snapshot = response.result()
print_snapshot(created_snapshot)
Ottenere uno snapshot
received_snapshot = client.get_snapshot(name=snapshot_name)
Archiviare uno snapshot
archived_snapshot = client.archive_snapshot(name=snapshot_name)
print_snapshot(archived_snapshot)
Ripristinare uno snapshot
recovered_snapshot = client.recover_snapshot(name=snapshot_name)
print_snapshot(recovered_snapshot)
Elencare gli snapshot
for snapshot in client.list_snapshots():
print_snapshot(snapshot)
Elencare le impostazioni di configurazione di uno snapshot
for config_setting in client.list_configuration_settings(snapshot_name=snapshot_name):
print_configuration_setting(config_setting)
API asincrone
Il client asincrono è supportato. Per usare la libreria client asincrona, importare AzureAppConfigurationClient dal pacchetto azure.appconfiguration.aio anziché azure.appconfiguration
import os
from azure.appconfiguration.aio import AzureAppConfigurationClient
CONNECTION_STRING = os.environ["APPCONFIGURATION_CONNECTION_STRING"]
# Create app config client
client = AzureAppConfigurationClient.from_connection_string(CONNECTION_STRING)
Questo oggetto AzureAppConfigurationClient asincrono ha le stesse firme del metodo di sincronizzazione, ad eccezione del fatto che sono asincrone. Ad esempio, per recuperare un'impostazione di configurazione in modo asincrono, è possibile usare async_client:
fetched_config_setting = await client.get_configuration_setting(key="MyKey", label="MyLabel")
Per usare list_configuration_settings, chiamarlo in modo sincrono e scorrere in modo asincrono l'iteratore asincrono restituito
config_settings = client.list_configuration_settings(label_filter="MyLabel")
async for item in config_settings:
print_configuration_setting(item)
from azure.appconfiguration import ConfigurationSettingsFilter
filters = [ConfigurationSettingsFilter(key="my_key1", label="my_label1")]
response = await client.begin_create_snapshot(name=snapshot_name, filters=filters)
created_snapshot = await response.result()
print_snapshot(created_snapshot)
received_snapshot = await client.get_snapshot(name=snapshot_name)
archived_snapshot = await client.archive_snapshot(name=snapshot_name)
print_snapshot(archived_snapshot)
recovered_snapshot = await client.recover_snapshot(name=snapshot_name)
print_snapshot(recovered_snapshot)
async for snapshot in client.list_snapshots():
print_snapshot(snapshot)
async for config_setting in client.list_configuration_settings(snapshot_name=snapshot_name):
print_configuration_setting(config_setting)
Risoluzione dei problemi
Per informazioni dettagliate su come diagnosticare vari scenari di errore, vedere la guida alla risoluzione dei problemi .
Passaggi successivi
Altro codice di esempio
In questo repository GitHub sono disponibili diversi esempi di libreria client Configurazione app. Queste includono:
- Salve, mondo / Versione asincrona
- Hello world con etichette / Versione asincrona
- Impostare un'impostazione di configurazione readonly / Versione asincrona
- Leggere la cronologia delle revisioni / Versione asincrona
- Ottenere un'impostazione se modificata / Versione asincrona
- Creare, recuperare e aggiornare lo stato di uno snapshot / delle impostazioni di configurazioneVersione asincrona
Per altre informazioni, vedere gli esempi README.
Contributo
In questo progetto sono benvenuti i contributi e i suggerimenti. Per la maggior parte dei contenuti è necessario sottoscrivere un contratto di licenza di collaborazione (CLA, Contributor License Agreement) che stabilisce che l'utente ha il diritto di concedere, e di fatto concede a Microsoft i diritti d'uso del suo contributo. Per informazioni dettagliate, vedere https://cla.microsoft.com.
Quando si invia una richiesta pull, un bot CLA determina automaticamente se è necessario specificare un contratto CLA e completare la richiesta pull in modo appropriato (ad esempio con un'etichetta e un commento). Seguire le istruzioni specificate dal bot. È sufficiente eseguire questa operazione una sola volta per tutti i repository che usano il contratto CLA Microsoft.
Questo progetto ha adottato il Codice di comportamento di Microsoft per l'open source. Per altre informazioni, vedere Code of Conduct FAQ (Domande frequenti sul Codice di comportamento) oppure contattare opencode@microsoft.com per eventuali altre domande o commenti.
Azure SDK for Python