Creación de flujos de trabajo de aplicaciones lógicas estándar para la implementación híbrida en su propia infraestructura (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.
En escenarios en los que necesita usar, controlar y administrar su propia infraestructura, puede crear flujos de trabajo de aplicaciones lógicas estándar mediante el modelo de implementación híbrida de 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. Con el modelo híbrido, el flujo de trabajo de la aplicación lógica estándar se basa en el entorno de ejecución de Azure Logic Apps, que se hospeda en el entorno local 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.
En esta guía paso a paso, se muestra cómo crear e implementar un flujo de trabajo de aplicación lógica estándar mediante el modelo de implementación híbrida después de configurar los recursos locales necesarios para hospedar la aplicación.
Limitaciones
La implementación híbrida de aplicaciones lógicas estándar está disponible y solo se admite en las mismas regiones que Azure Container Apps en Azure Arc-enabled AKS.
Actualmente, las siguientes funcionalidades no están disponibles en esta versión preliminar:
- Autenticación de identidad administrada
- Acceso de SAP a través del conector integrado de SAP
- Código personalizado de C# con .NET Framework y la acción integrada denominada Llamada a la función local en esta aplicación lógica
- XSLT 1.0 para código personalizado
Actualmente, los clústeres de Kubernetes habilitados para Azure Arc no admiten la autenticación de identidades administradas para las conexiones de API administradas. En su lugar, debe crear su 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.
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 siguiente configuración de aplicación y proporcione la cadena de conexión de su cuenta de almacenamiento:
"Values": { "name": "AzureWebJobsStorage", "value": "{storage-account-connection-string}" }
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 locales, que deben existir en la misma red para la conectividad necesaria:
- Un clúster de Azure Kubernetes Service conectado a 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
Para cumplir estos requisitos, configure estos recursos locales para admitir la implementación híbrida de aplicaciones lógicas estándar.
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
Después de cumplir los requisitos previos, cree la aplicación lógica estándar para la implementación híbrida siguiendo estos pasos:
En el cuadro de búsqueda Azure Portal, escriba aplicaciones lógicas y seleccione Aplicaciones lógicas.
En la barra de herramientas de la página Aplicaciones lógicas, seleccione Agregar.
En la página Crear aplicación lógica, en Estándar, seleccione Híbrido.
En la página Crear aplicación lógica (híbrida), proporcione la información siguiente:
Propiedad Necesario 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í <Azure-region> Una región de Azure compatible con Azure Container Apps en Azure Arc-enabled AKS.
En este ejemplo se utiliza Este de EE. UU. .Entorno conectado de aplicación de contenedor Sí <connected-environment-name> 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:
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 Necesario Valor Descripción Cadena de conexión de SQL Sí <sql-server-connection-string> 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í <file-share-host-name> Nombre de host del recurso compartido de archivos de SMB. Ruta de acceso del recurso compartido de archivos Sí <file-share-path> Ruta de acceso del recurso compartido de archivos de SMB. Nombre de usuario Sí <file-share-user-name> Nombre de usuario del recurso compartido de archivos de SMB. Contraseña Sí <file-share-password> Contraseña del recurso compartido de archivos de SMB. Cuando finalice, seleccione Revisar y crear. Confirme la información proporcionada y seleccione Crear.
Una vez que Azure finalice la implementación, seleccione Ir al recurso.
Nota:
Existen varios problemas conocidos en el portal relacionados con las aplicaciones lógicas estándar que usan la opción de hospedaje híbrido. Estas aplicaciones lógicas aparecen con la etiqueta Aplicación contenedora, lo que difiere con respecto a las aplicaciones lógicas estándar que usan la opción de hospedaje Plan de servicio de flujo de trabajo o App Service Environment V3. Para obtener más información, consulte Problemas conocidos y solución de problemas (Azure Portal).
En Azure Portal, en el menú de recursos, en Flujos de trabajo, seleccione Flujos de trabajo.
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.
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.
Nota:
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:
En el menú de recursos, en Revisiones, seleccione Revisiones y réplicas.
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:
Cambio de la asignación de CPU y de memoria en Azure Portal
Para editar la configuración de CPU y de memoria del recurso de aplicación lógica estándar, siga estos pasos:
En Azure Portal, abra el recurso Aplicación lógica estándar.
En el menú de recursos, en Configuración, seleccione Contenedores.
En la barra de herramientas de la página Contenedores, seleccione Editar e implementar y se abrirá el panel Editar un contenedor.
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: 2Determina los núcleos de CPU 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: 4Determina la capacidad de memoria en gibibytes (Gi) que se va a asignar a la instancia de contenedor. Puede aumentar este valor en 0,1 Gi hasta el valor máximo. La capacidad total en todas las instancias de contenedor de esta aplicación lógica está limitada a 4 Gi. 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.
En Azure Portal, abra el recurso Aplicación lógica estándar.
En el menú del recurso, en Configuración, seleccione Escalado.
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: 1000Determina 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: 1000Determina el número máximo de réplicas permitidas para la revisión en cualquier momento. Este valor invalida las reglas de escalado. 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.
En el menú del recurso, en Configuración, seleccione Entrada.
En la página Entrada, junto a Entrada, seleccione el cuadro Habilitado.
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
Para autenticar las conexiones de API administradas en flujos de trabajo de aplicación lógica estándar hospedados en clústeres de Kubernetes habilitados para Azure Arc, debe crear su propio registro de aplicación mediante Microsoft Entra ID. Después, puede agregar los valores de este registro de aplicación como variables de entorno en el recurso de aplicación lógica estándar para autenticar las conexiones de API en su lugar.
Creación de un registro de aplicación con Microsoft Entra ID
Azure portal
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.
Una vez completada la creación, busque el nuevo registro de aplicación en el portal.
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
- Secreto del cliente
Para el identificador de objeto, siga estos pasos:
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:
En la página que se abre, copie y guarde el valor de Id. de objeto:
Ahora, agregue los valores guardados como variables de entorno al recurso de aplicación lógica estándar.
CLI de Azure
Para crear el registro de aplicaciones, use el comando az ad sp create.
Para revisar todas las propiedades, use el comando az ad sp show.
En la salida de ambos comandos, busque y guarde los valores siguientes, que necesitará más adelante para la autenticación de conexión:
- Id. de cliente
- Id. de objeto
- Id. de inquilino
- Secreto del cliente
Ahora, agregue los valores guardados como variables de entorno al recurso de aplicación lógica estándar.
Adición de valores de registro de aplicación a la aplicación lógica estándar
En Azure Portal, vaya al recurso Aplicación lógica Estándar.
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.
En la barra de herramientas, seleccione Editar e implementar.
En el panel Editar un contenedor, seleccione Variables de entorno y, a continuación, seleccione Agregar.
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> WORKFLOWAPP_AAD_CLIENTSECRET <my-client-secret> Cuando termine, seleccione Save (Guardar).
Almacenar el identificador de cliente y el secreto de cliente y hacer referencia a los mismos
Puede almacenar los valores de identificador de cliente y secreto de cliente en el recurso de la aplicación lógica como secretos y, a continuación, hacer referencia a dichos valores en la pestaña Variables de entorno en su lugar.
En Azure Portal, vaya hasta su recurso de aplicación lógica.
En el menú del recurso, en Configuración, seleccione Secretos.
En la barra de herramientas, seleccione Agregar.
En el panel Agregar secreto, proporcione la siguiente información para cada secreto y, luego, seleccione Agregar:
Key Value WORKFLOWAPP_AAD_CLIENTID <my-client-ID> WORKFLOWAPP_AAD_CLIENTSECRET <my-client-secret>
Problemas conocidos y solución de problemas
Azure portal
La aplicación lógica estándar está implementada y aparece como un recurso de Azure Container Apps, pero el tipo aparece como Aplicación lógica (híbrida).
Azure incluye la aplicación lógica estándar en la lista de recursos de Container Apps, no en la lista de recursos de Logic Apps.
El entorno conectado de Azure Container Apps muestra la aplicación lógica estándar como un tipo de aplicación denominado Aplicación lógica híbrida.
Para reflejar los cambios en el diseñador después de guardar el flujo de trabajo, es posible que deba actualizar ocasionalmente el diseñador.
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.
En Azure Portal, vaya al recurso de la aplicación contenedora de la aplicación lógica.
En el menú del recurso, seleccione Información general.
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:
De lo contrario, si la aplicación tiene errores, compruebe que los pods de AKS se están ejecutando correctamente. En Windows PowerShell, ejecute los siguientes comandos:
az aks get-credentials {resource-group-name} --name {aks-cluster-name} --admin 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 suficientes nodos
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 aumentar el número de nodos y configurar la escalabilidad automática, siga estos pasos:
En Azure Portal, vaya a la instancia de servicio de Kubernetes.
En el menú de instancias, en Configuración, seleccione Grupos de nodos.
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:
- Creación de grupos de nodos para un clúster en Azure Kubernetes Service (AKS)
- Administración de grupos de nodos para un clúster en Azure Kubernetes Service (AKS)
- Introducción al escalado automático de clústeres en Azure Kubernetes Service (AKS)
- Usar el escalado automático de clústeres en Azure Kubernetes Service (AKS)
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, ejecute los comandos siguientes en Windows PowerShell:
kubectl get csidrivers
Si la lista de resultados que aparece no incluye smb.csi.k8s.io, desde un símbolo del sistema de Windows, ejecute el siguiente comando:
helm repo add csi-driver-smb
help repo update
helm install csi-driver-smb csi-driver-smb/csi-driver-smb --namespace kube-system --version v1.15.0
Para comprobar el estado de los pods del controlador de CSI de SMB, ejecute el siguiente comando desde el símbolo del sistema de Windows:
kubectl --namespace=kube-system get pods --selector="app.kubernetes.io/name=csi-driver-smb" --watch
Para obtener más información, consulte Controladores de Container Storage Interface (CSI) en Azure Kubernetes Service (AKS).