Share via


チュートリアル: 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 にデプロイします

前提条件

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
    
    パラメーター 説明
    場所 近くの場所を選択します。 場所を一覧表示するには、az account list-locations --output table を使用します。 eastus
    リソース グループ名 このリソース グループを使用して、このチュートリアルを完了するために必要なすべての Azure リソースを整理します。 サービス-コネクタ-チュートリアル-rg
    App Service の名前 アプリ サービス名は、Azure 内のリソースの名前として使用され、またサーバー エンドポイント のフォームで、アプリの完全修飾ドメイン名を形成するためにも使用されますhttps://<app-service-name>.azurewebsites.com。 この名前はAzure 全体で一意である必要があり、使用できる文字はA-Z0-9、 と -のみです。 webapp-appconfig-smi
  3. Azure App Configuration 保存の作成

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

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

    1. フォルダーに Cd を挿入する ServiceConnectorSample

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

      az appconfig kv import -n $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 -g $RESOURCE_GROUP_NAME -n $APP_SERVICE_NAME --app-config $APP_CONFIG_NAME --tg $RESOURCE_GROUP_NAME --connection "app_config_smi" --system-identity

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

接続の検証

  1. 接続が機能しているかどうかを検査するには、ブラウザーから Web アプリ https://<myWebAppName>.azurewebsites.net/ に移動します。 Web サイトが起動すると、「Hello」が表示され、 Azure WebApp が 今ServiceConnector によってApp Configurationに接続されました」が表示されます。

しくみ

認証の型ごとに、サービス コネクタがバックグラウンドで管理するものを以下に示します。

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

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

詳細については、「サービス コネクタ の内部」を参照してください。

テスト (省略可能)

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

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

    az appconfig kv set -n <myAppConfigStoreName> --key SampleApplication:Settings:Messages --value hello --yes
    
  2. https://<myWebAppName>.azurewebsites.net/に移動してページを更新して、Azure Web アプリに 移動します。 メッセージが 「hello」 に更新されていることがわかります。

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

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

az group delete -n <myResourceGroupName> --yes

次のステップ

Service Connector の詳細については、以下のチュートリアルに従ってください。