連線至 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 應用程式組態 | 存取在 Azure 中集中管理的機碼值設定和功能旗標。 |
Azure 應用程式見解 | 為即時 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 身分識別平台 | 使用 Microsoft 身分識別和社交帳戶進行驗證。 |
注意
使用 [發佈],您可以將應用程式部署至 Azure 主控服務,例如 Azure VM、Azure App Service、Azure Functions 和 Azure Container Registry
資料庫和資料提供者
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 儲存體模擬器 | Azurite 是在本機電腦上執行的 Azure 儲存體模擬器。 |
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 Link | 描述 |
---|---|---|
OpenAPI 端點 | ASP.NET Core API 應用程式中的 OpenAPI 支援 | 以電腦可讀取且人類可閱讀形式描述服務功能的標準格式。 |
gRPC 端點 | .NET 上的 gRPC 服務簡介 | 開放原始碼即時程序呼叫服務。 |
WCF 端點 | N/A | .NET Framework 解決方案,支援使用分散式服務網路進行程式設計。 |
容器
已連線的服務可協助您執行應用程式相依性,這些相依性會在容器中本機模擬 Azure 服務。 例如,您可以在本機的容器中執行名為 Azurite 的 Azure 儲存體模擬器。 下一節說明當您在容器中使用這些模擬服務,以使用在 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。 這兩個檔案都可以安全簽入,因為它們不包含任何祕密。
Visual Studio 也會建立名為 serviceDependencies.local.json.user 的檔案,預設不會顯示在 [方案總管] 中。 此檔案包含可視為祕密的資訊 (例如 Azure 中的資源識別碼),我們不建議將其簽入。