次の方法で共有


チュートリアル: Web アプリを サービス コネクタ でAzure App Configurationに接続する

次のいずれかの方法を使用して、Azure App Serviceで実行されている ASP.NET Core アプリをAzure App Configurationに接続する方法について説明します:

  • システム割り当てマネージド ID (SMI)
  • ユーザー割り当てマネージド ID (UMI)
  • サービス プリンシパル
  • 接続文字列

このチュートリアルでは、Azure CLI を使用して以下のタスクを実了します:

  • Azure リソースの設定
  • Web アプリとApp Configuration間の接続を作成する
  • お客様のアプリをビルドして Azure App Service にデプロイします

Prerequisites

Azure へのサインイン

Azure CLI で az login を実行して Azure にサインインします。

Azure リソースの設定

まず、Azure リソースを作成します。

  1. 次のサンプルリポジトリをクローンする:

    git clone https://github.com/Azure-Samples/serviceconnector-webapp-appconfig-dotnet.git
    
  2. Web アプリを Azure にデプロイする。

    次のステップに従って App Service を作成し、サンプル アプリをデプロイします。 サブスクリプションの 共同作成者 ロールまたは 所有者 ロールがあることを確認します。

    アプリ サービスを作成し、システム割り当てマネージド ID を使用して App Config と対話するサンプル アプリをデプロイします。

    # Change directory to the SMI sample
    cd serviceconnector-webapp-appconfig-dotnet\system-managed-identity
    
    # Create a web app
    
    LOCATION='eastus'
    RESOURCE_GROUP_NAME='service-connector-tutorial-rg'
    APP_SERVICE_NAME='webapp-appconfig-smi'
    
    az webapp up --location $LOCATION --resource-group $RESOURCE_GROUP_NAME --name $APP_SERVICE_NAME
    
    Parameter Description Example
    Location 近くの場所を選択します。 場所を一覧表示するには、az account list-locations --output table を使用します。 eastus
    リソース グループ名 このリソース グループを使用して、このチュートリアルを完了するために必要なすべての Azure リソースを整理します。 service-connector-tutorial-rg
    App Service の名前 アプリ サービス名は、Azure のリソースの名前として使用され、サーバー エンドポイントの形式でアプリの完全修飾ドメイン名を形成するために使用されます。 有効な文字は、A-Z0-9、および - です。 Azure はランダムな文字列を追加して、サーバー エンドポイントをすべての Azure で一意にします。 webapp-appconfig-smi
  3. Azure App Configuration ストアを作成します。

    APP_CONFIG_NAME='my-app-config'
    
    az appconfig create --resource-group $RESOURCE_GROUP_NAME --name $APP_CONFIG_NAME --sku Free --location eastus
    
  4. テスト構成ファイルをAzure App Configurationにインポートします。

    システム割り当てマネージド ID を使用してテスト構成ファイルをAzure App Configurationにインポートします。

    1. ディレクトリをフォルダー ServiceConnectorSampleに変更します。

    2. テスト構成ファイル sampleconfigs.json App Configuration ストアにインポートします。 Cloud Shell を使用している場合は、コマンドを実行する前に sampleconfigs.json アップロードします。

      az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
      

Web アプリをAzure App Configurationに接続する

Web アプリケーションとAzure App Configuration 保存の間に接続を作成します。

システム割り当てマネージド ID 認証を使用して、Web アプリケーションとAzure App Configuration 保存の間に接続を作成します。 この接続は、サービス コネクタ を介して行われます。

az webapp connection create appconfig --resource-group $RESOURCE_GROUP_NAME --name $APP_SERVICE_NAME --app-config $APP_CONFIG_NAME --tg $RESOURCE_GROUP_NAME --connection "app_config_smi" --system-identity

system-identity は、システム割り当てマネージド ID (SMI) 認証の種類を指します。 Service Connector では、ユーザー割り当てマネージド ID (UMI)、接続文字列 (シークレット)、サービス プリンシパルなどの認証もサポートされています。

接続の検証

接続が機能しているかどうかを確認するには、Web アプリに移動します。 Web アプリにアクセスする最も簡単な方法は、Azure portal で開く方法です。 [ 概要 ] ページで、[ 既定のドメイン] を選択します。 Web サイトが起動すると、次の情報が表示されます: Hello。これで、Azure WebApp が ServiceConnector によって App Configuration に接続されました

しくみ

認証の種類ごとに、Service Connector がバックグラウンドで管理する内容を確認します。

サービス コネクタ によって接続構成が管理されます:

  • アプリケーションが Web アプリにアクセスし、App Configuration エンドポイントを取得できるように Web アプリAZURE_APPCONFIGURATION_ENDPOINTを設定します。 サンプル コードにアクセスします。
  • Web アプリのシステム割り当てマネージド認証をアクティブ化し、App Configurationにデータ閲覧者ロールを許可して、アプリケーションが Azure.Identity の DefaultAzureCredential を使用してApp Configurationに対して認証できるようにします。 サンプル コードにアクセスします。

詳細については、「 Service Connector の内部」を参照してください。

テスト (省略可能)

必要に応じて、次のテストを実行します:

  1. App Configuration Microsoft Store内のキーSampleApplication:Settings:Messagesの値を更新します。

    az appconfig kv set --name <myAppConfigStoreName> --key SampleApplication:Settings:Messages --value hello --yes
    
  2. 前述のように Azure Web アプリに移動し、ページを更新します。 メッセージが次に更新されていることがわかります: hello

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

完了したら、これらの Azure リソースを今後使用しない場合は、 az group delete コマンドを実行して削除します。 このコマンドは、リソース グループとその中のすべてのリソースを削除します。

az group delete --name <myResourceGroupName> --yes

次のステップ