チュートリアル: Service Connector を使用して Azure Blob Storage に接続される Web アプリケーションをデプロイする
マネージド ID を使用して、Azure App Service で実行されている Web アプリ (サインインしているユーザーではありません) に代わって Azure Blob Storage にアクセスする方法について説明します。 このチュートリアルでは、Azure CLI を使用して以下のタスクを実了します。
- Azure CLI を使用して初期環境を設定する
- ストレージ アカウントと Azure Blob Storage コンテナーを作成する。
- Azure App Service にコードをデプロイし、Service Connector を使用してマネージド ID でストレージに接続する
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Azure Cloud Shell の Bash のクイックスタート」を参照してください。
CLI リファレンス コマンドをローカルで実行する場合、Azure CLI をインストールします。 Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。
ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、Azure CLI でのサインインに関するページを参照してください。
初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、Azure CLI で拡張機能を使用する方法に関するページを参照してください。
az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。
初期環境を設定する
Azure CLI のバージョンが 2.30.0 以降であることを確認します。
az --version
アップグレードする必要がある場合は、コマンドを実行します
az upgrade
(バージョン 2.11 以降が必要)。CLI を使用して Azure にサインインします。
az login
このコマンドを実行すると、お客様の資格情報を収集するためにブラウザーが開かれます。 コマンドが終了すると、ご利用のサブスクリプションに関する情報を含んだ JSON 出力が表示されます。
サインイン後は、Azure CLI を使用して Azure コマンドを実行して、サブスクリプション内のリソースを操作することができます。
サンプル アプリをクローンまたはダウンロードする
サンプル リポジトリをクローンします。
git clone https://github.com/Azure-Samples/serviceconnector-webapp-storageblob-dotnet.git
リポジトリのルート フォルダーに移動します。
cd serviceconnector-webapp-storageblob-dotnet
App Service アプリを作成する
ターミナルで、現在の場所がアプリ コードを含む WebAppStorageMISample リポジトリ フォルダーであることを確認します。
次のコマンドを使用して App Service アプリ (ホスト プロセス) を
az webapp up
作成し、プレースホルダーを独自のデータに置き換えます。- 引数には
--location
、Service Connector でサポートされているリージョンを使用 します。 - Azure 全体で一意の名前に置き換えます
<app-name>
。 サーバー エンドポイントはhttps://<app-name>.azurewebsites.net
.<app-name>
に使用できる文字はA
-Z
、0
-9
、-
です。 会社名とアプリ識別子を組み合わせて使用すると、適切なパターンになります。
az webapp up --name <app-name> --sku B1 --location eastus --resource-group ServiceConnector-tutorial-rg
- 引数には
ストレージ アカウントと Blob Storage コンテナーを作成する
ターミナルで次のコマンドを実行して、汎用 v2 ストレージ アカウントと Blob Storage コンテナーを作成します。
az storage account create --name <storage-name> --resource-group ServiceConnector-tutorial-rg --sku Standard_RAGRS --https-only
<storage-name>
を一意の名前に置き換えます。 コンテナーの名前は小文字である必要があり、英文字または数字で始まる必要があり、英文字、数字、ダッシュ (-) 文字のみを含めることができます。
App Service アプリを Blob Storage コンテナーにマネージド ID で接続する
ターミナルで次のコマンドを実行し、マネージド ID を使用して Web アプリを BLOB ストレージに接続します。
az webapp connection create storage-blob -g ServiceConnector-tutorial-rg -n <app-name> --tg ServiceConnector-tutorial-rg --account <storage-name> --system-identity
次のプレースホルダーを独自のデータに置き換えます。
- 手順 3 で使用した Web アプリ名に置き換えます
<app-name>
。 - 手順 4 で使用したストレージ アプリ名に置き換えます
<storage-name>
。
Note
"サブスクリプションは Microsoft.ServiceLinker を使用するように登録されていません" というエラー メッセージが表示された場合は、Service Connector リソース プロバイダーを登録するために実行 az provider register -n Microsoft.ServiceLinker
し、接続コマンドをもう一度実行します。
サンプル コードを実行する
ターミナルで次のコマンドを実行して、ブラウザーでサンプル アプリケーションを開きます。 <app-name>
を先ほど使用した Web アプリ名に置き換えます。
az webapp browse --name <app-name>
サンプル コードは、Web アプリケーションです。 インデックス ページを更新するたびに、アプリケーションでは Hello Service Connector! Current is {UTC Time Now}
というテキストの BLOB がストレージ コンテナーで作成されるか更新され、インデックス ページで表示するために読み取り直されます。
次のステップ
Service Connector の詳細については、以下のガイドを参照してください。