Compartir vía


Configure su propia infraestructura para aplicaciones lógicas estándar mediante la implementación híbrida (versión preliminar)

Se aplica a: Azure Logic Apps (estándar)

Nota:

Esta funcionalidad está en versión preliminar, incurre en cargos por uso y está sujeta a las Condiciones de uso complementarias para las versiones preliminares de Microsoft Azure.

A veces, tiene que configurar y administrar su propia infraestructura para satisfacer necesidades específicas de cumplimiento normativo, privacidad de datos o restricciones de red. Azure Logic Apps ofrece un modelo de implementación híbrida para que pueda implementar y hospedar flujos de trabajo de aplicaciones lógicas estándar en escenarios locales, de nube privada o de nube pública. Este modelo proporciona las funcionalidades para hospedar soluciones de integración en entornos parcialmente conectados cuando necesita usar el procesamiento local, el almacenamiento de datos y el acceso a la red. Con la opción híbrida, tiene la libertad y flexibilidad de elegir el mejor entorno para los flujos de trabajo.

Funcionamiento de la implementación híbrida

Los flujos de trabajo de aplicaciones lógicas estándar con la opción de implementación híbrida tienen tecnología de un entorno de ejecución de Azure Logic Apps hospedado en una extensión de Azure Container Apps. En el flujo de trabajo, las operaciones integradas se ejecutan localmente con el tiempo de ejecución para obtener un mayor rendimiento para acceder a orígenes de datos locales. Si necesita acceso a recursos de datos no locales, por ejemplo, servicios basados en la nube como Microsoft Office 365, Microsoft Teams, Salesforce, GitHub, LinkedIn o ServiceNow, puede elegir operaciones de más de 1000 conectores hospedados en Azure para incluirlos en los flujos de trabajo. Para más información, consulte Conectores administrados (compartidos). Aunque debe tener acceso a Internet para administrar la aplicación lógica en Azure Portal, la naturaleza semiconectada de esta plataforma le permite absorber los problemas temporales de acceso a Internet.

Por ejemplo, si tiene un escenario local, la siguiente información general de arquitectura muestra dónde se hospedan y ejecutan los flujos de trabajo de aplicación lógica estándar en el modelo híbrido. El entorno parcialmente conectado incluye los siguientes recursos para hospedar y trabajar con las aplicaciones lógicas estándar, que se implementan como recursos de Azure Container Apps:

  • Clústeres de Azure Kubernetes Service (AKS) habilitados para Azure Arc
  • Una base de datos SQL para almacenar localmente el historial de ejecución del flujo de trabajo, las entradas y las salidas para su procesamiento
  • Un recurso compartido de archivos de Bloque de mensajes del servidor (SMB) para almacenar localmente los artefactos usados por los flujos de trabajo

Diagrama con información general sobre la arquitectura para dónde se hospedan las aplicaciones lógicas estándar en un entorno parcialmente conectado.

Para el hospedaje, también puede configurar y usar clústeres de Kubernetes habilitados para Azure Arc en la infraestructura hiperconvergida (HCI) de Azure Stack o clústeres de Kubernetes habilitados para Azure Arc en Windows Server.

Para más información, consulte la siguiente documentación:

En esta guía paso a paso se muestra cómo configurar los recursos locales necesarios en la infraestructura para poder crear, implementar y hospedar un flujo de trabajo de aplicación lógica estándar mediante el modelo de implementación híbrida.

Cómo funciona la facturación

Con la opción híbrida, se responsabiliza de los siguientes elementos:

  • La infraestructura de Kubernetes habilitada para Azure Arc
  • Su licencia de SQL Server gratis
  • Cargo de facturación de 0,18 USD por vCPU/hora para admitir cargas de trabajo de aplicaciones lógicas estándar

En este modelo de facturación, solo paga por lo que necesita y escala los recursos para cargas de trabajo dinámicas sin tener que comprar para el uso máximo. En el caso de los flujos de trabajo que usan operaciones del conector hospedado en Azure, como Microsoft Teams o Microsoft Office 365, los precios estándar (inquilino único) existentes se aplican a estas ejecuciones de operaciones.

Limitaciones

  • La implementación híbrida está disponible actualmente y solo se admite para los siguientes clústeres de Kubernetes habilitados para Azure Arc:

    • Clústeres de Kubernetes habilitados para Azure Arc
    • Clústeres de Kubernetes habilitados para Azure Arc en Azure Stack HCI
    • Clústeres de Kubernetes habilitados para Azure Arc en Windows Server

Requisitos previos

Creación de un clúster de Kubernetes

Para poder implementar la aplicación lógica estándar como recurso local en un clúster de Kubernetes habilitado para Azure Arc en un entorno conectado de Azure Container Apps, primero necesita un clúster de Kubernetes. Más adelante conectará este clúster a Azure Arc para que tenga un clúster de Kubernetes habilitado para Azure Arc.

El clúster de Kubernetes requiere conectividad entrante y saliente con la base de datos SQL que posteriormente cree como proveedor de almacenamiento y con el recurso compartido de archivos bloque de mensajes del servidor que cree posteriormente para el almacenamiento de artefactos. Estos recursos deben existir dentro de la misma red.

Nota:

También puede crear un clúster de Kubernetes en la infraestructura de Azure Stack HCI o en un clúster de Kubernetes en Windows Server y aplicar los pasos descritos en esta guía para conectar el clúster a Azure Arc y configurar el entorno conectado. Para saber más sobre Azure Stack HCI y AKS en Windows Server, consulte los siguientes recursos:

  1. Establezca las siguientes variables de entorno para el clúster de Kubernetes que desea crear:

    SUBSCRIPTION="<Azure-subscription-ID>"
    AKS_CLUSTER_GROUP_NAME="<aks-cluster-resource-group-name>"
    AKS_NAME="<aks-cluster-name>"
    LOCATION="eastus"
    
    Parámetro Obligatorio Valor Descripción
    SUBSCRIPTION <Azure-subscription-ID> El identificador de la suscripción de Azure
    AKS_CLUSTER_GROUP_NAME <aks-cluster-resource-group-name> El nombre del grupo de recursos de Azure que se va a usar con el clúster de Kubernetes. El nombre del recurso debe ser único entre las regiones y solo puede contener letras, números, guiones (-), caracteres de subrayado (_), paréntesis (()) y puntos (.).

    En este ejemplo se usa Hybrid-RG.
    AKS_NAME <aks-cluster-name> El nombre de su clúster de Kubernetes.
    LOCATION <Azure-region> Una región de Azure que admite aplicaciones de contenedor de Azure en Kubernetes habilitado para Azure Arc.

    En este ejemplo se usa eastus.
  2. Ejecute los siguientes comandos mediante el entorno de Bash en Azure Cloud Shell o localmente mediante la CLI de Azure instalada en el equipo:

    Nota:

    Asegúrese de cambiar los valores de nodo max-count y min-count en función de los requisitos de carga.

    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
    
    Parámetro Obligatorio Valor Descripción
    max count No <max-nodes-value> El número máximo de nodos que se van a usar para el escalador automático cuando se incluye la opción enable-cluster-autoscaler. Este valor varía entre 1 y 1000.
    min count No <min-nodes-value> El número mínimo de nodos que se van a usar para el escalador automático al incluir la opción enable-cluster-autoscaler. Este valor varía entre 1 y 1000.

    Para obtener más información, consulte los siguientes recursos:

Conexión de un clúster de Kubernetes a Azure Arc

Para crear el clúster de Kubernetes habilitado para Azure Arc, conecte el clúster de Kubernetes a Azure Arc.

Nota:

Puede encontrar los pasos descritos en esta sección y versiones posteriores para crear el entorno conectado en un script denominado EnvironmentSetup.ps1, que puede encontrar en el repositorio de GitHub denominado Azure/logicapps. Puede modificar y usar este script para satisfacer sus requisitos y escenarios.

El script no está firmado, por lo que antes de ejecutar el script, ejecute el siguiente comando de Azure PowerShell como administrador para establecer la directiva de ejecución:

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

Para obtener más información, consulte Set-ExecutionPolicy.

  1. Instale las extensiones de la CLI de Azure siguientes:

    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 
    

    Para obtener más información, consulte los siguientes recursos:

  2. Registre los siguientes espacios de nombres necesarios:

    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
    

    Para obtener más información, consulte los siguientes recursos:

  3. Instale la interfaz de la línea de comandos (CLI) de Kubernetes denominada 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
    

    Para obtener más información, consulte los siguientes recursos:

  4. Instale el administrador de paquetes de Kubernetes denominado Helm:

    choco install kubernetes-helm
    

    Para obtener más información, consulte los siguientes recursos:

  5. Instale el controlador SMB mediante los siguientes comandos de Helm:

    1. Agregue el repositorio de gráficos especificado, obtenga la información más reciente de los gráficos disponibles e instale el archivo de gráficos especificado.

      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 
      

      Para obtener más información, consulte los siguientes recursos:

    2. Confirme que el controlador SMB está instalado ejecutando el siguiente comando kubectl, que debe enumerar smb.csi.k8s.io:

      kubectl get csidriver
      

      Para obtener más información, consulte kubectl get.

Conexión del clúster de Kubernetes a Azure Arc

  1. Pruebe su conexión al clúster con el archivo kubeconfig:

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

    De forma predeterminada, el archivo kubeconfig se guarda en la ruta de acceso ~/.kube/config. Este comando se aplica a nuestro clúster de Kubernetes de ejemplo y difiere para otros tipos de clústeres de Kubernetes.

    Para obtener más información, consulte los siguientes recursos:

  2. En función de la implementación del clúster de Kubernetes, establezca la siguiente variable de entorno para proporcionar un nombre que se usará para el grupo de recursos de Azure que contiene el clúster y los recursos habilitados para Azure Arc:

    GROUP_NAME="<Azure-Arc-cluster-resource-group-name>"
    
    Parámetro Obligatorio Valor Descripción
    GROUP_NAME <Azure-Arc-cluster-resource-group-name> El nombre del grupo de recursos de Azure que se usará con el clúster habilitado para Azure Arc y otros recursos, como la extensión de Azure Container Apps, la ubicación personalizada y el entorno conectado de Azure Container Apps. El nombre del recurso debe ser único entre las regiones y solo puede contener letras, números, guiones (-), caracteres de subrayado (_), paréntesis (()) y puntos (.).

    En este ejemplo se usa Hybrid-Arc-RG.
  3. Cree el grupo de recursos de Azure para el clúster y los recursos habilitados para Azure Arc:

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

    Para obtener más información, consulte los siguientes recursos:

  4. Establezca la siguiente variable de entorno para proporcionar un nombre para el clúster de Kubernetes habilitado para Azure Arc:

    CONNECTED_CLUSTER_NAME="$GROUP_NAME-cluster"
    
    Parámetro Obligatorio Valor Descripción
    CONNECTED_CLUSTER_NAME <Azure-Arc-cluster-resource-group-name>-cluster El nombre que se va a usar para el clúster habilitado para Azure Arc. El nombre del recurso debe ser único entre las regiones y solo puede contener letras, números, guiones (-), caracteres de subrayado (_), paréntesis (()) y puntos (.).

    En este ejemplo se usa Hybrid-Arc-RG-cluster.
  5. Conecte el clúster de Kubernetes creado anteriormente a Azure Arc:

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

    Para obtener más información, consulte los siguientes recursos:

  6. Valide la conexión entre Azure Arc y el clúster de Kubernetes:

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

    Si la salida muestra que el valor de la propiedad provisioningState no está establecido en Correcto, vuelva a ejecutar el comando después de un minuto.

    Para obtener más información, consulte los siguientes recursos:

Creación de un área de trabajo de Azure Log Analytics

Puede crear un área de trabajo de Azure Log Analytics opcional, pero recomendada, que proporciona acceso a los registros de las aplicaciones que se ejecutan en el clúster de Kubernetes habilitado para Azure Arc.

  1. Establezca la siguiente variable de entorno para proporcionar un nombre al área de trabajo de Log Analytics:

    WORKSPACE_NAME="$GROUP_NAME-workspace"
    
    Parámetro Obligatorio Valor Descripción
    WORKSPACE_NAME <Azure-Arc-cluster-resource-group-name>-workspace El nombre que se va a usar para el área de trabajo de Log Analytics. Este nombre debe ser único en el grupo de recursos.

    En este ejemplo se usa Hybrid-Arc-RG-workspace.
  2. Cree el área de trabajo de Log Analytics:

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

    Para obtener más información, consulte los siguientes recursos:

  3. Obtenga el identificador codificado en base64 y la clave compartida para el área de trabajo de Log Analytics. Necesita estos valores para un paso posterior.

    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))
    
    Parámetro Obligatorio Valor Descripción
    LOG_ANALYTICS_WORKSPACE_ID EL identificador del área de trabajo de Log Analytics.
    LOG_ANALYTICS_WORKSPACE_ID_ENC El identificador codificado en base64 para el área de trabajo de Log Analytics.
    LOG_ANALYTICS_KEY La clave compartida para el área de trabajo de Log Analytics.
    LOG_ANALYTICS_ENC La clave compartida codificada en base64 para el área de trabajo de Log Analytics.

    Para obtener más información, consulte los siguientes recursos:

Creación e instalación de la extensión Azure Container Apps

Ahora, cree e instale la extensión Azure Container Apps con el clúster de Kubernetes habilitado para Azure Arc como un recurso local.

Importante

Si quiere implementar en AKS en Azure Stack HCI, antes de crear e instalar la extensión azure Container Apps, asegúrese de configurar HAProxy o de un equilibrador de carga personalizado.

  1. Establezca las siguientes variables de entorno en los valores siguientes:

    EXTENSION_NAME="logicapps-aca-extension"
    NAMESPACE="logicapps-aca-ns"
    CONNECTED_ENVIRONMENT_NAME="<connected-environment-name>"
    
    Parámetro Obligatorio Valor Descripción
    EXTENSION_NAME logicapps-aca-extension La extensión Azure Container Apps para la CLI de Azure.
    NAMESPACE logicapps-aca-ns El espacio de nombres de clúster en el que desea aprovisionar recursos.
    CONNECTED_ENVIRONMENT_NAME <connected-environment-name> Un nombre único que se usará para el entorno conectado de Azure Container Apps. Este nombre forma parte del nombre de dominio de la aplicación lógica estándar que se crea, implementa y hospeda en el entorno conectado de Azure Container Apps.
  2. Cree e instale la extensión con Log Analytics habilitado para el clúster de Kubernetes habilitado para Azure Arc. Más adelante no podrá agregar Log Analytics a la extensión.

    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}"
    
    Parámetro Obligatorio Descripción
    Microsoft.CustomLocation.ServiceAccount Cuenta de servicio creada para la ubicación personalizada.

    Recomendación: establezca el valor en predeterminado.
    appsNamespace El espacio de nombres que se va a usar para crear revisiones y definiciones de aplicaciones. Este valor debe coincidir con el espacio de nombres de versión de la extensión Azure Container Apps.
    clusterName El nombre del entorno de Kubernetes de la extensión Azure Container Apps que se va a crear para la extensión.
    keda.enabled HAbilite Kubernetes Event-Driven Autoscaling (KEDA) Este valor es necesario y debe establecerse en verdadero.
    keda.logicAppsScaler.enabled Habilite el escalador de Azure Logic Apps en KEDA. Este valor es necesario y debe establecerse en verdadero.
    keda.logicAppsScaler.replicaCount El número inicial de escaladores de aplicaciones lógicas que se van a iniciar. Valor predeterminado establecido en 1. Este valor se escala verticalmente o se reduce verticalmente a 0, si no existen aplicaciones lógicas en el entorno.
    containerAppController.api.functionsServerEnabled Habilite el servicio responsable de convertir desencadenadores de flujo de trabajo de aplicación lógica en objetos a escala KEDA. Este valor es necesario y debe establecerse en verdadero.
    envoy.externalServiceAzureILB Determina si el enviado actúa como equilibrador de carga interno o un equilibrador de carga público.

    - verdadero: El enviado actúa como equilibrador de carga interno. El entorno de ejecución de Azure Logic Apps solo es accesible dentro de la red privada.

    - falso: el enviado actúa como equilibrador de carga público. El entorno de ejecución de Azure Logic Apps es accesible a través de la red pública.
    functionsProxyApiConfig.enabled Habilite el servicio proxy que facilita el acceso de API al entorno de ejecución de Azure Logic Apps desde Azure Portal. Este valor es necesario y debe establecerse en verdadero.
    envoy.annotations.service.beta.kubernetes.io/azure-load-balancer-resource-group Sí, pero solo cuando el clúster subyacente es Azure Kubernetes Service. El nombre del grupo de recursos donde existe el clúster de Kubernetes.
    logProcessor.appLogs.destination No El destino que se va a usar para los registros de aplicación. El valor es log-analytics o none, lo que deshabilita el registro.
    logProcessor.appLogs.logAnalyticsConfig.customerId Sí, pero solo cuando logProcessor.appLogs.destination está establecido en log-analytics. El identificador codificado en base64 para el área de trabajo de Log Analytics. Asegúrese de configurar este parámetro como una configuración protegida.
    logProcessor.appLogs.logAnalyticsConfig.sharedKey Sí, pero solo cuando logProcessor.appLogs.destination está establecido en log-analytics. La clave compartida codificada en base64 para el área de trabajo de Log Analytics. Asegúrese de configurar este parámetro como una configuración protegida.

    Para obtener más información, consulte los siguientes recursos:

  3. Guarde el valor de identificador de la extensión Azure Container Apps para usarlo más adelante:

    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)
    
    Parámetro Obligatorio Valor Descripción
    EXTENSION_ID <extension-ID> El identificador de la extensión Azure Container Apps.

    Para obtener más información, consulte los siguientes recursos:

  4. Antes de continuar, espere a que la extensión se instale completamente. Para que su sesión de terminal espere hasta que finalice la instalación, ejecute el siguiente comando:

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

    Para obtener más información, consulte los siguientes recursos:

Creación de la ubicación personalizada

  1. Establezca las siguientes variables de entorno en los valores especificados:

    CUSTOM_LOCATION_NAME="my-custom-location"
    
    CONNECTED_CLUSTER_ID=$(az connectedk8s show \
       --resource-group $GROUP_NAME \
       --name $CONNECTED_CLUSTER_NAME \
       --query id \
       --output tsv)
    
    Parámetro Obligatorio Valor Descripción
    CUSTOM_LOCATION_NAME my-custom-location El nombre que se va a usar para la ubicación personalizada.
    CONNECTED_CLUSTER_ID <Azure-Arc-cluster-ID> El identificador del clúster de Kubernetes habilitado para Azure Arc.

    Para obtener más información, consulte los siguientes recursos:

  2. Cree la ubicación personalizada:

    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
    

    Nota:

    Si experimentase problemas al crear una ubicación personalizada en el clúster, es posible que tenga que habilitar la característica de ubicación personalizada en el clúster. Este paso es necesario si ha iniciado sesión en la CLI de Azure mediante una entidad de servicio o si ha iniciado sesión como usuario de Microsoft Entra con permisos restringidos en el recurso de clúster.

    Para obtener más información, consulte los siguientes recursos:

  3. Compruebe que la ubicación personalizada se ha creado correctamente:

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

    Si la salida muestra que el valor de la propiedad provisioningState no está establecido en Correcto, vuelva a ejecutar el comando después de un minuto.

  4. Guarde el identificador de ubicación personalizado para usarlo más adelante:

    CUSTOM_LOCATION_ID=$(az customlocation show \
       --resource-group $GROUP_NAME \
       --name $CUSTOM_LOCATION_NAME \
       --query id \
       --output tsv)
    
    Parámetro Obligatorio Valor Descripción
    CUSTOM_LOCATION_ID <my-custom-location-ID> El identificador de la ubicación personalizada.

    Para obtener más información, consulte los siguientes recursos:

Creación del entorno conectado de Azure Container Apps

Ahora, cree el entorno conectado de Azure Container Apps para que use la aplicación lógica estándar.

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

Para obtener más información, consulte los siguientes recursos:

Creación de un proveedor de almacenamiento de SQL Server

Los flujos de trabajo de aplicaciones lógicas estándar del modelo de implementación híbrida usan una base de datos SQL como proveedor de almacenamiento para los datos usados por los flujos de trabajo y el entorno de ejecución de Azure Logic Apps, por ejemplo, el historial de ejecución del flujo de trabajo, las entradas, las salidas, etc.

La base de datos SQL requiere conectividad entrante y saliente con el clúster de Kubernetes, por lo que estos recursos deben existir en la misma red.

  1. Configure cualquiera de las siguientes ediciones de SQL Server:

    Para más información, consulte Configuración del almacenamiento de la base de datos SQL para flujos de trabajo de aplicaciones lógicas estándar.

  2. Confirme que la base de datos SQL está en la misma red que el clúster de Kubernetes habilitado para Arc y el recurso compartido de archivos SMB.

  3. Busque y guarde la cadena de conexión para la base de datos SQL que creó.

Configuración del recurso compartido de archivos SMB para el almacenamiento de artefactos

Para almacenar artefactos como mapas, esquemas y ensamblados para el recurso de aplicación lógica (aplicación de contenedor), debe tener un recurso compartido de archivos que use el protocolo Bloque de mensajes del servidor (SMB).

  • Necesita acceso de administrador para configurar el recurso compartido de archivos SMB.

  • El recurso compartido de archivos SMB debe existir en la misma red que el clúster de Kubernetes y la base de datos SQL.

  • El recurso compartido de archivos SMB requiere conectividad entrante y saliente con el clúster de Kubernetes. Si ha habilitado restricciones de red virtual de Azure, asegúrese de que el recurso compartido de archivos existe en la misma red virtual que el clúster de Kubernetes o en una red virtual emparejada.

  • No use la misma ruta exacta del recurso compartido de archivos para varias aplicaciones lógicas.

  • Puede usar recursos compartidos de archivos SMB independientes para cada aplicación lógica o puede usar carpetas diferentes en el mismo recurso compartido de archivos SMB siempre que esas carpetas no estén anidadas. Por ejemplo, no tenga una aplicación lógica que use la ruta de acceso raíz y, a continuación, haga que otra aplicación lógica use una subcarpeta.

  • Para implementar la aplicación lógica mediante Visual Studio Code, asegúrese de que el equipo local con Visual Studio Code pueda acceder al recurso compartido de archivos.

Configuración del recurso compartido de archivos SMB en Windows

Asegúrese de que el recurso compartido de archivos SMB existe en la misma red virtual que el clúster donde monta el recurso compartido de archivos.

  1. En Windows, vaya a la carpeta que desea compartir, abra el menú contextual y seleccione Propiedades.

  2. En la pestaña Uso compartido, seleccione Compartir.

  3. En el cuadro que se abre, seleccione una persona a la que desea tener acceso al recurso compartido de archivos.

  4. Seleccione Compartir y copie el vínculo de la ruta de acceso de red.

    Si el equipo local no está conectado a un dominio, reemplace el nombre del equipo en la ruta de acceso de red por la dirección IP.

  5. Guarde la dirección IP para usarla más adelante como nombre de host.

Configuración de Azure Files como recurso compartido de archivos SMB

Como alternativa, con fines de prueba, puede usar Azure Files como recurso compartido de archivos SMB. Asegúrese de que el recurso compartido de archivos SMB existe en la misma red virtual que el clúster donde monta el recurso compartido de archivos.

  1. En el Azure Portal, cree una cuenta de Azure Storage.

  2. En el menú de la cuenta de almacenamiento, en Almacenamiento de datos, seleccione Recursos compartidos de archivos.

  3. En la barra de herramientas de la página Recursos compartidos de archivos, seleccione + Recurso compartido de archivos y proporcione la información necesaria para el recurso compartido de archivos SMB.

  4. Una vez finalizada la implementación, seleccione Ir al recurso.

  5. En el menú recurso compartido de archivos, seleccione Información general si no está seleccionado.

  6. En la barra de herramientas de la página Información general, seleccione Conectar. En el panel Conectar, seleccione Mostrar script.

  7. Copie los siguientes valores y guárdelos en algún lugar seguro para su uso posterior:

    • Nombre de host del recurso compartido de archivos, por ejemplo: mystorage.file.core.windows.net
    • Ruta de acceso del recurso compartido de archivos
    • Nombre de usuario sin localhost\
    • Contraseña
  8. En la barra de herramientas de la página Información general, seleccione + Agregar directorio y proporcione un nombre que se usará para el directorio. Guarde este nombre para usarlo más adelante.

Necesita estos valores guardados para proporcionar la información del recurso compartido de archivos SMB al implementar el recurso de aplicación lógica.

Para más información, consulte Creación de un recurso compartido de archivos SMB de Azure.

Confirmación de la conexión del recurso compartido de archivos SMB

Para probar la conexión entre el clúster de Kubernetes habilitado para Arc y el recurso compartido de archivos SMB, y para comprobar que el recurso compartido de archivos está configurado correctamente, siga estos pasos:

  • Si el recurso compartido de archivos SMB no está en el mismo clúster, confirme que la operación de ping funciona desde el clúster de Kubernetes habilitado para Arc a la máquina virtual que tiene el recurso compartido de archivos SMB. Para comprobar que funciona la operación de ping, siga estos pasos:

    1. En el clúster de Kubernetes habilitado para Arc, cree un pod de prueba que ejecute cualquier imagen de Linux, como BusyBox o Ubuntu.

    2. Vaya al contenedor del pod e instale el paquete iputils-ping mediante la ejecución de los siguientes comandos de Linux:

      apt-get update
      apt-get install iputils-ping
      
  • Para confirmar que el recurso compartido de archivos SMB está configurado correctamente, siga estos pasos:

    1. En el pod de prueba con la misma imagen de Linux, cree una carpeta que tenga la ruta de acceso denominada mnt/smb.

    2. Vaya al directorio raíz o principal que contiene la carpeta mnt.

    3. Ejecute el siguiente comando:

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

  • Para confirmar que los artefactos se cargan correctamente, conéctese a la ruta de acceso del recurso compartido de archivos SMB y compruebe si existen archivos de artefacto en la carpeta correcta que especifique durante la implementación.

Pasos siguientes

Creación de flujos de trabajo de aplicaciones lógicas estándar para la implementación híbrida en su propia infraestructura