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
- A csomag használatához Python 3.7 vagy újabb verzió szükséges.
- A csomag használatához Azure-előfizetésre és konfigurációs tárra van szükség.
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
- Konfigurációs beállítás lekérése
- Konfigurációs beállítás törlése
- Konfigurációs beállítások listázása
- Pillanatkép létrehozása
- Pillanatkép lekérése
- Pillanatkép archiválása
- Pillanatkép helyreállítása
- Pillanatképek listázása
- Pillanatkép konfigurációs beállításainak listázása
- Async API-k
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:
- Helló világ / Aszinkron verzió
- Hello world címkékkel / Aszinkron verzió
- Konfigurációs beállítás írásvédetté / tételeAszinkron verzió
- Korrektúraelőzmények / olvasásaAszinkron verzió
- Beállítás lekérése, ha módosítva van / Aszinkron verzió
- Konfigurációs beállítások pillanatképének / létrehozása, lekérése és frissítéseAszinkron verzió
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.
Azure SDK for Python
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: