Visual Studio 接続済みサービスを使用して Azure Cosmos DB をアプリに追加する
Visual Studio では、接続済みサービスの 機能を使用して、次のいずれかを Azure Cosmos DB に接続できます。
- .NET Framework コンソール アプリ
- ASP.NET モデル-View-Controller (MVC) (.NET Framework)
- ASP.NET Core
- .NET Core (コンソール アプリ、WPF、Windows フォーム、クラス ライブラリを含む)
- .NET Core Worker ロール
- Azure Functions
- ユニバーサル Windows プラットフォーム アプリ
- Xamarin
- コルドバ
接続されたサービス機能により、必要なすべての参照と接続コードがプロジェクトに追加され、構成ファイルが適切に変更されます。
前提 条件
- Azure ワークロードがインストールされている Visual Studio。
- サポートされている種類の 1 つのプロジェクト
- Azure アカウント。 Azure アカウントがない場合は、Visual Studio サブスクライバー向けの Azure の特典を有効にするか、無料試用版にサインアップします。
接続済みサービスを使用して Azure Cosmos DB に接続する
Visual Studio でプロジェクトを開きます。
ソリューション エクスプローラー で、接続済みサービス ノード 右クリックし、コンテキスト メニューから [接続済みサービス 追加] を選択します。
[接続済みサービス] ノードが表示されない場合は、[プロジェクト]>[接続済みサービス]>[追加] を選択します。
[接続済みサービス ] タブで、[サービスの依存関係 ] の [+] アイコンを選択します。
[依存関係の追加] ページで、[Azure Cosmos DB] を選択します。
まだサインインしていない場合は、Azure アカウントにサインインします。 Azure アカウントをお持ちでない場合は、無料試用版にサインアップできます。
Azure Cosmos DB 画面で、既存の Azure Cosmos DB を選択し、次 を選択します。
データベースを作成する必要がある場合は、次の手順に進みます。 それ以外の場合は、手順 7 に進みます。
Azure Cosmos DB を作成するには:
画面の下部にある [新しい Azure Cosmos DB の作成] を選択します。
[Azure Cosmos DB: 新規作成] 画面に入力し、[作成] を選択します。
[Azure Cosmos DB の構成] ダイアログが表示されると、新しいデータベースが一覧に表示されます。 一覧から新しいデータベースを選択し、[次へ] 選択します。
接続文字列の名前を入力し、接続文字列をローカル シークレット ファイルに格納するか、Azure Key Vault 保存するかを選択します。
変更の概要 画面には、プロセスを完了した場合にプロジェクトに加えられるすべての変更が表示されます。 変更が [OK] に見える場合は、[完了 ] を選択します。
接続は、[接続済みサービス] タブの [サービスの依存関係] セクションに表示されます。
手記
.NET Framework プロジェクトの場合、接続済みサービス UI は若干異なります。 違いを確認するには、このページの Visual Studio 2019 バージョンと比較してください。
Visual Studio でプロジェクトを開きます。
ソリューション エクスプローラー で、接続済みサービス ノード 右クリックし、コンテキスト メニューから [の追加] 選択して、使用可能なサービスのメニューを開きます。
[接続済みサービス] ノードが表示されない場合は、[プロジェクト]>[接続済みサービス]>[追加] を選択します。
Azure Cosmos DBを選択します。 [依存関係に接続する] ページが表示されます。 2 つのオプションが表示されます。1 つはローカル エミュレーター用、Azure Cosmos DB Emulator on container (Local)、1 つはライブ Azure Cosmos DB サービスに接続するためのオプションです。 ローカル エミュレーターから始めることで、コストを削減し、早期開発を簡略化できます。 後でこれらの手順を繰り返し、もう一方のオプションを選択することで、ライブ サービスに移行できます。
Azure Cosmos DB エミュレーターを使う場合は、[次へ] をクリックして [変更の概要] 画面を表示します。そこで、プロジェクトの変更方法が示されます。 NuGet パッケージ参照がプロジェクトに追加され、ローカル エミュレーターの接続コードがプロジェクトに追加されます。 最後 画面で [完了] をクリックすると、エミュレーターのコンテナーが作成されます。出力ウィンドウに画像のダウンロード状態が表示されます。
Azure サービスに接続する場合は、次の手順に進みます。まだサインインしていない場合は、続行する前に Azure アカウントにサインインします。 Azure アカウントをお持ちでない場合は、無料試用版にサインアップできます。
Azure Cosmos DB 画面で、既存の Azure Cosmos DB を選択し、次 を選択します。
データベースを作成する必要がある場合は、次の手順に進みます。 それ以外の場合は、手順 7 に進みます。
Azure Cosmos DB を作成するには:
画面の下部で「新しい Azure Cosmos DB の作成」を選択します。
[Azure Cosmos DB: 新規作成] 画面に入力し、[作成] を選択します。
[Azure Cosmos DB の構成] ダイアログが表示されると、新しいデータベースが一覧に表示されます。 一覧から新しいデータベースを選択し、[次へ] 選択します。
接続文字列の名前を入力し、接続文字列をローカル シークレット ファイルに格納するか、Azure Key Vault 保存するかを選択します。
接続文字列がシークレットとして追加され、アプリ構成で使用できるようになります。 ASP.NET Core アプリでは、
WebApplicationBuild
オブジェクトのConfiguration
プロパティを使用して、この接続文字列にアクセスできます。変更の概要 画面には、プロセスを完了した場合にプロジェクトに加えられるすべての変更が表示されます。 変更が [OK] に見える場合は、[完了 ] を選択します。
ソリューション エクスプローラーで、接続済みサービス ノードをダブルクリックして、[接続済みサービスの ] タブ 開きます。サービス依存関係の セクションに接続が表示されます。
追加した依存関係の横にある 3 つの点をクリックすると、接続 などのさまざまなオプションが表示され、ウィザードを再度開いて接続を変更できます。 また、ウィンドウの右上にある 3 つのドットをクリックして、ローカルの依存関係を開始したり、設定を変更したりするためのオプションを表示することもできます。
既定では、コンテナー内のメモリ制限は 2G に設定されていますが、通常、Azure Cosmos DB を実行するにはさらに多くのメモリが必要です。 これを解決するには、ソリューション フォルダーの下にある
.vs/sd/<GUID>/local
フォルダーに移動します。 Windows エクスプローラーで、非表示のファイルを有効にして.vs
フォルダーを表示する必要がある場合があります。 cosmosdb1.docker-compose.ymlファイルを見つけて開きます。 4G 以上のメモリ制限を設定します。mem_limit = 4G
新しい設定でコンテナーを再起動するには、[接続済みサービスの ] タブの [ サービスの依存関係] セクションで、3 つのドットをクリックし、[ローカル依存関係の開始] 選択。
手記
Azure Cosmos DB のローカル エミュレーターは、Azure Cosmos DB の一時的なライセンスを使用する基本イメージを参照する場合があります。 コンテナーが起動しない場合は、Azure Cosmos DB コンテナーの コンテナー* ウィンドウの [ログ] タブを確認します。 PAL の有効期限の問題に言及している場合は、ローカル コンテナーの最新の基本イメージを取得する必要があります。 コンソール プロンプトから次のコマンドを実行します:docker pull mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest
。 ライセンスは定期的に更新され、有効期限が切れると、最新のコンテナーに更新して問題を解決する必要があります。 Azure Cosmos DB エミュレーターの問題は、Azure Cosmos DB エミュレーターの GitHub リポジトリで表示および報告できます。
次の手順
ASP.NET Coreの開発で、アプリシークレットの安全な格納方法を知るために、の手順に従ってください。 特に、シークレット ストアから接続文字列を読み取るために、構成 API を使用してシークレットを読み取るのようにコードを追加できます。 コードは次のようになります。builder
は、ASP.NET Core プロジェクト テンプレートの Program.cs に表示される WebApplicationBuild
のインスタンスです。
// New instance of CosmosClient class using a connection string
using CosmosClient client = new(
connectionString: builder.Configuration["CosmosDBConnectionString"]
);
CosmosClient
では、さまざまな方法で Azure Cosmos DB の機能にアクセスできます。 CosmosClient
のインスタンスを作成したら、次のガイドに従って NoSQL データベースを作成できます。.NETを使用して Azure Cosmos DB for NoSQL にデータベースを作成します。
関連コンテンツ
- Azure Cosmos DB 製品ページ
- Azure Cosmos DB のドキュメント
- ASP.NET Core における依存関係の注入