Freigeben über


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

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

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:

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.