Hızlı Başlangıç: Python uygulamasına özellik bayrakları ekleme

Bu hızlı başlangıçta, Azure Uygulaması Yapılandırmasında bir özellik bayrağı oluşturacak ve özellik yönetiminin uçtan uca uygulamasını oluşturmak üzere Python uygulamalarını dinamik olarak denetlemek için kullanacaksınız.

Özellik yönetimi desteği, Uygulama Yapılandırması'daki dinamik yapılandırma özelliğini genişletir. Hızlı başlangıç derlemesindeki bu örnekler, dinamik yapılandırma öğreticisinde tanıtılanPpython uygulamalarına yöneliktir. Devam etmeden önce hızlı başlangıcı ve dinamik yapılandırma ile python uygulamaları oluşturma öğreticisini tamamlayın.

Bu kitaplığın hiçbir Azure kitaplığına bağımlılığı yoktur . Python yapılandırma sağlayıcısı aracılığıyla Uygulama Yapılandırması ile sorunsuz bir şekilde tümleşir.

Önkoşullar

  • Etkin aboneliği olan bir Azure hesabı. Ücretsiz bir tane oluşturun.
  • bir Uygulama Yapılandırması mağazası. Mağaza oluşturma.
  • Python 3.8 veya üzeri - Windows'ta Python'ı ayarlama hakkında bilgi için Windows üzerinde Python belgelerine bakın, aksi takdirde python indirmelerine bakın.
  • azure-appconfiguration-provider library 1.2.0 veya üzeri.

Özellik bayrağı ekleme

Uygulama Yapılandırması deposuna Beta adlı bir özellik bayrağı ekleyin ve Etiket ve Açıklama değerlerini varsayılan değerleriyle bırakın. Azure portalını veya CLI'yı kullanarak bir depoya özellik bayrakları ekleme hakkında daha fazla bilgi için Özellik bayrağı oluşturma bölümüne gidin. Bu aşamada Özellik bayrağını etkinleştir onay bock işaretinin kaldırılmış olması gerekir.

Beta adlı özellik bayrağını etkinleştir seçeneğinin ekran görüntüsü.

Konsol uygulamaları

  1. komutunu kullanarak Özellik Yönetimi'ni pip install yükleyin.

    pip install featuremanagement
    
  2. adlı app.py yeni bir Python dosyası oluşturun ve aşağıdaki kodu ekleyin:

    from featuremanagement import FeatureManager
    from azure.identity import InteractiveBrowserCredential
    from azure.appconfiguration.provider import load
    import os
    from time import sleep
    
    endpoint = os.environ["APP_CONFIGURATION_ENDPOINT"]
    
    # Connecting to Azure App Configuration using an endpoint
    # credential is used to authenticate the client, the InteractiveBrowserCredential is used for this sample. It will open a browser window to authenticate the user. For all credential options see [credential classes](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity#credential-classes).
    # feature_flag_enabled makes it so that the provider will load feature flags from Azure App Configuration
    # feature_flag_refresh_enabled makes it so that the provider will refresh feature flags from Azure App Configuration, when the refresh operation is triggered
    config = load(endpoint=endpoint, credential=InteractiveBrowserCredential(), feature_flag_enabled=True, feature_flag_refresh_enabled=True)
    
    feature_manager = FeatureManager(config)
    
    # Is always false
    print("Beta is ", feature_manager.is_enabled("Beta"))
    
    while not feature_manager.is_enabled("Beta"):
        sleep(5)
        config.refresh()
    
    print("Beta is ", feature_manager.is_enabled("Beta"))
    

Uygulamayı başlatırken, kullanıcının kimliğini doğrulamak için bir tarayıcı penceresi açılır. Kullanıcının Uygulama Yapılandırması deposuna erişmek için en azından App Configuration Data Reader rolü olması gerekir. Daha fazla bilgi için bkz. Uygulama Yapılandırması rolleri.

  1. APP_CONFIGURATION_ENDPOINT adlı bir ortam değişkeni ayarlayın ve bunu Uygulama Yapılandırması deponuzun uç noktasına ayarlayın. Komut satırında aşağıdaki komutu çalıştırın ve değişikliğin etkili olması için komut istemini yeniden başlatın:

    Windows komut istemini kullanarak uygulamayı yerel olarak derlemek ve çalıştırmak için aşağıdaki komutu çalıştırın:

    setx APP_CONFIGURATION_ENDPOINT "endpoint-of-your-app-configuration-store"
    

    Değişikliğin etkili olması için komut istemini yeniden başlatın. Ortam değişkeninin değerini yazdırarak düzgün ayarlandığını doğrulayın.

  2. Python uygulamasını çalıştırın.

    python app.py
    
  3. Uygulama Yapılandırması portalında Özellik Yöneticisi'ni seçin ve Etkin sütunundaki iki durumlu düğmeyi kullanarak Beta özellik bayrağının durumunu Açık olarak değiştirin.

    Anahtar Durum
    Beta Açık
  4. Sağlayıcı için yenileme aralığı olan yaklaşık 30'lardan sonra uygulama aşağıdakileri yazdırır:

    Beta is True
    

Web uygulamaları

Aşağıdaki örnekte, özellik bayraklarını da kullanmak için dinamik yenileme ile Azure Uygulaması Yapılandırması kullanılarak mevcut bir web uygulamasının nasıl güncelleştirilecekleri gösterilmektedir. Yapılandırma değerleri için dinamik yenilemenin nasıl kullanılacağına ilişkin daha ayrıntılı bir örnek için bkz . Python Dinamik Yapılandırması . Devam etmeden önce, Uygulama Yapılandırması deponuzda Beta özellik bayrağının etkinleştirildiğinden emin olun.

içindeapp.py, özellik bayraklarını ek olarak yüklemek ve özellik bayraklarının yenilenmesini sağlamak için Azure Uygulaması Yapılandırması'nın yükleme yöntemini ayarlayın.

from featuremanagement import FeatureManager

...

global azure_app_config, feature_manager
# Connecting to Azure App Configuration using an endpoint
# credential is used to authenticate the client, the InteractiveBrowserCredential is used for this sample. It will open a browser window to authenticate the user. For all credential options see [credential classes](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity#credential-classes).
# feature_flag_enabled makes it so that the provider will load feature flags from Azure App Configuration
# feature_flag_refresh_enabled makes it so that the provider will refresh feature flags from Azure App Configuration, when the refresh operation is triggered
azure_app_config = load(endpoint=endpoint, credential=InteractiveBrowserCredential(),
                        refresh_on=[WatchKey("sentinel")],
                        on_refresh_success=on_refresh_success,
                        refresh_interval=10, # Default value is 30 seconds, shortened for this sample
                        feature_flag_enabled=True,
                        feature_flag_refresh_enabled=True,
                    )
feature_manager = FeatureManager(config)

Ayrıca güncelleştirilmiş özellik bayraklarını denetlemek için rotalarınızı güncelleştirin.

@app.route("/")
def index():
    ...
    context["message"] = azure_app_config.get("message")
    context["beta"] = feature_manager.is_enabled("Beta")
    ...

Şablonunuzu index.html yeni özellik bayraklarını kullanacak şekilde güncelleştirin.

...

<body>
  <main>
    <div>
      <h1>{{message}}</h1>
      {% if beta %}
      <h2>Beta is enabled</h2>
      {% endif %}
    </div>
  </main>
</body>

Uygulamanızı güncelleştirdikten ve çalıştırdıktan sonra, özellik bayrağını uygulamada Beta is enabled görebilirsiniz; burada ileti sayfada görünür, ancak yalnızca özellik bayrağı Uygulama Yapılandırması deposunda etkinleştirilirse.

Özellik bayrağını etkinleştir beta özelliğinin etkinleştirildiği ekran görüntüsü.

Tam örnek projeyi burada bulabilirsiniz.

Bu uç noktalar tetiklendiğinde, en son yapılandırma değerlerinin kullanıldığından emin olmak için yenileme denetimi gerçekleştirilebilir. Yenileme aralığı henüz geçirilmemişse veya yenileme devam ediyorsa denetim hemen geri dönebilir.

Yenileme tamamlandığında tüm değerler aynı anda güncelleştirilir, bu nedenle yapılandırma nesne içinde her zaman tutarlı olur.

Kaynakları temizleme

Bu makalede oluşturulan kaynakları kullanmaya devam etmek istemiyorsanız ücretlerden kaçınmak için burada oluşturduğunuz kaynak grubunu silin.

Önemli

Silinen kaynak grupları geri alınamaz. Kaynak grubu ve içindeki tüm kaynaklar kalıcı olarak silinir. Yanlış kaynak grubunu veya kaynakları yanlışlıkla silmediğinizden emin olun. Bu makalenin kaynaklarını, saklamak istediğiniz diğer kaynakları içeren bir kaynak grubu içinde oluşturduysanız, kaynak grubunu silmek yerine her kaynağı ilgili bölmeden tek tek silin.

  1. Azure portalında oturum açın ve Kaynak grupları'nı seçin.
  2. Ada göre filtrele kutusuna kaynak grubunuzun adını girin.
  3. Genel bir bakış görmek için sonuç listesinde kaynak grubu adını seçin.
  4. Kaynak grubunu sil'i seçin.
  5. Kaynak grubunun silinmesini onaylamanız istenir. Onaylamak için kaynak grubunuzun adını girin ve Sil'i seçin.

Birkaç dakika sonra kaynak grubu ve tüm kaynakları silinir.

Sonraki adımlar

Bu hızlı başlangıçta yeni bir Uygulama Yapılandırması deposu oluşturdunuz ve Özellik Yönetimi kitaplığı aracılığıyla python uygulamasındaki özellikleri yönetmek için kullandınız.