適用於:Azure Logic Apps (標準)
這很重要
此功能處於預覽狀態,且受限於 Microsoft Azure 預覽版的補充使用規定。
無論你是在 Azure Logic Apps、App Service Environment v3 或自己的基礎設施中建立標準邏輯應用程式,你總是需要儲存服務提供者來儲存工作流程產物、狀態和執行時資料。 當你將自己的 SQL 資料庫作為儲存提供者時,你能獲得更多彈性與對工作流程執行環境、吞吐量、擴展性、效能和管理的控制。
本指南說明為什麼以及如何設置 SQL 資料庫作為儲存提供者。 你可以在 Azure 入口網站建立邏輯應用程式時完成此任務,或在部署時使用 Visual Studio Code 完成。
為什麼要設置 SQL 資料庫儲存
SQL 資料庫提供以下好處:
| 優點 | Description |
|---|---|
| 可攜性 | SQL 有許多板型規格,包括虛擬機器、平台即服務 (PaaS) 和容器。 您幾乎可以在您想要執行邏輯應用程式工作流程的任何位置執行 SQL 資料庫。 |
| 控制 | SQL 可讓您更精細控制特定期間或特定工作負載的資料庫輸送量、效能和調整規模。 SQL 定價是以 CPU 使用量和輸送量為基礎,相較於以每項作業為基礎的 Azure 儲存體而言,可提供更可預期的定價。 |
| 重複利用現有資產 | 運用熟悉的 Microsoft 工具與資源,進行現代 SQL 整合。 利用 Azure Hybrid Benefits 在傳統本地部署與現代雲端實作間重用資產。 SQL也提供成熟且完善支援的工具,例如 SQL Server Management Studio (SSMS) 、命令列介面和 SDK。 |
| 合規性 | SQL 提供比 Azure 儲存體更多的選項,供您備份、還原、容錯移轉和建置備援。 您可以將與其他企業應用程式相同的企業級機制套用至邏輯應用程式的儲存體。 |
何時選擇 SQL
下表描述了您可能選擇 SQL 的情境:
| Scenario | 推薦儲存方式 |
|---|---|
| 在 Azure 中執行標準邏輯應用程式的工作流程,並能更好地控制儲存吞吐量與效能。 | 選擇 SQL,因為 Azure Storage 沒有提供微調吞吐量和效能的工具。 |
| 在混合環境中執行標準工作流程,包括本地部署或自帶基礎設施。 如需詳細資訊,請參閱: - 為混合部署建立自己的標準邏輯應用程式基礎設施 - 建立混合部署的標準工作流程 |
選擇 SQL 是因為你可以決定將 SQL 資料庫放在哪裡,例如本地部署、虛擬機、容器或多雲環境。 請考慮執行與所要整合系統接近的邏輯應用程式工作流程,或減少您對雲端的相依性。 |
| 依賴可預測的儲存成本。 | 當你想要更多控制擴展成本時,選擇 SQL。 SQL 成本是以每項計算和每秒輸入輸出作業 (IOPs) 為基礎。 Azure 儲存體成本是以作業數目為基礎,這可能更適用於調整為零的小型工作負載。 |
| 偏好 SQL 勝過 Azure Storage。 | SQL 是一個知名且可靠的生態系統,你可以在背後的邏輯應用中套用相同的治理與管理。 |
| 重複使用現有的 SQL 環境。 | 如果你已經擁有想要重用或現代化到雲端的 SQL 授權,就選擇 SQL。 你也可以考慮將 Azure Hybrid Benefits 套用到你的邏輯應用程式整合中。 |
| 其餘 | 選擇 Azure Storage,這是預設的儲存服務提供者。 |
先決條件
Azure 帳戶和作用中的訂用帳戶。 申請免費帳號。
為你的邏輯應用程式提供 SQL 伺服器與資料庫環境。 不過,在您設定環境之前,請先完成下列步驟:
建立 SQL 伺服器執行個體。
支援的 SQL Server 版本:
如果你的 SQL 伺服器支援並託管在 Azure,請務必設定以下權限:
在 Azure 入口網站中,移至 SQL 伺服器資源。
在伺服器側邊欄的 安全性選項中,選擇 防火牆與虛擬網路。
在已開啟的窗格中,在 允許 Azure 服務與資源存取此伺服器的選項中,選擇 「是」。
儲存您的變更。
如果你的 SQL 伺服器不是在 Azure 上架設,請確保防火牆或網路設定允許 Azure 服務和資源存取你的伺服器和資料庫。
如果你有 SQL Express 用於本地開發,請連接到預設的命名實例
localhost\SQLExpress。建立或重用現有資料庫。
你必須先有一個活躍且可行的資料庫,才能設定 SQL 儲存服務提供者。
請依照本文中設定 SQL 環境的步驟 。
本地開發的話,你需要在電腦上本地安裝 Visual Studio Code 。
備註
務必安裝 最新的 Azure Functions Core Tools ,並確認你有 SQL 支援,選擇 Microsoft 安裝程式(MSI),也就是
func-cli-X.X.XXXX-x*.msi。 欲了解更多關於 Visual Studio Code 需求的資訊,請參閱 Azure Logic Apps 中以 Visual Studio Code 建立標準工作流程。
設定您的 SQL 環境
在設定 SQL 儲存服務提供者之前,請確認你已完成前 置條件中的必要步驟。
設定 SQL 伺服器的權限。
SQL 儲存提供者目前支援透過連接字串進行 SQL 認證。 你也可以選擇 Windows 認證來進行本地開發和測試。 目前對 Microsoft Entra ID 和受控識別的支援尚不可用。
你必須擁有一個身份,並擁有在目標 SQL 資料庫中建立和管理工作流程產出物的權限。 例如,系統管理員擁有建立和管理這些成品必要的權限。
以下清單描述了 Azure Logic Apps 執行時嘗試用你提供的 SQL 連線字串所建立的產物。 確保 SQL 連線字串中的身份擁有建立以下工件所需的權限:
- 建立和刪除下列結構描述:
dt、dc和dq。 - 新增、改變和刪除這些結構描述中的資料表。
- 新增、改變和刪除這些結構描述中的使用者定義資料表類型。
如需目標權限的詳細資訊,請參閱資料庫引擎中的 SQL 伺服器權限。
這很重要
當你擁有敏感資訊,例如包含使用者名稱和密碼的連線字串時,務必選擇最安全的認證流程。 Microsoft建議您盡可能使用 受控識別 來驗證 Azure 資源的存取權,並指派具有最低許可權所需的角色。
如果此功能無法使用,請確保透過其他措施保護連線字串,例如 Azure Key Vault,並可加入 應用程式設定。 然後,您可以 直接參考安全字串,例如連接字串和密鑰。 與 ARM 範本類似,您可以在部署時定義環境變數,您可以在 邏輯應用程式工作流程定義中定義應用程式設定。 然後,您可以擷取動態產生的基礎結構值,例如連線端點、儲存體字串等等。 如需詳細資訊,請參閱 Microsoft身分識別平臺的應用程式類型。
- 建立和刪除下列結構描述:
連接到你的 SQL 伺服器和資料庫。
請確定您的 SQL 資料庫允許必要的開發存取權。
如果您擁有 Azure SQL 資料庫,請完成以下要求:
針對本機開發和測試,請明確允許來自本機電腦 IP 位址的連線。 您可以在 Azure SQL Server 中設定 IP 防火牆規則。
在 Azure 入口網站中,允許 Azure 服務來使用提供的連接字串允許邏輯應用程式資源存取 SQL 資料庫。
根據您的案例,視需要設定任何其他 SQL 資料庫網路存取控制。
如果你有 Azure SQL 管理實例,允許 Azure 服務(
logicapp) 透過安全的公開端點連接到你的 SQL 資料庫。
在 Azure 入口網站的建立期間設定 SQL
當您建立標準邏輯應用程式時,可以將 SQL 設定為儲存體提供者。
在 Azure 入口網站 的搜尋框中,輸入
logic apps,並選擇 Logic 應用程式。在 [邏輯應用程式] 頁面工具列上,選取 [新增]。
在 「建立 Logic App 」 頁面,在 標準模式下,選擇你想要的主機選項。
在 基礎 標籤中,提供以下資訊,視你的選擇而有所不同:
房產 為必填項目 價值觀 Description Subscription Yes < Azure-訂閱-名稱> 用於您的邏輯應用程式的 Azure 訂用帳戶。 資源群組 Yes < Azure-資源-群組-名稱> 用於您的邏輯應用程式和相關資源的 Azure 資源群組。 名稱必須在區域間唯一,且只能包含字母、數字、連字號(-)、底線(_)、括號(())和句點(.)。
此範例會建立名為Fabrikam-Workflows-RG的資源群組。Type Yes Standard 這種邏輯應用程式類型遵循 標準使用、計費與定價模型。 邏輯應用程式名稱 Yes < 邏輯應用程式名稱> 您的邏輯應用程式的名稱。 此資源名稱在各區域中必須是唯一的,而且只能包含字母、數字、連字號 (-)、底線 (_)、括弧(()) 和句點 (.)。
此範例會建立名為Fabrikam-Workflows的邏輯應用程式。
注意:你的邏輯應用程式名稱會自動加上後綴,.azurewebsites.net因為標準邏輯應用程式資源是由單一租戶的 Azure Logic Apps 執行環境驅動,該執行環境使用 Azure Functions 擴充模型,並作為 Azure Functions 執行環境的擴充功能託管。 Azure Functions 使用相同的應用程式命名慣例。區域 Yes < Azure Region> 你的資源群組和資源所在地。 此範例會將範例邏輯應用程式部署至 Azure,並使用美國西部。
- 若要部署至必須先存在的 ASEv3 資源,請從 [區域] 清單中選取該環境資源。Windows 方案 Yes < 計劃名稱> 要使用的方案名稱。 選取現有的方案名稱,或提供新方案的名稱。
此範例使用 My-App-Service-Plan 名稱。
注意:請勿選擇基於 Linux 的 App Service 方案。 僅支援以 Windows 為基礎的 App Service 方案。定價方案 Yes < 定價層> 用於您的邏輯應用程式和工作流程的定價層。 你的選擇會影響 Logic 應用程式和工作流程的價格、運算、記憶體和儲存空間。
如需詳細資訊,請參閱主控方案和定價層。下列範例顯示 [建立邏輯應用程式] 頁面,其中包含 [基本] 索引標籤:
當您準備好時,請選取 [下一步:儲存體]。 在 儲存 標籤中,提供關於你邏輯應用程式的儲存解決方案與主機計畫的以下資訊。
房產 為必填項目 價值觀 Description 儲存體類型 Yes SQL 和 Azure 儲存體 工作流程產物與資料的儲存。
- 如果您選擇了自訂地點作為區域,請選擇 SQL。
- 如果您選擇了 Azure 區域或 ASEv3 位置,請選擇 SQL 與 Azure 儲存。
注意:如果你要部署到 Azure 區域,仍然需要 Azure 儲存帳號。 此要求完成了 Azure Logic Apps 平台上邏輯應用程式設定的一次性主機託管。 工作流程的定義、狀態、執行歷程記錄和其他執行階段成品皆會儲存在 SQL 資料庫中。
如果要部署到託管在 Azure Arc 叢集上的自訂位置,你只需要 SQL 資料庫作為儲存。記憶體帳戶 Yes < Azure-storage-account-name> Azure Storage 帳戶 用於儲存交易。
此資源名稱在各區域中必須是唯一的,而且有 3-24 個字元 (僅限數字和小寫字母)。 選取現有的帳戶,或建立新的帳戶。
此範例會建立名為fabrikamstorageacct的儲存體帳戶。SQL 連接字串 Yes < SQL-連接字串> 您的 SQL 連接字串目前僅支援 SQL 驗證,而不支援 OAuth 或受控識別驗證。
注意:請確定您輸入正確的連接字串,因為 Azure 入口網站不會為您驗證此字串。下列範例顯示具有 [儲存體] 索引標籤的 [建立邏輯應用程式] 頁面:
完成在單一租用戶 Azure Logic Apps 中建立範例標準工作流程中的其餘建立步驟。
當您完成步驟後,新的邏輯應用程式資源和工作流程會在 Azure 中上線,並使用您的 SQL 資料庫作為儲存體提供者。
在 Visual Studio Code 中設定本機開發的 SQL
下列步驟示範如何在 Visual Studio Code 中將 SQL 設定為本機開發和測試的儲存體提供者:
設定開發環境以使用單一租用戶 Azure Logic Apps。
符合必要條件,以在 Visual Studio Code 中使用 Azure Logic Apps (標準) 延伸模組。
設定 Visual Studio Code 以使用 Azure Logic Apps (標準) 延伸模組。
在 Visual Studio Code 中,連線至您的 Azure 帳戶並建立空白邏輯應用程式專案。
在 Visual Studio Code 中,開啟 [總管] 窗格 (如尚未開啟)。
在檔案總管窗格中,在你的邏輯應用程式專案根目錄,將滑鼠指標移到專案所有檔案和資料夾下方的空白區域,打開捷徑選單,選擇 「為你的邏輯應用程式專案使用 SQL 儲存」。
出現提示時,輸入您的 SQL 連接字串。 你可以選擇本地的 SQL Express 實例或你擁有的其他 SQL 資料庫。
確認之後,Visual Studio Code 在專案的 local.settings.json 檔案中建立下列設定。 您可以隨時更新此設定。
在部署期間從 Visual Studio Code 設定 SQL
您可以將邏輯應用程式專案從 Visual Studio Code 直接發佈至 Azure。 此動作將你的 Logic App 專案部署到標準 Logic App 資源。
如果你在 Azure 中以新的標準邏輯應用程式資源發佈專案,並且想要 SQL 資料庫作為儲存提供者,發佈應用程式時輸入你的 SQL 連線字串。 如需完整步驟,請遵循針對新的邏輯應用程式部署設定 SQL。
如果你已經設定好 SQL 設定,可以在 Azure 中發佈你的邏輯應用程式專案到已部署的標準邏輯應用程式資源中。 此動作會覆寫您現有的邏輯應用程式。
備註
本機 SQL Express 不適用於 Azure 中部署和裝載的邏輯應用程式。
設定 SQL 以部署新標準邏輯應用程式資源
在 Visual Studio Code 中,開啟 [總管] 窗格 (如尚未開啟)。
在檔案總管的窗格裡,在你的 Logic App 專案根目錄,將滑鼠指標移到所有專案檔案和資料夾下方的空白區域,打開捷徑選單,選擇 「部署到邏輯應用程式」。
如果被要求,選擇 Azure 訂閱來部署你的 Logic 應用程式。
從 Visual Studio Code 開啟的清單中,請務必選取 [在 Azure 進階中建立新的邏輯應用程式 (標準)] 的進階選項。 否則,系統不會提示您設定 SQL。
當被要求時,提供一個全域唯一的新邏輯應用程式名稱,也就是標準邏輯應用程式資源的名稱。 這個範例使用
Fabrikam-Workflows-App。選取邏輯應用程式的位置。 您也可以開始輸入以篩選清單。
- 若要部署至 Azure,請選取您要部署的 Azure 區域。 如果你建立了 App Service Environment v3(ASEv3)資源並想部署在那裡,請選擇你的 ASEv3。
下列範例顯示篩選為美國西部的位置清單。
選取新邏輯應用程式的主控方案類型。
如果您選取 ASEv3 作為應用程式的位置,請選取 [App Service 方案],然後選取您的 ASEv3 資源。 否則,請選取 [工作流程標準]。
建立方案的名稱,或選取現有的方案。
此範例會選取 [建立新的 App Service 方案],因為沒有現有的方案可供使用。
提供主控方案的名稱,然後選取所選方案的定價層。
如需詳細資訊,請參閱主控方案和定價層。
當系統提示您輸入 Azure 資源群組時,若要獲得最佳效能,請選取與部署專案相同的 Azure 資源群組。
備註
雖然你可以建立或選擇不同的資源群組,但這樣做可能會影響效能。 如果您建立或選擇不同的資源群組,但在出現確認提示之後取消,您的部署也會取消。
當系統提示您選取邏輯應用程式的儲存體帳戶時,請選擇下列其中一個選項:
如果你選擇了自訂位置,請選擇 SQL 選項。
如果您想要部署至 Azure,請選取 [SQL 和 Azure 儲存體] 選項。
備註
僅當進行 Azure 部署時才需要此選項。 在 Azure 中,Azure Storage 必須完成 Azure Logic Apps 平台上邏輯應用程式設定的一次性主機託管。 進行中的工作流程狀態、執行歷程記錄和其他執行階段成品會儲存在 SQL 資料庫中。
如果部署到託管在 Azure Arc 叢集上的自訂地點,你只需要 SQL 資料庫作為儲存。
出現提示時,如果可用,請選取 [建立新的儲存體帳戶] 或現有的儲存體帳戶。
在 SQL 儲存確認提示時,選擇 「是」。 在連接字串提示字元中,輸入您的 SQL 連接字串。
備註
請確定您輸入正確的連接字串,因為 Visual Studio Code 不會為您驗證此字串。
在「發佈到新的標準邏輯應用程式資源」中完成剩餘的部署步驟。
當您完成步驟後,新的邏輯應用程式資源和工作流程會在 Azure 中上線,並使用您的 SQL 資料庫作為儲存體提供者。
驗證部署
在你將標準邏輯應用程式資源部署到 Azure 後,可以檢查你的設定是否正確:
在 Azure 入口網站中,開啟您的邏輯應用程式資源。
在資源瀏覽功能表的 [設定] 底下,選取 [設定]。
在 [設定] 窗格的 [應用程式設定] 底下,尋找 Workflows.Sql.ConnectionString 應用程式設定,並確認您的 SQL 連接字串顯示且正確無誤。
在您的 SQL 環境中,確認已使用以 'dt' 和 'dq' 開頭的結構描述名稱所建立 SQL 資料表。
例如,下列螢幕擷取畫面顯示使用單一工作流程為邏輯應用程式資源建立的單一租用戶 Azure Logic Apps 執行階段資料表:
單一租用戶 Azure Logic Apps 服務也會建立使用者定義的資料表類型。 例如,下列螢幕擷取畫面顯示使用單一工作流程為邏輯應用程式資源建立的單一租用戶 Azure Logic Apps 執行階段使用者定義資料表類型: