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

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

Para escenarios en los que necesites usar, controlar y gestionar tu propia infraestructura, crea flujos de trabajo de Standard Logic App utilizando el modelo híbrido de despliegue en Azure Logic Apps. Este modelo proporciona funcionalidades para crear y hospedar soluciones de integración para entornos parcialmente conectados que requieren procesamiento local, almacenamiento y acceso a la red. La infraestructura puede incluir sistemas locales, nubes privadas y nubes públicas. Al usar el modelo híbrido, tu flujo de trabajo de Standard Logic App se impulsa mediante el runtime de Azure Logic Apps, que se aloja en tu infraestructura como parte de una extensión de Azure Container Apps.

Para obtener información general sobre la arquitectura que muestra dónde se hospedan y se ejecutan los flujos de trabajo de aplicaciones lógicas estándar en un entorno parcialmente conectado, consulte Configuración de requisitos de infraestructura para la implementación híbrida de aplicaciones lógicas estándar.

Esta guía explica cómo crear y desplegar un flujo de trabajo de aplicación de lógica estándar utilizando el modelo híbrido de despliegue después de configurar los recursos necesarios para alojar tu app.

Importante

El entorno de ejecución y los flujos de trabajo locales de Azure Logic Apps que utilizan solo dependencias disponibles localmente pueden seguir ejecutándose cuando la conectividad de Azure se interrumpe. La gestión, despliegue, monitorización, operaciones de identidad y conectores gestionados dependientes de Azure pueden no estar disponibles mientras están desconectados. Tras 24 horas, podrías perder los datos de registro, aunque la ejecución local continúa. Para más información, consulte Limitaciones para el despliegue híbrido.

Limitaciones

Para las regiones de Azure actualmente soportadas, clústeres Kubernetes compatibles y limitaciones a nivel de plataforma, véase Limitaciones para el despliegue híbrido.

Las siguientes limitaciones se aplican al crear y operar aplicaciones de lógica híbrida:

Limitación Descripción
Autenticación de identidad gestionada para conexiones API gestionadas Actualmente, las conexiones API gestionadas no soportan autenticación de identidad gestionada en aplicaciones de lógica híbrida. Debes crear tu propio registro de aplicación usando Microsoft Entra ID. Para obtener más información, siga estos pasos más adelante en esta guía.
Desencadenadores basados en funciones Algunos desencadenadores basados en funciones, como Azure Blob, Cosmos DB y Event Hubs requieren una conexión a la cuenta de almacenamiento de Azure asociada a la aplicación lógica estándar. Si usa desencadenadores basados en funciones, en las variables de entorno de la aplicación lógica estándar en Azure Portal o en el archivo local.settings.json del proyecto de aplicación lógica en Visual Studio Code, agregue la configuración de la aplicación denominada AzureWebJobsStorage y proporcione la cadena de conexión de la cuenta de almacenamiento:

"Values": {
"name": "AzureWebJobsStorage",
"value": "{storage-account-connection-string}"
}

Comportamiento durante una interrupción de conectividad con Azure

  • Los flujos de trabajo podrían seguir funcionando si el tiempo de ejecución y todas las dependencias requeridas del flujo de trabajo permanecen disponibles localmente.
  • Las operaciones integradas se ejecutan con el tiempo de ejecución local, pero cualquier servicio externo llamado por una operación debe permanecer accesible.
  • Las operaciones gestionadas de conectores requieren conectividad con sus servicios alojados en Azure.
  • La gestión de portales de Azure, el despliegue basado en Azure, las operaciones de identidad y la entrega de telemetría pueden quedar indisponibles o retrasarse.
  • Si el tiempo de ejecución permanece desconectado después de 24 horas, podrías perder los datos de registro generados después de ese tiempo.

Si tus cargas de trabajo requieren despliegue, supervisión, generación de alertas, reenvío de ejecuciones u operaciones de identidad durante una desconexión prolongada, valida el comportamiento de tu configuración específica con tu equipo de cuenta de Microsoft o con el equipo del producto.

Requisitos previos

  • Una cuenta y una suscripción de Azure. Si aún no tiene una, regístrese para obtener una cuenta de Azure gratuita.

  • Los siguientes recursos gestionados por el cliente, que deben existir todos dentro de la misma red para la conectividad requerida:

    • Un clúster Kubernetes compatible que está conectado a Azure Arc
    • Una base de datos SQL para almacenar localmente el historial de ejecuciones de flujo de trabajo, entradas y 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

    Para cumplir con estos requisitos, configura estos recursos para apoyar el despliegue híbrido en flujos de trabajo Standard.

  • Para trabajar en Visual Studio Code necesita la extensión de Azure Logic Apps (Estándar) para Visual Studio Code con los requisitos previos relacionados.

    Sugerencia

    Si tiene una nueva instalación de Visual Studio Code, confirme que puede ejecutar localmente un flujo de trabajo básico estándar antes de intentar implementar en su propia infraestructura. Esta ejecución de prueba ayuda a aislar los errores que puedan existir en el proyecto de flujo de trabajo estándar.

Creación de una aplicación lógica estándar

Cree la aplicación lógica estándar para la implementación híbrida siguiendo estos pasos:

  1. En el cuadro de búsqueda Azure Portal, escriba aplicaciones lógicas y seleccione Aplicaciones lógicas.

  2. En la barra de herramientas de la página Aplicaciones lógicas, seleccione Agregar.

  3. En la página Crear aplicación lógica, en Estándar, seleccione Híbrido.

  4. En la página Crear aplicación lógica (híbrida), proporcione la información siguiente:

    Propiedad Obligatorio Valor Descripción
    Suscripción Sí < Azure-subscription-name> El nombre de la suscripción de Azure.

    En este ejemplo se usa Pago por uso.
    Grupo de recursos Sí < nombre del grupo de recursos de Azure> El grupo de recursos de Azure en el que se crean la aplicación híbrida y los recursos relacionados. 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 crea un grupo de recursos denominado Hybrid-RG.
    Nombre de la aplicación lógica Sí < Nombre de la aplicación lógica> El nombre de la aplicación lógica (que debe ser exclusivo en las regiones) solo puede contener letras minúsculas, números o guiones (-).

    En este ejemplo, se usa my-logic-app-hybrid.
    Región Sí < Región de Azure> Una región de Azure que soporta el despliegue híbrido.

    En este ejemplo se utiliza Este de EE. UU..
    Entorno conectado de aplicación de contenedor Sí < nombre-del-entorno-conectado> El clúster de Kubernetes habilitado para Arc que creó como entorno de implementación para la aplicación lógica. Para más información, consulte Tutorial: Habilitar Azure Container Apps en Kubernetes habilitado para Azure Arc.
    Configuración de los valores de almacenamiento Sí Habilitado o Deshabilitado Continúa con la pestaña Almacenamiento de la página Crear aplicación lógica (híbrida).

    En el ejemplo siguiente, se muestra la página de creación de aplicaciones lógicas en Azure Portal con valores de ejemplo:

    Captura de pantalla que muestra Azure Portal y la página de creación de aplicaciones lógicas.

  5. En la página Almacenamiento, proporcione la siguiente información sobre el proveedor de almacenamiento y el recurso compartido de archivos de SMB que configuró anteriormente:

    Propiedad Obligatorio Valor Descripción
    Cadena de conexión de SQL Sí < sql-server-cadena-de-conexión> Cadena de conexión de SQL Server que guardó anteriormente. Para obtener más información, consulte Creación de un proveedor de almacenamiento de SQL Server.
    Nombre de host Sí < nombre-del-host-del-recurso-compartido> Nombre de host del recurso compartido de archivos de SMB.
    Ruta de acceso del recurso compartido de archivos Sí < ruta-compartida-de-archivos> Ruta de acceso del recurso compartido de archivos de SMB.
    Nombre de usuario Sí < nombre-de-usuario-del-recurso-compartido> Nombre de usuario del recurso compartido de archivos de SMB.
    Contraseña Sí < contraseña para compartir archivos> Contraseña del recurso compartido de archivos de SMB.
  6. Cuando finalice, seleccione Revisar y crear. Confirme la información proporcionada y seleccione Crear.

  7. Una vez que Azure finalice la implementación, seleccione Ir al recurso.

    Azure Portal abre el recurso de la aplicación lógica, por ejemplo:

    Captura de pantalla que muestra Azure Portal con la aplicación lógica estándar para la implementación híbrida creada como una aplicación de contenedor.

  8. En el menú del recurso de la aplicación lógica, en la sección Flujos de trabajo, seleccione Flujos de trabajo.

  9. En la barra de herramientas de la página Flujos de trabajo, seleccione Agregar para agregar un flujo de trabajo vacío con o sin estado.

  10. Una vez que se abra el diseñador, compile el flujo de trabajo agregando un desencadenador y acciones.

    Para más información, consulte Compilación de un flujo de trabajo con un desencadenador y acciones.

Control de versiones para implementaciones híbridas

Una aplicación lógica estándar con la opción de hospedaje híbrido crea automáticamente una nueva revisión (que es un concepto de control de versiones de Azure Container Apps) cada vez que se guardan los cambios en un flujo de trabajo secundario. Esta revisión puede tardar un poco en activarse, lo que significa que, después de guardar los cambios, puede ser conveniente esperar un momento antes de probar el flujo de trabajo.

Si los cambios aún no han aparecido en el flujo de trabajo, puede comprobar si la revisión existe:

  1. En el Azure Portal, abra el recurso. En el menú de recursos, en Revisiones, seleccione Revisiones y réplicas.

  2. En la página Revisiones y réplicas, en la pestaña Revisiones activas, compruebe si aparece una nueva revisión en la lista.

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

Configuración de telemetría mejorada o OpenTelemetry para la supervisión del rendimiento

Puede configurar la recopilación de telemetría mejorada en Application Insights para la aplicación lógica estándar y, después, ver los datos recopilados después de que el flujo de trabajo finalice una ejecución. Esta funcionalidad le ofrece una experiencia más sencilla para obtener información sobre los flujos de trabajo y un mayor control sobre el filtrado de eventos en el origen de datos, lo que le ayuda a reducir los costos de almacenamiento. Estas mejoras se centran en las métricas de rendimiento en tiempo real que proporcionan información sobre la salud y el comportamiento de su sistema.

Para escenarios parcialmente conectados y locales, puede configurar la aplicación lógica Estándar para emitir telemetría en función de la configuración de la aplicación compatible con OpenTelemetry que defina para el entorno específico. De forma predeterminada, estos datos de telemetría se envían a Application Insights. Para más información, consulte Habilitación de la telemetría mejorada en Application Insights para flujos de trabajo estándar en Azure Logic Apps.

Application Insights requiere conectividad con Azure. Durante la interrupción de la conectividad, la entrega de telemetría puede sufrir retrasos y podrías perder los datos de registro generados tras 24 horas. Valida cualquier requisito de monitorización local y alertas sobre el destino y la configuración de la telemetría que utilices.

Cambio de la asignación de memoria y vCPU en Azure Portal

Puede editar la configuración de memoria y vCPU para el recurso de aplicación lógica Estándar. Estos cambios afectan al cargo de facturación de las cargas de trabajo de la aplicación lógica estándar.

  1. En Azure Portal, abra el recurso Aplicación lógica estándar.

  2. En el menú de recursos, en Configuración, seleccione Contenedores.

  3. En la barra de herramientas de la página Contenedores, seleccione Editar e implementar y se abrirá el panel Editar un contenedor.

  4. En la pestaña Propiedades, en Asignación de recursos de contenedor, cambie los siguientes valores para que se ajusten a su escenario:

    Propiedad Valor Descripción
    Núcleos de CPU - Valor predeterminado: 1
    - Mínimo: 0,25
    - Máximo: 2
    Determina los núcleos de vCPU que se van a asignar a la instancia de contenedor. Puede aumentar este valor en 0,25 núcleos hasta el valor máximo. El número total de todas las instancias de contenedor de esta aplicación lógica está limitado a 2 núcleos.
    Memoria - Valor predeterminado: 2
    - Mínimo: 0,1
    - Máximo: 4
    Determina la capacidad de memoria en gibibytes (GiB) para asignar a la instancia de contenedor. Puede aumentar este valor en 0,1 GiB hasta el valor máximo. La capacidad total en todas las instancias de contenedor de esta aplicación lógica está limitada a 4 GiB.
  5. Cuando termine, seleccione Save (Guardar).

Cambio del escalado de réplicas en Azure Portal

Puede controlar el escalado automático del intervalo de réplicas que se implementan en respuesta a un evento de desencadenador. Una réplica es una nueva instancia de una versión o revisión de recursos de aplicación lógica. Para cambiar los valores mínimo y máximo de este intervalo, puede modificar las reglas de escalado para determinar los tipos de eventos que desencadenan el escalado. Para obtener más información, consulte Establecer reglas de escalado en Azure Container Apps.

  1. En Azure Portal, abra el recurso Aplicación lógica estándar.

  2. En el menú del recurso, en Configuración, seleccione Escalado.

  3. En la página Escalado, en Configuración de la regla de escalado, cambie los siguientes valores para que se ajusten a su escenario:

    Propiedad Valor Descripción
    Réplicas mínimas - Valor predeterminado: 1
    - Mínimo: 0
    - Máximo: 1000
    Determina el número mínimo de réplicas permitidas para la revisión en cualquier momento. Este valor invalida las reglas de escalado y debe ser menor que el número máximo de réplicas.
    Réplicas máximas - Valor predeterminado: 30
    - Mínimo: 0
    - Máximo: 1000
    Determina el número máximo de réplicas permitidas para la revisión en cualquier momento. Este valor invalida las reglas de escalado.
  4. Cuando termine, seleccione Save (Guardar).

Control del tráfico entrante a la aplicación lógica en Azure Portal

Puede exponer la aplicación lógica a la web pública, su red virtual y otras aplicaciones lógicas del entorno mediante la habilitación de la entrada. Azure aplica la configuración de entrada mediante un conjunto de reglas que controlan el enrutamiento del tráfico interno y externo a la aplicación lógica. Al habilitar la entrada, no es necesario crear una instancia de Azure Load Balancer, una dirección IP pública ni ningún otro recurso de Azure para habilitar las solicitudes HTTP entrantes o el tráfico TCP. Para más información, consulte Entrada en Container Apps.

Nota:

Al habilitar la entrada, todo el tráfico se dirigirá a la revisión más reciente de forma predeterminada. Vaya a la página Administración de revisiones para cambiar la configuración del tráfico.

  1. En el menú del recurso, en Configuración, seleccione Entrada.

  2. En la página Entrada, junto a Entrada, seleccione el cuadro Habilitado.

  3. En función de su escenario, configure las opciones restantes.

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

Configuración de la autenticación para conexiones de API administradas

Actualmente, las conexiones gestionadas de API no soportan autenticación de identidad gestionada en aplicaciones de lógica híbrida. Para autenticar estas conexiones, debes crear tu propio registro de aplicación usando Microsoft Entra ID. Luego puedes añadir los valores de este registro de aplicaciones como variables de entorno en tu recurso de aplicación lógica Standard. Este modelo de autenticación requiere conectividad a Microsoft Entra ID.

Creación de un registro de aplicación con Microsoft Entra ID

Portal de Azure

  1. En Azure Portal, siga Inicio rápido: Registro de una aplicación con la plataforma de identidad de Microsoft para crear un registro de aplicación.

  2. Una vez completada la creación, busque el nuevo registro de aplicación en el portal.

  3. En el menú de recursos, seleccione Información general y guarde los valores siguientes, que necesitará más adelante para la autenticación de conexión:

    • Id. de cliente
    • Id. de inquilino
  4. En la barra lateral de recursos, selecciona Certificados y secretos>Secretos del cliente Nuevo>secreto del cliente.

  5. Crea el secreto del cliente y guarda inmediatamente el valor del secreto. El valor no vuelve a aparecer después de salir de la página.

  6. Para el identificador de objeto, siga estos pasos:

    1. En la página Información general, seleccione el vínculo de Aplicación administrada en el directorio local para el registro de la aplicación como se muestra a continuación:

      Captura de pantalla que muestra el registro de aplicación con el vínculo seleccionado de la aplicación administrada en el directorio local.

    2. En la página que se abre, copie y guarde el valor de Id. de objeto:

      Captura de pantalla que muestra el registro de aplicación con el identificador de objeto seleccionado.

  7. Ahora, agregue los valores guardados como variables de entorno al recurso de aplicación lógica estándar.

CLI de Azure

  1. Para crear un registro de aplicación y su principal de servicio sin asignar un rol en Azure, ejecuta el siguiente comando:

    az ad sp create-for-rbac \
       --name <app-registration-name> \
       --skip-assignment
    
  2. A partir de la salida del comando, guarda los valores appId, password y tenant como los valores del identificador de cliente, del secreto de cliente y del identificador de inquilino. El secreto del cliente aparece solo en la salida del comando.

  3. Obtenga el id. de objeto de la entidad de servicio:

    az ad sp show \
       --id <client-ID> \
       --query id \
       --output tsv
    
  4. Ahora, agregue los valores guardados como variables de entorno al recurso de aplicación lógica estándar.

Para obtener más información, consulte:

Adición de valores de registro de aplicación a la aplicación lógica estándar

  1. En Azure Portal, vaya al recurso Aplicación lógica Estándar.

  2. En el menú de recursos, en Configuración, seleccione Contenedores y, a continuación, seleccione la pestaña Variables de entorno.

    Para obtener más información sobre la configuración de la aplicación y la configuración del host, consulte Editar la configuración de la aplicación y la configuración del host.

  3. En la barra de herramientas, seleccione Editar e implementar.

  4. En el panel Editar un contenedor, seleccione Variables de entorno y, a continuación, seleccione Agregar.

  5. En la tabla siguiente, agregue cada variable de entorno con el valor especificado:

    Variable de entorno Valor
    WORKFLOWAPP_AAD_CLIENTID < my-client-ID>
    WORKFLOWAPP_AAD_OBJECTID < my-object-ID>
    WORKFLOWAPP_AAD_TENANTID < my-tenant-ID>
  6. Cuando termine, seleccione Save (Guardar).

Guardar y referenciar el secreto del cliente

Guarda el secreto del cliente como un secreto en el recurso de tu app Logic. Haz referencia a ese secreto desde la variable de entorno WORKFLOWAPP_AAD_CLIENTSECRET.

Importante

Rote el secreto antes de que caduque.

  1. En Azure Portal, vaya hasta su recurso de aplicación lógica.

  2. En la barra lateral de la app Logic, en Configuración, selecciona Secretos.

  3. En la barra de herramientas, seleccione Agregar.

  4. En el panel de Añadir secretos , proporciona la siguiente información y luego selecciona Añadir:

    Clave Valor
    WORKFLOWAPP_AAD_CLIENTSECRET < Mi-Secreto-Cliente>
  5. En la barra lateral de la app Logic, en Configuración, selecciona Contenedores y luego selecciona la pestaña de variables de entorno .

  6. En la barra de herramientas, seleccione Editar e implementar.

  7. Añade la variable de entorno WORKFLOWAPP_AAD_CLIENTSECRET , selecciona la opción de referenciar un secreto y selecciona el secreto que has creado.

  8. Cuando termine, seleccione Save (Guardar).

Solución de problemas conocidos

En la sección siguiente se describen los problemas conocidos actualmente y las instrucciones para solucionar problemas comunes.

Problemas generales de configuración del entorno o implementación del portal

Para ayudarle a diagnosticar y depurar problemas con la configuración del entorno o los errores de implementación del portal, puede intentar ejecutar el script de PowerShell detroubleshoot.ps1 proporcionado para la opción de implementación híbrida.

  1. Vaya al repositorio de GitHub de Azure Logic Apps: carpeta scripts/hybrid.

  2. Copie el archivo troubleshoot.ps1 en una carpeta de la misma ubicación local que la implementación de la aplicación lógica.

  3. Ejecute el script mediante PowerShell.

Clústeres de Kubernetes habilitados para Arc

En escenarios poco frecuentes, es posible que observe una superficie de memoria elevada en el clúster. Para evitar este problema, escale horizontalmente o agregue escalabilidad automática para grupos de nodos.

El host de función no se está ejecutando

Después de implementar la aplicación lógica estándar, confirme que la aplicación se está ejecutando correctamente.

  1. En el Portal de Azure, abra el recurso de Logic App.

  2. En el menú del recurso, seleccione Información general.

  3. En la página Información general, junto al campo Dirección URL de la aplicación, seleccione la dirección URL del recurso.

    Si la aplicación se está ejecutando correctamente, una ventana del explorador se abrirá y mostrará el siguiente mensaje:

    Captura de pantalla que muestra el explorador y la aplicación lógica que se ejecutan como un sitio web.

    De lo contrario, si tu aplicación tiene algún error, comprueba que tus pods de Kubernetes se estén ejecutando correctamente. Asegúrate de que kubectl use el contexto de tu clúster y luego ejecuta los siguientes comandos:

    kubectl get ns
    kubectl get pods -n logicapps-aca-ns
    kubectl describe pod {logic-app-pod-name} -n logicapps-aca-ns 
    

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

El clúster no tiene suficiente capacidad

Si ejecutó el comando anterior y recibe una advertencia similar al ejemplo siguiente, el clúster no tiene suficientes nodos para su procesamiento:

Warning: FailedScheduling  4m52s (x29 over 46m)  default-scheduler  0/2 nodes are available: 2 Too many pods. preemption: 0/2 nodes are available: 2 No preemption victims found for incoming pod.

Para AKS, aumenta el número de nodos y configura el autoescalado siguiendo estos pasos:

  1. En Azure Portal, vaya a la instancia de servicio de Kubernetes.

  2. En el menú de instancias, en Configuración, seleccione Grupos de nodos.

  3. En la barra de herramientas de la página Herramientas de nodos, seleccione +Agregar grupo de nodos.

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

Para OpenShift o RKE2, utiliza el procedimiento compatible con tu distribución Kubernetes para añadir capacidad.

El controlador de Container Storage Interface (CSI) de SMB no está instalado

Después de ejecutar el comando anterior kubectl describe pod, si aparece la siguiente advertencia, confirme si el controlador de CSI para el recurso compartido de archivos de SMB está instalado correctamente:

Warning FailedScheduling 5m16s (x2 over 5m27s)  default-scheduler 0/14 nodes are available: pod has unbound immediate PersistentVolumeClaims. preemption: 0/14 nodes are available: 14 Preemption is not helpful for scheduling.

Normal NotTriggerScaleUp 9m49s (x31 over 14m) cluster-autoscaler pod didn't trigger scale-up: 3 pod has unbound immediate PersistentVolumeClaims

Para confirmar, ejecuta el siguiente comando:

kubectl get csidrivers

Si los resultados no incluyen smb.csi.k8s.io, sigue las instrucciones específicas de la distribución para instalar el controlador SMB.

Para comprobar el estado del panel de controladores CSI SMB, ejecute el siguiente comando:

kubectl --namespace=kube-system get pods --selector="app.kubernetes.io/name=csi-driver-smb" --watch