Azure SDK for Python を使用して Python アプリを作成する

このドキュメントでは、Azure SDK for Python を使用して Azure App Configuration 内のデータにアクセスする方法の例を示します。

ヒント

App Configuration は、Python SDK 上に構築された Python プロバイダー ライブラリを提供します。使いやすい設計であり、豊富な機能を備えています。 ディレクトリのように使用される構成設定を実現し、複数のラベルからの構成の組み立て、キー名のトリミング、Key Vault 参照の自動解決などのその他の機能を提供します。 詳細については、Python のクイックスタートを参照してください。

前提条件

キー値を作成する

App Configuration ストアに次のキーと値を追加し、[ラベル][コンテンツのタイプ] を既定値のままにします。 Azure portal または CLI を使用してストアにキーと値を追加する方法の詳細については、キーと値の作成に関する記事を参照してください。

キー
TestApp:Settings:Message Azure App Configuration からのデータ

Python アプリを設定する

  1. プロジェクト用に app-configuration-example という名前の新しいディレクトリを作成します。

    mkdir app-configuration-example
    
  2. 新しく作成した app-configuration-example ディレクトリに切り替えます。

    cd app-configuration-example
    
  3. pip install コマンドを使用して、Azure App Configuration クライアント ライブラリをインストールします。

    pip install azure-appconfiguration
    
  4. app-configuration-example ディレクトリに app-configuration-example.py という名前の新しいファイルを作成し、次のコードを追加します。

    import os
    from azure.appconfiguration import AzureAppConfigurationClient, ConfigurationSetting
    
    try:
        print("Azure App Configuration - Python example")
        # Example code goes here
    except Exception as ex:
        print('Exception:')
        print(ex)
    

注意

この例のコード スニペットは、Python 用の App Configuration クライアント ライブラリで作業を開始する際に役立ちます。 ご自分のアプリケーションでは、必要に応じて例外の処理についても検討してください。 例外の処理の詳細については、Python SDK のドキュメントを参照してください。

App Configuration 接続文字列の構成

  1. AZURE_APPCONFIG_CONNECTION_STRING という名前の環境変数を設定し、それを App Configuration ストアへの接続文字列に設定します。 コマンド ラインで次のコマンドを実行します。

    ローカル環境で Windows コマンド プロンプトを使用してアプリを実行するには、次のコマンドを実行します。<app-configuration-store-connection-string> を実際のアプリ構成ストアの接続文字列に置き換えてください。

    setx AZURE_APPCONFIG_CONNECTION_STRING "connection-string-of-your-app-configuration-store"
    
  2. 次のコマンドを使って環境変数の値を出力し、正しく設定されていることを確認します。

    Windows コマンド プロンプトを使用し、コマンド プロンプトを再起動して変更を反映させ、次のコマンドを実行します。

    echo %AZURE_APPCONFIG_CONNECTION_STRING%
    

コード サンプル

このセクションのサンプル コード スニペットでは、Python 用の App Configuration クライアント ライブラリを使用して一般的な操作を実行する方法を示します。 前に作成した app-configuration-example.py ファイルの try ブロックにこれらのコード スニペットを追加します。

Note

App Configuration クライアント ライブラリは、キー値オブジェクトを ConfigurationSetting として参照します。 そのため、この記事では、App Configuration ストア内のキー値構成設定として参照されます。

以下の方法について説明します。

App Configuration ストアに接続する

次のコード スニペットでは、ご自分の環境変数に格納された接続文字列を使用して、AzureAppConfigurationClient のインスタンスを作成します。

    connection_string = os.getenv('AZURE_APPCONFIG_CONNECTION_STRING')
    app_config_client = AzureAppConfigurationClient.from_connection_string(connection_string)

構成設定を取得する

次のコード スニペットでは、key 名を指定して構成設定を取得します。

    retrieved_config_setting = app_config_client.get_configuration_setting(key='TestApp:Settings:Message')
    print("\nRetrieved configuration setting:")
    print("Key: " + retrieved_config_setting.key + ", Value: " + retrieved_config_setting.value)

構成設定を追加する

次のコード スニペットでは、key および value フィールドを備えた ConfigurationSetting オブジェクトを作成し、add_configuration_setting メソッドを呼び出します。 このメソッドでは、自分のストアに既に存在する構成設定を追加しようとすると例外がスローされます。 この例外を回避したい場合は、代わりに set_configuration_setting メソッドを使用できます。

    config_setting = ConfigurationSetting(
        key='TestApp:Settings:NewSetting',
        value='New setting value'
    )
    added_config_setting = app_config_client.add_configuration_setting(config_setting)
    print("\nAdded configuration setting:")
    print("Key: " + added_config_setting.key + ", Value: " + added_config_setting.value)

構成設定のリストを取得する

次のコード スニペットでは、構成設定のリストを取得します。 key_filter および label_filter 引数を指定して、それぞれ keylabel に基づいてキー値をフィルターできます。 フィルターの詳細については、構成設定を照会する方法を確認してください。

    filtered_settings_list = app_config_client.list_configuration_settings(key_filter="TestApp*")
    print("\nRetrieved list of configuration settings:")
    for item in filtered_settings_list:
        print("Key: " + item.key + ", Value: " + item.value)

構成設定をロックする

App Configuration 内のキー値のロック状態は、ConfigurationSetting オブジェクトの read_only 属性によって示されます。 read_onlyTrue の場合、設定はロックされています。 read_only=True 引数を使用して set_read_only メソッドを呼び出し、構成設定をロックできます。

    locked_config_setting = app_config_client.set_read_only(added_config_setting, read_only=True)
    print("\nRead-only status for " + locked_config_setting.key + ": " + str(locked_config_setting.read_only))

構成設定をロック解除する

ConfigurationSettingread_only 属性が False の場合、設定はロック解除されています。 read_only=False 引数を使用して set_read_only メソッドを呼び出し、構成設定をロック解除できます。

    unlocked_config_setting = app_config_client.set_read_only(locked_config_setting, read_only=False)
    print("\nRead-only status for " + unlocked_config_setting.key + ": " + str(unlocked_config_setting.read_only))

構成設定を更新する

set_configuration_setting メソッドを使用して、既存の設定を更新したり新しい設定を作成したりできます。 次のコード スニペットでは、既存の構成設定の値を変更します。

    added_config_setting.value = "Value has been updated!"
    updated_config_setting = app_config_client.set_configuration_setting(added_config_setting)
    print("\nUpdated configuration setting:")
    print("Key: " + updated_config_setting.key + ", Value: " + updated_config_setting.value)

構成設定を削除する

次のコード スニペットでは、key 名を指定して構成設定を削除します。


    deleted_config_setting = app_config_client.delete_configuration_setting(key="TestApp:Settings:NewSetting")
    print("\nDeleted configuration setting:")
    print("Key: " + deleted_config_setting.key + ", Value: " + deleted_config_setting.value)

アプリを実行する

この例で作成した Python アプリでは、Azure App Configuration クライアント ライブラリを使用して、Azure portal を通じて作成した構成設定の取得、新しい設定の追加、既存の設定が記載されたリストの取得、設定のロックとロック解除、設定の更新、最後に設定の削除を行います。

この時点で、app-configuration-example.py ファイルに次のコードが含まれている必要があります。

import os
from azure.appconfiguration import AzureAppConfigurationClient, ConfigurationSetting

try:
    print("Azure App Configuration - Python example")
    # Example code goes here

    connection_string = os.getenv('AZURE_APPCONFIG_CONNECTION_STRING')
    app_config_client = AzureAppConfigurationClient.from_connection_string(connection_string)

    retrieved_config_setting = app_config_client.get_configuration_setting(key='TestApp:Settings:Message')
    print("\nRetrieved configuration setting:")
    print("Key: " + retrieved_config_setting.key + ", Value: " + retrieved_config_setting.value)

    config_setting = ConfigurationSetting(
        key='TestApp:Settings:NewSetting',
        value='New setting value'
    )
    added_config_setting = app_config_client.add_configuration_setting(config_setting)
    print("\nAdded configuration setting:")
    print("Key: " + added_config_setting.key + ", Value: " + added_config_setting.value)

    filtered_settings_list = app_config_client.list_configuration_settings(key_filter="TestApp*")
    print("\nRetrieved list of configuration settings:")
    for item in filtered_settings_list:
        print("Key: " + item.key + ", Value: " + item.value)

    locked_config_setting = app_config_client.set_read_only(added_config_setting, read_only=True)
    print("\nRead-only status for " + locked_config_setting.key + ": " + str(locked_config_setting.read_only))

    unlocked_config_setting = app_config_client.set_read_only(locked_config_setting, read_only=False)
    print("\nRead-only status for " + unlocked_config_setting.key + ": " + str(unlocked_config_setting.read_only))

    added_config_setting.value = "Value has been updated!"
    updated_config_setting = app_config_client.set_configuration_setting(added_config_setting)
    print("\nUpdated configuration setting:")
    print("Key: " + updated_config_setting.key + ", Value: " + updated_config_setting.value)

    deleted_config_setting = app_config_client.delete_configuration_setting(key="TestApp:Settings:NewSetting")
    print("\nDeleted configuration setting:")
    print("Key: " + deleted_config_setting.key + ", Value: " + deleted_config_setting.value)

except Exception as ex:
    print('Exception:')
    print(ex)

コンソール ウィンドウで、app-configuration-example.py ファイルが格納されているディレクトリに移動し、次の Python コマンドを実行してアプリを実行します。

python app-configuration-example.py

次の出力が表示されます。

Azure App Configuration - Python example

Retrieved configuration setting:
Key: TestApp:Settings:Message, Value: Data from Azure App Configuration

Added configuration setting:
Key: TestApp:Settings:NewSetting, Value: New setting value

Retrieved list of configuration settings:
Key: TestApp:Settings:Message, Value: Data from Azure App Configuration
Key: TestApp:Settings:NewSetting, Value: New setting value

Read-only status for TestApp:Settings:NewSetting: True

Read-only status for TestApp:Settings:NewSetting: False

Updated configuration setting:
Key: TestApp:Settings:NewSetting, Value: Value has been updated!

Deleted configuration setting:
Key: TestApp:Settings:NewSetting, Value: Value has been updated!

リソースをクリーンアップする

この記事で作成したリソースを継続して使用しない場合は、ここで作成したリソース グループを削除して課金されないようにしてください。

重要

リソース グループを削除すると、元に戻すことができません。 リソース グループとそのすべてのリソースは完全に削除されます。 間違ったリソース グループやリソースをうっかり削除しないようにしてください。 この記事のリソースを、保持したい他のリソースを含むリソース グループ内に作成した場合は、リソース グループを削除する代わりに、各リソースをそれぞれのペインから個別に削除します。

  1. Azure portal にサインインし、 [リソース グループ] を選択します。
  2. [名前でフィルター] ボックスにリソース グループの名前を入力します。
  3. 結果一覧でリソース グループ名を選択し、概要を表示します。
  4. [リソース グループの削除] を選択します。
  5. リソース グループの削除の確認を求めるメッセージが表示されます。 確認のためにリソース グループの名前を入力し、 [削除] を選択します。

しばらくすると、リソース グループとそのすべてのリソースが削除されます。

次のステップ

このガイドでは、Azure SDK for Python を使用して Azure App Configuration 内のデータにアクセスする方法を示しました。

その他のコード サンプルについては、次を参照してください。

Python アプリで Azure App Configuration を使用する方法については、次のページを参照してください。