Megosztás a következőn keresztül:


Azure App Configuration Python ügyfélkódtára – 1.5.0-s verzió

Az Azure App Configuration egy olyan szolgáltatás, amellyel a fejlesztők egyszerűen és biztonságosan központosíthatják az alkalmazáskonfigurációikat.

A modern programok, különösen a felhőben futó programok általában számos olyan összetevővel rendelkeznek, amelyek a természetben vannak elosztva. A konfigurációs beállítások ezen összetevők közötti terjesztése az alkalmazások üzembe helyezése során nehezen hárítható hibákhoz vezethet. A App Configuration használatával biztonságosan tárolhatja az alkalmazás összes beállítását egy helyen.

Az alkalmazáskonfigurációs beállítások létrehozásához és kezeléséhez használja a App Configuration ügyfélkódtárat.

Forráskód | Csomag (Pypi) | Csomag (Conda) | API-referenciadokumentáció | Termékdokumentáció

Felelősséget kizáró nyilatkozat

Az Azure SDK Python-csomagok támogatása a Python 2.7-hez 2022. január 01-én véget ért. További információkért és kérdésekért tekintse meg a https://github.com/Azure/azure-sdk-for-python/issues/20691Csomag használatához szükséges Python 3.7-et vagy újabb verziót. További részletekért tekintse meg az Azure SDK for Python verziótámogatási szabályzatát.

Első lépések

A csomag telepítése

Telepítse a Python Azure App Configuration ügyfélkódtárát a pip használatával:

pip install azure-appconfiguration

Előfeltételek

Konfigurációs tár létrehozásához használhatja az Azure Portalt vagy az Azure CLI-t.

Ezután hozza létre a Configuration Store-t:

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

Az ügyfél hitelesítése

A App Configuration szolgáltatás használatához létre kell hoznia az AzureAppConfigurationClient osztály egy példányát. Ennek érdekében használhatja a Configuration Store kapcsolati karakterlánc, vagy használhat egy AAD-jogkivonatot.

Kapcsolati karakterlánc használata

Hitelesítő adatok lekérése

Az alábbi Azure CLI-kódrészlettel lekérheti a kapcsolati karakterlánc a Configuration Store-ból.

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

Másik lehetőségként kérje le a kapcsolati karakterlánc az Azure Portalról.

Ügyfél létrehozása

Miután megkapta a kapcsolati karakterlánc értékét, létrehozhatja az AzureAppConfigurationClientet:

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)

AAD-jogkivonat használata

Itt bemutatjuk, hogy a DefaultAzureCredential használatával hitelesíthet szolgáltatásnévként. Az AzureAppConfigurationClient azonban minden azure-identity hitelesítő adatot elfogad. Az egyéb hitelesítő adatokkal kapcsolatos további információkért tekintse meg az azure-identity dokumentációját.

Szolgáltatásnév létrehozása (nem kötelező)

Ez az Azure CLI-kódrészlet bemutatja, hogyan hozhat létre új szolgáltatásnevet. Használat előtt cserélje le a "your-application-name" kifejezést a szolgáltatásnév megfelelő nevére.

Szolgáltatásnév létrehozása:

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

Kimenet:

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

A kimenettel állítsa be AZURE_CLIENT_ID ("appId" fent), AZURE_CLIENT_SECRET ("jelszó" fent) és AZURE_TENANT_ID ("bérlő" fent) környezeti változókat. Az alábbi példa ennek módját mutatja be a Bashben:

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

Rendelje hozzá az egyik alkalmazható App Configuration szerepkört a szolgáltatásnévhez.

Ügyfél létrehozása

A AZURE_CLIENT_ID, AZURE_CLIENT_SECRET és AZURE_TENANT_ID környezeti változók beállítása után a DefaultAzureCredential képes lesz hitelesíteni az AzureAppConfigurationClientet.

Az ügyfél létrehozásához a konfigurációs tár URL-címe is szükséges, amelyet az Azure CLI-ből vagy az Azure Portalról szerezhet be. Az Azure Portalon az URL-cím a "Végpont" szolgáltatásként található

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

credential = DefaultAzureCredential()

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

Fő fogalmak

Konfigurációs beállítás

A konfigurációs beállítás a konfigurációs tár alapvető erőforrása. Legegyszerűbb formájában kulcs és érték. Vannak azonban további tulajdonságok, például a módosítható tartalomtípus és a címkék mezői, amelyek lehetővé teszik az érték különböző módon történő értelmezését vagy társíthatóságát.

A konfigurációs beállítások Label tulajdonsága lehetővé teszi a konfigurációs beállítások különböző dimenziókra való elkülönítését. Ezek a dimenziók felhasználó által meghatározottak, és bármilyen formát ölthetnek. A címkékhez használandó dimenziókra néhány gyakori példa a régiók, a szemantikai verziók vagy a környezetek. Számos alkalmazás rendelkezik olyan szükséges konfigurációs kulcskészlettel, amely különböző értékekkel rendelkezik, mivel az alkalmazás különböző dimenziókban létezik.

A MaxRequests például 100 lehet "NorthAmerica" és 200 a "WestEurope" nyelven. Ha létrehoz egy MaxRequests nevű konfigurációs beállítást egy "NorthAmerica" címkével és egy másik, csak egy másik értékkel, a "WestEurope" címkében, az alkalmazások zökkenőmentesen lekérhetik a konfigurációs beállításokat, miközben ebben a két dimenzióban futnak.

Konfigurációs beállítás tulajdonságai:

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

Pillanatkép

Azure App Configuration lehetővé teszi a felhasználóknak, hogy időponthoz kötött pillanatképet hozzanak létre a konfigurációs tárolójukról, és lehetővé teszik számukra, hogy a beállításokat egységes verzióként kezeljék. Ez a funkció lehetővé teszi az alkalmazások számára, hogy konzisztens konfigurációs nézetet tartsanak fenn, biztosítva, hogy az egyes beállítások verzióbeli eltérései ne legyenek a frissítések olvasása miatt. A pillanatképek nem módosíthatók, így probléma esetén a konfiguráció magabiztosan visszaállítható egy utolsó ismert-jó konfigurációra.

Példák

A következő szakaszok számos kódrészletet biztosítanak, amelyek a konfigurációs szolgáltatás leggyakoribb feladatait tartalmazzák, többek között:

Konfigurációs beállítás létrehozása

Hozzon létre egy konfigurációs beállítást, amely a Konfigurációtárban tárolható. A konfigurációs beállítások tárolásának két módja van:

  • add_configuration_setting csak akkor hoz létre beállítást, ha a beállítás még nem létezik az áruházban.
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 létrehoz egy beállítást, ha nem létezik, vagy felülbírál egy meglévő beállítást.
added_config_setting.value = "new value"
added_config_setting.content_type = "new content type"
updated_config_setting = client.set_configuration_setting(added_config_setting)

Konfigurációs beállítás lekérése

Kérje le a korábban tárolt konfigurációs beállítást.

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

Konfigurációs beállítás törlése

Meglévő konfigurációs beállítás törlése.

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

Konfigurációs beállítások listázása

Listázhatja a label_filter és/vagy key_filter által szűrt összes konfigurációs beállítást.

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

Pillanatkép létrehozása

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)

Pillanatkép lekérése

received_snapshot = client.get_snapshot(name=snapshot_name)

Pillanatkép archiválása

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

Pillanatkép helyreállítása

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

Pillanatképek listázása

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

Pillanatkép konfigurációs beállításainak listázása

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

Async API-k

Az Async-ügyfél támogatott. Az async ügyfélkódtár használatához importálja az AzureAppConfigurationClientet az azure.appconfiguration.aio csomagból az azure.appconfiguration helyett.

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)

Ez az aszinkron AzureAppConfigurationClient ugyanazokkal a metódus-aláírásokkal rendelkezik, mint a szinkronizálásiak, kivéve, hogy aszinkronok. Ha például egy konfigurációs beállítást aszinkron módon szeretne lekérni, async_client használható:

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

A list_configuration_settings használatához hívja meg szinkronban, és iteráljon a visszaadott aszinkron iterátoron aszinkron módon

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)

Hibaelhárítás

A különböző hibaforgatókönyvek diagnosztizálásának részleteiért tekintse meg a hibaelhárítási útmutatót .

Következő lépések

További mintakód

Ebben a GitHub-adattárban számos App Configuration ügyfélkódtár-minta érhető el. Ezek a következők:

További részletekért lásd a README mintákat.

Közreműködés

A projektben szívesen fogadjuk a hozzájárulásokat és a javaslatokat. A legtöbb hozzájáruláshoz el kell fogadnia egy Közreműködői licencszerződést (CLA-t), amelyben kijelenti, hogy jogosult arra, hogy ránk ruházza hozzájárulása felhasználási jogát, és ezt ténylegesen meg is teszi. További részletekért lásd: https://cla.microsoft.com.

A lekéréses kérelmek elküldésekor egy CLA-robot automatikusan meghatározza, hogy kell-e biztosítania CLA-t, és megfelelően kitölti a lekéréses kérelmet (például címke, megjegyzés). Egyszerűen csak kövesse a robot által megadott utasításokat. Ezt csak egyszer kell elvégeznie az összes olyan tárházban, amely a CLA-t használja.

A projekt a Microsoft nyílt forráskódú projekteket szabályozó etikai kódexe, a Microsoft Open Source Code of Conduct hatálya alá esik. További információkért keresse fel a Viselkedési szabályzattal kapcsolatos gyakori kérdések oldalát, illetve küldje el kérdéseit vagy észrevételeit a következő címre: opencode@microsoft.com.