Поделиться через


Настройте собственную инфраструктуру для стандартных логических приложений, используя гибридное развертывание.

Область применения: Azure Logic Apps (стандартная версия)

Иногда необходимо настроить собственную инфраструктуру и управлять ею, чтобы обеспечить соответствие нормативным требованиям, конфиденциальность данных или ограничения сети. Azure Logic Apps предлагает модель гибридного развертывания, чтобы можно было развертывать и размещать рабочие процессы приложения логики уровня "Стандартный" в локальных, частных облаках или в общедоступных облачных сценариях. Эта модель предоставляет возможности размещения решений интеграции в частично подключенных средах, когда необходимо использовать локальную обработку, хранилище данных и сетевой доступ. С помощью гибридного варианта у вас есть свобода и гибкость, чтобы выбрать оптимальную среду для рабочих процессов.

Как работает гибридное развертывание

Рабочие процессы Logic Apps в стандартной версии с возможностью гибридного развертывания работают на среде выполнения Azure Logic Apps, размещенной в расширении Azure Container Apps. В рабочем процессе все встроенные операции среды выполнения выполняются локально с средой выполнения, чтобы получить более высокую пропускную способность для доступа к локальным источникам данных. Если вам нужен доступ к не локальным ресурсам данных, например облачным службам, таким как Microsoft Office 365, Microsoft Teams, Salesforce, GitHub, LinkedIn или ServiceNow, можно выбрать операции из 1400+ соединителей, размещенных в Azure , чтобы включить в рабочие процессы. Дополнительные сведения см. в разделе "Управляемые (общие) соединители". Хотя вам необходимо иметь подключение к Интернету для управления приложением логики в портале Azure, частично подключенный характер этой платформы позволяет смягчать влияние временных проблем с подключением к Интернету.

Например, если у вас есть локальный сценарий, в следующем обзоре архитектуры показано, где размещаются рабочие процессы логического приложения стандарта и выполняются в гибридной модели. Среда с частичным подключением включает следующие ресурсы для размещения и работы со стандартными приложениями логики, развертываемыми как ресурсы приложений в Azure Container Apps.

  • Кластеры Azure Kubernetes Service (AKS) с поддержкой Azure Arc
  • База данных SQL для локального хранения журнала выполнения рабочих процессов, входных данных и выходных данных для обработки
  • Общий файловый ресурс в формате SMB для локального хранения файлов, используемых в рабочих процессах.

Схема архитектурного обзора, где размещены логические приложения стандарта в частично подключенной среде.

Для размещения можно также настроить и использовать кластеры Kubernetes с поддержкой Azure Arc на Azure Local или кластеры Kubernetes с поддержкой Azure Arc на Windows Server.

Модель гибридного развертывания объединяет локальные и облачные возможности для предоставления гибких решений интеграции для различных потребностей. Например, ресурс приложения гибридной логики может эффективно настраивать ресурсы на основе изменения рабочих нагрузок. Это динамическое масштабирование помогает управлять вычислительными затратами за счет увеличения емкости во время пикового спроса и уменьшения ресурсов при снижении использования.

Дополнительные сведения см. в следующей документации:

В этом руководстве показано, как настроить необходимые локальные ресурсы в инфраструктуре, чтобы можно было создавать, развертывать и размещать рабочий процесс приложения логики уровня "Стандартный" с помощью гибридной модели развертывания.

Ограничения

В следующем разделе описываются ограничения для параметра гибридного развертывания:

Ограничение Описание
Ведение журнала данных с отключенной средой выполнения В частично подключенном режиме среда выполнения Azure Logic Apps может оставаться отключенной до 24 часов и по-прежнему хранить журналы данных. Однако все данные ведения журнала по истечении этого времени могут быть потеряны.
Поддерживаемые регионы Azure Гибридное развертывание сейчас доступно и поддерживается только в следующих регионах Azure:

- Центральная часть США
- Восточная Азия
- Восточная часть США
- Северная центральная часть США
-Юго-Восточная Азия
- Центральная Швеция
- Южная Великобритания
- Западная Европа
- Западная часть США
Поддерживаемые кластеры Kubernetes с поддержкой Azure Arc — кластеры Kubernetes с поддержкой Azure Arc
— Кластеры Kubernetes с поддержкой Azure Arc в локальной среде Azure (ранее — Azure Stack HCI)
— кластеры Kubernetes с поддержкой Azure Arc в Windows Server
Неподдерживаемые возможности, доступные в одноарендаторных Azure Logic Apps (Standard) и связанных службах Azure. — слоты развертывания

— Отслеживание бизнес-процессов Azure

— работоспособности ресурсов в разделе "Поддержка и устранение неполадок " на портале Azure

— Аутентификация управления удостоверениями для операций коннектора. Дополнительные сведения см. в разделе "Ограничения для создания рабочих процессов гибридного развертывания".

Предварительные условия

Выставление счетов

Сведения о том, как работает выставление счетов, см. в статье «Стандартный» (гибридное развертывание).

Создание кластера Kubernetes

Прежде чем развернуть логическое приложение стандартного уровня как локальный ресурс (on-premises) в кластере Kubernetes с поддержкой Azure Arc в подключенной среде Azure Container Apps, сначала потребуется кластер Kubernetes. Позже вы подключите этот кластер к Azure Arc, чтобы иметь кластер Kubernetes с поддержкой Azure Arc.

Кластер Kubernetes требует входящего и исходящего подключения к базе данных SQL, которую вы создаете позже в качестве поставщика хранения, а также к файловой общей папке блока сообщений сервера, которую вы создаете позже для хранения артефактов. Эти ресурсы должны существовать в одной сети.

Примечание.

Вы также можете создать кластер Kubernetes в локальном кластере Azure или Kubernetes в Windows Server и применить действия, описанные в этом руководстве, чтобы подключить кластер к Azure Arc и настроить подключенную среду. Дополнительные сведения о локальной среде Azure и AKS в Windows Server см. в следующих ресурсах:

  1. Задайте следующие переменные среды для кластера Kubernetes, который требуется создать:

    SUBSCRIPTION="<Azure-subscription-ID>"
    AKS_CLUSTER_GROUP_NAME="<aks-cluster-resource-group-name>"
    AKS_NAME="<aks-cluster-name>"
    LOCATION="eastus"
    
    Параметр Обязательное поле значение Описание
    ПОДПИСКА Да < Идентификатор подписки Azure> Идентификатор подписки Azure
    AKS_CLUSTER_GROUP_NAME Да < aks-cluster-resource-group-name> Имя группы ресурсов Azure, используемой в кластере Kubernetes. Это имя должно быть уникальным во всех регионах и может содержать только буквы, цифры, дефисы (-), символы подчеркивания (_), круглые скобки (()) и точки (.).

    В этом примере используется hybrid-RG.
    AKS_NAME Да < aks-cluster-name> Имя кластера Kubernetes.
    МЕСТОПОЛОЖЕНИЕ Да < Azure-region> Регион Azure, который поддерживает Azure Container Apps на Kubernetes с поддержкой Azure Arc.

    В этом примере используется eastus.
  2. Выполните следующие команды с помощью среды Bash в Azure Cloud Shell или локально с помощью Azure CLI, установленной на компьютере:

    Примечание.

    Обязательно измените значения максимального количества и минимального количества узлов на основе требований к нагрузке.

    az login
    az account set --subscription $SUBSCRIPTION
    az provider register --namespace Microsoft.KubernetesConfiguration --wait
    az provider register --namespace Microsoft.Kubernetes --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
    
    Параметр Обязательное поле значение Описание
    max count Нет < значение максимального числа узлов> Максимальное количество узлов, используемых для автомасштабирования при включении enable-cluster-autoscaler параметра. Это значение варьируется от 1 до 1000.
    min count Нет < min-nodes-value> Минимальное количество узлов, используемых для автомасштабирования при включении enable-cluster-autoscaler параметра. Это значение варьируется от 1 до 1000.

    Дополнительные сведения см. на следующих ресурсах:

Подключение кластера Kubernetes к Azure Arc

Чтобы создать кластер Kubernetes с поддержкой Azure Arc, подключите кластер Kubernetes к Azure Arc.

Примечание.

Шаги, описанные в этом разделе и далее, вплоть до создания вашей подключенной среды, находятся в скрипте с именем EnvironmentSetup.ps1, который можно найти в репозитории GitHub с именем Azure/logicapps. Этот скрипт можно изменить и использовать для удовлетворения ваших требований и сценариев.

Скрипт не назначен, поэтому перед запуском скрипта выполните следующую команду 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.Kubernetes --wait
    az provider register --namespace Microsoft.KubernetesConfiguration --wait
    az provider register --namespace Microsoft.App --wait
    az provider register --namespace Microsoft.OperationalInsights --wait
    

    Дополнительные сведения см. на следующих ресурсах:

  3. Установите интерфейс командной строки Kubernetes с именем kubectl:

    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. Проверьте подключение к кластеру, получив файл kubeconfig:

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

    По умолчанию файл kubeconfig сохраняется в пути ~/.kube/config. Эта команда применяется к нашему примеру кластера Kubernetes и отличается для других типов кластеров Kubernetes.

    Дополнительные сведения см. на следующих ресурсах:

  5. Установите диспетчер пакетов Kubernetes с именем Helm:

    choco install kubernetes-helm
    

    Дополнительные сведения см. на следующих ресурсах:

  6. Установите драйвер SMB с помощью следующих команд Helm:

    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. Убедитесь, что драйвер SMB установлен, выполнив следующую команду kubectl , которая должна содержать список smb.csi.k8s.io:

      kubectl get csidriver
      

      Дополнительные сведения см. в kubectl get.

Подключение кластера Kubernetes к Azure Arc

  1. На основе развертывания кластера Kubernetes задайте следующую переменную среды, чтобы указать имя для группы ресурсов Azure, содержащей кластер и ресурсы с поддержкой Azure Arc:

    GROUP_NAME="<Azure-Arc-cluster-resource-group-name>"
    
    Параметр Обязательное поле значение Описание
    GROUP_NAME Да < Azure-Arc-cluster-resource-group-name> Имя группы ресурсов Azure для использования с кластером Azure Arc и другими ресурсами, такими как расширение Azure Container Apps, кастомное местоположение и подключенная среда Azure Container Apps. Это имя должно быть уникальным во всех регионах и может содержать только буквы, цифры, дефисы (-), символы подчеркивания (_), круглые скобки (()) и точки (.).

    В этом примере используется Hybrid-Arc-RG.
  2. Создайте группу ресурсов Azure для кластера и ресурсов с поддержкой Azure Arc:

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

    Дополнительные сведения см. на следующих ресурсах:

  3. Задайте следующую переменную среды, чтобы указать имя кластера Kubernetes с поддержкой Azure Arc:

    CONNECTED_CLUSTER_NAME="$GROUP_NAME-cluster"
    
    Параметр Обязательное поле значение Описание
    CONNECTED_CLUSTER_NAME Да < Azure-Arc-cluster-resource-group-name>-cluster Имя, используемое для кластера с поддержкой Azure Arc. Это имя должно быть уникальным во всех регионах и может содержать только буквы, цифры, дефисы (-), символы подчеркивания (_), круглые скобки (()) и точки (.).

    В этом примере используется гибридный кластер Arc-RG-cluster.
  4. Подключите ранее созданный кластер Kubernetes к Azure Arc:

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

    Дополнительные сведения см. на следующих ресурсах:

  5. Проверьте подключение между Azure Arc и кластером Kubernetes:

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

    Если выходные данные показывают, что значение свойства provisioningState не задано как "Успешно", выполните команду снова через одну минуту.

    Дополнительные сведения см. на следующих ресурсах:

Создание рабочей области Azure Log Analytics

Вы можете создать необязательную рабочую область Azure Log Analytics, которая предоставляет доступ к журналам для приложений, работающих в кластере Kubernetes с поддержкой Azure Arc.

  1. Задайте следующую переменную среды, чтобы указать имя рабочей области Log Analytics:

    WORKSPACE_NAME="$GROUP_NAME-workspace"
    
    Параметр Обязательное поле значение Описание
    WORKSPACE_NAME Да < Azure-Arc-cluster-resource-group-name>-рабочая область Имя, используемое для рабочей области Log Analytics. Это имя должно быть уникальным в вашей группе ресурсов.

    В этом примере используется рабочая область Hybrid-Arc-RG-workspace.
  2. Создайте рабочую область Log Analytics:

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

    Дополнительные сведения см. на следующих ресурсах:

  3. Получите идентификатор в кодировке Base64 и общий ключ для рабочей области Log Analytics. Эти значения потребуются для последующего шага.

    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))
    
    Параметр Обязательное поле значение Описание
    LOG_ANALYTICS_WORKSPACE_ID Да Идентификатор рабочей области Log Analytics.
    LOG_ANALYTICS_WORKSPACE_ID_ENC Да Идентификатор в кодировке Base64 для рабочей области Log Analytics.
    LOG_ANALYTICS_KEY Да Общий ключ для рабочей области Log Analytics.
    LOG_ANALYTICS_ENC Да Общий ключ в кодировке Base64 для рабочей области Log Analytics.

    Дополнительные сведения см. на следующих ресурсах:

Создание и установка расширения "Приложения контейнеров Azure"

Теперь создайте и установите расширение Azure Container Apps с кластером Kubernetes с поддержкой Azure Arc в качестве локального ресурса.

Внимание

Если вы хотите развернуть в AKS в Локальной среде Azure, перед созданием и установкой расширения приложений контейнеров Azure убедитесь, что вы настроили HAProxy или настраиваемую подсистему балансировки нагрузки.

  1. Задайте следующие переменные среды следующим значениям:

    EXTENSION_NAME="logicapps-aca-extension"
    NAMESPACE="logicapps-aca-ns"
    CONNECTED_ENVIRONMENT_NAME="<connected-environment-name>"
    
    Параметр Обязательное поле значение Описание
    EXTENSION_NAME Да logicapps-aca-extension Название расширения для Azure Container Apps.
    ПРОСТРАНСТВО ИМЕН Да logicapps-aca-ns Пространство имен кластера, в котором вы хотите развернуть ресурсы.
    ИМЯ_ПОДКЛЮЧЕННОЙ_СРЕДЫ Да < имя подключенной среды> Уникальное имя для использования в среде подключенных контейнерных приложений Azure. Это имя становится частью доменного имени для логического приложения уровня Standard, которое вы создаете, развертываете и размещаете в среде Azure Container Apps.
  2. Создайте и установите расширение с поддержкой Log Analytics для кластера Kubernetes с поддержкой Azure Arc. Позже вы не можете добавить 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 Да Учетная запись службы, созданная для пользовательского расположения.

    Рекомендация. Задайте значение по умолчанию.
    appsNamespace Да Пространство имен, используемое для создания определений и редакций приложений. Это значение должно соответствовать пространству имен репозитория для расширения Azure Container Apps.
    clusterName Да Название среды Kubernetes, создаваемой для расширения Azure Container Apps.
    keda.enabled Да Включите автомасштабирование на основе событий Kubernetes (KEDA). Это значение является обязательным и должно иметь значение true.
    keda.logicAppsScaler.enabled Да Включите масштабировщик Azure Logic Apps в KEDA. Это значение является обязательным и должно иметь значение true.
    keda.logicAppsScaler.replicaCount Да Начальное число масштабировщиков приложений логики для запуска. Значение по умолчанию, равное 1. Это значение увеличивается или уменьшается до 0, если в среде не существует логических приложений.
    containerAppController.api.functionsServerEnabled Да Включите службу, отвечающую за преобразование триггеров рабочего процесса приложения логики в масштабируемые объекты KEDA. Это значение является обязательным и должно иметь значение true.
    envoy.externalServiceAzureILB Да Определяет, действует ли посланник как внутренняя подсистема балансировки нагрузки или общедоступная подсистема балансировки нагрузки.

    - true: агент выступает в роли внутреннего балансировщика нагрузки. Среда выполнения Azure Logic Apps доступна только в частной сети.

    - false: Envoy выступает в качестве общедоступного балансировщика нагрузки. Среда выполнения Azure Logic Apps доступна через общедоступную сеть.
    functionsProxyApiConfig.enabled Да Включите прокси-сервис, который обеспечивает доступ API к исполнительной среде Azure Logic Apps из портала Azure. Это значение является обязательным и должно иметь значение true.
    envoy.annotations.service.beta.kubernetes.io/azure-load-balancer-resource-group Да, но только если используется базовый кластер Azure Kubernetes Service. Имя группы ресурсов, в которой существует кластер Kubernetes.
    logProcessor.appLogs.destination Нет Место назначения для журналов приложений. Значение может быть log-analytics или none, что отключает ведение журнала.
    logProcessor.appLogs.logAnalyticsConfig.customerId Да, но только если для logProcessor.appLogs.destination задано значение log-analytics. Идентификатор в кодировке Base64 для рабочей области Log Analytics. Не забудьте настроить этот параметр в качестве защищенного параметра.
    logProcessor.appLogs.logAnalyticsConfig.sharedKey Да, но только если для logProcessor.appLogs.destination задано значение log-analytics. Общий ключ в кодировке Base64 для рабочей области Log Analytics. Не забудьте настроить этот параметр в качестве защищенного параметра.

    Дополнительные сведения см. на следующих ресурсах:

  3. Сохраните значение идентификатора расширения "Приложения контейнеров Azure", чтобы использовать его позже:

    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)
    
    Параметр Обязательное поле значение Описание
    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)
    
    Параметр Обязательное поле значение Описание
    CUSTOM_LOCATION_NAME Да my-custom-location Название, которое нужно использовать для пользовательского расположения.
    ИДЕНТИФИКАТОР_ПОДКЛЮЧЕННОГО_КЛАСТЕРА Да < Azure-Arc-cluster-ID> Идентификатор кластера Kubernetes с поддержкой Azure Arc.

    Дополнительные сведения см. на следующих ресурсах:

  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 не задано как "Успешно", выполните команду снова через одну минуту.

  4. Сохраните идентификатор пользовательского расположения для использования на следующем шаге:

    CUSTOM_LOCATION_ID=$(az customlocation show \
       --resource-group $GROUP_NAME \
       --name $CUSTOM_LOCATION_NAME \
       --query id \
       --output tsv)
    
    Параметр Обязательное поле значение Описание
    CUSTOM_LOCATION_ID Да < 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

Дополнительные сведения см. на следующих ресурсах:

Обновление CoreDNS для кластера Kubernetes в локальной среде Azure

Если кластер Azure Kubernetes размещен в локальной среде Azure, необходимо вручную обновить конфигурацию CoreDNS для кластера. На этом шаге добавляется новая карта конфигурации в пространство имен Azure Kubernetes. В сравнении Azure Logic Apps автоматически завершает этот шаг, когда кластер Kubernetes размещается в Azure. Однако для кластера, размещенного в другом месте, необходимо выполнить этот шаг вручную.

Дополнительные сведения см. в следующей документации:

Чтобы обновить конфигурацию CoreDNS, выполните следующую команду Azure CLI, используя параметры сценария:

az containerapp arc setup-core-dns
Параметры Обязательное поле Описание
--distro Да Поддерживаемый дистрибутив, используемый для обновления конфигурации CoreDNS. Допустимые значения: AksAzureLocal
--kube-config Нет Путь к файлу kubeconfig, который содержит параметры конфигурации для доступа к кластерам Kubernetes.
--kube-context Нет Контекст kubeconfig из локального хоста для вашего кластера. В Kubernetes контекст определяет, как взаимодействовать с кластером Kubernetes.
skip-ssl-verification Нет Пропустить проверку SSL для любого подключения к кластеру.
--yes -y Нет Не запрашивайте подтверждение.

Дополнительные сведения, такие как глобальные параметры, см. в статье az containerapp arc setup-core-dns.

Примеры

  • Настройте конфигурацию CoreDNS для локальной среды Azure:

    az containerapp arc setup-core-dns --distro AksAzureLocal
    
  • Настройте конфигурацию CoreDNS для azure Local с помощью файла конфигурации Kubernetes и контекста Kubernetes:

    az containerapp arc setup-core-dns --distro AksAzureLocal --kube-config <kubeconfig-file-path> --kube-context <kubeconfig-context-name>
    

Создание поставщика хранилища SQL Server

Рабочие процессы приложения логики уровня "Стандартный" в модели гибридного развертывания используют базу данных SQL в качестве поставщика хранилища для данных, используемых рабочими процессами и средой выполнения Azure Logic Apps, например журнал выполнения рабочих процессов, входные данные, выходные данные и т. д.

Для базы данных SQL требуется входящее и исходящее подключение к кластеру Kubernetes, поэтому эти ресурсы должны существовать в той же сети.

  1. Настройте любой из следующих выпусков SQL Server:

    Дополнительные сведения см. в разделе "Настройка хранилища базы данных SQL для рабочих процессов логического приложения уровня Стандартный".

  2. Убедитесь, что база данных SQL находится в той же сети, что и кластер Kubernetes с поддержкой Arc и общий файловый ресурс SMB.

  3. Найдите и сохраните строку подключения для базы данных SQL, которую вы создали.

Настройка общей папки SMB для хранилища артефактов

Для хранения артефактов, таких как карты, схемы и сборки для ресурса приложения логики (приложения-контейнера), вам потребуется общий файловый ресурс, использующий протокол SMB.

  • Вам нужен доступ администратора для настройки общей папки SMB.

  • Папка файлового обмена SMB должна находиться в той же сети, что и кластер Kubernetes и база данных SQL.

  • Для общей папки SMB требуется входящее и исходящее подключение к кластеру Kubernetes. Если вы включили ограничения виртуальной сети Azure, убедитесь, что общая папка существует в той же виртуальной сети, что и кластер Kubernetes или в одноранговой виртуальной сети.

  • Не используйте одинаковый путь к общей папке для нескольких приложений логики.

  • Вы можете использовать отдельные SMB-файловые общие ресурсы для каждого приложения логики или использовать разные папки в одном и том же SMB-файловом общем ресурсе при условии, что эти папки не вложенные. Например, не используйте корневой путь для одного приложения логики, а для другого — вложенную папку.

  • Чтобы развернуть приложение логики с помощью Visual Studio Code, убедитесь, что локальный компьютер с Visual Studio Code может получить доступ к общей папке.

Настройте вашу SMB-общую папку в Windows

Убедитесь, что общая папка 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

Чтобы проверить подключение между кластером Kubernetes с поддержкой Arc и общей папкой SMB, а также проверить правильность настройки общей папки, выполните следующие действия.

  • Если общая папка SMB не находится в том же кластере, убедитесь, что команда ping работает из кластера Kubernetes с поддержкой Arc к виртуальной машине, на которой находится общая папка SMB. Чтобы проверить, работает ли операция ping, выполните следующие действия.

    1. В кластере Kubernetes с поддержкой Arc создайте тестовый модуль pod , на котором выполняется любой образ Linux, например BusyBox или Ubuntu.

    2. Перейдите к контейнеру в pod и установите пакет iputils-ping , выполнив следующие команды Linux:

      apt-get update
      apt-get install iputils-ping
      
  • Чтобы убедиться, что файловая папка SMB настроена правильно, выполните следующие действия:

    1. В вашем тестовом pod с тем же Linux-образом создайте папку по пути mnt/smb.

    2. Перейдите в корневой или домашний каталог, содержащий папку mnt .

    3. Выполните следующую команду:

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

  • Чтобы убедиться, что артефакты правильно передаются, подключитесь к пути к общей папке SMB и проверьте, существуют ли файлы артефактов в правильной папке, указанной во время развертывания.

Оптимизация производительности для гибридных развертываний

Чтобы повысить эффективность и производительность приложения логики уровня "Стандартный" в гибридном развертывании, необходимо понять, как анализировать и оценивать ключевые аспекты, такие как ЦП, выделение памяти и механизмы масштабирования, чтобы получить ценные аналитические сведения об оптимизации. Другие ключевые элементы включают базовую инфраструктуру Kubernetes, конфигурацию SQL и настройку масштабирования, что может значительно повлиять на эффективность рабочего процесса и общую производительность. Дополнительные сведения см. в рекомендациях по анализу производительности гибридных развертываний и оптимизации.

Следующие шаги

Создайте рабочие процессы логических приложений уровня Стандартный для гибридного развертывания в собственной инфраструктуре