Azure App Configuration Clientbibliothek für Python– Version 1.5.0
Azure App Configuration ist ein verwalteter Dienst, mit dem Entwickler ihre Anwendungskonfigurationen einfach und sicher zentralisieren können.
Moderne Programme, vor allem in einer Cloud ausgeführte Programme, verfügen normalerweise über viele verteilte Komponenten. Das Versehen dieser Komponenten mit Konfigurationseinstellungen kann bei einer Anwendungsbereitstellung zu Fehlern führen, deren Behebung schwierig ist. Verwenden Sie App Configuration, um alle Einstellungen für Ihre Anwendung sicher an einem Ort zu speichern.
Verwenden Sie die Clientbibliothek für App Configuration, um Anwendungskonfigurationseinstellungen zu erstellen und zu verwalten.
Quellcode | Paket (Pypi) | Paket (Conda) | API-Referenzdokumentation | Produktdokumentation
Haftungsausschluss
Die Unterstützung von Azure SDK-Python-Paketen für Python 2.7 endet am 01. Januar 2022. Weitere Informationen und Fragen finden Sie unter https://github.com/Azure/azure-sdk-for-python/issues/20691Python 3.7 oder höher ist erforderlich, um dieses Paket verwenden zu können. Weitere Informationen finden Sie unter Unterstützungsrichtlinie für Azure SDK für Python-Versionen.
Erste Schritte
Installieren des Pakets
Installieren Sie die Azure App Configuration-Clientbibliothek für Python mit pip:
pip install azure-appconfiguration
Voraussetzungen
- Für die Verwendung dieses Pakets ist Python 3.7 oder höher erforderlich.
- Sie benötigen ein Azure-Abonnement und einen Konfigurationsspeicher , um dieses Paket verwenden zu können.
Zum Erstellen eines Konfigurationsspeichers können Sie das Azure-Portal oder die Azure CLI verwenden.
Erstellen Sie anschließend den Konfigurationsspeicher:
az appconfig create --name <config-store-name> --resource-group <resource-group-name> --location eastus
Authentifizieren des Clients
Um mit dem App Configuration-Dienst zu interagieren, müssen Sie eine instance der AzureAppConfigurationClient-Klasse erstellen. Um dies zu ermöglichen, können Sie entweder die Verbindungszeichenfolge des Konfigurationsspeichers oder ein AAD-Token verwenden.
Verbindungszeichenfolge verwenden
Abrufen von Anmeldeinformationen
Verwenden Sie den folgenden Azure CLI-Codeausschnitt, um die Verbindungszeichenfolge aus dem Konfigurationsspeicher abzurufen.
az appconfig credential list --name <config-store-name>
Alternativ können Sie die Verbindungszeichenfolge aus dem Azure-Portal abrufen.
Erstellen des Clients
Sobald Sie über den Wert der Verbindungszeichenfolge verfügen, können Sie azureAppConfigurationClient erstellen:
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)
Verwenden des AAD-Tokens
Hier wird die Verwendung von DefaultAzureCredential zur Authentifizierung als Dienstprinzipal veranschaulicht. AzureAppConfigurationClient akzeptiert jedoch alle Azure-Identity-Anmeldeinformationen. Weitere Informationen zu anderen Anmeldeinformationen finden Sie in der Dokumentation zu azure-identity .
Erstellen eines Dienstprinzipals (optional)
Dieser Azure CLI-Codeausschnitt zeigt, wie Sie einen neuen Dienstprinzipal erstellen. Ersetzen Sie vor der Verwendung "Your-application-name" durch den entsprechenden Namen für Ihren Dienstprinzipal.
Erstellen Sie einen Dienstprinzipal:
az ad sp create-for-rbac --name http://my-application --skip-assignment
Ausgabe:
{ "appId": "generated app id", "displayName": "my-application", "name": "http://my-application", "password": "random password", "tenant": "tenant id" }
Verwenden Sie die Ausgabe, um AZURE_CLIENT_ID ("appId" oben), AZURE_CLIENT_SECRET ("Password" oben) und AZURE_TENANT_ID ("Mandant" oben) festzulegen. Das folgende Beispiel zeigt eine Möglichkeit, dies in Bash zu tun:
export AZURE_CLIENT_ID="generated app id"
export AZURE_CLIENT_SECRET="random password"
export AZURE_TENANT_ID="tenant id"
Weisen Sie dem Dienstprinzipal eine der anwendbaren App Configuration Rollen zu.
Erstellen eines Clients
Sobald die AZURE_CLIENT_ID, AZURE_CLIENT_SECRET und AZURE_TENANT_ID Umgebungsvariablen festgelegt sind, kann DefaultAzureCredential den AzureAppConfigurationClient authentifizieren.
Zum Erstellen des Clients ist auch die URL Ihres Konfigurationsspeichers erforderlich, die Sie über die Azure CLI oder das Azure-Portal abrufen können. Im Azure-Portal ist die URL als Dienst "Endpunkt" aufgeführt.
from azure.identity import DefaultAzureCredential
from azure.appconfiguration import AzureAppConfigurationClient
credential = DefaultAzureCredential()
client = AzureAppConfigurationClient(base_url="your_endpoint_url", credential=credential)
Wichtige Begriffe
Konfigurationseinstellung
Eine Konfigurationseinstellung ist die grundlegende Ressource in einem Konfigurationsspeicher. In seiner einfachsten Form ist es ein Schlüssel und ein Wert. Es gibt jedoch zusätzliche Eigenschaften, z. B. die änderbaren Inhaltstyp- und Tagsfelder, mit denen der Wert auf unterschiedliche Weise interpretiert oder zugeordnet werden kann.
Die Label-Eigenschaft einer Konfigurationseinstellung bietet eine Möglichkeit, Konfigurationseinstellungen in verschiedene Dimensionen zu trennen. Diese Dimensionen sind benutzerdefinierter Art und können eine beliebige Form annehmen. Einige gängige Beispiele für Dimensionen, die für eine Bezeichnung verwendet werden sollen, sind Regionen, semantische Versionen oder Umgebungen. Viele Anwendungen verfügen über einen erforderlichen Satz von Konfigurationsschlüsseln, die unterschiedliche Werte aufweisen, da die Anwendung in verschiedenen Dimensionen vorhanden ist.
Beispielsweise kann MaxRequests in "NorthAmerica" 100 und in "WestEurope" 200 sein. Durch Erstellen einer Konfigurationseinstellung mit dem Namen MaxRequests mit der Bezeichnung "NorthAmerica" und einer anderen , nur mit einem anderen Wert, in der Bezeichnung "WestEurope" kann eine Anwendung die Konfigurationseinstellungen nahtlos abrufen, während sie in diesen beiden Dimensionen ausgeführt wird.
Eigenschaften einer Konfigurationseinstellung:
key : str
label : str
content_type : str
value : str
last_modified : str
read_only : bool
tags : dict
etag : str
Momentaufnahme
Azure App Configuration ermöglicht Es Benutzern, eine Point-in-Time-Momentaufnahme ihres Konfigurationsspeichers zu erstellen, sodass sie Einstellungen als eine konsistente Version behandeln können. Dieses Feature ermöglicht Es Anwendungen, eine konsistente Ansicht der Konfiguration zu behalten, sodass sichergestellt wird, dass keine Versionskonflikte mit einzelnen Einstellungen aufgrund von Lesevorgängen während der Aktualisierungen vorhanden sind. Momentaufnahmen sind unveränderlich, sodass sichergestellt wird, dass die Konfiguration im Falle eines Problems sicher auf eine konfiguration zurückgesetzt werden kann.
Beispiele
Die folgenden Abschnitte enthalten mehrere Codeausschnitte, die einige der gängigsten Configuration Service-Aufgaben behandeln, einschließlich:
- Erstellen einer Konfigurationseinstellung
- Abrufen einer Konfigurationseinstellung
- Löschen einer Konfigurationseinstellung
- Listenkonfigurationseinstellungen
- Erstellen einer Momentaufnahme
- Abrufen einer Momentaufnahme
- Archivieren einer Momentaufnahme
- Wiederherstellen einer Momentaufnahme
- Auflisten von Momentaufnahmen
- Auflisten der Konfigurationseinstellungen einer Momentaufnahme
- Asynchrone APIs
Erstellen einer Konfigurationseinstellung
Erstellen Sie eine Konfigurationseinstellung, die im Konfigurationsspeicher gespeichert werden soll. Es gibt zwei Möglichkeiten, eine Konfigurationseinstellung zu speichern:
- add_configuration_setting erstellt nur dann eine Einstellung, wenn die Einstellung noch nicht im Speicher vorhanden ist.
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 erstellt eine Einstellung, wenn sie nicht vorhanden ist, oder überschreibt eine vorhandene Einstellung.
added_config_setting.value = "new value"
added_config_setting.content_type = "new content type"
updated_config_setting = client.set_configuration_setting(added_config_setting)
Abrufen einer Konfigurationseinstellung
Ruft eine zuvor gespeicherte Konfigurationseinstellung ab.
fetched_config_setting = client.get_configuration_setting(key="MyKey", label="MyLabel")
Löschen einer Konfigurationseinstellung
Löschen Sie eine vorhandene Konfigurationseinstellung.
client.delete_configuration_setting(
key="MyKey",
label="MyLabel",
)
Listenkonfigurationseinstellungen
Listet alle Konfigurationseinstellungen auf, die mit label_filter und/oder key_filter gefiltert sind.
config_settings = client.list_configuration_settings(label_filter="MyLabel")
for item in config_settings:
print_configuration_setting(item)
Erstellen einer Momentaufnahme
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)
Abrufen einer Momentaufnahme
received_snapshot = client.get_snapshot(name=snapshot_name)
Archivieren einer Momentaufnahme
archived_snapshot = client.archive_snapshot(name=snapshot_name)
print_snapshot(archived_snapshot)
Wiederherstellen einer Momentaufnahme
recovered_snapshot = client.recover_snapshot(name=snapshot_name)
print_snapshot(recovered_snapshot)
Auflisten von Momentaufnahmen
for snapshot in client.list_snapshots():
print_snapshot(snapshot)
Auflisten der Konfigurationseinstellungen einer Momentaufnahme
for config_setting in client.list_configuration_settings(snapshot_name=snapshot_name):
print_configuration_setting(config_setting)
Asynchrone APIs
Der asynchrone Client wird unterstützt. Um die asynchrone Clientbibliothek zu verwenden, importieren Sie den AzureAppConfigurationClient aus dem Paket azure.appconfiguration.aio anstelle von 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)
Dieser asynchrone AzureAppConfigurationClient verfügt über dieselben Methodensignaturen wie die Synchronisierungssignaturen, mit der Ausnahme, dass sie asynchron sind. Um eine Konfigurationseinstellung asynchron abzurufen, können instance async_client verwendet werden:
fetched_config_setting = await client.get_configuration_setting(key="MyKey", label="MyLabel")
Um list_configuration_settings zu verwenden, rufen Sie ihn synchron auf, und durchlaufen Sie den zurückgegebenen asynchronen Iterator asynchron.
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)
Problembehandlung
Ausführliche Informationen zur Diagnose verschiedener Fehlerszenarien finden Sie im Leitfaden zur Problembehandlung .
Nächste Schritte
Weiterer Beispielcode
In diesem GitHub-Repository stehen Ihnen mehrere Beispiele für App Configuration Clientbibliotheken zur Verfügung. Dazu gehören:
- Hallo Welt / Asynchrone Version
- Hello World mit Bezeichnungen / Asynchrone Version
- Festlegen einer Konfigurationseinstellung für schreibgeschützte Einstellungen / Asynchrone Version
- Lesen des Revisionsverlaufs / Asynchrone Version
- Abrufen einer Einstellung, falls geändert / Asynchrone Version
- Erstellen, Abrufen und Aktualisieren status einer Konfigurationseinstellungen MomentaufnahmeAsync-Version /
Weitere Informationen finden Sie in der Infodatei zu Beispielen.
Mitwirken
Beiträge und Vorschläge für dieses Projekt sind willkommen. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. Ausführliche Informationen finden Sie unter https://cla.microsoft.com.
Wenn Sie einen Pull Request (PR) übermitteln, überprüft ein CLA-Bot automatisch, ob Sie eine Lizenzvereinbarung bereitstellen und den PR entsprechend ergänzen müssen (z.B. mit einer Bezeichnung oder einem Kommentar). Führen Sie einfach die Anweisungen des Bots aus. Sie müssen dies nur einmal für alle Repositorys ausführen, die unsere CLA verwenden.
Für dieses Projekt gelten die Microsoft-Verhaltensregeln für Open Source (Microsoft Open Source Code of Conduct). Weitere Informationen finden Sie in den häufig gestellten Fragen zum Verhaltenskodex. Sie können sich auch an opencode@microsoft.com wenden, wenn Sie weitere Fragen oder Kommentare haben.
Azure SDK for Python