biblioteka klienta Azure App Configuration dla języka Python — wersja 1.5.0
Usługa Azure App Configuration to usługa zarządzana, która pomaga deweloperom w prosty i bezpieczny sposób scentralizować konfigurację aplikacji.
Nowoczesne programy, zwłaszcza programy działające w chmurze, zazwyczaj mają wiele składników, które są rozproszone w naturze. Posiadanie ustawień konfiguracji w ramach tych składników może powodować występowanie błędów podczas wdrażania aplikacji, których diagnozowanie będzie bardzo skomplikowane. Użyj App Configuration, aby bezpiecznie przechowywać wszystkie ustawienia aplikacji w jednym miejscu.
Użyj biblioteki klienta dla App Configuration, aby utworzyć ustawienia konfiguracji aplikacji i zarządzać nimi.
Kod | źródłowyPakiet (Pypi) | Pakiet (Conda) | Dokumentacja referencyjna interfejsu | APIDokumentacja produktu
Zrzeczenie odpowiedzialności
Obsługa pakietów języka Python zestawu Azure SDK dla języka Python 2.7 została zakończona 01 stycznia 2022 r. Aby uzyskać więcej informacji i pytań, zapoznaj się z tematem https://github.com/Azure/azure-sdk-for-python/issues/20691Python 3.7 lub nowszym wymaganym do korzystania z tego pakietu. Aby uzyskać więcej informacji, zapoznaj się z zasadami obsługi wersji zestawu Azure SDK dla języka Python.
Wprowadzenie
Instalowanie pakietu
Zainstaluj bibliotekę klienta Azure App Configuration dla języka Python przy użyciu narzędzia pip:
pip install azure-appconfiguration
Wymagania wstępne
- Do korzystania z tego pakietu wymagany jest język Python w wersji 3.7 lub nowszej.
- Do korzystania z tego pakietu potrzebna jest subskrypcja platformy Azure i magazyn konfiguracji .
Aby utworzyć magazyn konfiguracji, możesz użyć witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure.
Następnie utwórz magazyn konfiguracji:
az appconfig create --name <config-store-name> --resource-group <resource-group-name> --location eastus
Uwierzytelnianie klienta
Aby móc korzystać z usługi App Configuration, należy utworzyć wystąpienie klasy AzureAppConfigurationClient. Aby to możliwe, możesz użyć parametry połączenia magazynu konfiguracji lub użyć tokenu usługi AAD.
Korzystanie z parametry połączenia
Pobieranie poświadczeń
Użyj poniższego fragmentu kodu interfejsu wiersza polecenia platformy Azure, aby uzyskać parametry połączenia z magazynu konfiguracji.
az appconfig credential list --name <config-store-name>
Alternatywnie pobierz parametry połączenia z witryny Azure Portal.
Tworzenie klienta
Po utworzeniu wartości parametry połączenia możesz utworzyć element 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)
Korzystanie z tokenu usługi AAD
W tym miejscu pokazano, jak używać wartości DefaultAzureCredential do uwierzytelniania jako jednostka usługi. Jednak usługa AzureAppConfigurationClient akceptuje wszelkie poświadczenia tożsamości platformy Azure . Aby uzyskać więcej informacji na temat innych poświadczeń, zobacz dokumentację dotyczącą tożsamości platformy Azure .
Tworzenie jednostki usługi (opcjonalnie)
Ten fragment kodu interfejsu wiersza polecenia platformy Azure pokazuje, jak utworzyć nową jednostkę usługi. Przed użyciem zastąp ciąg "nazwa-aplikacji" odpowiednią nazwą jednostki usługi.
Utwórz jednostkę usługi:
az ad sp create-for-rbac --name http://my-application --skip-assignment
Dane wyjściowe:
{ "appId": "generated app id", "displayName": "my-application", "name": "http://my-application", "password": "random password", "tenant": "tenant id" }
Użyj danych wyjściowych, aby ustawić AZURE_CLIENT_ID ("appId" powyżej), AZURE_CLIENT_SECRET ("hasło" powyżej) i AZURE_TENANT_ID ("dzierżawa" powyżej) zmienne środowiskowe. W poniższym przykładzie przedstawiono sposób wykonania tej czynności w programie Bash:
export AZURE_CLIENT_ID="generated app id"
export AZURE_CLIENT_SECRET="random password"
export AZURE_TENANT_ID="tenant id"
Przypisz jedną z odpowiednich ról App Configuration do jednostki usługi.
Tworzenie klienta
Po ustawieniu AZURE_CLIENT_ID zmiennych środowiskowych AZURE_CLIENT_SECRET i AZURE_TENANT_IDdomyślnaAzureCredential będzie mogła uwierzytelnić obiekt AzureAppConfigurationClient.
Konstruowanie klienta wymaga również adresu URL magazynu konfiguracji, który można pobrać z interfejsu wiersza polecenia platformy Azure lub witryny Azure Portal. W witrynie Azure Portal adres URL można znaleźć jako usługę "Punkt końcowy"
from azure.identity import DefaultAzureCredential
from azure.appconfiguration import AzureAppConfigurationClient
credential = DefaultAzureCredential()
client = AzureAppConfigurationClient(base_url="your_endpoint_url", credential=credential)
Kluczowe pojęcia
Ustawienie konfiguracji
Ustawienie konfiguracji to podstawowy zasób w magazynie konfiguracji. W najprostszej formie jest to klucz i wartość. Istnieją jednak dodatkowe właściwości, takie jak modyfikowalny typ zawartości i pola tagów, które umożliwiają interpretowanie lub skojarzenie wartości na różne sposoby.
Właściwość Label ustawienia konfiguracji umożliwia rozdzielenie ustawień konfiguracji na różne wymiary. Te wymiary są definiowane przez użytkownika i mogą mieć dowolną formę. Niektóre typowe przykłady wymiarów do użycia dla etykiety obejmują regiony, wersje semantyczne lub środowiska. Wiele aplikacji ma wymagany zestaw kluczy konfiguracji, które mają różne wartości, ponieważ aplikacja istnieje w różnych wymiarach.
Na przykład wartość MaxRequests może być 100 w obszarze "NorthAmerica" i 200 w obszarze "WestEurope". Tworząc ustawienie konfiguracji o nazwie MaxRequests z etykietą "NorthAmerica" i inną, tylko z inną wartością, w etykiecie "WestEurope" aplikacja może bezproblemowo pobrać ustawienia konfiguracji, ponieważ działa w tych dwóch wymiarach.
Właściwości ustawienia konfiguracji:
key : str
label : str
content_type : str
value : str
last_modified : str
read_only : bool
tags : dict
etag : str
Snapshot
Azure App Configuration umożliwia użytkownikom tworzenie migawki magazynu konfiguracji do punktu w czasie, zapewniając im możliwość traktowania ustawień jako jednej spójnej wersji. Ta funkcja umożliwia aplikacjom przechowywanie spójnego widoku konfiguracji, zapewniając, że nie ma niezgodności wersji z poszczególnymi ustawieniami z powodu odczytu w miarę wprowadzania aktualizacji. Migawki są niezmienne, zapewniając, że konfiguracja może zostać bezpiecznie wycofana do ostatniej znanej konfiguracji w przypadku wystąpienia problemu.
Przykłady
W poniższych sekcjach przedstawiono kilka fragmentów kodu obejmujących niektóre z najbardziej typowych zadań usługi Configuration Service, w tym:
- Tworzenie ustawienia konfiguracji
- Pobieranie ustawienia konfiguracji
- Usuwanie ustawienia konfiguracji
- Wyświetlanie listy ustawień konfiguracji
- Tworzenie migawki
- Pobieranie migawki
- Archiwizowanie migawki
- Odzyskiwanie migawki
- Tworzenie listy migawek
- Wyświetlanie listy ustawień konfiguracji migawki
- Asynchroniczne interfejsy API
Tworzenie ustawienia konfiguracji
Utwórz ustawienie konfiguracji do przechowywania w magazynie konfiguracji. Istnieją dwa sposoby przechowywania ustawienia konfiguracji:
- add_configuration_setting tworzy ustawienie tylko wtedy, gdy ustawienie jeszcze nie istnieje w sklepie.
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 tworzy ustawienie, jeśli nie istnieje lub zastępuje istniejące ustawienie.
added_config_setting.value = "new value"
added_config_setting.content_type = "new content type"
updated_config_setting = client.set_configuration_setting(added_config_setting)
Pobieranie ustawienia konfiguracji
Pobierz wcześniej przechowywane ustawienie konfiguracji.
fetched_config_setting = client.get_configuration_setting(key="MyKey", label="MyLabel")
Usuwanie ustawienia konfiguracji
Usuń istniejące ustawienie konfiguracji.
client.delete_configuration_setting(
key="MyKey",
label="MyLabel",
)
Wyświetlanie listy ustawień konfiguracji
Wyświetl listę wszystkich ustawień konfiguracji filtrowanych przy użyciu label_filter i/lub key_filter.
config_settings = client.list_configuration_settings(label_filter="MyLabel")
for item in config_settings:
print_configuration_setting(item)
Tworzenie migawki
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)
Pobieranie migawki
received_snapshot = client.get_snapshot(name=snapshot_name)
Archiwizowanie migawki
archived_snapshot = client.archive_snapshot(name=snapshot_name)
print_snapshot(archived_snapshot)
Odzyskiwanie migawki
recovered_snapshot = client.recover_snapshot(name=snapshot_name)
print_snapshot(recovered_snapshot)
Tworzenie listy migawek
for snapshot in client.list_snapshots():
print_snapshot(snapshot)
Wyświetlanie listy ustawień konfiguracji migawki
for config_setting in client.list_configuration_settings(snapshot_name=snapshot_name):
print_configuration_setting(config_setting)
Asynchroniczne interfejsy API
Obsługiwany jest klient asynchroniczny. Aby użyć biblioteki klienta asynchronicznego, zaimportuj element AzureAppConfigurationClient z pakietu azure.appconfiguration.aio zamiast 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)
Ten asynchroniczny element AzureAppConfigurationClient ma te same sygnatury metody co synchronizacja, z wyjątkiem tego, że są asynchroniczne. Aby na przykład pobrać ustawienie konfiguracji asynchronicznie, można użyć async_client:
fetched_config_setting = await client.get_configuration_setting(key="MyKey", label="MyLabel")
Aby użyć list_configuration_settings, wywołaj ją synchronicznie i iteruj przez zwrócony iterator asynchronicznie
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)
Rozwiązywanie problemów
Aby uzyskać szczegółowe informacje na temat diagnozowania różnych scenariuszy awarii, zobacz przewodnik rozwiązywania problemów .
Następne kroki
Więcej przykładów kodu
W tym repozytorium GitHub jest dostępnych kilka App Configuration przykładów biblioteki klienta. Są one następujące:
- Cześć ludzie / Wersja asynchronizuj
- Witaj świecie z etykietami / Wersja asynchronizuj
- Odczytaj / ustawienie konfiguracjiWersja asynchronizuj
- Odczytywanie historii / poprawekWersja asynchronizuj
- Pobieranie ustawienia w przypadku zmiany / Wersja asynchronizuj
- Tworzenie, pobieranie i aktualizowanie stanu migawki / ustawień konfiguracjiWersja asynchronizuj
Aby uzyskać więcej informacji, zobacz przykłady README.
Współtworzenie
W tym projekcie zachęcamy do współtworzenia i zgłaszania sugestii. Współtworzenie w większości przypadków wymaga zgody na umowę licencyjną dotyczącą współautorów (CLA, Contributor License Agreement), zgodnie z którą współautor ma prawo udzielić i faktycznie udziela nam praw do używania wytworzonej przez siebie zawartości. Aby uzyskać szczegółowe informacje, odwiedź stronę https://cla.microsoft.com.
Po przesłaniu żądania ściągnięcia robot CLA automatycznie określi, czy musisz przekazać umowę CLA, i doda odpowiednie informacje do tego żądania (na przykład etykietę czy komentarz). Po prostu postępuj zgodnie z instrukcjami robota. Wystarczy zrobić to raz dla wszystkich repozytoriów, w przypadku których jest używana nasza umowa CLA.
W tym projekcie przyjęto Kodeks postępowania oprogramowania Open Source firmy Microsoft. Aby uzyskać więcej informacji, zobacz artykuł Code of Conduct FAQ (Często zadawane pytania dotyczące kodeksu postępowania). Jeśli będziesz mieć jeszcze jakieś pytania lub komentarze, wyślij wiadomość e-mail na adres opencode@microsoft.com.
Azure SDK for Python