Python için Azure Uygulama Yapılandırması istemci kitaplığı - sürüm 1.5.0
Azure Uygulama Yapılandırması, geliştiricilerin uygulama yapılandırmalarını basit ve güvenli bir biçimde merkezileştirmesine yardımcı olan, yönetilen bir hizmettir.
Modern programlar, özellikle bulutta çalışan programlar, genellikle doğada dağıtılan birçok bileşene sahiptir. Yapılandırma ayarlarının bu bileşenlere yayılması, uygulama dağıtımı sırasında sorun gidermenin zorlanmasına neden olabilir. Uygulamanızın tüm ayarlarını tek bir yerde güvenli bir şekilde depolamak için Uygulama Yapılandırması kullanın.
Uygulama yapılandırma ayarlarını oluşturmak ve yönetmek için Uygulama Yapılandırması için istemci kitaplığını kullanın.
Kaynak kodu | Paket (Pypi) | Paket (Conda) | API başvuru belgeleri | Ürün belgeleri
Bildirim
Python 2.7 için Azure SDK Python paketleri desteği 01 Ocak 2022'de sona erdi. Daha fazla bilgi ve soru için lütfen bu paketi kullanmak için https://github.com/Azure/azure-sdk-for-python/issues/20691Python 3.7 veya üzeri gereklidir konusuna bakın. Daha fazla ayrıntı için lütfen Python için Azure SDK sürüm desteği ilkesine bakın.
Başlarken
Paketi yükleme
Pip ile Python için Azure Uygulama Yapılandırması istemci kitaplığını yükleyin:
pip install azure-appconfiguration
Önkoşullar
- Bu paketi kullanmak için Python 3.7 veya üzeri gereklidir.
- Bu paketi kullanmak için bir Azure aboneliğine ve yapılandırma deposuna ihtiyacınız vardır.
Yapılandırma Deposu oluşturmak için Azure Portal'ı veya Azure CLI'yı kullanabilirsiniz.
Bundan sonra Yapılandırma Deposu'nı oluşturun:
az appconfig create --name <config-store-name> --resource-group <resource-group-name> --location eastus
İstemcinin kimliğini doğrulama
Uygulama Yapılandırması hizmetiyle etkileşim kurmak için AzureAppConfigurationClient sınıfının bir örneğini oluşturmanız gerekir. Bunu mümkün kılmak için Yapılandırma Deposu'nun bağlantı dizesi kullanabilir veya bir AAD belirteci kullanabilirsiniz.
bağlantı dizesi kullanma
Kimlik bilgilerini alma
Yapılandırma Deposu'ndan bağlantı dizesi almak için aşağıdaki Azure CLI kod parçacığını kullanın.
az appconfig credential list --name <config-store-name>
Alternatif olarak, azure portalından bağlantı dizesi alın.
İstemci oluşturma
bağlantı dizesi değerini aldıktan sonra AzureAppConfigurationClient oluşturabilirsiniz:
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 belirteci kullanma
Burada, hizmet sorumlusu olarak kimlik doğrulaması yapmak için DefaultAzureCredential'ı kullanmayı göstereceğiz. Ancak AzureAppConfigurationClient tüm azure kimlik bilgilerini kabul eder. Diğer kimlik bilgileri hakkında daha fazla bilgi için azure-identity belgelerine bakın.
Hizmet sorumlusu oluşturma (isteğe bağlı)
Bu Azure CLI kod parçacığında yeni hizmet sorumlusu oluşturma adımları gösterilmektedir. Kullanmadan önce , "your-application-name" yerine hizmet sorumlunuz için uygun adı yazın.
Hizmet sorumlusu oluşturma:
az ad sp create-for-rbac --name http://my-application --skip-assignment
Çıkış:
{ "appId": "generated app id", "displayName": "my-application", "name": "http://my-application", "password": "random password", "tenant": "tenant id" }
AZURE_CLIENT_ID ("yukarıdaki appId" ), AZURE_CLIENT_SECRET ("yukarıdaki parola" ) ve AZURE_TENANT_ID ("yukarıdaki kiracı" ortam değişkenlerini) ayarlamak için çıktıyı kullanın. Aşağıdaki örnekte Bunu Bash'te gerçekleştirmenin bir yolu gösterilmektedir:
export AZURE_CLIENT_ID="generated app id"
export AZURE_CLIENT_SECRET="random password"
export AZURE_TENANT_ID="tenant id"
Hizmet sorumlusuna uygun Uygulama Yapılandırması rollerinden birini atayın.
İstemci oluşturma
AZURE_CLIENT_ID, AZURE_CLIENT_SECRET ve AZURE_TENANT_ID ortam değişkenleri ayarlandıktan sonra DefaultAzureCredential, AzureAppConfigurationClient kimliğini doğrulayabilecektir.
İstemciyi oluşturmak için yapılandırma deponuzun URL'sini de kullanmanız gerekir. Bu URL'yi Azure CLI veya Azure Portal'dan alabilirsiniz. Azure Portal'da URL,"Uç Nokta" hizmeti olarak listelenmiş olarak bulunabilir
from azure.identity import DefaultAzureCredential
from azure.appconfiguration import AzureAppConfigurationClient
credential = DefaultAzureCredential()
client = AzureAppConfigurationClient(base_url="your_endpoint_url", credential=credential)
Önemli kavramlar
Yapılandırma Ayarı
Yapılandırma Ayarı, Yapılandırma Deposu içindeki temel kaynaktır. En basit biçimiyle bir anahtar ve değerdir. Ancak, değerin farklı şekillerde yorumlanıp ilişkilendirilmesine izin veren değiştirilebilir içerik türü ve etiket alanları gibi ek özellikler vardır.
Yapılandırma Ayarının Label özelliği, Yapılandırma Ayarlarını farklı boyutlara ayırmanın bir yolunu sağlar. Bu boyutlar kullanıcı tanımlıdır ve herhangi bir formu alabilir. Etiket için kullanılacak bazı yaygın boyutlara örnek olarak bölgeler, anlamsal sürümler veya ortamlar verilebilir. Birçok uygulamada, uygulama farklı boyutlarda mevcut olduğundan değişen değerlere sahip gerekli bir yapılandırma anahtarları kümesi vardır.
Örneğin, MaxRequests "NorthAmerica" içinde 100, "WestEurope" içinde 200 olabilir. "WestEurope" etiketinde maxRequests adlı bir "NorthAmerica" etiketine ve başka bir değere sahip başka bir Yapılandırma Ayarı oluşturarak, bir uygulama bu iki boyutta çalışırken Yapılandırma Ayarlarını sorunsuz bir şekilde alabilir.
Yapılandırma Ayarının Özellikleri:
key : str
label : str
content_type : str
value : str
last_modified : str
read_only : bool
tags : dict
etag : str
Anlık Görüntü
Azure Uygulama Yapılandırması, kullanıcıların yapılandırma depolarının belirli bir noktaya anlık görüntüsünü oluşturarak ayarları tutarlı bir sürüm olarak değerlendirebilmelerini sağlar. Bu özellik, güncelleştirmeler yapıldıktan sonra okuma nedeniyle tek tek ayarlarda sürüm uyuşmazlığı olmamasını sağlayarak uygulamaların yapılandırmanın tutarlı bir görünümünü tutmasına olanak tanır. Anlık görüntüler sabittir ve bir sorun olması durumunda yapılandırmanın bilinen son iyi yapılandırmaya güvenle geri döndürülmesini sağlar.
Örnekler
Aşağıdaki bölümlerde, en yaygın Yapılandırma Hizmeti görevlerinden bazılarını kapsayan çeşitli kod parçacıkları sağlanır:
- Yapılandırma Ayarı Oluşturma
- Yapılandırma Ayarı Alma
- Yapılandırma Ayarını Silme
- Yapılandırma Ayarlarını Listele
- Anlık Görüntü Oluşturma
- Anlık Görüntü Alma
- Anlık Görüntüyü Arşivle
- Anlık Görüntü Kurtarma
- Anlık Görüntüleri Listeleme
- Anlık Görüntünün Yapılandırma Ayarlarını Listeleme
- Zaman Uyumsuz API'ler
Yapılandırma Ayarı Oluşturma
Yapılandırma Deposu'nda depolanacak bir Yapılandırma Ayarı oluşturun. Yapılandırma Ayarını depolamanın iki yolu vardır:
- add_configuration_setting yalnızca ayar depoda yoksa bir ayar oluşturur.
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 yoksa bir ayar oluşturur veya mevcut bir ayarı geçersiz kılar.
added_config_setting.value = "new value"
added_config_setting.content_type = "new content type"
updated_config_setting = client.set_configuration_setting(added_config_setting)
Yapılandırma Ayarı Alma
Daha önce depolanmış bir Yapılandırma Ayarı alın.
fetched_config_setting = client.get_configuration_setting(key="MyKey", label="MyLabel")
Yapılandırma Ayarını Silme
Var olan bir Yapılandırma Ayarını silin.
client.delete_configuration_setting(
key="MyKey",
label="MyLabel",
)
Yapılandırma Ayarlarını Listele
label_filter ve/veya key_filter filtrelenmiş tüm yapılandırma ayarlarını listeleyin.
config_settings = client.list_configuration_settings(label_filter="MyLabel")
for item in config_settings:
print_configuration_setting(item)
Anlık Görüntü Oluşturma
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)
Anlık Görüntü Alma
received_snapshot = client.get_snapshot(name=snapshot_name)
Anlık Görüntüyü Arşivle
archived_snapshot = client.archive_snapshot(name=snapshot_name)
print_snapshot(archived_snapshot)
Anlık Görüntü Kurtarma
recovered_snapshot = client.recover_snapshot(name=snapshot_name)
print_snapshot(recovered_snapshot)
Anlık Görüntüleri Listeleme
for snapshot in client.list_snapshots():
print_snapshot(snapshot)
Anlık Görüntünün Yapılandırma Ayarlarını Listeleme
for config_setting in client.list_configuration_settings(snapshot_name=snapshot_name):
print_configuration_setting(config_setting)
Zaman Uyumsuz API'ler
Zaman uyumsuz istemci desteklenir. Zaman uyumsuz istemci kitaplığını kullanmak için azure.appconfiguration yerine azure.appconfiguration.aio paketinden AzureAppConfigurationClient'ı içeri aktarın
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)
Bu zaman uyumsuz AzureAppConfigurationClient, zaman uyumsuz olmaları dışında eşitleme imzalarıyla aynı yöntem imzalarına sahiptir. Örneğin, bir Yapılandırma Ayarını zaman uyumsuz olarak almak için async_client kullanılabilir:
fetched_config_setting = await client.get_configuration_setting(key="MyKey", label="MyLabel")
list_configuration_settings kullanmak için zaman uyumlu olarak çağırın ve döndürülen zaman uyumsuz yineleyiciyi zaman uyumsuz olarak yineleyin
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)
Sorun giderme
Çeşitli hata senaryolarını tanılama hakkında ayrıntılı bilgi için sorun giderme kılavuzuna bakın.
Sonraki adımlar
Daha fazla örnek kod
Bu GitHub deposunda çeşitli Uygulama Yapılandırması istemci kitaplığı örnekleri sağlanır. Bu modüller şunlardır:
- Merhaba Dünya / Zaman uyumsuz sürüm
- Etiketlerle / merhaba dünyaZaman uyumsuz sürüm
- Yapılandırma ayarını salt / okunur yapmaZaman uyumsuz sürüm
- Düzeltme geçmişini / okumaZaman uyumsuz sürüm
- Değiştirilirse / bir ayar alınZaman uyumsuz sürüm
- Yapılandırma ayarları anlık görüntüsünü oluşturma, alma ve güncelleştirme durumu / Zaman uyumsuz sürüm
Daha fazla ayrıntı için bkz. BENİOKU örnekleri.
Katkıda bulunma
Bu proje, katkı ve önerilere açıktır. Çoğu durumda, sağladığınız katkıyı kullanmamız için bize hak tanıma hakkına sahip olduğunuzu ve bu hakkı bize tanıdığınızı bildiren bir Katkıda Bulunan Lisans Sözleşmesi’ni (CLA) kabul etmeniz gerekir. Ayrıntılar için bkz. https://cla.microsoft.com.
Bir çekme isteği gönderdiğinizde, CLA robotu bir CLA sağlamanız gerekip gerekmediğini otomatik olarak belirler ve çekme isteğini uygun şekilde donatır (örn. etiket, açıklama). Robot tarafından sağlanan yönergeleri izlemeniz yeterlidir. Bu işlemi, CLA’mızı kullanarak tüm depolarda yalnızca bir kere yapmanız gerekir.
Bu proje Microsoft Open Source Code of Conduct (Microsoft Açık Kaynak Kullanım Kuralları) belgesinde listelenen kurallara uygundur. Daha fazla bilgi için Kullanım Kuralları hakkında SSS bölümüne bakın veya başka soru ya da görüşleriniz olursa opencode@microsoft.com ile iletişime geçin.
Azure SDK for Python