Creación e implementación de flujos de trabajo de aplicaciones lógicas basadas en un solo inquilino con Logic Apps habilitado para Azure Arc (versión preliminar)
Nota
Esta funcionalidad está en versión preliminar y está sujeta a las Condiciones de uso complementarias para las versiones preliminares de Microsoft Azure.
Con Logic Apps habilitado para Azure Arc, puede crear e implementar flujos de trabajo de aplicaciones lógicas basadas en un solo inquilino en una infraestructura de Kubernetes que opera y administra. Las aplicaciones lógicas se ejecutan en una ubicación personalizada que se asigna a un clúster de Kubernetes habilitado para Azure Arc donde instaló y ha habilitado el paquete de extensiones de plataforma de Azure App Service.
Por ejemplo, este clúster puede ser una instancia de Azure Kubernetes Service, una instancia de Kubernetes sin sistema operativo u otra configuración. El conjunto de extensiones permite ejecutar servicios de plataforma como Azure Logic Apps, Azure App Service y Azure Functions en el clúster de Kubernetes.
Para más información, revise la siguiente documentación:
- ¿Qué es Logic Apps habilitado para Azure Arc?
- Inquilino único frente a multiinquilino en Azure Logic Apps
- Introducción a Azure Arc
- Información general de Azure Kubernetes Service
- ¿Qué es Kubernetes habilitado para Azure Arc?
- Ubicaciones personalizadas en Kubernetes habilitado para Azure Arc
- App Service, Functions y Logic Apps en Azure Arc (versión preliminar)
- Configuración de un clúster de Kubernetes habilitado para Azure Arc para ejecutar App Service, Functions y Logic Apps (versión preliminar)
Requisitos previos
En esta sección se describen los requisitos previos comunes en todos los enfoques y herramientas que puede usar para crear e implementar los flujos de trabajo de la aplicación lógica. Los requisitos previos específicos de la herramienta aparecen junto a los pasos correspondientes.
Una cuenta de Azure con una suscripción activa. Si no tiene una suscripción a Azure, cree una cuenta gratuita.
Un entorno de Kubernetes con un clúster de Kubernetes habilitado para Azure Arc y una ubicación personalizada donde puede hospedar y ejecutar Azure Logic Apps, Azure App Service y Azure Functions.
Importante
Asegúrese de usar la misma ubicación de los recursos para el entorno de Kubernetes, la ubicación personalizada y la aplicación lógica.
Al crear la extensión de conjunto de App Service en el clúster de Kubernetes, puede cambiar el comportamiento de escalado predeterminado para ejecutar los flujos de trabajo de la aplicación lógica. Al crear la extensión mediante el comando de la CLI de Azure,
az k8s-extension create
, asegúrese de incluir la opción de configuraciónkeda.enabled=true
:az k8s-extension create {other-command-options} --configuration-settings "keda.enabled=true"
Para más información, revise la siguiente documentación:
- App Service, Functions y Logic Apps en Azure Arc (versión preliminar)
- Extensiones de clústeres de Kubernetes habilitados para Azure Arc
- Configuración de un clúster de Kubernetes habilitado para Azure Arc para ejecutar App Service, Functions y Logic Apps (versión preliminar)
- Cambio del comportamiento de escalado predeterminado
Su propia identidad de Microsoft Entra
Si los flujos de trabajo deben usar conexiones hospedadas en Azure, como Office 365 Outlook o Azure Storage, la aplicación lógica debe usar una identidad de Microsoft Entra para realizar la autenticación. Logic Apps habilitado para Azure Arc se puede ejecutar en cualquier infraestructura, pero requiere una identidad que tenga permisos para usar conexiones hospedadas en Azure. Para configurar esta identidad, cree un registro de aplicaciones en Microsoft Entra ID que la aplicación lógica usará como la identidad necesaria.
Nota:
Tenga en cuenta que la compatibilidad con identidades administradas no está disponible actualmente en Logic Apps habilitado para Azure Arc.
Para crear un registro de aplicaciones de Microsoft Entra mediante la CLI de Azure, siga estos pasos:
Cree un registro de aplicaciones mediante el comando
az ad sp create
.Para revisar todos los detalles, ejecute el comando
az ad sp show
.En los resultados de ambos comandos, busque y guarde los valores de id. de cliente, id. de objeto, id. de inquilino y de secreto de cliente, que debe conservar para su uso posterior.
Para crear un registro de aplicaciones de Microsoft Entra mediante Azure Portal, siga estos pasos:
Cree un nuevo registro de aplicación de Microsoft Entra mediante Azure Portal.
Una vez que finalice la operación de creación, busque el nuevo registro de aplicaciones en el portal.
En el menú de registro, seleccione Información general y guarde los valores de id. de cliente, id. de inquilino y del secreto de cliente.
Para buscar el id. de objeto, junto al campo Aplicación administrada en el directorio local, seleccione el nombre del registro de la aplicación. En la vista de propiedades, copie el id. de objeto.
Creación e implementación de aplicaciones lógicas
En función de si desea usar la CLI de Azure o Visual Studio Code, seleccione la pestaña correspondiente para revisar los requisitos previos y los pasos específicos.
Antes de empezar, es preciso tener los siguientes elementos:
La más reciente extensión de la CLI de Azure instalada en el equipo local.
Si no la tiene, consulte la guía de instalación del sistema operativo o de la plataforma.
Si no está seguro de que tiene la versión más reciente, siga los pasos para comprobar el entorno y la versión de la CLI.
La versión preliminar de la extensión de Azure Logic Apps (Estándar) para la CLI de Azure.
Aunque una instancia de Azure Logic Apps de inquilino único está disponible con carácter general, la extensión Azure Logic Apps aún está en versión preliminar.
Un grupo de recursos de Azure en el que se crea una aplicación lógica.
Si no tiene este grupo de recursos, siga los pasos para crear el grupo de recursos.
Una cuenta de Azure Storage que se usará con la aplicación lógica para la retención de datos y del historial de ejecución.
Si no tiene esta cuenta de almacenamiento, puede crearla al crear la aplicación lógica, o bien puede seguir los pasos para crear una cuenta de almacenamiento.
Comprobación del entorno y de la versión de la CLI
Inicie sesión en Azure Portal. Para comprobar que la suscripción esté activa, ejecute el siguiente comando:
az login
Compruebe la versión de la CLI de Azure en una ventana de terminal o de comandos, para lo que debe ejecutar el siguiente comando:
az --version
Para saber cuál es la versión más reciente, consulte las notas de la versión más reciente.
Si no tiene la versión más reciente, actualice la instalación, para lo que debe seguir las instrucciones que encontrará en la guía de instalación del sistema operativo o de la plataforma.
Instalación de la extensión Azure Logic Apps (Estándar) para la CLI de Azure
Instale la versión preliminar de la extensión Azure Logic Apps (Estándar) de inquilino único para la CLI de Azure mediante la ejecución del siguiente comando:
az extension add --yes --source "https://aka.ms/logicapp-latest-py2.py3-none-any.whl"
Creación de un grupo de recursos
Si aún no tiene un grupo de recursos para la aplicación lógica, créelo mediante la ejecución del comando az group create
. A menos que ya haya establecido una suscripción predeterminada para su cuenta de Azure, asegúrese de usar el parámetro --subscription
con el nombre o el identificador de la suscripción. De lo contrario, no tiene que usar el parámetro --subscription
.
Sugerencia
Para establecer una suscripción predeterminada, ejecute el siguiente comando y reemplace MySubscription
por el nombre o identificador de la suscripción.
az account set --subscription MySubscription
Por ejemplo, el siguiente comando crea un grupo de recursos denominado MyResourceGroupName
mediante la suscripción de Azure denominada MySubscription
en la ubicación eastus
:
az group create --name MyResourceGroupName
--subscription MySubscription
--location eastus
Si el grupo de recursos se crea correctamente, la salida muestra provisioningState
como Succeeded
:
<...>
"name": "testResourceGroup",
"properties": {
"provisioningState": "Succeeded"
},
<...>
Creación de la aplicación lógica
Para crear una aplicación lógica habilitada para Azure Arc, ejecute el comando az logicapp create
con los siguientes parámetros necesarios. Las ubicaciones del recurso de la aplicación lógica, la ubicación personalizada y el entorno de Kubernetes deben tener los mismos valores.
Parámetros | Descripción |
---|---|
--name -n |
Nombre único de la aplicación lógica |
--resource-group -g |
Nombre del grupo de recursos en el que quiere crear la aplicación lógica. Si no dispone de ninguno para usarlo, cree un grupo de recursos. |
--storage-account -s |
La cuenta de almacenamiento que se usa con la aplicación lógica. En cuanto a las cuentas de almacenamiento del mismo grupo de recursos, use un valor de cadena. Para las cuentas de almacenamiento de un grupo de recursos diferente, use un id. de recurso. |
az logicapp create --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--storage-account MyStorageAccount --custom-location MyCustomLocation
Para crear una aplicación lógica habilitada para Azure Arc mediante una imagen privada de Azure Container Registry (ACR), ejecute el comando az logicapp create
con los siguientes parámetros obligatorios:
az logicapp create --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--storage-account MyStorageAccount --custom-location MyCustomLocation
--deployment-container-image-name myacr.azurecr.io/myimage:tag
--docker-registry-server-password MyPassword
--docker-registry-server-user MyUsername
Muestra de los detalles de la aplicación lógica
Para mostrar información sobre una aplicación lógica habilitada para Azure Arc, ejecute el comando az logicapp show
con los siguientes parámetros necesarios:
az logicapp show --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Implementación de la aplicación lógica
Para implementar la aplicación lógica habilitada para Azure Arc mediante la implementación del archivo ZIP de Kudu de Azure App Service, ejecute el comando az logicapp deployment source config-zip
con los siguientes parámetros necesarios:
Importante
Asegúrese de que el archivo zip contenga los artefactos del proyecto en el nivel raíz. Estos artefactos incluyen todas las carpetas del flujo de trabajo, los archivos de configuración, como host.json y connections.json, y cualquier otro archivo relacionado. No agregue carpetas adicionales ni coloque ningún artefacto en carpetas que no existan en la estructura del proyecto. Por ejemplo, en esta lista se muestra un estructura de archivos de ejemplo, en MyBuildArtifacts.zip:
MyStatefulWorkflow1-Folder
MyStatefulWorkflow2-Folder
connections.json
host.json
az logicapp deployment source config-zip --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--src MyBuildArtifact.zip
Inicio de la aplicación lógica
Para iniciar la aplicación lógica habilitada para Azure Arc, ejecute el comando az logicapp start
con los siguientes parámetros necesarios:
az logicapp start --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Detención de la aplicación lógica
Para detener la aplicación lógica habilitada para Azure Arc, ejecute el comando az logicapp stop
con los siguientes parámetros necesarios:
az logicapp stop --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Reinicio de la aplicación lógica
Para reiniciar la aplicación lógica habilitada para Azure Arc, ejecute el comando az logicapp restart
con los siguientes parámetros necesarios:
az logicapp restart --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Eliminación de la aplicación lógica
Para eliminar la aplicación lógica habilitada para Azure Arc, ejecute el comando az logicapp delete
con los siguientes parámetros necesarios:
az logicapp delete --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Configuración de la autenticación de la conexión
Actualmente, los clústeres de Kubernetes habilitados para Azure Arc no admiten el uso de una identidad administrada de aplicación lógica para autenticar conexiones de API administradas. Estas conexiones administradas y hospedadas en Azure se crean cuando se usan conectores administrados en los flujos de trabajo.
En su lugar, debe crear su propio registro de aplicación en Microsoft Entra ID. A continuación, puede usar este registro de aplicación como identidad para las aplicaciones lógicas implementadas y ejecutándose en Logic Apps habilitado para Azure Arc. Para obtener más información, revise los Requisitos previos de nivel superior.
En el registro de la aplicación, encontrará el id. de cliente, el id. de objeto, el id. de inquilino y el secreto de cliente. Si usa Visual Studio Code para realizar implementaciones, tiene una experiencia integrada para configurar la aplicación lógica con una identidad de Microsoft Entra. Para obtener más información, consulte Creación e implementación de flujos de trabajo de aplicación lógica: Visual Studio Code.
Sin embargo, si usa Visual Studio Code para el desarrollo, pero usa la CLI de Azure o canalizaciones automatizadas para realizar las implementaciones, siga estos pasos.
Configuración de la conexión y la aplicación en el proyecto
En el archivo connections.json del proyecto de aplicación lógica, busque el objeto
authentication
para la conexión administrada. Reemplace el contenido de este objeto por la información de registro de la aplicación que generó anteriormente en los requisitos previos de nivel superior:"authentication": { "type": "ActiveDirectoryOAuth", "audience": "https://management.core.windows.net/", "credentialType": "Secret", "clientId": "@appsetting('WORKFLOWAPP_AAD_CLIENTID')", "tenant": "@appsetting('WORKFLOWAPP_AAD_TENANTID')", "secret": "@appsetting('WORKFLOWAPP_AAD_CLIENTSECRET')" }
En el archivo local.settings.json del proyecto de aplicación lógica, agregue el id. de cliente, el id. de objeto, el id. de inquilino y el secreto de cliente. Después de realizar la implementación, esta configuración se convierte en la configuración de la aplicación lógica.
{ "IsEncrypted": false, "Values": { <...> "WORKFLOWAPP_AAD_CLIENTID":"<my-client-ID>", "WORKFLOWAPP_AAD_OBJECTID":"<my-object-ID", "WORKFLOWAPP_AAD_TENANTID":"<my-tenant-ID>", "WORKFLOWAPP_AAD_CLIENTSECRET":"<my-client-secret>" } }
Importante
En escenarios o entornos de producción, asegúrese de proteger estos secretos e información confidencial, por ejemplo, mediante el uso de un almacén de claves.
Adición de directivas de acceso
En las instancias de Azure Logic Apps de un solo inquilino, cada aplicación lógica tiene una identidad a la que las directivas de acceso conceden permisos para usar conexiones administradas y hospedadas en Azure. Puede configurar estas directivas de acceso mediante las implementaciones de Azure Portal o de infraestructura.
Plantilla ARM
En la plantilla de Azure Resource Manager (plantilla de ARM), incluya la siguiente definición de recurso para cada conexión de API administrada y proporcione la siguiente información:
Parámetro | Descripción |
---|---|
<connection-name> | El nombre de la conexión de la API administrada, por ejemplo, office365 . |
<object-ID> | Es el id. de objeto de la identidad de Microsoft Entra, guardada previamente desde el registro de la aplicación. |
<tenant-ID> | Es el id. de inquilino de la identidad de Microsoft Entra, guardada previamente desde el registro de la aplicación. |
{
"type": "Microsoft.Web/connections/accessPolicies",
"apiVersion": "2016-06-01",
"name": "[concat('<connection-name>'),'/','<object-ID>')]",
"location": "<location>",
"dependsOn": [
"[resourceId('Microsoft.Web/connections', parameters('connection_name'))]"
],
"properties": {
"principal": {
"type": "ActiveDirectory",
"identity": {
"objectId": "<object-ID>",
"tenantId": "<tenant-ID>"
}
}
}
}
Para obtener más información, revise la documentación Microsoft.Web/connections/accesspolicies (plantilla de ARM).
Azure Portal
Para esta tarea, use el id. de cliente que guardó anteriormente como id. de aplicación.
En Azure Portal, busque y abra la aplicación lógica. En el menú de la aplicación lógica, en Flujos de trabajo, seleccione Conexiones, que enumera todas las conexiones de los flujos de trabajo del recurso de aplicación lógica.
En Conexiones de API, seleccione una conexión; en este ejemplo es
office365
.En el menú de la conexión, en la opción Configuración, seleccione Directivas de acceso>Agregar.
En el panel Agregar directiva de acceso, en el cuadro de búsqueda, busque y seleccione el id. de cliente que guardó anteriormente.
Cuando termine, seleccione Agregar.
Repita estos pasos para cada conexión hospedada en Azure en la aplicación lógica.
Automatización de la implementación de DevOps
Para compilar e implementar las aplicaciones lógicas habilitadas para Azure Arc, puede usar las mismas canalizaciones y procesos de las aplicaciones lógicas basadas en un solo inquilino. Para automatizar las implementaciones de infraestructura mediante canalizaciones para DevOps, realice los siguientes cambios en el nivel de infraestructura para las implementaciones de contenedores y no contenedoras.
Implementación Estándar (no contenedor)
Si usa la implementación de tipo ZIP para realizar la implementación de aplicaciones lógicas, no es necesario que configure un registro de Docker para hospedar imágenes de contenedor. Aunque las aplicaciones lógicas en Kubernetes se ejecutan técnicamente en contenedores, Logic Apps habilitado para Azure Arc puede administrar estos contenedores automáticamente. En este escenario, realice las siguientes tareas al configurar la infraestructura:
- Notifique al proveedor de recursos que va a crear una aplicación lógica en Kubernetes.
- Incluya un plan de App Service con la implementación. Para obtener más información, consulte Incluir un plan de App Service con una implementación.
En la plantilla de Azure Resource Manager (plantilla de ARM), incluya los valores siguientes:
Elemento | Propiedad JSON | Descripción |
---|---|---|
Location | location |
Asegúrese de usar la misma ubicación del recurso (región de Azure) que la ubicación personalizada y el entorno de Kubernetes. Las ubicaciones del recurso de la aplicación lógica, la ubicación personalizada y el entorno de Kubernetes deben tener los mismos valores. Nota: Este valor no es el mismo que el nombre para la ubicación personalizada. |
Tipo de aplicación | kind |
El tipo de aplicación que va a implementar para que la plataforma de Azure pueda identificar la aplicación. En Azure Logic Apps, esta información es similar al ejemplo siguiente: kubernetes,functionapp,workflowapp,linux . |
Ubicación extendida | extendedLocation |
Este objeto requiere el valor "name" de la ubicación personalizada para el entorno de Kubernetes y debe tener el valor "type" establecido en "CustomLocation" . |
Id. de recurso del plan de hospedaje | serverFarmId |
Id. de recurso del plan de App Service asociado, con el formato siguiente:
|
Cadena de conexión de almacenamiento | AzureWebJobsStorage |
Cadena de conexión para la cuenta de almacenamiento. Importante: debe proporcionar la cadena de conexión para la cuenta de almacenamiento en la plantilla de ARM. En escenarios o entornos de producción, asegúrese de proteger estos secretos e información confidencial, por ejemplo, mediante un almacén de claves. |
Plantilla ARM
En el ejemplo siguiente se describe una muestra de la definición de recursos de Logic Apps habilitado para Azure Arc que puede usar en la plantilla de ARM. Para obtener más información, revise la documentación sobre el formato de plantilla Microsoft.Web/sites (JSON).
{
"type": "Microsoft.Web/sites",
"apiVersion": "2020-12-01",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"kind": "kubernetes,functionapp,workflowapp,linux",
"extendedLocation": {
"name": "[parameters('customLocationId')]",
"type": "CustomLocation"
},
"properties": {
"clientAffinityEnabled": false,
"name": "[parameters('name')]",
"serverFarmId": "<hosting-plan-ID>",
"siteConfig": {
"appSettings": [
{
"name": "FUNCTIONS_EXTENSION_VERSION",
"value": "~3"
},
{
"name": "FUNCTIONS_WORKER_RUNTIME",
"value": "dotnet"
},
{
"name": "AzureWebJobsStorage",
"value": "<storage-connection-string>"
},
{
"name": "AzureFunctionsJobHost__extensionBundle__id",
"value": "Microsoft.Azure.Functions.ExtensionBundle.Workflows"
},
{
"name": "AzureFunctionsJobHost__extensionBundle__version",
"value": "[1.*, 2.0.0)"
},
{
"name": "APP_KIND",
"value": "workflowapp"
}
],
"use32BitWorkerProcess": "[parameters('use32BitWorkerProcess')]",
"linuxFxVersion": "Node|12"
}
}
}
Nota:
De forma predeterminada, la configuración de la aplicación FUNCTIONS_WORKER_RUNTIME para la aplicación lógica es dotnet
.
Anteriormente, node
era el valor predeterminado. Sin embargo, ahora dotnet
es el valor predeterminado para todas las aplicaciones lógicas habilitadas para Arc nuevas y existentes implementadas, incluso para las aplicaciones que tenían otro valor. Este cambio no debe afectar al tiempo de ejecución del flujo de trabajo y todo debería funcionar de la misma manera que antes. Para obtener más información, consulte la configuración de FUNCTIONS_WORKER_RUNTIME aplicación.
La configuración de la aplicación APP_KIND para la aplicación lógica está establecida en workflowapp, pero, en algunos escenarios, falta esta configuración de aplicación, por ejemplo, debido a plantillas de Azure Resource Manager u otros escenarios en los puede que no se incluya la configuración. Si ciertas acciones no funcionan, como la acción Ejecutar código JavaScript o el flujo de trabajo deja de funcionar, compruebe que la configuración de la aplicación APP_KIND existe y está establecida en workflowapp. Para más información, consulte la configuración de la aplicación APP_KIND.
Implementación de contenedores
Si prefiere usar herramientas de contenedor y procesos de implementación, puede incluir en contenedores las aplicaciones lógicas e implementarlas en Logic Apps habilitado para Azure Arc. En este escenario, realice las siguientes tareas de alto nivel al configurar la infraestructura:
Configure un registro de Docker para hospedar las imágenes de contenedor.
Para crear una aplicación lógica en contenedores, agregue el Dockerfile siguiente a la carpeta raíz del proyecto de aplicación lógica y siga los pasos para compilar y publicar una imagen en el registro de Docker; por ejemplo, revise Tutorial: Compilación e implementación de imágenes de contenedor en la nube con Azure Container Registry Tasks.
Nota
Si usa SQL como proveedor de almacenamiento, asegúrese de utilizar una imagen de Azure Functions de la versión 3.3.1 o posterior.
FROM mcr.microsoft.com/azure-functions/node:3.3.1 ENV AzureWebJobsScriptRoot=/home/site/wwwroot \ AzureFunctionsJobHost__Logging__Console__IsEnabled=true \ FUNCTIONS_V2_COMPATIBILITY_MODE=true COPY . /home/site/wwwroot RUN cd /home/site/wwwroot
Notifique al proveedor de recursos que va a crear una aplicación lógica en Kubernetes.
En la plantilla de implementación, seleccione el registro de Docker y la imagen de contenedor donde planea implementarlo. La instancia de Azure Logic Apps de un solo inquilino usa esta información para obtener la imagen de contenedor del registro de Docker.
Incluya un plan de App Service con la implementación. Para obtener más información, consulte Incluir un plan de App Service con una implementación.
En la plantilla de Azure Resource Manager (plantilla de ARM), incluya los valores siguientes:
Elemento | Propiedad JSON | Descripción |
---|---|---|
Location | location |
Asegúrese de usar la misma ubicación del recurso (región de Azure) que la ubicación personalizada y el entorno de Kubernetes. Las ubicaciones del recurso de la aplicación lógica, la ubicación personalizada y el entorno de Kubernetes deben tener los mismos valores. Nota: Este valor no es el mismo que el nombre para la ubicación personalizada. |
Tipo de aplicación | kind |
El tipo de aplicación que va a implementar para que la plataforma de Azure pueda identificar la aplicación. En Azure Logic Apps, esta información es similar al ejemplo siguiente: kubernetes,functionapp,workflowapp,container . |
Ubicación extendida | extendedLocation |
Este objeto requiere el valor "name" de la ubicación personalizada para el entorno de Kubernetes y debe tener el valor "type" establecido en "CustomLocation" . |
Nombre del contenedor | linuxFxVersion |
El nombre del contenedor cuenta con el formato siguiente: DOCKER\|<container-name> . |
Id. de recurso del plan de hospedaje | serverFarmId |
Id. de recurso del plan de App Service asociado, con el formato siguiente:
|
Cadena de conexión de almacenamiento | AzureWebJobsStorage |
Cadena de conexión para la cuenta de almacenamiento. Importante: al implementar contenido en un contenedor de Docker, debe proporcionar la cadena de conexión de la cuenta de almacenamiento en la plantilla de ARM. En escenarios o entornos de producción, asegúrese de proteger estos secretos e información confidencial, por ejemplo, mediante un almacén de claves. |
Para hacer referencia a la imagen de contenedor y del registro de Docker, incluya estos valores en la plantilla:
Elemento | Propiedad JSON | Descripción |
---|---|---|
Dirección URL del servidor de registro de Docker | DOCKER_REGISTRY_SERVER_URL |
Es la dirección URL del servidor del registro de Docker. |
Servidor de registro de Docker | DOCKER_REGISTRY_SERVER_USERNAME |
Es el nombre de usuario para obtener acceso al servidor del registro de Docker. |
Contraseña del servidor de registro de Docker | DOCKER_REGISTRY_SERVER_PASSWORD |
Es la contraseña para obtener acceso al servidor del registro de Docker. |
Plantilla ARM
En el ejemplo siguiente se describe una muestra de la definición de recursos de Logic Apps habilitado para Azure Arc que puede usar en la plantilla de ARM. Para obtener más información, revise la documentación sobre el formato de plantilla Microsoft.Web/sites (plantilla de ARM).
{
"type": "Microsoft.Web/sites",
"apiVersion": "2020-12-01",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"kind": " kubernetes,functionapp,workflowapp,container",
"extendedLocation": {
"name": "[parameters('customLocationId')]",
"type": "CustomLocation"
},
"properties": {
"name": "[parameters('name')]",
"clientAffinityEnabled": false,
"serverFarmId": "<hosting-plan-ID>",
"siteConfig": {
"appSettings": [
{
"name": "FUNCTIONS_EXTENSION_VERSION",
"value": "~3"
},
{
"name": "FUNCTIONS_WORKER_RUNTIME",
"value": "dotnet"
},
{
"name": "AzureWebJobsStorage",
"value": "<storage-connection-string>"
},
{
"name": "AzureFunctionsJobHost__extensionBundle__id",
"value": "Microsoft.Azure.Functions.ExtensionBundle.Workflows"
},
{
"name": "AzureFunctionsJobHost__extensionBundle__version",
"value": "[1.*, 2.0.0)"
},
{
"name": "APP_KIND",
"value": "workflowapp"
},
{
"name": "DOCKER_REGISTRY_SERVER_URL",
"value": "<docker-registry-server-URL>"
},
{
"name": "DOCKER_REGISTRY_SERVER_USERNAME",
"value": "<docker-registry-server-username>"
},
{
"name": "DOCKER_REGISTRY_SERVER_PASSWORD",
"value": "<docker-registry-server-password>"
}
],
"use32BitWorkerProcess": "[parameters('use32BitWorkerProcess')]",
"linuxFxVersion": "DOCKER|<container-name>"
}
}
}
Nota:
Anteriormente, el valor predeterminado de la configuración de FUNCTIONS_WORKER_RUNTIME era node
.
Ahora, dotnet
es el valor predeterminado para todas las aplicaciones lógicas estándar nuevas y existentes implementadas, incluso para las aplicaciones que tenían un valor diferente. Este cambio no debe afectar al tiempo de ejecución del flujo de trabajo y todo debería funcionar de la misma manera que antes. Para obtener más información, consulte la configuración de FUNCTIONS_WORKER_RUNTIME aplicación.
Inclusión del plan de App Service con la implementación
Tanto si tiene una implementación estándar como de contenedor, debe incluir un plan de App Service con la implementación. Aunque este plan se vuelve menos relevante con un entorno de Kubernetes, recuerde que las implementaciones estándar y de contenedor seguirán necesitando un plan de App Service.
Aunque otras opciones de creación normalmente controlan el aprovisionamiento del recurso de Azure para este plan, si las implementaciones usan plantillas de tipo "infraestructura como código", tendrá que crear explícitamente el recurso de Azure para el plan. El recurso del plan de hospedaje no cambia, solo la información sku
.
En la plantilla de Azure Resource Manager (plantilla de ARM), incluya los valores siguientes:
Elemento | Propiedad JSON | Descripción |
---|---|---|
Location | location |
Asegúrese de usar la misma ubicación del recurso (región de Azure) que la ubicación personalizada y el entorno de Kubernetes. Las ubicaciones del recurso de la aplicación lógica, la ubicación personalizada y el entorno de Kubernetes deben tener los mismos valores. Nota: Este valor no es el mismo que el nombre para la ubicación personalizada. |
Tipo | kind |
El tipo de plan de App Service implementado que debe ser kubernetes,linux |
Ubicación extendida | extendedLocation |
Este objeto requiere el valor "name" de la ubicación personalizada para el entorno de Kubernetes y debe tener el valor "type" establecido en "CustomLocation" . |
Nombre del plan de hospedaje | name |
El nombre del plan de App Service. |
Nivel de plan | sku: tier |
Es el nivel del plan de App Service, que es K1 . |
Nombre del plan | sku: name |
Es el nombre del plan de App Service, que es Kubernetes . |
Plantilla ARM
En el ejemplo siguiente se describe una definición de recursos del plan de App Service que puede usar con la implementación de la aplicación. Para obtener más información, revise la documentación sobre el formato de plantilla Microsoft.Web/serverfarms (plantilla de ARM).
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2020-12-01",
"location": "<location>",
"name": "<hosting-plan-name>",
"kind": "kubernetes,linux",
"extendedLocation": {
"name": "[parameters('customLocationId')]",
"type": "CustomLocation"
},
"sku": {
"tier": "Kubernetes",
"name": "K1",
"capacity": 1
},
"properties": {
"kubeEnvironmentProfile": {
"id": "[parameters('kubeEnvironmentId')]"
}
}
}
Cambio del comportamiento de escalado predeterminado
Logic Apps habilitado para Azure Arc administra automáticamente el escalado de las aplicaciones lógicas en función del número de trabajos en la cola de almacenamiento de back-end. Sin embargo, puede cambiar el comportamiento de escalado predeterminado.
En una aplicación lógica, la definición del flujo de trabajo especifica la secuencia de acciones que se ejecutarán. Cada vez que se desencadena una ejecución de flujo de trabajo, el tiempo de ejecución de Azure Logic Apps crea un trabajo para cada tipo de acción en la definición del flujo de trabajo. A continuación, el tiempo de ejecución organiza estos trabajos en un secuenciador de trabajos. Este secuenciador orquesta la ejecución de los trabajos para la definición del flujo de trabajo, pero el motor de orquestación del trabajo subyacente de Azure Logic Apps ejecuta cada trabajo.
En cuanto a los flujos de trabajo con estado, el motor de orquestación de trabajos usa mensajes de cola de almacenamiento para programar trabajos en los secuenciadores de trabajos. En segundo plano, los distribuidores de trabajos (o las instancias de trabajo del distribuidor) supervisan estas colas de trabajos. El motor de orquestación usa un número mínimo y máximo predeterminado de instancias de trabajo para supervisar las colas de trabajos. En el caso de los flujos de trabajo sin estado, el motor de orquestación mantiene completamente los estados de acción en la memoria.
Para cambiar el comportamiento de escalado predeterminado, especifique diferentes números mínimos y máximos de instancias de trabajo que supervisan las colas de trabajos.
Requisitos previos para cambiar el escalado
En el clúster de Kubernetes habilitado para Azure Arc, la extensión de conjunto de App Service que se creó anteriormente debe tener la propiedad keda.enabled
establecida en true
. Para obtener más información, revise los Requisitos previos de nivel superior.
Cambio del umbral de escalado
En Logic Apps habilitado para Azure Arc, la longitud de la cola de trabajos desencadena un evento de escalado y establece un umbral para indicar la frecuencia con la que se produce el escalado de la aplicación lógica. Puede cambiar la longitud de la cola, que tiene el valor predeterminado establecido en 20
trabajos. Para escalar con menos frecuencia, aumente la longitud de la cola. Para escalar con mayor frecuencia, aumente la longitud de la cola. Este proceso puede requerir algunas operaciones de prueba y error.
Para cambiar la longitud de la cola, en el archivo de nivel raíz host.json del proyecto de aplicación lógica, configure la propiedad Runtime.ScaleMonitor.KEDA.TargetQueueLength
, por ejemplo:
"extensions": {
"workflow": {
"settings": {
"Runtime.ScaleMonitor.KEDA.TargetQueueLength": "10"
}
}
}
Cambio del valor máximo del rendimiento
En un recurso de aplicación lógica existente, puede cambiar el número máximo de instancias de trabajo, que tiene el valor predeterminado establecido en 2
. Este valor controla el límite superior en el número de instancias de trabajo que pueden supervisar las colas de trabajos.
Para cambiar este máximo, use la CLI de Azure (solo para la creación de la aplicación lógica) y Azure Portal.
Azure CLI
Para crear una aplicación lógica, ejecute el comando, az logicapp create
, con los siguientes parámetros:
az logicapp create --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--storage-account MyStorageAccount --custom-location MyCustomLocation
[--plan MyHostingPlan] [--min-worker-count 1] [--max-worker-count 4]
Para configurar el número máximo de instancias, use el parámetro --settings
:
az logicapp config appsettings set --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--settings "K8SE_APP_MAX_INSTANCE_COUNT=10"
Azure portal
En la configuración de la aplicación lógica basada en un solo inquilino, agregue o edite el valor de configuración de K8SE_APP_MAX_INSTANCE_COUNT
siguiendo estos pasos:
En Azure Portal, busque y abra la aplicación lógica basada en un solo inquilino.
En el menú de la aplicación lógica, en Configuración, seleccione Configuración.
En el panel Configuración, en la opción Configuración de la aplicación, agregue una nueva configuración de aplicación o edite el valor existente, si ya se ha agregado.
Seleccione Nueva configuración de aplicación y agregue la configuración
K8SE_APP_MAX_INSTANCE_COUNT
con el valor máximo que quiera.Edite el valor existente para la configuración
K8SE_APP_MAX_INSTANCE_COUNT
.
Cuando termine, guarde los cambios.
Cambio del valor mínimo del rendimiento
En un recurso de aplicación lógica existente, puede cambiar el número mínimo de instancias de trabajo, que tiene el valor predeterminado establecido en 1
. Este valor controla el límite inferior en el número de instancias de trabajo que pueden supervisar las colas de trabajos. Para obtener una alta disponibilidad o rendimiento, aumente este valor.
Para cambiar este mínimo, use la CLI de Azure o Azure Portal.
CLI de Azure
Para un recurso de aplicación lógica existente, ejecute el comando, az logicapp scale
, con los parámetros siguientes:
az logicapp scale --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--instance-count 5
Para crear una aplicación lógica, ejecute el comando, az logicapp create
, con los siguientes parámetros:
az logicapp create --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--storage-account MyStorageAccount --custom-location MyCustomLocation
[--plan MyHostingPlan] [--min-worker-count 2] [--max-worker-count 4]
Azure portal
En la configuración de la aplicación lógica basada en un solo inquilino, cambie el valor de la propiedad escalado horizontal siguiendo estos pasos:
En Azure Portal, busque y abra la aplicación lógica basada en un solo inquilino.
En la opción Configuración del menú de la aplicación lógica, seleccione Escalar horizontalmente.
En el panel Escalar horizontalmente, arrastre el control deslizante de instancias mínimas al valor que quiera.
Cuando termine, guarde los cambios.
Solucionar problemas
Para obtener más información sobre las aplicaciones lógicas implementadas, pruebe las siguientes opciones:
Acceso a la configuración y la configuración de la aplicación
Para acceder a la configuración de una aplicación, ejecute el comando,az logicapp config appsettings
, con los siguientes parámetros:
az logicapp config appsettings list --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Para configurar un valor de una aplicación, ejecute el comando,az logicapp config appsettings set
, con los siguientes parámetros. Asegúrese de usar el parámetro --settings
con el nombre y el valor de su configuración.
az logicapp config appsettings set --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--settings "MySetting=1"
Para eliminar un valor de una aplicación, ejecute el comando,az logicapp config appsettings delete
, con los siguientes parámetros. Asegúrese de usar el parámetro --setting-names
con el nombre del valor que quiere eliminar.
az logicapp config appsettings delete --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--setting-names MySetting
Visualización de las propiedades de la aplicación lógica
Para ver la información y las propiedades de la aplicación, ejecute el comando, az logicapp show
, con los parámetros siguientes:
az logicapp show --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Supervisión de la actividad del flujo de trabajo
Para ver la actividad de un flujo de trabajo en la aplicación lógica, siga estos pasos:
En Azure Portal, busque la aplicación lógica implementada y ábrala.
En el menú de la aplicación lógica, seleccione Flujos de trabajo y, a continuación, seleccione su flujo de trabajo.
En el menú del flujo de trabajo, seleccione Supervisión.
Recopilación de registros
Para obtener los datos registrados sobre la aplicación lógica, habilite Application Insights en la aplicación lógica si aún no lo está.