Sdílet prostřednictvím


Azure App Configuration klientské knihovny pro Python – verze 1.5.0

Azure App Configuration je spravovaná služba, která vývojářům pomáhá jednoduše a bezpečně centralizovat konfigurace aplikací.

Moderní programy, zejména programy běžící v cloudu, mají obecně mnoho komponent, které jsou ze své podstaty distribuované. Rozložení nastavení konfigurace mezi tyto komponenty může vést k chybám, které se při nasazování aplikace obtížně odstraňují. Pomocí App Configuration můžete bezpečně ukládat všechna nastavení aplikace na jednom místě.

K vytvoření a správě nastavení konfigurace aplikace použijte klientskou knihovnu pro App Configuration.

Zdrojový kód | Balíček (Pypi) | Balíček (Conda) | Referenční dokumentace k | rozhraní APIDokumentace k produktu

Právní omezení

Podpora balíčků Azure SDK Python pro Python 2.7 skončila 1. ledna 2022. Další informace a dotazy najdete v https://github.com/Azure/azure-sdk-for-python/issues/20691 článku k použití tohoto balíčku se vyžaduje Python 3.7 nebo novější. Další podrobnosti najdete v tématu Věnovaném zásadám podpory verzí sady Azure SDK pro Python.

Začínáme

Instalace balíčku

Nainstalujte klientskou knihovnu Azure App Configuration pro Python pomocí pip:

pip install azure-appconfiguration

Požadavky

K vytvoření úložiště konfigurace můžete použít Azure Portal nebo Azure CLI.

Potom vytvořte úložiště konfigurace:

az appconfig create --name <config-store-name> --resource-group <resource-group-name> --location eastus

Ověření klienta

Pokud chcete pracovat se službou App Configuration, budete muset vytvořit instanci třídy AzureAppConfigurationClient. Aby to bylo možné, můžete buď použít připojovací řetězec úložiště konfigurace, nebo token AAD.

Použití připojovací řetězec

Získání přihlašovacích údajů

Pomocí následujícího fragmentu kódu Azure CLI získáte připojovací řetězec z úložiště konfigurace.

az appconfig credential list --name <config-store-name>

Případně můžete získat připojovací řetězec z webu Azure Portal.

Vytvoření klienta

Jakmile budete mít hodnotu připojovací řetězec, můžete vytvořit 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)

Použití tokenu AAD

Tady si ukážeme použití DefaultAzureCredential k ověření jako instančního objektu. AzureAppConfigurationClient však přijímá všechny přihlašovací údaje azure-identity. Další informace o dalších přihlašovacích údaji najdete v dokumentaci k azure-identity .

Vytvoření instančního objektu (volitelné)

Tento fragment kódu Azure CLI ukazuje, jak vytvořit nový instanční objekt. Před použitím nahraďte "název_vaší_aplikace" odpovídajícím názvem vašeho instančního objektu.

Vytvoření instančního objektu:

az ad sp create-for-rbac --name http://my-application --skip-assignment

Výstup:

{
    "appId": "generated app id",
    "displayName": "my-application",
    "name": "http://my-application",
    "password": "random password",
    "tenant": "tenant id"
}

Pomocí výstupu můžete nastavit proměnné prostředí AZURE_CLIENT_ID (výše appId), AZURE_CLIENT_SECRET (výše heslo) a AZURE_TENANT_ID (tenant výše). Následující příklad ukazuje způsob, jak to udělat v prostředí Bash:

export AZURE_CLIENT_ID="generated app id"
export AZURE_CLIENT_SECRET="random password"
export AZURE_TENANT_ID="tenant id"

Přiřaďte instančnímu objektu jednu z příslušných rolí App Configuration.

Vytvoření klienta

Po nastavení AZURE_CLIENT_ID, AZURE_CLIENT_SECRET a AZURE_TENANT_ID proměnných prostředí bude moct DefaultAzureCredential ověřit AzureAppConfigurationClient.

Sestavení klienta také vyžaduje adresu URL úložiště konfigurací, kterou můžete získat z Azure CLI nebo webu Azure Portal. Na webu Azure Portal najdete adresu URL uvedenou jako koncový bod služby.

from azure.identity import DefaultAzureCredential
from azure.appconfiguration import AzureAppConfigurationClient

credential = DefaultAzureCredential()

client = AzureAppConfigurationClient(base_url="your_endpoint_url", credential=credential)

Klíčové koncepty

Nastavení konfigurace

Nastavení konfigurace je základní prostředek v rámci úložiště konfigurace. V nejjednodušší podobě je to klíč a hodnota. Existují však další vlastnosti, například upravitelný typ obsahu a pole značek, které umožňují interpretovat nebo přidružit hodnotu různými způsoby.

Vlastnost Popisek nastavení konfigurace poskytuje způsob, jak oddělit nastavení konfigurace do různých dimenzí. Tyto dimenze jsou definované uživatelem a mohou mít libovolnou formu. Mezi běžné příklady dimenzí, které se mají použít pro popisek, patří oblasti, sémantické verze nebo prostředí. Mnoho aplikací má požadovanou sadu konfiguračních klíčů, které mají různé hodnoty, protože aplikace existuje v různých dimenzích.

Například MaxRequests může být 100 v "NorthAmerica" a 200 v "WestEurope". Vytvořením nastavení konfigurace s názvem MaxRequests s popiskem "NorthAmerica" a dalším, pouze s jinou hodnotou, v popisku "WestEurope", může aplikace bezproblémově načíst nastavení konfigurace při běhu v těchto dvou dimenzích.

Vlastnosti nastavení konfigurace:

key : str
label : str
content_type : str
value : str
last_modified : str
read_only : bool
tags : dict
etag : str

Snímek

Azure App Configuration umožňuje uživatelům vytvořit snímek úložiště konfigurace k určitému bodu v čase a poskytuje jim možnost považovat nastavení za jednu konzistentní verzi. Tato funkce umožňuje aplikacím uchovávat konzistentní zobrazení konfigurace a zajistit tak, aby nedochází k neshodám verzí s jednotlivými nastaveními z důvodu čtení při aktualizacích. Snímky jsou neměnné, což zajišťuje, že v případě problému je možné konfiguraci bez obav vrátit zpět na poslední známou funkční konfiguraci.

Příklady

Následující části obsahují několik fragmentů kódu, které pokrývají některé z nejběžnějších úloh konfigurační služby, mezi které patří:

Vytvoření nastavení konfigurace

Vytvořte nastavení konfigurace, které se uloží v úložišti konfigurace. Nastavení konfigurace můžete uložit dvěma způsoby:

  • add_configuration_setting vytvoří nastavení pouze v případě, že toto nastavení ještě v úložišti neexistuje.
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 vytvoří nastavení, pokud neexistuje nebo přepíše existující nastavení.
added_config_setting.value = "new value"
added_config_setting.content_type = "new content type"
updated_config_setting = client.set_configuration_setting(added_config_setting)

Získání nastavení konfigurace

Získejte dříve uložené nastavení konfigurace.

fetched_config_setting = client.get_configuration_setting(key="MyKey", label="MyLabel")

Odstranění nastavení konfigurace

Odstraňte existující nastavení konfigurace.

client.delete_configuration_setting(
    key="MyKey",
    label="MyLabel",
)

Nastavení konfigurace seznamu

Vypíše všechna nastavení konfigurace filtrovaná pomocí label_filter nebo key_filter.

config_settings = client.list_configuration_settings(label_filter="MyLabel")
for item in config_settings:
    print_configuration_setting(item)

Vytvoření snímku

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)

Získání snímku

received_snapshot = client.get_snapshot(name=snapshot_name)

Archivace snímku

archived_snapshot = client.archive_snapshot(name=snapshot_name)
print_snapshot(archived_snapshot)

Obnovení snímku

recovered_snapshot = client.recover_snapshot(name=snapshot_name)
print_snapshot(recovered_snapshot)

Výpis snímků

for snapshot in client.list_snapshots():
    print_snapshot(snapshot)

Výpis nastavení konfigurace snímku

for config_setting in client.list_configuration_settings(snapshot_name=snapshot_name):
    print_configuration_setting(config_setting)

Asynchronní rozhraní API

Podporuje se asynchronní klient. Pokud chcete použít asynchronní klientskou knihovnu, naimportujte AzureAppConfigurationClient z balíčku azure.appconfiguration.aio místo z 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)

Tento asynchronní AzureAppConfigurationClient má stejné signatury metod jako synchronizační s tím rozdílem, že jsou asynchronní. Pokud chcete například načíst nastavení konfigurace asynchronně, můžete použít async_client:

fetched_config_setting = await client.get_configuration_setting(key="MyKey", label="MyLabel")

Pokud chcete použít list_configuration_settings, zavolejte ji synchronně a asynchronně iterujte přes vrácený asynchronní iterátor.

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)

Poradce při potížích

Podrobnosti o tom, jak diagnostikovat různé scénáře selhání, najdete v průvodci odstraňováním potíží.

Další kroky

Další vzorový kód

V tomto úložišti GitHubu máte k dispozici několik ukázek klientské knihovny App Configuration. Tady jsou některé z nich:

Další podrobnosti najdete v souboru README s ukázkami.

Přispívání

Tento projekt vítá příspěvky a návrhy. Většina příspěvků vyžaduje souhlas s licenční smlouvou s přispěvatelem (CLA), která stanoví, že máte právo udělit nám práva k používání vašeho příspěvku a skutečně tak činíte. Podrobnosti najdete tady: https://cla.microsoft.com

Při odesílání žádosti o přijetí změn robot CLA automaticky určí, jestli je potřeba poskytnout smlouvu CLA, a příslušným způsobem žádost o přijetí změn upraví (např. přidáním jmenovky nebo komentáře). Stačí postupovat podle pokynů robota. Pro všechna úložiště používající naši smlouvu CLA to stačí udělat jenom jednou.

Tento projekt přijal pravidla chování pro Microsoft Open Source. Další informace najdete v nejčastějších dotazech k pravidlům chování. V případě jakýchkoli dotazů nebo připomínek kontaktujte opencode@microsoft.com.