Azure サービス、gRPC、OpenAPI などへの接続
開発者はますます多くのサービスを使用してアプリを構築しているが、サービス テクノロジは同じくらい速く進化している。
Visual Studio の 接続済みサービスを使用すると、各サービスで消費エクスペリエンスを調整できる最新のサービス消費エクスペリエンスが提供され、すぐに開始するために必要な関連する質問を求められます。
接続サービスには、アプリケーションを以下に接続する際に役立つ Visual Studio のツール群が含まれています。
- Azure サービス
- OpenAPI エンドポイント
- gRPC (リモート プロシージャ コール) エンドポイント
- Windows Communication Foundation (WCF) エンドポイント
- データベースとデータ プロバイダー
まず、ソリューション エクスプローラーで [接続済みサービス] ノードを右クリックし、[接続済みサービスの管理] を選択します。
まず、プロジェクト ノードを右クリックし、[>接続済みサービスの追加] を選択します。 ソリューション エクスプローラーの [接続済みサービス] ノードを右クリックし、追加する特定のサービスを選択することもできます。
サポートされるプロジェクトの種類は、サービスの種類によって異なります。 一覧表示されている選択項目に、プロジェクトの種類に適用されるオプションが表示されます。
多くの Visual Studio サブスクリプションには、Azure の個々の開発/テスト クレジット 含まれています。 Visual Studio サブスクライバーの場合は、これらのクレジットを使用して、さまざまな Azure サービスを無償で試すことができます。 サブスクライバーでなく、Azure サブスクリプションを持っていない場合は、無料アカウント を作成。
アプリを Azure サービスに接続する
接続済みサービスを使用して、アプリケーションをライブ Azure サービス エミュレーターや Azure サービスの他のローカル代替手段に接続します。 Visual Studio では現在、次のものがサポートされています。
名前 | 説明 |
---|---|
Azure App Configuration | Azure で一元的に管理されるキー値の設定と機能フラグにアクセスします。 |
Azure App Insights | ライブ Web アプリの拡張可能なアプリケーション パフォーマンス管理と監視を提供します。 |
Azure App Service | ライブ Web アプリのフル サービスでスケーラブルなホスティングを提供します。 |
Azure Functions | Web API などのスケーラブルなコンピューティング オンデマンド サービスを提供します。 |
Azure Storage | BLOB、テーブル、キュー、ディスクをサポートするスケーラブルなクラウド ストレージ。 |
Azure SignalR Service | HTTP 経由のリアルタイム Web 機能。 |
Azure Key Vault | Azure アプリケーションで使用される暗号化キーやその他のシークレット用のクラウド ストレージをセキュリティで保護します。 |
Azure SQL Database | クラウドでホストされる SQL Database。 |
Azure Cache for Redis | Redis ソフトウェアに基づくメモリ内データ ストア。 |
Azure Cosmos DB | 最新のアプリ開発用のフル マネージド NoSQL データベース。 |
Microsoft ID プラットフォーム | Microsoft ID とソーシャル アカウントを使用した認証。 |
手記
発行を使用すると、Azure VM、Azure App Service、Azure Functions、Azure Container Registry などの Azure ホスティング サービスにアプリケーションをデプロイできます。
データベースとデータ プロバイダー
Visual Studio には、オンプレミス データベース、ローカルでエミュレートされたバージョンのデータ プロバイダー、および Azure データベース サービスに接続するためのオプションが用意されています。
名前 | 説明 |
---|---|
コンテナー上の Azure Cosmos DB エミュレーター | ローカル コンテナーで実行されている Azure Cosmos DB エミュレーター。 |
コンテナー上の MongoDB | MongoDB ドキュメント データベースは、高い信頼性と簡単なスケーラビリティを提供します。 このオプションを使用すると、ローカル コンテナーで使用できるようになります。 |
コンテナー上の PostgreSQL | PostgreSQL は、信頼性とデータ整合性を提供するオブジェクト リレーショナル データベース システムです。 このオプションを使用すると、ローカル コンテナーで使用できるようになります。 |
SQLite | SQLite は、構成なしで自己完結型のトランザクション SQL Server データベース エンジンを提供するインプロセス ライブラリです。 |
SQL Server データベース | オンプレミスの SQL Server データベース。 |
Azure エミュレーターとローカルの代替手段のサポート
Visual Studio では、ローカルでエミュレートされたサービスからクラウドで実行されているサービスへの移行を容易にすることで、Azure アプリケーションをローカルで簡単に開発できます。 接続済みサービスを使用して、アプリケーションをローカル エミュレーターに接続できます。その一部はローカル コンテナーで実行され、その一部は Azure サービスの他のローカル代替手段として実行されます。 Visual Studio では現在、次のものがサポートされています。
Visual Studio では、通信を容易にするために必要なクライアントまたはサーバー コードが生成されます。
名前 | 説明 |
---|---|
コンテナー 上の Azure Cosmos DB エミュレーター | ローカル コンテナーで実行されている Azure Cosmos DB エミュレーター。 |
Azure Storage Emulator | Azurite は、ローカル コンピューター上で実行される Azure Storage エミュレーターです。 |
Application Insights SDK | Application Insights サービスのローカル モード。 |
コンテナー上の RabbitMQ | RabbitMQ は、オープンソースのマルチプロトコル メッセージ ブローカーです。 このオプションを使用すると、ローカル コンテナーで使用できるようになります。 |
コンテナー上の Azure Cache for Redis | ローカル コンテナーでホストされている Azure Cache for Redis。 |
Secrets.json | Key Vault のローカル代替。 |
SQL Server Express LocalDB | Azure SQL Database のローカル代替案。 |
アプリを gRPC、OpenAPI、WCF エンドポイントに接続する
接続済みサービスを使用して、アプリケーションを次のいずれかのサービスに接続します。
名前 | ASP.NET リンク | 説明 |
---|---|---|
OpenAPI エンドポイント | ASP.NET Core API アプリで OpenAPI サポートを | コンピューターが読み取り可能で人間が判読できる形式でサービスの機能を記述するための標準形式。 |
gRPC エンドポイント | .NET での gRPC サービスの概要 | オープンソースのリアルタイム プロシージャ呼び出しサービス。 |
WCF エンドポイント | N/A | サービスの分散ネットワークを使用したプログラミングをサポートする .NET Framework ソリューション。 |
コンテナー
接続済みサービスは、コンテナー内で Azure サービスをローカルにエミュレートするアプリケーションの依存関係を実行するのに役立ちます。 たとえば、Azurite という Azure Storage エミュレーターをコンテナー内でローカルで実行できます。 次のセクションでは、コンテナーでこれらのモック サービスを使用しているときの開発モードから、Azure で実行されている実際のサービスの使用にアプリを移行するための Visual Studio のサポートについて説明します。
ローカル構成と接続構成
開発中は、通常、ローカル エミュレーター、ローカル データベース、またはローカル コンテナーで実行されているモック サービスを使用します。 Visual Studio で発行プロセスを使用して、Azure、Docker Hub、または他のサポートされているリモート環境のどちらであっても、クラウドにデプロイする場合、Visual Studio では、実際のサービスとデータベースへの接続への移行を案内できます。 ソリューション エクスプローラー でプロジェクト ノード 右クリックし、[の発行]選択すると、アプリのクラウドへのデプロイが案内されますが、その後、以前にローカル使用用に構成したサービスの依存関係が、黄色の警告アイコンと の構成リンクと共に接続済みサービス UI に表示されるようになりました。
これらのリンクをクリックすると、Visual Studio には、クラウド アプリがローカル サービスではなく使用するクラウドで実行されている "実際の" サービスへの接続情報を求める画面がいくつか表示されます。 たとえば、SQL LocalDB のローカルで実行されているインスタンスで実行するようにアプリを最初に構成した場合は、接続文字列名と、その LocalDB データベースを参照する初期値を指定したことになります。 アプリをクラウド環境に初めてデプロイした後、 の構成リンクを使用して、クラウドで使用する接続文字列を指定できます。 Azure デプロイ シナリオの場合、Visual Studio には、接続文字列やその他のシークレットを安全に格納するために、Azure Key Vault を使用するオプションも用意されています。
しくみ
Visual Studio では、ソリューション エクスプローラーの [serviceDependencies.json と serviceDependencies.local.jsonと呼ばれるプロパティ] の下に表示される 2 つの新しいファイルが作成されます。 これらのファイルはどちらも、シークレットが含まれていないため、安全にチェックインできます。
Visual Studio では、ソリューション エクスプローラー serviceDependencies.local.json既定では表示されない .user という名前のファイルも作成されます。 このファイルには、シークレットと見なされる可能性がある情報 (Azure のリソース ID など) が含まれており、チェックインすることはお勧めしません。