Azure サービス、gRPC、OpenAPI などへの接続
開発者はますます多くのサービスを使用してアプリを構築していますが、サービス テクノロジも同じような速さで進化しています。
Visual Studio の接続済みサービスを使用すると、最新のサービスの使用エクスペリエンスを得ることができます。各サービスは使用エクスペリエンスを調整することができ、すぐに使い始めるために必要な関連する質問を入力するよう求められます。
接続済みサービスには、アプリケーションを以下に接続するのに役立つ Visual Studio のツールのコレクションが含まれます。
- Azure サービス
- OpenAPI エンドポイント
- gRPC (リモート プロシージャ コール) エンドポイント
- Windows Communication Foundation (WCF) エンドポイント
- データベースとデータ プロバイダー
ソリューション エクスプローラーで [接続済みサービス] ノードを右クリックし、[接続済みサービスの管理] を選択して作業を開始します。
まず、プロジェクト ノードを右クリックし、[>接続済みサービスの追加] を選択します。 ソリューション エクスプローラーの [接続済みサービス] ノードを右クリックし、追加する特定のサービスを選択することもできます。
サポートされるプロジェクトの種類は、サービスの種類によって異なります。 ご自分のプロジェクトの種類に適用するオプションを一覧から選択できます。
Visual Studio サブスクリプションの多くに、Azure の個別の Dev/Test クレジットが含まれています。 Visual Studio サブスクライバーの場合は、これらのクレジットを使用して、さまざまな Azure サービスを無料で試すことができます。 サブスクライバーでない方で、Azure サブスクリプションをお持ちでない場合は、無料アカウントを作成できます。
アプリを Azure サービスに接続する
接続済みサービスを使用して、アプリケーションをライブの Azure サービスのエミュレーターと Azure サービスのその他のローカルの代替手段に接続します。 Visual Studio では現在、以下をサポートしています。
Name | 説明 |
---|---|
Azure App Configuration | Azure で一元的に管理されているキー値の設定と機能フラグにアクセスします。 |
Azure App Insights | 拡張可能なアプリケーション パフォーマンス管理 (APM) と、ライブ Web アプリの監視を提供します。 |
Azure App Service | ライブ Web アプリのフルサービスによるスケーラブルなホスティングを提供します。 |
Azure Functions | Web API などに対応したスケーラブルなコンピューティングオンデマンド サービスを提供します。 |
Azure ストレージ | BLOB、テーブル、キュー、ディスクをサポートするスケーラブルなクラウド ストレージ。 |
Azure SignalR Service | HTTP を介したリアルタイムの Web 機能。 |
Azure Key Vault | Azure アプリケーションで使用される暗号化キーとその他のシークレット用の安全なクラウド ストレージ。 |
Azure SQL Database | クラウドでホストされる SQL データベース。 |
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 エミュレーター | 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 エンドポイントに接続する
接続済みサービスを使用して、アプリケーションを次のいずれかのサービスに接続します。
Name | ASP.NET リンク | 説明 |
---|---|---|
OpenAPI エンドポイント | ASP.NET Core API アプリでの OpenAPI のサポート | コンピューターが読み取り可能で人間が判読できる形式で、サービスの機能を記述するための標準形式。 |
gRPC エンドポイント | .NET の gRPC サービスの概要 | オープンソースのリアルタイム プロシージャ呼び出しサービス。 |
WCF エンドポイント | 該当なし | サービスの分散ネットワークを使用したプログラミングをサポートする .NET Framework ソリューション。 |
Containers
接続済みサービスは、コンテナー内で 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 つの新しいファイルが作成されます。 これらのファイルはいずれも、シークレットが含まれていないため、安全にチェックインできます。
また、serviceDependencies.local.json.user という名前のファイルも Visual Studio によって作成されますが、これは、既定ではソリューション エクスプローラーに表示されません。 このファイルには、シークレットと見なされる可能性がある情報 (たとえば、Azure のリソース ID) が含まれているので、チェックインすることはお勧めしません。