共用方式為


使用混合式部署為標準邏輯應用程式設定您自己的基礎結構 (預覽)

適用於:Azure Logic Apps (標準)

注意

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

有時候,您必須設定和管理自己的基礎結構,以符合法規合規性、數據隱私權或網路限制的特定需求。 Azure Logic Apps 提供 混合式部署模型 ,讓您可以在內部部署、私人雲端或公用雲端案例中部署及裝載標準邏輯應用程式工作流程。 當您需要使用本機處理、數據儲存和網路存取時,此模型可讓您在部分連線的環境中裝載整合解決方案。 透過混合式選項,您可以自由彈性地選擇工作流程的最佳環境。

混合式部署的運作方式

具有混合式部署選項的標準邏輯應用程式工作流程是由裝載在 Azure Container Apps 延伸模組中的 Azure Logic Apps 運行時間所提供。 在您的工作流程中,任何 內建作業 會在本機與運行時間一起執行,以便您取得更高的輸送量,以存取本機數據源。 如果您需要存取非本機數據資源,例如,Microsoft Office 365、Microsoft Teams、Salesforce、GitHub、LinkedIn 或 ServiceNow 等雲端式服務,您可以從 Azure 中裝載的 1,000 個以上的連接器中選擇作業,以包含在工作流程中。 如需詳細資訊,請參閱 受控(共享)連接器。 雖然您需要有因特網連線,才能在 Azure 入口網站 中管理邏輯應用程式,但此平臺的半連線本質可讓您吸收任何暫時的因特網連線問題。

例如,如果您有內部部署案例,下列架構概觀會顯示標準邏輯應用程式工作流程裝載並執行於混合式模型中的位置。 部分連線的環境包含下列資源,可用來裝載和使用標準邏輯應用程式,其會部署為 Azure Container Apps 資源:

  • 已啟用 Azure Arc 的 Azure Kubernetes Service (AKS) 叢集
  • 用來在本機儲存工作流程執行歷程記錄、輸入和輸出的 SQL 資料庫,以供處理
  • 伺服器消息塊 (SMB) 檔案共用,以在本機儲存工作流程所使用的成品

具有架構概觀的圖表,其中標準邏輯應用程式裝載於部分連線的環境中。

若要裝載,您也可以在 Windows Server 上設定及使用已啟用 Azure Arc 的 Kubernetes 叢集,在 Azure Stack 超融合基礎結構 (HCI) 或已啟用 Azure Arc 的 Kubernetes 叢集上。

如需詳細資訊,請參閱下列文件:

本操作指南說明如何在基礎結構中設定必要的內部部署資源,以便您可以使用混合式部署模型建立、部署及裝載標準邏輯應用程式工作流程。

計費的運作方式

使用混合式選項,您必須負責下列專案:

  • 已啟用 Azure Arc 的 Kubernetes 基礎結構
  • 您的 SQL Server 授權
  • 每個 vCPU/小時 0.18 美元的計費費用,以支援標準邏輯應用程式工作負載

在此計費模型中,您只需支付動態工作負載所需的費用,並調整動態工作負載的資源,而不需要購買尖峰使用量。 對於使用 Azure 裝載連接器作業的工作流程,例如 Microsoft Teams 或 Microsoft Office 365, 現有的標準 (單一租使用者) 定價 適用於這些作業執行。

限制

  • 混合式部署目前僅適用於下列已啟用 Azure Arc 的 Kubernetes 叢集:

    • 已啟用 Azure Arc 的 Kubernetes 叢集
    • Azure Stack HCI 上已啟用 Azure Arc 的 Kubernetes 叢集
    • 在 Windows Server 上啟用 Azure Arc 的 Kubernetes 叢集

必要條件

建立 Kubernetes 叢集

您必須先需要 Kubernetes 叢集,才能將標準邏輯應用程式部署為內部部署資源至 Azure Container Apps 連線環境中的已啟用 Azure Arc 的 Kubernetes 叢集。 您稍後會將此叢集連線到 Azure Arc,讓已啟用 Azure Arc 的 Kubernetes 叢集

Kubernetes 叢集需要您稍後建立為記憶體提供者的 SQL 資料庫,以及您稍後為成品記憶體建立的伺服器訊息塊檔案共享的輸入和輸出連線。 這些資源必須存在於相同的網路中。

注意

您也可以在 Windows Server 上的 Azure Stack HCI 基礎結構或 Kubernetes 叢集上建立 Kubernetes 叢集,並套用本指南中的步驟,將您的叢集連線至 Azure Arc 並設定連線的環境。 如需 Windows Server 上的 Azure Stack HCI 和 AKS 的詳細資訊,請參閱下列資源:

  1. 為您想要建立的 Kubernetes 叢集設定下列環境變數:

    SUBSCRIPTION="<Azure-subscription-ID>"
    AKS_CLUSTER_GROUP_NAME="<aks-cluster-resource-group-name>"
    AKS_NAME="<aks-cluster-name>"
    LOCATION="eastus"
    
    參數 必要 Description
    訂閱 Yes <Azure-subscription-ID> Azure 訂用帳戶的識別碼
    AKS_CLUSTER_GROUP_NAME Yes <aks-cluster-resource-group-name> 要搭配 Kubernetes 叢集使用的 Azure 資源群組名稱。 此名稱在各區域中必須是唯一的,而且只能包含字母、數字、連字號 (-)、底線 (_)、括弧(()) 和句點 (.)。

    此範例使用 Hybrid-RG
    AKS_NAME Yes <aks-cluster-name> Kubernetes 叢集的名稱。
    位置 Yes <Azure-region> 支援已啟用 Azure Arc 的 Kubernetes 上 Azure 容器應用程式的 Azure 區域

    此範例使用 eastus
  2. 使用 Azure Cloud Shell 中的 Bash 環境,或使用安裝在您電腦上的 Azure CLI 在本機執行下列命令:

    注意

    請務必根據您的負載需求變更 最大計數最小計數 節點值。

    az login
    az account set --subscription $SUBSCRIPTION
    az provider register --namespace Microsoft.KubernetesConfiguration --wait
    az extension add --name k8s-extension --upgrade --yes
    az group create
       --name $AKS_CLUSTER_GROUP_NAME
       --location $LOCATION
    az aks create \
       --resource-group $AKS_CLUSTER_GROUP_NAME \
       --name $AKS_NAME \
       --enable-aad \
       --generate-ssh-keys \
       --enable-cluster-autoscaler \
       --max-count 6 \
       --min-count 1
    
    參數 必要 Description
    max count No <max-nodes-value> 當您包含 enable-cluster-autoscaler 選項時,要用於自動調整程式的最大節點數目。 此值的範圍從 11000
    min count No <min-nodes-value> 當您包含 enable-cluster-autoscaler 選項時,自動調整程式要使用的節點數目下限。 此值的範圍從 11000

    如需詳細資訊,請參閱以下資源:

將 Kubernetes 叢集連線至 Azure Arc

若要建立已啟用 Azure Arc 的 Kubernetes 叢集,請將 Kubernetes 叢集連線至 Azure Arc。

注意

您可以在本節中尋找步驟,並透過在名為 EnvironmentSetup.ps1 的腳本中建立連線的環境,您可以在名為 Azure/logicappsGitHub 存放庫中找到。 您可以修改並使用此腳本來符合您的需求和案例。

文稿未簽署,因此在執行腳本之前,請以系統管理員身分執行下列 Azure PowerShell 命令來設定執行原則:

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

如需詳細資訊,請參閱 Set-ExecutionPolicy

  1. 安裝下列 Azure CLI 擴充功能:

    az extension add --name connectedk8s --upgrade --yes 
    az extension add --name k8s-extension --upgrade --yes 
    az extension add --name customlocation --upgrade --yes 
    az extension add --name containerapp --upgrade --yes 
    

    如需詳細資訊,請參閱以下資源:

  2. 註冊下列必要命名空間:

    az provider register --namespace Microsoft.ExtendedLocation --wait
    az provider register --namespace Microsoft.KubernetesConfiguration --wait
    az provider register --namespace Microsoft.App --wait
    az provider register --namespace Microsoft.OperationalInsights --wait
    

    如需詳細資訊,請參閱以下資源:

  3. 安裝名為 kubectl 的 Kubernetes 命令行介面 (CLI):

    Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
    
    choco install kubernetes-cli -y
    

    如需詳細資訊,請參閱以下資源:

  4. 安裝名為 Helm 的 Kubernetes 套件管理員:

    choco install kubernetes-helm
    

    如需詳細資訊,請參閱以下資源:

  5. 使用下列 Helm 命令安裝 SMB 驅動程式:

    1. 新增指定的圖表存放庫、取得可用圖表的最新資訊,並安裝指定的圖表封存。

      helm repo add csi-driver-smb https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts 
      helm repo update
      helm install csi-driver-smb csi-driver-smb/csi-driver-smb --namespace kube-system --version v1.15.0 
      

      如需詳細資訊,請參閱以下資源:

    2. 執行下列 kubectl 命令來確認已安裝 SMB 驅動程式,其中應該列出 smb.csi.k8s.io

      kubectl get csidriver
      

      如需詳細資訊,請參閱 kubectl get

將 Kubernetes 叢集連線至 Azure Arc

  1. 取得 kubeconfig 檔案來測試叢集的連線:

    az aks get-credentials \
       --resource-group $AKS_CLUSTER_GROUP_NAME \
       --name $AKS_NAME \
       --admin
    kubectl get ns 
    

    根據預設, kubeconfig 檔案會儲存到路徑 ~/.kube/config。此命令適用於我們的範例 Kubernetes 叢集,而且適用於其他類型的 Kubernetes 叢集。

    如需詳細資訊,請參閱以下資源:

  2. 根據您的 Kubernetes 叢集部署,設定下列環境變數,以提供名稱,以用於包含已啟用 Azure Arc 的叢集和資源的 Azure 資源群組:

    GROUP_NAME="<Azure-Arc-cluster-resource-group-name>"
    
    參數 必要 Description
    GROUP_NAME Yes <Azure-Arc-cluster-resource-group-name> Azure 資源群組的名稱,以搭配已啟用 Azure Arc 的叢集和其他資源使用,例如 Azure Container Apps 擴充功能、自定義位置和 Azure Container Apps 連線環境。 此名稱在各區域中必須是唯一的,而且只能包含字母、數字、連字號 (-)、底線 (_)、括弧(()) 和句點 (.)。

    此範例使用 Hybrid-Arc-RG
  3. 為已啟用 Azure Arc 的叢集和資源建立 Azure 資源群組:

    az group create \
       --name $GROUP_NAME \
       --location $LOCATION
    

    如需詳細資訊,請參閱以下資源:

  4. 設定下列環境變數,為您的已啟用 Azure Arc 的 Kubernetes 叢集提供名稱:

    CONNECTED_CLUSTER_NAME="$GROUP_NAME-cluster"
    
    參數 必要 Description
    CONNECTED_CLUSTER_NAME Yes <Azure-Arc-cluster-resource-group-name-cluster> 要用於已啟用 Azure Arc 之叢集的名稱。 此名稱在各區域中必須是唯一的,而且只能包含字母、數字、連字號 (-)、底線 (_)、括弧(()) 和句點 (.)。

    此範例使用 Hybrid-Arc-RG-cluster
  5. 將先前建立的 Kubernetes 叢集連線到 Azure Arc:

    az connectedk8s connect \
       --resource-group $GROUP_NAME \
       --name $CONNECTED_CLUSTER_NAME
    

    如需詳細資訊,請參閱以下資源:

  6. 驗證 Azure Arc 與 Kubernetes 叢集之間的連線:

    az connectedk8s show \
       --resource-group $GROUP_NAME \
       --name $CONNECTED_CLUSTER_NAME
    

    如果輸出顯示 provisioningState 屬性值未設定為 Succeeded,請在一分鐘后再次執行命令。

    如需詳細資訊,請參閱以下資源:

建立 Azure Log Analytics 工作區

您可以建立選擇性但建議的 Azure Log Analytics 工作區,以存取已啟用 Azure Arc 的 Kubernetes 叢集中執行之應用程式的記錄。

  1. 設定下列環境變數,以提供 Log Analytics 工作區的名稱:

    WORKSPACE_NAME="$GROUP_NAME-workspace"
    
    參數 必要 Description
    WORKSPACE_NAME Yes <Azure-Arc-cluster-resource-group-name-workspace> 要用於Log Analytics工作區的名稱。 此名稱在您的資源群組內必須是唯一的。

    此範例使用 Hybrid-Arc-RG-workspace
  2. 建立 Log Analytics 工作區:

    az monitor log-analytics workspace create \
       --resource-group $GROUP_NAME \
       --workspace-name $WORKSPACE_NAME
    

    如需詳細資訊,請參閱以下資源:

  3. 取得 Log Analytics 工作區的 base64 編碼識別碼和共用密鑰。 您稍後的步驟需要這些值。

    LOG_ANALYTICS_WORKSPACE_ID=$(az monitor log-analytics workspace show \
       --resource-group $GROUP_NAME \
       --workspace-name $WORKSPACE_NAME \
       --query customerId \
       --output tsv)
    
    LOG_ANALYTICS_WORKSPACE_ID_ENC=[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($LOG_ANALYTICS_WORKSPACE_ID))
    
    LOG_ANALYTICS_KEY=$(az monitor log-analytics workspace get-shared-keys \
       --resource-group $GROUP_NAME \
       --workspace-name $WORKSPACE_NAME \
       --query primarySharedKey \
       --output tsv)
    
    LOG_ANALYTICS_KEY_ENC=[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($LOG_ANALYTICS_KEY))
    
    參數 必要 Description
    LOG_ANALYTICS_WORKSPACE_ID Yes Log Analytics 工作區的標識碼。
    LOG_ANALYTICS_WORKSPACE_ID_ENC Yes Log Analytics 工作區的base64編碼標識碼。
    LOG_ANALYTICS_KEY Yes Log Analytics 工作區的共用密鑰。
    LOG_ANALYTICS_ENC Yes Log Analytics 工作區的base64編碼共用密鑰。

    如需詳細資訊,請參閱以下資源:

建立及安裝 Azure Container Apps 擴充功能

現在,使用已啟用 Azure Arc 的 Kubernetes 叢集作為內部部署資源,建立並安裝 Azure Container Apps 延伸模組。

重要

如果您想要在 Azure Stack HCI 上部署至 AKS,在建立並安裝 Azure Container Apps 擴充功能之前,請確定您已 設定 HAProxy 或自定義負載平衡器

  1. 將下列環境變數設定為下列值:

    EXTENSION_NAME="logicapps-aca-extension"
    NAMESPACE="logicapps-aca-ns"
    CONNECTED_ENVIRONMENT_NAME="<connected-environment-name>"
    
    參數 必要 Description
    EXTENSION_NAME Yes logicapps-aca-extension Azure Container Apps 擴充功能的名稱。
    NAMESPACE Yes logicapps-aca-ns 您想要布建資源的叢集命名空間。
    CONNECTED_ENVIRONMENT_NAME Yes <connected-environment-name> 要用於 Azure Container Apps 連線環境的唯一名稱。 此名稱會成為您在 Azure Container Apps 連線環境中建立、部署及裝載之標準邏輯應用程式的功能變數名稱的一部分。
  2. 為已啟用 Azure Arc 的 Kubernetes 叢集建立並安裝已啟用 Log Analytics 的擴充功能。 您稍後無法將Log Analytics新增至擴充功能。

    az k8s-extension create \
       --resource-group $GROUP_NAME \
       --name $EXTENSION_NAME \
       --cluster-type connectedClusters \
       --cluster-name $CONNECTED_CLUSTER_NAME \
       --extension-type 'Microsoft.App.Environment' \
       --release-train stable \
       --auto-upgrade-minor-version true \
       --scope cluster \
       --release-namespace $NAMESPACE \
       --configuration-settings "Microsoft.CustomLocation.ServiceAccount=default" \
       --configuration-settings "appsNamespace=${NAMESPACE}" \
       --configuration-settings "keda.enabled=true" \
       --configuration-settings "keda.logicAppsScaler.enabled=true" \
       --configuration-settings "keda.logicAppsScaler.replicaCount=1" \
       --configuration-settings "containerAppController.api.functionsServerEnabled=true" \
       --configuration-settings "envoy.externalServiceAzureILB=false" \
       --configuration-settings "functionsProxyApiConfig.enabled=true" \
       --configuration-settings "clusterName=${CONNECTED_ENVIRONMENT_NAME}" \
       --configuration-settings "envoy.annotations.service.beta.kubernetes.io/azure-load-balancer-resource-group=${GROUP_NAME}" \
       --configuration-settings "logProcessor.appLogs.destination=log-analytics" \
       --configuration-protected-settings "logProcessor.appLogs.logAnalyticsConfig.customerId=${LOG_ANALYTICS_WORKSPACE_ID_ENC}" \
       --configuration-protected-settings "logProcessor.appLogs.logAnalyticsConfig.sharedKey=${LOG_ANALYTICS_KEY_ENC}"
    
    參數 必要 描述
    Microsoft.CustomLocation.ServiceAccount Yes 針對自訂位置建立的服務帳戶。

    建議:將值設定為 預設值
    appsNamespace Yes 用來建立應用程式定義和修訂的命名空間。 此值必須符合 Azure Container Apps 延伸模組的版本命名空間。
    clusterName Yes 要為延伸模組建立的 Azure Container Apps 擴充功能 Kubernetes 環境名稱。
    keda.enabled Yes 開啟 Kubernetes 事件驅動自動調整 (KEDA) 。 此值為必要值,且必須設定為 true
    keda.logicAppsScaler.enabled Yes 在 KEDA 中啟用 Azure Logic Apps 縮放程式。 此值為必要值,且必須設定為 true
    keda.logicAppsScaler.replicaCount Yes 要啟動的邏輯應用程式縮放程式初始數目。 預設值設定為 1。 如果環境中沒有邏輯應用程式,這個值會相應增加或相應減少為 0
    containerAppController.api.functionsServerEnabled Yes 啟用負責將邏輯應用程式工作流程觸發程式轉換成KEDA縮放對象的服務。 此值為必要值,且必須設定為 true
    envoy.externalServiceAzureILB Yes 判斷 Envoy 是否做為內部負載平衡器或公用負載平衡器。

    - true:Envoy 會作為內部負載平衡器。 Azure Logic Apps 運行時間只能在專用網記憶體取。

    - false:Envoy 會做為公用負載平衡器。 Azure Logic Apps 執行時間可透過公用網路存取。
    functionsProxyApiConfig.enabled Yes 啟用 Proxy 服務,以利從 Azure 入口網站 存取 Azure Logic Apps 運行時間。 此值為必要值,且必須設定為 true
    envoy.annotations.service.beta.kubernetes.io/azure-load-balancer-resource-group 是,但只有在基礎叢集是 Azure Kubernetes Service 時。 Kubernetes 叢集所在的資源群組名稱。
    logProcessor.appLogs.destination No 要用於應用程式記錄的目的地。 此值為 log-analyticsnone,這會停用記錄。
    logProcessor.appLogs.logAnalyticsConfig.customerId 是,但只有在logProcessor.appLogs.destination 設定為log-analytics Log Analytics 工作區的base64編碼標識碼。 請務必將此參數設定為受保護的設定。
    logProcessor.appLogs.logAnalyticsConfig.sharedKey 是,但只有在logProcessor.appLogs.destination 設定為log-analytics Log Analytics 工作區的base64編碼共用密鑰。 請務必將此參數設定為受保護的設定。

    如需詳細資訊,請參閱以下資源:

  3. 儲存 Azure Container Apps 擴充功能的標識碼值,以供稍後使用:

    EXTENSION_ID=$(az k8s-extension show \
       --cluster-type connectedClusters \
       --cluster-name $CONNECTED_CLUSTER_NAME \
       --resource-group $GROUP_NAME \
       --name $EXTENSION_NAME \
       --query id \
       --output tsv)
    
    參數 必要 Description
    EXTENSION_ID Yes <extension-ID> Azure Container Apps 擴充功能的標識碼。

    如需詳細資訊,請參閱以下資源:

  4. 繼續之前,請等候擴充功能完全安裝。 若要讓終端機會話等到安裝完成,請執行下列命令:

    az resource wait \
       --ids $EXTENSION_ID \
       --custom "properties.provisioningState!='Pending'" \
       --api-version "2020-07-01-preview" 
    

    如需詳細資訊,請參閱以下資源:

建立您的自定義位置

  1. 將下列環境變數設定為指定的值:

    CUSTOM_LOCATION_NAME="my-custom-location"
    
    CONNECTED_CLUSTER_ID=$(az connectedk8s show \
       --resource-group $GROUP_NAME \
       --name $CONNECTED_CLUSTER_NAME \
       --query id \
       --output tsv)
    
    參數 必要 Description
    CUSTOM_LOCATION_NAME Yes my-custom-location 要用於自定義位置的名稱。
    CONNECTED_CLUSTER_ID Yes <Azure-Arc-cluster-ID> 已啟用 Azure Arc 的 Kubernetes 叢集標識碼。

    如需詳細資訊,請參閱以下資源:

  2. 建立自訂位置:

    az customlocation create \
       --resource-group $GROUP_NAME \
       --name $CUSTOM_LOCATION_NAME \
       --host-resource-id $CONNECTED_CLUSTER_ID \
       --namespace $NAMESPACE \
       --cluster-extension-ids $EXTENSION_ID \
       --location $LOCATION
    

    注意

    如果您在叢集上建立自定義位置時遇到問題,您可能必須 啟用叢集上的自定義位置功能。 如果您使用服務主體登入 Azure CLI,或以具有叢集資源限制許可權的 Microsoft Entra 使用者身分登入,則需要此步驟。

    如需詳細資訊,請參閱以下資源:

  3. 驗證已成功建立自訂位置:

    az customlocation show \
       --resource-group $GROUP_NAME \
       --name $CUSTOM_LOCATION_NAME
    

    如果輸出顯示 provisioningState 屬性值未設定為 Succeeded,請在一分鐘后再次執行命令。

  4. 儲存自訂位置識別碼以供後續步驟使用:

    CUSTOM_LOCATION_ID=$(az customlocation show \
       --resource-group $GROUP_NAME \
       --name $CUSTOM_LOCATION_NAME \
       --query id \
       --output tsv)
    
    參數 必要 Description
    CUSTOM_LOCATION_ID Yes <my-custom-location-ID> 自定義位置的識別碼。

    如需詳細資訊,請參閱以下資源:

建立 Azure 容器應用程式連線環境

現在,建立 Azure Container Apps 連線環境,讓標準邏輯應用程式可供使用。

az containerapp connected-env create \
   --resource-group $GROUP_NAME \
   --name $CONNECTED_ENVIRONMENT_NAME \
   --custom-location $CUSTOM_LOCATION_ID \
   --location $LOCATION

如需詳細資訊,請參閱以下資源:

建立 SQL Server 記憶體提供者

混合式部署模型中的標準邏輯應用程式工作流程會使用 SQL 資料庫作為工作流程和 Azure Logic Apps 執行時間所使用數據的記憶體提供者,例如工作流程執行歷程記錄、輸入、輸出等等。

您的 SQL 資料庫需要與 Kubernetes 叢集的輸入和輸出連線,因此這些資源必須存在於相同的網路中。

  1. 設定下列任何 SQL Server 版本:

    如需詳細資訊,請參閱 設定標準邏輯應用程式工作流程的SQL資料庫記憶體。

  2. 確認您的 SQL 資料庫與已啟用 Arc 的 Kubernetes 叢集和 SMB 檔案共用位於相同的網路中。

  3. 尋找並儲存您所建立 SQL 資料庫的 連接字串。

設定成品記憶體的SMB檔案共用

若要儲存邏輯應用程式(容器應用程式)資源的對應、架構和元件等成品,您需要有使用伺服器消息塊 (SMB) 通訊協定檔案共用。

  • 您需要系統管理員存取權,才能設定SMB檔案共用。

  • 您的 SMB 檔案共享必須存在於與 Kubernetes 叢集和 SQL 資料庫相同的網路中。

  • 您的SMB檔案共用需要與 Kubernetes 叢集的輸入和輸出連線。 如果您已啟用 Azure 虛擬網路限制,請確定您的檔案共用存在於與 Kubernetes 叢集相同的虛擬網路或對等互連虛擬網路中。

  • 請勿針對多個邏輯應用程式使用相同的完全相同的檔案共享路徑。

  • 您可以針對每個邏輯應用程式使用不同的SMB檔案共用,或者只要這些資料夾不是巢狀,就可以在相同的SMB檔案共用中使用不同的資料夾。 例如,沒有邏輯應用程式使用根路徑,然後讓另一個邏輯應用程式使用子資料夾。

  • 若要使用 Visual Studio Code 部署邏輯應用程式,請確定具有 Visual Studio Code 的本機電腦可以存取檔案共用。

在 Windows 上設定 SMB 檔案共用

請確定您的 SMB 檔案共用存在於與您掛接檔案共用的叢集相同的虛擬網路中。

  1. 在 Windows 中,移至您要共用的資料夾,開啟快捷方式功能表,選取 [ 屬性]。

  2. 在 [ 共用] 索引標籤上,選取 [ 共享]。

  3. 在開啟的方塊中,選取您想要存取檔案共享的人員。

  4. 選取 [ 共享],然後複製網路路徑的連結。

    如果您的本機電腦未連線到網域,請將網路路徑中的計算機名稱取代為IP位址。

  5. 儲存IP位址,以供稍後用來作為主機名。

將 Azure 檔案儲存體 設定為SMB檔案共用

或者,為了進行測試,您可以使用 Azure 檔案儲存體 作為 SMB 檔案共用。 請確定您的 SMB 檔案共用存在於與您掛接檔案共用的叢集相同的虛擬網路中。

  1. Azure 入口網站 中,建立 Azure 記憶體帳戶

  2. 從記憶體帳戶功能表的 [資料記憶體] 底下,選取 [檔案分享]。

  3. 從 [ 檔案共用 ] 頁面工具列中,選取 [+ 檔案共用],並提供 SMB 檔案共用的必要資訊。

  4. 完成部署後,選取 [移至資源]

  5. 在檔案共享功能表上,如果未選取,請選取 [概觀]。

  6. 在 [概 ] 頁面工具列上,選取 [ 聯機]。 在 [ 連線 ] 窗格中,選取 [ 顯示腳本]。

  7. 複製下列值,並將其儲存在安全的地方,以供稍後使用:

    • 例如,檔案共用的主機名 mystorage.file.core.windows.net
    • 檔案共享路徑
    • 沒有的用戶名稱 localhost\
    • 密碼
  8. 在 [概 ] 頁面工具列上,選取 [+ 新增目錄],並提供要用於目錄的名稱。 儲存此名稱以供稍後使用。

當您部署邏輯應用程式資源時,您需要這些已儲存的值來提供SMB檔案共享資訊。

如需詳細資訊,請參閱 建立 SMB Azure 檔案共用

確認SMB檔案共享連線

若要測試已啟用 Arc 的 Kubernetes 叢集與 SMB 檔案共用之間的連線,以及檢查檔案共用是否已正確設定,請遵循下列步驟:

  • 如果您的 SMB 檔案共用不在相同的叢集上,請確認 Ping 作業可從已啟用 Arc 的 Kubernetes 叢集運作到具有 SMB 檔案共用的虛擬機。 若要檢查 Ping 作業是否正常運作,請遵循下列步驟:

    1. 在已啟用 Arc 的 Kubernetes 叢集中,建立執行任何 Linux 映像的測試 Pod ,例如 BusyBox 或 Ubuntu。

    2. 移至 Pod 中的容器,然後執行下列 Linux 命令來安裝 iputils-ping 套件:

      apt-get update
      apt-get install iputils-ping
      
  • 若要確認SMB檔案共用已正確設定,請遵循下列步驟:

    1. 在具有相同 Linux 映像的測試 Pod 中,建立名為 mnt/smb 路徑的資料夾。

    2. 移至包含 mnt 資料夾的根目錄或主目錄。

    3. 執行以下命令:

      - mount -t cifs //{ip-address-smb-computer}/{file-share-name}/mnt/smb -o username={user-name}, password={password}

  • 若要確認成品正確上傳,請連線到SMB檔案共享路徑,並檢查成品檔案是否存在於部署期間指定的正確資料夾中。

下一步

在您自己的基礎結構上建立混合式部署的標準邏輯應用程式工作流程