使用已啟用 Azure Arc 的 Logic Apps 建立及部署單一租使用者型邏輯應用程式工作流程 (預覽)

注意

這項功能處於預覽狀態,並受限於 Microsoft Azure 預覽版 的補充使用規定。

使用已啟用 Azure Arc 的 Logic Apps 和 Azure 入口網站,您可以建立及部署單一租使用者型邏輯應用程式工作流程至您操作和管理的 Kubernetes 基礎結構。 您的邏輯應用程式會在對應至已啟用 Azure Arc 的 Kubernetes 叢集的自訂位置 執行,而您已安裝並啟用Azure App 服務平臺擴充功能套件組合。

例如,此叢集可以是 Azure Kubernetes Service、裸機 Kubernetes 或其他設定。 擴充功能套件組合可讓您在 Kubernetes 叢集上執行平臺服務,例如 Azure Logic Apps、Azure App 服務和 Azure Functions。

如需詳細資訊,請檢閱下列檔:

必要條件

本節說明所有可用來建立和部署邏輯應用程式工作流程的方法和工具的常見必要條件。 工具特定的必要條件會連同其對應的步驟一起出現。

  • 具有有效訂用帳戶的 Azure 帳戶。 若您並未訂閱 Azure,請建立一個免費帳戶

  • 具有已啟用 Azure Arc 的 Kubernetes 叢集和 自訂位置 的 Kubernetes 環境,您可以在其中裝載和執行 Azure Logic Apps、Azure App 服務和 Azure Functions。

    重要

    請確定您針對 Kubernetes 環境、自訂位置和邏輯應用程式使用相同的資源位置。

    當您在 Kubernetes 叢集上建立 App Service 套件組合擴充功能時,您可以 變更執行邏輯應用程式工作流程的預設調整行為 。 當您使用 Azure CLI 命令建立擴充功能時, az k8s-extension create 請務必包含組態設定: keda.enabled=true

    az k8s-extension create {other-command-options} --configuration-settings "keda.enabled=true"

    如需詳細資訊,請檢閱下列檔:

  • 您自己的 Microsoft Entra 身分識別

    如果您的工作流程需要使用任何 Azure 裝載的連線,例如 Office 365 Outlook 或Azure 儲存體,邏輯應用程式必須使用 Microsoft Entra 身分識別進行驗證。 已啟用 Azure Arc 的 Logic Apps 可以在任何基礎結構上執行,但需要具有使用 Azure 裝載連線許可權的身分識別。 若要設定此身分識別,請在邏輯應用程式作為必要身分識別使用的 Microsoft Entra 識別碼中建立應用程式註冊。

    注意

    已啟用 Azure Arc 的 Logic Apps 目前無法使用受控識別支援。

    若要使用 Azure CLI 建立 Microsoft Entra 應用程式註冊,請遵循下列步驟:

    1. 使用 az ad sp create 命令建立應用程式註冊。

    2. 若要檢閱所有詳細資料,請 az ad sp show 執行 命令。

    3. 從這兩個命令的輸出中,尋找並儲存用戶端識別碼、物件識別碼、租使用者識別碼和用戶端密碼值,以供稍後使用。

    若要使用 Azure 入口網站建立 Microsoft Entra 應用程式註冊,請遵循下列步驟:

    1. 使用 Azure 入口網站 建立新的 Microsoft Entra 應用程式註冊。

    2. 建立完成後,請在入口網站中尋找新的應用程式註冊。

    3. 在註冊功能表上,選取 [概觀 ],然後儲存用戶端識別碼、租使用者識別碼和用戶端密碼值。

    4. 若要尋找物件識別碼,請在 [本機目錄 ] 欄位中的 [受控應用程式] 旁邊,選取應用程式註冊的名稱。 從屬性檢視複製物件識別碼。

建立和部署邏輯應用程式

根據您想要使用 Azure CLI、Visual Studio Code 或Azure 入口網站,選取相符索引標籤以檢閱特定的必要條件和步驟。

開始之前,您需要有下列專案:

  • 安裝在本機電腦上的最新 Azure CLI 擴充功能。

  • 適用于 Azure CLI 的預覽 Azure Logic Apps (標準) 擴充功能。

    雖然單一租使用者 Azure Logic Apps 已正式推出,但 Azure Logic Apps 擴充功能仍處於預覽狀態。

  • Azure 資源群組 ,用於建立邏輯應用程式的位置。

    如果您沒有此資源群組,請遵循 步驟來建立資源群組

  • 要與您的邏輯應用程式搭配使用的 Azure 儲存體帳戶,用於資料和執行歷程記錄保留。

    如果您沒有此儲存體帳戶,您可以在建立邏輯應用程式時建立此帳戶,也可以遵循 建立儲存體帳戶 的步驟。

檢查環境和 CLI 版本

  1. 登入 Azure 入口網站。 執行下列命令來檢查您的訂用帳戶是否為使用中:

    az login
    
  2. 執行下列命令,在終端機或命令視窗中檢查您的 Azure CLI 版本:

    az --version
    

    如需最新版本,請參閱 最新版本資訊

  3. 如果您沒有最新版本,請遵循 作業系統或平臺 的安裝指南來更新安裝。

安裝適用于 Azure CLI 的 Azure Logic Apps (標準) 擴充功能

執行下列命令,安裝適用于 Azure CLI 的預覽 單一租使用者 Azure Logic Apps (Standard) 擴充功能:

az extension add --yes --source "https://aka.ms/logicapp-latest-py2.py3-none-any.whl"

建立資源群組

如果您還沒有邏輯應用程式的資源群組,請執行 命令 az group create 來建立群組。 除非您已經為 Azure 帳戶設定預設訂用帳戶,否則請務必使用 --subscription 參數搭配您的訂用帳戶名稱或識別碼。 否則,您不需要使用 --subscription 參數。

提示

若要設定預設訂用帳戶,請執行下列命令,並以您的訂用帳戶名稱或識別碼取代 MySubscription

az account set --subscription MySubscription

例如,下列命令會使用位置 eastus 中名為 的 Azure 訂用帳戶來建立名為 MySubscriptionMyResourceGroupName 的資源群組:

az group create --name MyResourceGroupName 
   --subscription MySubscription 
   --location eastus

如果已成功建立您的資源群組,輸出會顯示 provisioningStateSucceeded

<...>
   "name": "testResourceGroup",
   "properties": {
      "provisioningState": "Succeeded"
    },
<...>

建立邏輯應用程式

若要建立已啟用 Azure Arc 的邏輯應用程式,請使用下列必要參數執行 命令 az logicapp create 。 邏輯應用程式、自訂位置和 Kubernetes 環境的資源位置必須全部相同。

參數 描述
--name -n 邏輯應用程式的唯一名稱
--resource-group -g 您要在其中建立邏輯應用程式的資源群組 名稱 。 如果您沒有要使用的資源群組, 請建立資源群組
--storage-account -s 搭配邏輯應用程式使用的儲存體帳戶 。 針對相同資源群組中的儲存體帳戶,請使用字串值。 對於不同資源群組中的儲存體帳戶,請使用資源識別碼。
az logicapp create --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --storage-account MyStorageAccount --custom-location MyCustomLocation

若要使用私人 Azure Container Registry (ACR) 映射建立已啟用 Azure Arc 的邏輯應用程式,請使用下列必要參數執行 命令 az logicapp create

az logicapp create --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --storage-account MyStorageAccount --custom-location MyCustomLocation 
   --deployment-container-image-name myacr.azurecr.io/myimage:tag
   --docker-registry-server-password MyPassword 
   --docker-registry-server-user MyUsername

顯示邏輯應用程式詳細資料

若要顯示已啟用 Azure Arc 的邏輯應用程式的詳細資料,請使用下列必要參數執行 命令 az logicapp show

az logicapp show --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

部署邏輯應用程式

若要使用 Azure App 服務 的 Kudu zip 部署來部署 已啟用 Azure Arc 的邏輯應用程式,請使用下列必要參數執行 命令 az logicapp deployment source config-zip

重要

請確定您的 zip 檔案包含位於根層級的專案成品。 這些成品包括所有工作流程資料夾、host.json、connections.json 等組態檔,以及任何其他相關檔案。 請勿新增任何額外的資料夾,也不會將任何成品放入專案結構中尚未存在的資料夾中。 例如,此清單會顯示範例 MyBuildArtifacts.zip 檔案結構:

MyStatefulWorkflow1-Folder
MyStatefulWorkflow2-Folder
connections.json
host.json
az logicapp deployment source config-zip --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --src MyBuildArtifact.zip

啟動邏輯應用程式

若要啟動已啟用 Azure Arc 的邏輯應用程式,請使用下列必要參數執行 命令 az logicapp start

az logicapp start --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

停止邏輯應用程式

若要停止已啟用 Azure Arc 的邏輯應用程式,請使用下列必要參數執行 命令 az logicapp stop

az logicapp stop --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

重新開機邏輯應用程式

若要重新開機已啟用 Azure Arc 的邏輯應用程式,請使用下列必要參數執行 命令 az logicapp restart

az logicapp restart --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

刪除邏輯應用程式

若要刪除已啟用 Azure Arc 的邏輯應用程式,請使用下列必要參數執行 命令 az logicapp delete

az logicapp delete --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

設定連線驗證

目前,已啟用 Azure Arc 的 Kubernetes 叢集不支援使用邏輯應用程式的受控識別來驗證受控 API 連線。 當您在工作流程中使用受控連接器時,您會建立這些 Azure 裝載和受控連線。

相反地,您必須在 Microsoft Entra ID 中建立自己的應用程式註冊。 接著,您可以使用此應用程式註冊作為在已啟用 Azure Arc 的 Logic Apps 中部署和執行之邏輯應用程式的身分識別。 如需詳細資訊,請檢閱 最上層必要條件

從您的應用程式註冊中,您需要用戶端識別碼、物件識別碼、租使用者識別碼和用戶端密碼。 如果您使用 Visual Studio Code 進行部署,您有內建體驗,可讓您使用 Microsoft Entra 身分識別來設定邏輯應用程式。 如需詳細資訊,請參閱 建立和部署邏輯應用程式工作流程 - Visual Studio Code

不過,如果您使用 Visual Studio Code 進行開發,但您可以使用 Azure CLI 或自動化管線進行部署,請遵循下列步驟。

在您的專案中設定連線和應用程式設定

  1. 在邏輯應用程式專案的 connections.json 檔案中 ,尋找受控連線的物件 authentication 將這個物件的內容取代為您先前在最上層必要條件 產生的應用程式註冊資訊:

    "authentication": {
       "type": "ActiveDirectoryOAuth",
       "audience": "https://management.core.windows.net/",
       "credentialType": "Secret",
       "clientId": "@appsetting('WORKFLOWAPP_AAD_CLIENTID')",
       "tenant": "@appsetting('WORKFLOWAPP_AAD_TENANTID')",
       "secret": "@appsetting('WORKFLOWAPP_AAD_CLIENTSECRET')"
    } 
    
  2. 在邏輯應用程式專案的 local.settings.json 檔案中 ,新增用戶端識別碼、物件識別碼、租使用者識別碼和用戶端密碼。 部署之後,這些設定會變成邏輯應用程式設定。

    {
       "IsEncrypted": false,
       "Values": {
          <...>
          "WORKFLOWAPP_AAD_CLIENTID":"<my-client-ID>",
          "WORKFLOWAPP_AAD_OBJECTID":"<my-object-ID",
          "WORKFLOWAPP_AAD_TENANTID":"<my-tenant-ID>",
          "WORKFLOWAPP_AAD_CLIENTSECRET":"<my-client-secret>"
       }
    }
    

重要

針對生產案例或環境,請確定您使用金鑰保存庫 保護及保護這類秘密和敏感性資訊

新增存取原則

在單一租使用者 Azure Logic Apps 中,每個邏輯應用程式都有存取原則授與許可權的身分識別,以使用 Azure 裝載和管理的連線。 您可以使用Azure 入口網站或基礎結構部署來設定這些存取原則。

ARM 範本

在您的 Azure Resource Manager 範本 (ARM 範本) 中,針對每個 受控 API 連線包含下列資源定義 ,並提供下列資訊:

參數 描述
<connection-name> 受控 API 連線的名稱,例如 office365
<object-ID> 先前從應用程式註冊儲存的 Microsoft Entra 身分識別物件識別碼
<tenant-ID> 您 Microsoft Entra 身分識別的租使用者識別碼,先前已從您的應用程式註冊儲存
{
   "type": "Microsoft.Web/connections/accessPolicies",
   "apiVersion": "2016-06-01",
   "name": "[concat('<connection-name>'),'/','<object-ID>')]",
   "location": "<location>",
   "dependsOn": [
      "[resourceId('Microsoft.Web/connections', parameters('connection_name'))]"
   ],
   "properties": {
      "principal": {
         "type": "ActiveDirectory",
         "identity": {
            "objectId": "<object-ID>",
            "tenantId": "<tenant-ID>"
         }
      }
   }
}

如需詳細資訊,請檢閱 Microsoft.Web/connections/accesspolicies (ARM 範本) 檔。

Azure 入口網站

針對這項工作,請使用您先前儲存的 用戶端識別碼作為應用程式識別碼

  1. 在Azure 入口網站中,尋找並開啟邏輯應用程式。 在邏輯應用程式的功能表上,選取 [工作流程 ] 底下的 [連線, 其中會列出邏輯應用程式工作流程中的所有連線。

  2. 在 [API 連線ions] 底 下,選取此範例中的連線 office365

  3. 在連線的功能表上,選取 [設定] 底下的 [ 存取原則 > 新增]。

  4. 在 [ 新增存取原則 ] 窗格中的搜尋方塊中,尋找並選取您先前儲存的用戶端識別碼。

  5. 完成時,請選取 [ 新增 ]。

  6. 針對邏輯應用程式中每個 Azure 裝載的連線重複這些步驟。

自動化 DevOps 部署

若要建置及部署已啟用 Azure Arc 的邏輯應用程式,您可以使用與單一租使用者型邏輯應用程式 相同的管線和程式 。 若要使用 DevOps 管線將基礎結構部署自動化,請在非容器和容器部署的基礎結構層級進行下列變更。

標準部署 (非容器)

如果您使用 zip 部署進行邏輯應用程式部署,則不需要設定 Docker 登錄來裝載容器映射。 雖然 Kubernetes 上的邏輯應用程式在容器上技術上執行,但已啟用 Azure Arc 的 Logic Apps 會為您管理這些容器。 在此案例中,當您設定基礎結構時,請完成下列工作:

  • 通知資源提供者您要在 Kubernetes 上建立邏輯應用程式。
  • 在您的部署中包含 App Service 方案。 如需詳細資訊,請參閱 包含 App Service 方案與部署

在您的 Azure Resource Manager 範本 (ARM 範本) 中包含下列值:

項目 JSON 屬性 描述
位置 location 請務必使用與自訂位置和 Kubernetes 環境相同的資源位置(Azure 區域)。 邏輯應用程式、自訂位置和 Kubernetes 環境的資源位置必須全部相同。

注意 :此值與自訂位置的名稱 不同

應用程式種類 kind 您要部署的應用程式類型,讓 Azure 平臺可以識別您的應用程式。 針對 Azure Logic Apps,此資訊看起來像下列範例: kubernetes,functionapp,workflowapp,linux
擴充位置 extendedLocation 此物件需要 "name" Kubernetes 環境的自訂位置 且必須設定 "type""CustomLocation"
主控方案資源識別碼 serverFarmId 相關聯 App Service 方案的資源識別碼,格式如下:

"/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}"

儲存體連接字串 AzureWebJobsStorage 儲存體帳戶的連接字串

重要 事項:您必須在 ARM 範本中為您的儲存體帳戶提供連接字串。 針對生產案例或環境,請確定您使用金鑰保存庫保護及保護這類秘密和敏感性資訊。

ARM 範本

下列範例說明您可以在 ARM 範本中使用的範例已啟用 Azure Arc 的 Logic Apps 資源定義。 如需詳細資訊,請參閱 Microsoft.Web/sites 範本格式 (JSON) 檔。

{
   "type": "Microsoft.Web/sites",
   "apiVersion": "2020-12-01",
   "name": "[parameters('name')]",
   "location": "[parameters('location')]",
   "kind": "kubernetes,functionapp,workflowapp,linux",
   "extendedLocation": {
      "name": "[parameters('customLocationId')]",
      "type": "CustomLocation"
    },
   "properties": {
      "clientAffinityEnabled": false,
      "name": "[parameters('name')]",
      "serverFarmId": "<hosting-plan-ID>",
      "siteConfig": {
         "appSettings": [
            {
               "name": "FUNCTIONS_EXTENSION_VERSION",
               "value": "~3"
            },
            {
               "name": "FUNCTIONS_WORKER_RUNTIME",
               "value": "node"
            },
            {
               "name": "AzureWebJobsStorage",
               "value": "<storage-connection-string>"
            },
            {
               "name": "AzureFunctionsJobHost__extensionBundle__id",
               "value": "Microsoft.Azure.Functions.ExtensionBundle.Workflows"
            },
            {
               "name": "AzureFunctionsJobHost__extensionBundle__version",
               "value": "[1.*, 2.0.0)"
            },
            {
               "name": "APP_KIND",
               "value": "workflowapp"
            }
         ],
         "use32BitWorkerProcess": "[parameters('use32BitWorkerProcess')]",
         "linuxFxVersion": "Node|12"
      }
   }
}

容器部署

如果您想要使用容器工具和部署程式,您可以將邏輯應用程式容器化,並將其部署至已啟用 Azure Arc 的 Logic Apps。 在此案例中,當您設定基礎結構時,請完成下列高階工作:

  • 設定用來裝載容器映射的 Docker 登錄。

  • 若要將邏輯應用程式容器化,請將下列 Dockerfile 新增至邏輯應用程式專案的根資料夾,並遵循建置映射並將其發佈至 Docker 登錄的步驟,例如,請檢閱 教學課程:使用 Azure Container Registry 工作在雲端中建置和部署容器映射。

    注意

    如果您使用 SQL 作為儲存體提供者 ,請確定您使用 Azure Functions 映射 3.3.1 版或更新版本。

    FROM mcr.microsoft.com/azure-functions/node:3.3.1
    ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
    AzureFunctionsJobHost__Logging__Console__IsEnabled=true \
    FUNCTIONS_V2_COMPATIBILITY_MODE=true
    COPY . /home/site/wwwroot
    RUN cd /home/site/wwwroot
    
  • 通知資源提供者您要在 Kubernetes 上建立邏輯應用程式。

  • 在您的部署範本中,指向您打算部署的 Docker 登錄和容器映射。 單一租使用者 Azure Logic Apps 會使用這項資訊,從 Docker 登錄取得容器映射。

  • 在您的部署中包含 App Service 方案。 如需詳細資訊,請參閱 包含 App Service 方案與部署

在您的 Azure Resource Manager 範本 (ARM 範本) 中,包含下列值:

項目 JSON 屬性 描述
位置 location 請務必使用與自訂位置和 Kubernetes 環境相同的資源位置(Azure 區域)。 邏輯應用程式、自訂位置和 Kubernetes 環境的資源位置必須全部相同。

注意 :此值 與自訂位置的名稱 不同

應用程式種類 kind 您要部署的應用程式類型,讓 Azure 平臺可以識別您的應用程式。 針對 Azure Logic Apps,此資訊看起來像下列範例: kubernetes,functionapp,workflowapp,container
擴充位置 extendedLocation 此物件需要 "name" Kubernetes 環境的自訂位置 且必須 "type" 設定為 "CustomLocation"
容器名稱 linuxFxVersion 容器的名稱,格式如下: DOCKER\|<container-name>
主控方案資源識別碼 serverFarmId 相關聯 App Service 方案的資源識別碼,格式如下:

"/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}"

儲存體連接字串 AzureWebJobsStorage 儲存體帳戶的連接字串

重要 事項:當您部署至 Docker 容器時,您必須在 ARM 範本中為您的儲存體帳戶提供連接字串。 針對生產案例或環境,請確定您使用金鑰保存庫保護及保護這類秘密和敏感性資訊。

若要參考 Docker 登錄和容器映射,請在範本中包含這些值:

項目 JSON 屬性 描述
Docker 登錄伺服器 URL DOCKER_REGISTRY_SERVER_URL Docker 登錄伺服器的 URL
Docker 登錄伺服器 DOCKER_REGISTRY_SERVER_USERNAME 存取 Docker 登錄伺服器的使用者名稱
Docker 登錄伺服器密碼 DOCKER_REGISTRY_SERVER_PASSWORD 存取 Docker 登錄伺服器的密碼

ARM 範本

下列範例說明您可以在 ARM 範本中使用的範例已啟用 Azure Arc 的 Logic Apps 資源定義。 如需詳細資訊,請參閱 Microsoft.Web/sites 範本格式 (ARM 範本) 檔。

{
   "type": "Microsoft.Web/sites",
   "apiVersion": "2020-12-01",
   "name": "[parameters('name')]",
   "location": "[parameters('location')]",
   "kind": " kubernetes,functionapp,workflowapp,container",
   "extendedLocation": {
      "name": "[parameters('customLocationId')]",
      "type": "CustomLocation"
    },
   "properties": {
      "name": "[parameters('name')]",
      "clientAffinityEnabled": false,
      "serverFarmId": "<hosting-plan-ID>",
      "siteConfig": {
         "appSettings": [
            {
               "name": "FUNCTIONS_EXTENSION_VERSION",
               "value": "~3"
            },
            {
               "name": "FUNCTIONS_WORKER_RUNTIME",
               "value": "node"
            },
            {
               "name": "AzureWebJobsStorage",
               "value": "<storage-connection-string>"
            },
            {
               "name": "AzureFunctionsJobHost__extensionBundle__id",
               "value": "Microsoft.Azure.Functions.ExtensionBundle.Workflows"
            },
            {
               "name": "AzureFunctionsJobHost__extensionBundle__version",
               "value": "[1.*, 2.0.0)"
            },
            {
               "name": "APP_KIND",
               "value": "workflowapp"
            }, 
            {
               "name": "DOCKER_REGISTRY_SERVER_URL",
               "value": "<docker-registry-server-URL>"
            },
            { 
               "name": "DOCKER_REGISTRY_SERVER_USERNAME",
               "value": "<docker-registry-server-username>"
            },
            {
               "name": "DOCKER_REGISTRY_SERVER_PASSWORD",
               "value": "<docker-registry-server-password>"
            }
         ],
         "use32BitWorkerProcess": "[parameters('use32BitWorkerProcess')]",
         "linuxFxVersion": "DOCKER|<container-name>"
      }
   }
}

包含 App Service 方案與部署

無論您有標準或容器部署,都必須在部署中包含 App Service 方案。 雖然此方案與 Kubernetes 環境較不相關,但標準和容器部署仍需要 App Service 方案。

雖然其他建立選項通常會處理布建此方案的 Azure 資源,但如果您的部署使用「基礎結構即程式碼」範本,您必須明確建立方案的 Azure 資源。 主控方案資源不會變更,只會 sku 變更資訊。

在您的 Azure Resource Manager 範本 (ARM 範本) 中,包含下列值:

項目 JSON 屬性 描述
位置 location 請務必使用與自訂位置和 Kubernetes 環境相同的資源位置(Azure 區域)。 邏輯應用程式、自訂位置和 Kubernetes 環境的資源位置必須全部相同。

注意 :此值與自訂位置的名稱 不同

種類 kind 要部署的 App Service 方案種類,需要 kubernetes,linux
擴充位置 extendedLocation 此物件需要 "name" Kubernetes 環境的自訂位置 且必須 "type" 設定為 "CustomLocation"
主控方案名稱 name App Service 方案的名稱
方案層 sku: tier App Service 方案層,也就是 K1
計劃名稱 sku: name App Service 方案名稱,也就是 Kubernetes

ARM 範本

下列範例說明您可以搭配應用程式部署使用的範例 App Service 方案資源定義。 如需詳細資訊,請檢閱 Microsoft.Web/serverfarms 範本格式 (ARM 範本) 檔。

{
   "type": "Microsoft.Web/serverfarms",
   "apiVersion": "2020-12-01",
   "location": "<location>",
   "name": "<hosting-plan-name>",
   "kind": "kubernetes,linux",
   "extendedLocation": {
      "name": "[parameters('customLocationId')]",
      "type": "CustomLocation"
   },
   "sku": {
      "tier": "Kubernetes",
      "name": "K1", 
      "capacity": 1
   },
   "properties": {
      "kubeEnvironmentProfile": {
         "id": "[parameters('kubeEnvironmentId')]"
      }
   }
}

變更預設調整行為

已啟用 Azure Arc 的 Logic Apps 會根據後端儲存體佇列中的作業 數目 ,自動管理邏輯應用程式的調整。 不過,您可以變更預設調整行為。

在邏輯應用程式中,工作流程定義會指定要執行的動作順序。 每當觸發工作流程執行時,Azure Logic Apps 執行時間就會為工作流程定義中的每個動作類型建立作業 。 執行時間接著會將這些作業組織成 作業排序器 。 此排序器會協調工作流程定義的作業,但基礎 Azure Logic Apps 作業協調流程引擎會執行每個作業。

針對具狀態工作流程,作業協調流程引擎會使用儲存體佇列訊息來排程作業順序器中的作業。 在幕後, 工作發送器 (或 發送器背景工作角色實例 )會監視這些工作佇列。 協調流程引擎會使用預設的最小和最大背景工作實例數目來監視作業佇列。 針對無狀態工作流程,協調流程引擎會完全將動作狀態保留在記憶體中。

若要變更預設調整行為,您可以指定監視作業佇列的不同背景工作實例數目下限和上限。

變更調整的必要條件

在已啟用 Azure Arc 的 Kubernetes 叢集上,您先前建立的 App Service 套件組合延伸模組必須 keda.enabled 將 屬性設定為 true 。 如需詳細資訊,請檢閱 最上層必要條件

變更調整閾值

在已啟用 Azure Arc 的 Logic Apps 中,作業佇列的長度會觸發調整事件,並設定邏輯應用程式調整頻率的臨界值。 您可以變更佇列長度,其預設值已設定為 20 作業。 若要減少調整頻率,請增加佇列長度。 若要更頻繁地調整,請減少佇列長度。 此程式可能需要一些試用和錯誤。

若要變更佇列長度,請在邏輯應用程式專案的根層級 host.json 檔案中設定 Runtime.ScaleMonitor.KEDA.TargetQueueLength 屬性,例如:

"extensions": {
   "workflow": {
      "settings": {
         "Runtime.ScaleMonitor.KEDA.TargetQueueLength": "10"
      }
   }
}

變更輸送量上限

在現有的邏輯應用程式資源上,您可以變更背景工作實例數目上限,其預設值設定為 2 。 此值會控制有多少背景工作實例可以監視作業佇列的上限。

若要變更此最大值,請使用 Azure CLI(僅限邏輯應用程式建立)和Azure 入口網站。

Azure CLI

若要建立新的邏輯應用程式,請使用下列參數執行 命令 az logicapp create

az logicapp create --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --storage-account MyStorageAccount --custom-location MyCustomLocation 
   [--plan MyHostingPlan] [--min-worker-count 1] [--max-worker-count 4]

若要設定實例計數上限,請使用 --settings 參數:

az logicapp config appsettings set --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription
   --settings "K8SE_APP_MAX_INSTANCE_COUNT=10"

Azure 入口網站

在單一租使用者型邏輯應用程式的設定中,依照下列步驟新增或編輯 K8SE_APP_MAX_INSTANCE_COUNT 設定值:

  1. 在Azure 入口網站中,尋找並開啟您的單一租使用者型邏輯應用程式。

  2. 在邏輯應用程式功能表上的 [設定] 底下 ,選取 [ 組態 ]。

  3. 在 [組態 ] 窗格的 [ 應用程式設定 ] 底下 ,如果已新增,請新增應用程式設定或編輯現有的值。

    1. 選取 [ 新增應用程式設定 ],然後新增 K8SE_APP_MAX_INSTANCE_COUNT 具有您想要最大值的設定。

    2. 編輯設定的現有值 K8SE_APP_MAX_INSTANCE_COUNT

  4. 當您完成時,請儲存變更。

變更輸送量最小值

在現有的邏輯應用程式資源上,您可以變更背景工作實例數目下限,其預設值設定為 1 。 此值可控制可監視作業佇列的背景工作實例數目下限。 如需高可用性或效能,請增加此值。

若要變更此最小值,請使用 Azure CLI 或 Azure 入口網站。

Azure CLI

針對現有的邏輯應用程式資源,使用下列參數執行 命令 az logicapp scale

az logicapp scale --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --instance-count 5 

若要建立新的邏輯應用程式,請使用下列參數執行 命令 az logicapp create

az logicapp create --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --storage-account MyStorageAccount --custom-location MyCustomLocation 
   [--plan MyHostingPlan] [--min-worker-count 2] [--max-worker-count 4]

Azure 入口網站

在單一租使用者型邏輯應用程式的設定中,依照下列步驟變更 Scale out 屬性值:

  1. 在Azure 入口網站中,尋找並開啟您的單一租使用者型邏輯應用程式。

  2. 在邏輯應用程式功能表上的 [設定] 下 ,選取 [ 向外 展]。

  3. 在 [ 向外 延展] 窗格中,將最小實例滑杆拖曳至您想要的值。

  4. 當您完成時,請儲存變更。

疑難排解問題

若要取得已部署邏輯應用程式的詳細資訊,請嘗試下列選項:

存取應用程式設定和設定

若要存取您的應用程式設定,請使用下列參數執行 命令 az logicapp config appsettings

az logicapp config appsettings list --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

若要設定應用程式設定,請使用下列參數執行 命令 az logicapp config appsettings set 。 請務必將 參數與設定的名稱和值搭配使用 --settings

az logicapp config appsettings set --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --settings "MySetting=1"

若要刪除應用程式設定,請使用下列參數執行 命令 az logicapp config appsettings delete 。 請務必將 參數與您想要刪除的設定名稱搭配使用 --setting-names

az logicapp config appsettings delete --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription
   --setting-names MySetting

檢視邏輯應用程式屬性

若要檢視應用程式的資訊和屬性,請使用下列參數執行 命令 az logicapp show

az logicapp show --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

監視工作流程活動

若要檢視邏輯應用程式中工作流程的活動,請遵循下列步驟:

  1. 在Azure 入口網站中,尋找並開啟已部署的邏輯應用程式。

  2. 在邏輯應用程式功能表上,選取 [ 工作流程 ],然後選取您的工作流程。

  3. 在工作流程功能表上,選取 [ 監視 ]。

收集記錄

若要取得邏輯應用程式的相關記錄資料,如果尚未啟用,請在邏輯應用程式上啟用 Application Insights。

下一步