連線到 Azure 服務、gRPC、OpenAPI 等等
開發人員正在建置具有越來越多的服務的應用程式,但服務技術的發展速度也一樣快。
透過 Visual Studio 的 Connected Services,您可以取得現代化服務取用體驗,讓每個服務都能量身打造其取用體驗,並提示您快速啟動所需的相關問題。
線上服務包含 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(Azure 功能) | 為 Web API 等提供可調整的計算隨選服務。 |
Azure 儲存體 | 可調整的雲端儲存,支援物件儲存、資料表、佇列、磁碟。 |
Azure SignalR Service | 透過 HTTP 的即時 Web 功能。 |
Azure Key Vault | 為您的 Azure 應用程式所使用的密碼編譯金鑰和其他秘密提供安全的雲端儲存。 |
Azure SQL Database | 雲端託管的 SQL 資料庫。 |
Azure Redis 快取服務 (Azure Cache for Redis) | 以 Redis 軟體為基礎的記憶體內部資料存放區。 |
Azure Cosmos DB | 適用於新式應用程式開發的完全受控 NoSQL 資料庫。 |
Microsoft Identity Platform | 使用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 資料庫引擎。 |
SQL 伺服器資料庫 | 內部部署 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 是開放原始碼的 Multiprotocol 訊息代理程式。 此選項可在本機容器中使用。 |
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 記憶體模擬器。 下一節說明當您在容器中使用這些模擬服務,以使用在 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 中的資源識別符),我們不建議將其簽入。