在單一租使用者 Azure Logic Apps 中設定標準邏輯應用程式的 DevOps 部署
適用於:Azure Logic Apps (標準)
本指南主要說明如何使用 DevOps 工具和程式,在 Visual Studio Code 中設定標準邏輯應用程式專案的部署。 如果您的標準邏輯應用程式已存在於 Azure 入口網站 中,您可以下載邏輯應用程式的成品檔案,以搭配 DevOps 部署使用。 根據您是否要使用 GitHub 或 Azure DevOps,然後選擇最適合部署案例的路徑和工具。
如果您沒有標準邏輯應用程式,您仍然可以使用連結的範例標準邏輯應用程式專案,以及透過 GitHub 或 Azure DevOps 部署至 Azure 的範例來遵循本指南。 如需詳細資訊,請檢閱 單一租使用者 Azure Logic Apps 的 DevOps 部署概觀。
必要條件
具有有效訂用帳戶的 Azure 帳戶。 如果您沒有 Azure 訂閱,請建立免費帳戶。
Visual Studio Code 是免費的 Azure Logic Apps(Standard) 延伸模組,適用於 Visual Studio Code,以及其他相關必要條件。
要與 DevOps 工具和程式搭配使用的標準邏輯應用程式。
您可以從 Azure 入口網站 下載標準邏輯應用程式資源的成品檔案,也可以使用以 Visual Studio Code 和適用於 Visual Studio Code 的 Azure Logic Apps (Standard) 延伸模組建立的標準邏輯應用程式專案。
入口網站:下載的 zip 檔案包含標準邏輯應用程式成品檔案,例如 workflow.json、 connections.json、 host.json和 local.settings.json。 請參閱 從入口網站下載標準邏輯應用程式成品檔案。
Visual Studio Code:您需要部署目的地 Azure 入口網站 中空的標準邏輯應用程式資源。 若要快速建立空的標準邏輯應用程式資源,請檢閱 建立單一租用戶型邏輯應用程式工作流程 - 入口網站。
如果您沒有現有的邏輯應用程式或基礎結構,您可以使用連結的範例標準邏輯應用程式專案來部署範例邏輯應用程式和基礎結構,而不論您想要使用 GitHub 或 Azure DevOps。 如需執行範例邏輯應用程式之包含範例專案和資源的詳細資訊,請參閱 部署基礎結構資源。
部署基礎結構資源
若要嘗試不使用先前的標準邏輯應用程式或基礎結構設定的 DevOps 部署體驗,請使用下列範例專案,以便根據您想要使用 GitHub 或 Azure DevOps,為標準邏輯應用程式和基礎結構範例設定部署:
單一租用戶 Azure Logic Apps 的 GitHub 範例
此範例包含標準邏輯應用程式專案的範例,以及 Azure 部署和 GitHub Actions 的範例。
單一租用戶 Azure Logic Apps 的 Azure DevOps 範例
此範例包含標準邏輯應用程式專案的範例,以及 Azure 部署和 Azure Pipelines 的範例。
這兩個範例都包含標準邏輯應用程式用來執行的下列資源:
資源名稱 | 必要 | 描述 |
---|---|---|
標準邏輯應用程式 | Yes | 此 Azure 資源包含在單一租用戶 Azure Logic Apps 中執行的工作流程。 重要事項:在您的邏輯應用程式專案中,每個工作流程都有一個 包含工作流程定義的workflow.json 檔案,其中包含觸發程式和動作定義。 |
API 連線 | 是,如果 API 連線存在 | 這些 Azure 資源會定義工作流程用來執行受控連接器作業的任何受控 API 連線,例如 Office 365、SharePoint 等。 重要事項:在您的邏輯應用程式專案中,connections.json 檔案包含工作流程所使用的任何受控 API 連線和 Azure 函數的中繼資料、端點和金鑰。 若要在每個環境中使用不同的連線和函數,請確定您將 connections.json 檔案參數化,並更新端點。 如需詳細資訊,請檢閱 API 連線資源和存取原則。 |
Functions 進階版或 App Service 主控方案 | Yes | 此 Azure 資源會指定要用於執行邏輯應用程式的裝載資源,例如計算、處理、儲存體、網路等。 重要事項:在目前的體驗中,標準邏輯應用程序資源需要 工作流程標準 裝載方案,這是以 Azure Functions Premium 主控方案為基礎。 |
Azure 儲存體帳戶 | 是,適用於具狀態和無狀態工作流程 | 此 Azure 資源會儲存中繼資料、用於存取控制的金鑰、狀態、輸入、輸出、執行歷程記錄,以及工作流程的其他資訊。 |
Application Insights | 選擇性 | 此 Azure 資源會為您的工作流程提供監視功能。 |
Azure Resource Manager (ARM) 範例 | 選擇性 | 此 Azure 資源會定義您可以重複使用或匯出的基準基礎結構部署。 |
API 連線資源和存取原則
在單一租使用者 Azure Logic Apps 中,工作流程中的每個受控 API 連線資源都需要相關聯的存取原則。 此原則需要邏輯應用程式的身分識別,才能提供正確的權限來存取受控連接器基礎結構。 所包括的範例專案包括 ARM 範本,而此範本包括所有必要的基礎結構資源 (包括這些存取原則)。
例如,下圖顯示標準邏輯應用程式專案與基礎結構資源之間的相依性:
從入口網站下載標準邏輯應用程式成品
如果您的標準邏輯應用程式位於 Azure 入口網站 中,您可以下載包含邏輯應用程式成品檔案的 zip 檔案,包括workflow.json、connections.json、host.json和local.settings.json。
在 Azure 入口網站中,尋找並開啟標準邏輯應用程式資源。
在邏輯應用程式功能表上,選取 [概觀]。
在 [概 觀] 工具列上,選取 [ 下載應用程式內容]。 在出現的確認方塊中,選取 [ 下載]。
出現提示時,選取 [ 另存新檔],流覽至您想要的本機資料夾,然後選取 [ 儲存 ] 以儲存 zip 檔案。
解壓縮檔案。
在 Visual Studio Code 中,開啟包含解壓縮檔案的資料夾。
當您開啟資料夾時,Visual Studio Code 會自動建立 工作區。
編輯資料夾的內容,只包含使用DevOps進行部署所需的資料夾和檔案。
當您完成時,請儲存您的變更。
建置和部署邏輯應用程式 (zip deploy)
您可以在 Azure 內部或外部設定將標準邏輯應用程式部署至基礎結構的組建和發行管線。
建置您的專案
將您的標準邏輯應用程式專案和成品檔案推送至來源存放庫,例如 GitHub 或 Azure DevOps。
完成下列對應的動作,根據您的邏輯應用程式項目類型設定組建管線:
專案類型 描述和步驟 NuGet 型 NuGet 型專案結構是以 .NET Framework 為基礎。 若要建置這些專案,請務必遵循 .NET Standard 的建置步驟。 如需詳細資訊,請檢閱使用 MSBuild 建立 NuGet 套件的文件。 套件組合型 延伸模組套件組合型專案並非語言特有的,而且不需要任何語言特定建置步驟。 使用您想要的任何方法壓縮項目檔。
重要
請確定您的 zip 檔案包含專案在根層級的實際建置成品,包括所有工作流程資料夾、組態檔,例如 host.json、 connections.json、 local.settings.json,以及任何其他相關檔案。 請不要新增任何額外的資料夾,也不要將任何成品放入專案結構中尚未存在的資料夾中。
例如,下列清單會顯示檔案結構MyBuildArtifacts.zip範例:
MyStatefulWorkflow1-Folder MyStatefulWorkflow2-Folder connections.json host.json local.settings.json
發行至 Azure 之前
邏輯應用程式專案 connections.json 檔案內的受控 API 連線是專為在 Visual Studio Code 中使用而建立。 您必須先更新這些專案成品,才能將成品從 Visual Studio Code 發行至 Azure。 若要在 Azure 中使用受控 API 連線,您必須更新其驗證方法,使其格式正確以用於 Azure。
更新驗證類型
針對使用驗證的每個 Managed API 連線,您必須將 物件從 Visual Studio Code 中的本機格式更新authentication
為 Azure 入口網站 格式,如第一個和第二個程式代碼範例所示:
Visual Studio Code 格式
{
"managedApiConnections": {
"sql": {
"api": {
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Web/locations/westus/managedApis/sql"
},
"connection": {
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ase/providers/Microsoft.Web/connections/sql-2"
},
"connectionRuntimeUrl": "https://xxxxxxxxxxxxxx.01.common.logic-westus.azure-apihub.net/apim/sql/xxxxxxxxxxxxxxxxxxxxxxxxx/",
"authentication": {
"type": "Raw",
"scheme": "Key",
"parameter": "@appsetting('sql-connectionKey')"
}
}
}
}
Azure 入口網站格式
{
"managedApiConnections": {
"sql": {
"api": {
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Web/locations/westus/managedApis/sql"
},
"connection": {
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ase/providers/Microsoft.Web/connections/sql-2"
},
"connectionRuntimeUrl": "https://xxxxxxxxxxxxxx.01.common.logic-westus.azure-apihub.net/apim/sql/xxxxxxxxxxxxxxxxxxxxxxxxx/",
"authentication": {
"type": "ManagedServiceIdentity",
}
}
}
}
視需要建立 API 連線
如果您要將標準邏輯應用程式部署到不同於本機開發環境的 Azure 區域或訂用帳戶,您也必須在部署之前先建立這些受控 API 連線。 Azure Resource Manager 範本 (ARM 範本) 部署是建立受控 API 連線的最簡單方式。
下列範例顯示 ARM 範本中的 SQL 受控 API 連線資源定義:
{
"type": "Microsoft.Web/connections",
"apiVersion": "2016–06–01",
"location": "[parameters('location')]",
"name": "[parameters('connectionName')]",
"properties": {
"displayName": "sqltestconnector",
"api": {
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/sql"
},
"parameterValues": {
"authType": "windows",
"database": "TestDB",
"password": "TestPassword",
"server": "TestServer",
"username": "TestUserName"
}
}
}
若要尋找物件的必要值 properties
,以便您可以完成連線資源定義,請使用下列 API 作為特定連接器:
GET https://management.azure.com/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/{connector-name}?api-version=2016-06-01
在回應中,尋找 connectionParameters
物件,其中包含完成該特定連接器資源定義所需的資訊。 下列範例顯示 SQL 受控連線的範例資源定義:
{
"type": "Microsoft.Web/connections",
"apiVersion": "2016–06–01",
"location": "[parameters('location')]",
"name": "[parameters('connectionName')]",
"properties": {
"displayName": "sqltestconnector",
"api": {
"id": "/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/sql"
},
"parameterValues": {
"authType": "windows",
"database": "TestDB",
"password": "TestPassword",
"server": "TestServer",
"username": "TestUserName"
}
}
}
或者,您可以在 Azure Logic Apps 中使用工作流程設計工具建立連線時,擷取並檢閱網路追蹤。 PUT
尋找如先前所述傳送至受控連接器 API 的呼叫,並檢閱要求本文以取得所有必要的資訊。
內部部署數據閘道資源定義
如果您的連線使用內部部署資料閘道資源,此資源定義會與連接器資源定義分開存在。 若要檢視數據網關的資源定義,請參閱 使用 Azure Resource Manager 範本 和 Microsoft.Web connectionGateways 自動部署 Azure Logic Apps。
發行至 Azure
若要設定部署至 Azure 的發行管線,請遵循 GitHub、Azure DevOps 或 Azure CLI 的相關聯步驟。
針對 GitHub 部署,您可以使用 GitHub Actions 來部署邏輯應用程式,例如 Azure Functions 中的 GitHub Actions。 此動作需要您傳遞下列資訊:
- 用於部署的邏輯應用程式名稱
- 包含您實際建置成品的 zip 檔案,包括所有工作流程資料夾、組態檔,例如 host.json、 connections.json、 local.settings.json,以及任何其他相關檔案。
- 您的發行設定檔,其用於驗證
- name: 'Run Azure Functions Action'
uses: Azure/functions-action@v1
id: fa
with:
app-name: 'MyLogicAppName'
package: 'MyBuildArtifact.zip'
publish-profile: 'MyLogicAppPublishProfile'
如需詳細資訊,請參閱 使用 GitHub Action 持續傳遞。
部署至 Azure 之後
每個 API 連線都會有存取原則。 zip 部署完成之後,您必須在 Azure 入口網站 中開啟標準邏輯應用程式資源,併為每個 API 連線建立存取原則,以設定已部署邏輯應用程式的許可權。 zip 部署不會為您建立應用程式設定。 部署之後,您必須根據 邏輯應用程式專案中local.settings.json 檔案來建立這些應用程式設定。
相關內容
我們想要聽取您對單一租用戶 Azure Logic Apps 的體驗!
- 針對錯誤 (bug) 或問題,請在 GitHub 中建立問題。
- 如有疑問、要求、留言和其他意見反應,請使用此意見反應表單。