Creación de un flujo de trabajo de aplicación lógica estándar en Azure Logic Apps de inquilino único mediante Visual Studio Code
Se aplica a: Azure Logic Apps (estándar)
En esta guía paso a paso se muestra cómo crear un flujo de trabajo de integración de ejemplo que se ejecuta en el entorno de Azure Logic Apps de inquilino único mediante Visual Studio Code con la extensión Azure Logic Apps (estándar). Antes de crear este flujo de trabajo, creará un recurso de aplicación lógica estándar, que proporciona las siguientes funcionalidades:
La aplicación lógica puede incluir varios flujos de trabajo con estado y sin estado.
Los flujos de trabajo de la misma aplicación lógica e inquilino se ejecutan en el mismo proceso que el entorno de ejecución de Azure Logic Apps, por lo que comparten los mismos recursos y proporcionan mayor rendimiento.
Puede crear, ejecutar y probar los flujos de trabajo localmente en el entorno de desarrollo de Visual Studio Code.
Cuando esté listo, puede implementar la aplicación lógica en Azure, donde el flujo de trabajo se puede ejecutar en el entorno de Azure Logic Apps de inquilino único o en un App Service Environment v3 (solo planes de App Service basados en Windows). También puede implementar y ejecutar el flujo de trabajo en cualquier lugar en el que se pueda ejecutar Kubernetes, incluido Azure, Azure Kubernetes Service, de forma local o incluso en otros proveedores de nube, debido al runtime en contenedores de Azure Logic Apps.
Nota:
La implementación de la aplicación lógica en un clúster de Kubernetes se encuentra actualmente en versión preliminar pública.
Para más información sobre Azure Logic Apps de inquilino único, consulte Inquilino único frente a multiinquilino en Azure Logic Apps.
Aunque el flujo de trabajo de ejemplo está basado en la nube y solo tiene dos pasos, puede crear flujos de trabajo a partir de cientos de operaciones que pueden conectar una amplia variedad de aplicaciones, datos, servicios y sistemas en entornos híbridos, locales y en la nube. El flujo de trabajo de ejemplo comienza con el desencadenador integrado Solicitud y sigue con una acción de Office 365 Outlook. El desencadenador crea un punto de conexión al que se puede llamar para el flujo de trabajo y espera una solicitud HTTPS entrante de cualquier autor de llamada. Cuando el desencadenador recibe una solicitud y se activa, la siguiente acción se ejecuta mediante el envío de un correo electrónico a la dirección de correo electrónico especificada junto con las salidas seleccionadas del desencadenador.
Sugerencia
Si no tiene ninguna cuenta de Office 365, puede usar cualquier otra acción disponible que pueda enviar mensajes desde su cuenta de correo electrónico, como, por ejemplo, Outlook.com.
Para crear este flujo de trabajo de ejemplo mediante Azure Portal, siga los pasos descritos en Creación de flujos de trabajo de integración mediante Azure Logic Apps de un único inquilino y Azure Portal. Ambas opciones proporcionan la funcionalidad para desarrollar, ejecutar e implementar flujos de trabajo de aplicaciones lógicas en los mismos tipos de entornos. Sin embargo, con Visual Studio Code, puede desarrollar, probar y ejecutar flujos de trabajo localmente en el entorno de desarrollo.
A medida que avance, completará estas tareas de alto nivel:
- Cree un proyecto para la aplicación lógica y un flujo de trabajo con estado en blanco.
- Agregar un desencadenador y una acción.
- Ejecutar, probar, depurar y revisar el historial de ejecución de forma local.
- Buscar los detalles del nombre de dominio para el acceso al firewall.
- Implementar en Azure, que incluye opcionalmente habilitar Application Insights.
- Administrar la aplicación lógica implementada en Visual Studio Code y Azure Portal.
- Habilitar el historial de ejecución para flujos de trabajo sin estado.
- Habilitar o abrir Application Insights después de la implementación.
Requisitos previos
Acceso y conectividad
Si tiene previsto compilar localmente proyectos de aplicación lógica Estándar y ejecutar flujos de trabajo con solo los conectores integrados que se ejecutan de forma nativa en el entorno de ejecución de Azure Logic Apps, no necesita los siguientes requisitos. Sin embargo, asegúrese de que tiene las siguientes credenciales de conectividad y cuenta de Azure para publicar o implementar el proyecto desde Visual Studio Code en Azure, use los conectores administrados que se ejecutan en Azure global o accedan a los recursos y flujos de trabajo de la aplicación lógica Estándar ya implementados en Azure:
Acceda a Internet para poder descargar los requisitos, conectarse desde Visual Studio Code a su cuenta de Azure y publicar desde Visual Studio Code en Azure.
Una cuenta y una suscripción de Azure. Si aún no tiene una, regístrese para obtener una cuenta de Azure gratuita.
Para crear el mismo flujo de trabajo de ejemplo de este artículo, necesita una cuenta de correo electrónico de Office 365 Outlook que use una cuenta profesional o educativa de Microsoft para iniciar sesión.
Si elige un conector de correo electrónico diferente, como Outlook.com, puede seguir el ejemplo, ya que los pasos generales son los mismos. Sin embargo, las opciones pueden diferir de alguna manera. Por ejemplo, si usa el conector de Outlook.com, en su lugar use su cuenta personal de Microsoft para iniciar sesión.
Herramientas
Descargue e instale Visual Studio Code, que es gratuito.
Descargue e instale la extensión de cuenta de Azure para Visual Studio Code para que tenga una única experiencia común para el filtrado de inicio de sesión y suscripción de Azure en todas las extensiones de Azure en Visual Studio Code. En esta guía paso a paso se incluyen los pasos que usan esta experiencia.
Descargue e instale las siguientes dependencias de Visual Studio Code para su sistema operativo específico mediante cualquiera de los métodos:
- Instalar todas las dependencias automáticamente.
- Descargar e instalar cada dependencia por separado.
Instalar todas las dependencias automáticamente
A partir de la versión 2.81.5, la extensión Azure Logic Apps (Estándar) para Visual Studio Code incluye un instalador de dependencias que instala automáticamente todas las dependencias necesarias en una nueva carpeta binaria y deja las dependencias existentes sin cambios. Para obtener más información, vea Introducción más fácilmente con la extensión Azure Logic Apps (Estándar) para Visual Studio Code.
Esta extensión incluye las siguientes dependencias:
Dependencia Descripción C# para Visual Studio Code Habilita la funcionalidad F5 para ejecutar el flujo de trabajo. Azurite para Visual Studio Code Proporciona un almacén de datos local y un emulador para usarlos con Visual Studio Code para que pueda trabajar en el proyecto de aplicación lógica y ejecutar los flujos de trabajo en el entorno de desarrollo local. Si no desea que Azurite se inicie automáticamente, puede deshabilitar esta opción:
1. En el menú Archivo, seleccione Preferencias>Configuración.
2. En la pestaña Usuario, seleccione Extensiones>Azure Logic Apps (Estándar).
3. Busque la configuración denominada Azure Logic Apps Estándar: Inicio automático de Azurite, y desactive la casilla seleccionada..NET SDK 6.x.x Incluye .NET Runtime 6.x.x, un requisito previo para el entorno de ejecución de Azure Logic Apps (Estándar). Azure Functions Core Tools, versión 4.x Instala la versión basada en el sistema operativo (Windows, macOSo Linux).
Estas herramientas incluyen una versión del mismo runtime en el que se basa el runtime de Azure Functions, que la extensión Azure Logic Apps (estándar) usa en Visual Studio Code.Node.js versión 16.x.x a menos que ya esté instalada una versión más reciente Necesario para habilitar la acción Operaciones de código insertado que ejecuta JavaScript. El instalador no realiza las siguientes tareas:
- Compruebe si las dependencias necesarias ya existen.
- Instale solo las dependencias que faltan.
- Actualice las versiones anteriores de las dependencias existentes.
En Visual Studio Code, en la barra actividad, seleccione Extensiones. (Teclado: Presione Ctrl+Mayús+X)
En el panel Extensiones, abra el menú de puntos suspensivos (...), y seleccione Instalar en VSIX.
Busque y seleccione el archivo VSIX descargado.
Una vez completada la instalación, la extensión se activa y ejecuta automáticamente el comando Validar e instalar archivos binarios de dependencias. Para ver los registros de proceso, abra la ventana Salida.
Cuando aparezca el siguiente mensaje, seleccione Sí (recomendado) para confirmar que desea instalar automáticamente las dependencias necesarias:
Vuelva a cargar Visual Studio Code, si es necesario.
Confirme que las dependencias aparecen correctamente en la carpeta siguiente:
C:\Users\<su nombre de usuario>\.azurelogicapps\dependencies\<dependency-name>
Confirme la siguiente configuración de extensión en Visual Studio Code:
En el menú Archivo, seleccione Preferencias>Configuración.
En la pestaña Usuario, seleccione Extensiones>Azure Logic Apps (Estándar).
Revise la siguiente configuración:
Configuración de extensión Valor Ruta de acceso de dependencias C:\Users\<su nombre de usuario>\.azurelogicapps\dependencies Tiempo de espera de dependencia 60 segundos Ruta de acceso binaria de Dotnet C:\Users\<su nombre de usuario>\.azurelogicapps\dependencies\DotNetSDK\dotnet.exe Ruta de acceso binaria de Func Core Tools C:\Users\<su nombre de usuario>\.azurelogicapps\dependencies\FuncCoreTools\func Ruta de acceso binaria JS del nodo C:\Users\<su nombre de usuario>\.azurelogicapps\dependencies\NodeJs\node Inicio automático de Azurite Habilitado Tiempo de diseño de inicio automático Habilitado
Si tiene un proyecto de aplicación lógica existente con tareas personalizadas almacenadas en el archivo .vscode/tasks.json, asegúrese de guardar el archivo tasks.json en otro lugar antes de abrir el proyecto.
Al abrir el proyecto, se le pedirá que actualice tasks.json archivo para usar las dependencias necesarias. Si decide continuar, la extensión sobrescribe el archivo tasks.json.
Al abrir el proyecto de aplicación lógica, aparecen las siguientes notificaciones:
Notificación Action ¿Iniciar siempre el proceso en tiempo de diseño en segundo plano al iniciarse? Para abrir el diseñador de flujos de trabajo más rápido, seleccione Sí (recomendado). ¿Configurar Azurite para iniciar automáticamente el inicio del proyecto? Para que el almacenamiento de Azurite se inicie automáticamente cuando se abra el proyecto, seleccione Habilitar inicio automático. En la parte superior de Visual Studio Code, en la ventana de comandos que aparece, presione ENTRAR para aceptar la ruta de acceso predeterminada:
C\Users\<su nombre de usuario>\.azurelogicapps\.azurite
Problemas conocidos con la versión preliminar
Si ha optado por instalar automáticamente todas las dependencias en un equipo que no tiene ninguna versión del SDK de .NET Core, aparece el siguiente mensaje:
"No se puede encontrar el SDK de .NET Core: Error al ejecutar dotnet -- información: Error: Error de comando: dotnet --info 'dotnet no se reconoce como un comando interno o externo, programa operable o archivo por lotes. 'dotnet' no se reconoce como un comando interno o externo, programa operable o archivo por lotes. . No se habilitará la depuración de .NET Core. Asegúrese de que el SDK de .NET Core esté instalado y esté en la ruta de acceso".
Recibirá este mensaje porque .NET Core Framework todavía se está instalando cuando se activa la extensión. Puede optar por deshabilitar este mensaje de forma segura.
Si tiene problemas para abrir un proyecto de aplicación lógica existente o iniciar la tarea de depuración (tasks.json) para inicio del host de funcy aparece este mensaje, siga estos pasos para resolver el problema:
Agregue la ruta de acceso binaria dotnet a la variable PATH de entorno.
En la barra de tareas de Windows, en el cuadro de búsqueda, escriba variables de entorno, y seleccione Editar las variables de entorno del sistema.
En el cuadro Propiedades del sistema de, en la pestaña Avanzadas, seleccione Variables de entorno.
En el cuadro Variables de entorno, en las variables de usuario para <lista de nombre de usuario>, seleccione PATHy, a continuación, seleccione Editar.
Si el siguiente valor no aparece en la lista, seleccione Nuevo para agregar el siguiente valor:
C:\Users\<su nombre de usuario>\.azurelogicapps\dependencies\DotNetSDK
Cuando termine, elija Aceptar.
Cierre todas las ventanas de Visual Studio Code y vuelva a abrir el proyecto.
Si tiene problemas para instalar y validar dependencias binarias, por ejemplo:
- Problemas de permisos de Linux
- Aparece el siguiente error: <Archivo o ruta de acceso> no existe
- La validación se bloquea en <nombre de dependencia>.
Siga estos pasos para ejecutar de nuevo el comando Validar e instalar dependencias binarias:
En el menú Ver, seleccione Paleta de comandos.
Cuando aparezca la ventana de comandos, escriba y ejecute el comando Validar e instalar dependencias binarias.
Si no tiene instalado .NET Core 7 o una versión posterior, y abre un área de trabajo de Azure Logic Apps que contiene un proyecto de Azure Functions, recibirá el siguiente mensaje:
Hubo problemas al cargar el proyecto [nombre de función].csproj. Consulte el registro para obtener más información.
Este componente que falta no afecta al proyecto de Azure Functions, por lo que puede omitir este mensaje de forma segura.
Instalar cada dependencia por separado
Dependencia Descripción .NET SDK 6.x.x Incluye .NET Runtime 6.x.x, un requisito previo para el entorno de ejecución de Azure Logic Apps (Estándar). Azure Functions Core Tools, versión 4.x - Windows: use la versión de Microsoft Installer (MSI), que es func-cli-X.X.XXXX-x*.msi
.
- macOS
- Linux
Estas herramientas incluyen una versión del mismo runtime en el que se basa el runtime de Azure Functions, que la extensión Azure Logic Apps (estándar) usa en Visual Studio Code.
Si tiene una instalación anterior a estas versiones, desinstale primero esa versión o asegúrese de que la variable de entorno PATH apunta a la versión que descargue e instale.Node.js versión 16.x.x a menos que ya esté instalada una versión más reciente Necesario para habilitar la acción Operaciones de código insertado que ejecuta JavaScript.
Nota: Para Windows, descargue la versión MSI. Si usa la versión ZIP, tendrá que hacer que Node.js esté disponible manualmente. Para ello, será preciso que use una variable de entorno PATH para su sistema operativo.Si ya ha instalado la versión de la extensión Azure Logic Apps (Estándar) que instala automáticamente todas las dependencias (versión preliminar), omita este paso. De lo contrario, descargue e instale la extensión Azure Logic Apps (Estándar) para Visual Studio Code.
En Visual Studio Code, en la barra de herramientas izquierda, seleccione Extensiones.
En el cuadro de búsqueda de extensiones, escriba azure logic apps standard. En la lista de resultados, seleccione Azure Logic Apps (estándar) > Instalar.
Una vez finalizada la instalación, la extensión aparece en la lista Extensiones: Instaladas.
Sugerencia
Si la extensión no aparece en la lista de instaladas, pruebe a reiniciar Visual Studio Code.
Actualmente, puede tener instaladas las extensiones de Consumo (multiinquilino) y Estándar (un solo inquilino) al mismo tiempo. Las experiencias de desarrollo difieren entre sí de algunas maneras, pero la suscripción de Azure puede incluir los tipos de aplicaciones lógicas estándar y de consumo. En Visual Studio Code, la ventana de Azure muestra todas las aplicaciones lógicas implementadas y hospedadas en Azure en la suscripción de Azure, pero organiza las aplicaciones de las siguientes maneras:
Sección Logic Apps (Consumo): Todas las aplicaciones lógicas de consumo de la suscripción
Sección Recursos: todas las aplicaciones lógicas estándar de la suscripción. Anteriormente, estas aplicaciones lógicas aparecían en la sección Logic Apps (Estándar), que ahora se ha movido a la sección Recursos .
Para ejecutar localmente las acciones y los desencadenadores basados en webhook, como el desencadenador de webhook integrado de HTTP, en Visual Studio Code, debe configurar el reenvío de la dirección URL de devolución de llamada.
Si crea los recursos de la aplicación lógica con la configuración que admite el uso de Application Insights, puede habilitar opcionalmente el registro y el seguimiento de diagnósticos para el recurso de aplicación lógica. Puede hacerlo al crear la aplicación lógica o después de la implementación. Debe tener una instancia de Application Insights, pero puede crear este recurso con antelación, al crear la aplicación lógica o después de la implementación.
Instale o use una herramienta que pueda enviar solicitudes HTTP para probar la solución, por ejemplo:
- Visual Studio Code con una extensión de Visual Studio Marketplace
- Invoke-RestMethod de PowerShell
- Microsoft Edge: herramienta de consola de red
- Bruno
- curl
Precaución
En escenarios en los que tiene datos confidenciales, como credenciales, secretos, tokens de acceso, claves de API y otra información similar, asegúrese de usar una herramienta que proteja los datos con las características de seguridad necesarias, funcione sin conexión o localmente, no sincronice los datos en la nube y no requiera que inicie sesión en una cuenta en línea. De este modo, se reduce el riesgo de exponer datos confidenciales al público.
Configurar Visual Studio Code
Para asegurarse de que todas las extensiones estén instaladas correctamente, vuelva a cargar o reinicie Visual Studio Code.
Confirme que Visual Studio Code debe encontrar e instalar automáticamente las actualizaciones de extensión para que todas sus extensiones obtengan las actualizaciones más recientes. De lo contrario, tendrá que desinstalar manualmente la versión obsoleta e instalar la versión más reciente.
En el menú Archivo, vaya a Preferencias > Configuración.
En la pestaña Usuario, vaya a Características > Extensiones.
Confirme que la opciónComprobar actualizaciones automáticas está seleccionada y que la opción Actualización automática está establecida en Todas las extensiones.
Confirme que la configuración Estándar de Azure Logic Apps: Project Runtime para la extensión Azure Logic Apps (Estándar) está establecida para la versión ~4:
Nota
Esta versión es necesaria para utilizar las acciones de Operaciones de código en línea.
En el menú Archivo, vaya a Preferencias > Configuración.
En la pestaña Usuario, vaya a > Extensiones > Azure Logic Apps (estándar).
Por ejemplo, el valor Azure Logic Apps estándar: Project Runtime se puede buscar aquí, pero también se puede usar el cuadro de búsqueda para buscar otros valores.
Conexión a la cuenta de Azure
En la barra de actividad de Visual Studio Code, seleccione el icono de Azure.
En la ventana de Azure, en Recursos, seleccione Iniciar sesión en Azure. Cuando aparezca la página de autenticación de Visual Studio Code, inicie sesión con su cuenta de Azure.
Tras iniciar sesión, la ventana de Azure muestra las suscripciones de Azure asociadas a su cuenta de Azure. Si no aparecen las suscripciones esperadas o si desea que el panel muestre solo suscripciones específicas, siga estos pasos:
En la lista de suscripciones, mueva el puntero situado junto a la primera suscripción hasta que aparezca el botón Seleccionar suscripciones (icono de filtro). Seleccione el icono de filtro.
O bien, en la barra de estado de Visual Studio Code, seleccione la cuenta de Azure.
Cuando aparezca otra lista suscripciones, seleccione las suscripciones que desee y, a continuación, asegúrese de seleccionar Aceptar.
Creación de un proyecto local
Para poder crear una aplicación lógica, antes debe crear un proyecto local, con el fin de que pueda administrar, ejecutar e implementar la aplicación lógica desde Visual Studio Code. El proyecto subyacente es similar a un proyecto de Azure Functions, también conocido como proyecto de aplicación de funciones; pero estos tipos de proyecto son independientes entre sí, por lo que las aplicaciones lógicas y las aplicaciones de función no pueden existir en el mismo proyecto.
En el equipo, cree una carpeta local vacía que se usará para el proyecto que se creará posteriormente en Visual Studio Code.
En Visual Studio Code, cierre todas las carpetas abiertas.
En la ventana de Azure, en la barra de herramientas de la sección Área de trabajo, en el menú Azure Logic Apps, seleccione Crear nuevo proyecto.
Si el Firewall de Windows Defender le pide que conceda acceso a la red para
Code.exe
, que es Visual Studio Code y, parafunc.exe
, que es el Azure Functions Core Tools, seleccione Redes privadas, como una red doméstica o del trabajo > Permitir acceso.Vaya a la ubicación en la que creó la carpeta del proyecto, seleccione esa carpeta y continúe.
En la lista de plantillas que aparece, seleccione Stateful Workflow (Flujo de trabajo con estado) o Stateless Workflow (Flujo de trabajo sin estado). En este ejemplo se selecciona Stateful Workflow (Flujo de trabajo con estado).
Proporcione un nombre para el flujo de trabajo y presione ENTRAR. Este ejemplo usa Stateful-Workflow como nombre.
Nota:
Es posible que reciba un error denominado azureLogicAppsStandard.createNewProject con el mensaje de error No se puede escribir en la configuración del área de trabajo porque azureFunctions.suppressProject no es una configuración registrada. Si lo hace, intente instalar la extensión de Azure Functions para Visual Studio Code, ya sea directamente desde Visual Studio Marketplace o desde dentro de Visual Studio Code.
Si Visual Studio Code le pide que abra el proyecto en el Visual Studio Code actual o en una nueva ventana de Visual Studio Code, seleccione Abrir en la ventana actual. De lo contrario, seleccione Abrir en nueva ventana.
Visual Studio Code termina de crear el proyecto.
En la barra de actividades de Visual Studio, abra el panel Explorador, si no está ya abierto.
En el panel del explorador se muestra el proyecto, que ahora incluye los archivos de proyecto generados automáticamente. Por ejemplo, el proyecto tiene una carpeta que muestra el nombre del flujo de trabajo. Dentro de esta carpeta, el archivo workflow.json contiene la definición JSON subyacente del flujo de trabajo.
En Visual Studio Code, el proyecto de aplicación lógica tiene uno de los siguientes tipos:
- Basado en paquete de extensiones (Node.js), que es el tipo predeterminado.
- Basado en paquetes NuGet (.NET), que se puede convertir desde el tipo predeterminado.
En función de estos tipos, el proyecto incluye carpetas y archivos ligeramente diferentes. Un proyecto basado en NuGet incluye una carpeta .bin que contiene paquetes y otros archivos de biblioteca. Un proyecto basado en paquetes no incluye la carpeta .bin ni otros archivos. Algunos escenarios requieren un proyecto basado en NuGet para que la aplicación se ejecute, por ejemplo, si quiere desarrollar y ejecutar operaciones integradas personalizadas. Para obtener más información sobre cómo convertir el proyecto para que use NuGet, consulte Habilitación de la creación de conectores integrados.
Para el proyecto basado en paquetes predeterminado, el proyecto tiene una estructura de carpetas y archivos similar a la del ejemplo siguiente:
MyBundleBasedLogicAppProjectName | .vscode | Artifacts || Maps ||| MapName1 ||| ... || Schemas ||| SchemaName1 ||| ... | WorkflowName1 || workflow.json || ... | WorkflowName2 || workflow.json || ... | workflow-designtime | .funcignore | connections.json | host.json | local.settings.json
En el nivel raíz del proyecto, puede encontrar los siguientes archivos y carpetas con otros elementos:
Nombre Archivo o carpeta Descripción .vscode Carpeta Contiene archivos de configuración relacionados con Visual Studio Code, como extensions.json, launch.json, settings.json y tasks.json. Artefactos Carpeta Contiene artefactos de la cuenta de integración que se definen y usan en los flujos de trabajo que admiten escenarios de negocio a negocio (B2B). Por ejemplo, la estructura de ejemplo incluye mapas y esquemas para operaciones de transformación y validación de XML. <WorkflowName> Carpeta En cada flujo de trabajo, la carpeta <WorkflowName> incluye un archivo workflow.json, que contiene la definición JSON subyacente de ese flujo de trabajo. workflow-designtime Carpeta Contiene archivos de configuración relacionados con el entorno de desarrollo. .funcignore Archivo Contiene información relacionada con la instancia de Azure Functions Core Tools instalada. connections.json Archivo Contiene los metadatos, los puntos de conexión y las claves de las conexiones administradas y de Azure Functions que se usan en los flujos de trabajo.
Importante: Para usar diferentes conexiones y funciones en cada entorno, asegúrese de parametrizar este archivo connections.json y de actualizar los puntos de conexión.host.json Archivo Contiene valores y opciones de configuración específicos del runtime, como, por ejemplo, los límites predeterminados para la plataforma de Azure Logic Apps de un solo inquilino, las aplicaciones lógicas, los flujos de trabajo, los desencadenadores y las acciones. En el nivel raíz del proyecto de aplicación lógica, el archivo de metadatos host.json contiene los valores y las opciones de configuración predeterminados que todos los flujos de trabajo de la misma aplicación lógica usan mientras se ejecutan, ya sea localmente o en Azure.
Nota: Al crear la aplicación lógica, Visual Studio Code crea un archivo host.snapshot.*.json de copia de seguridad en el contenedor de almacenamiento. Si elimina la aplicación lógica, este archivo de copia de seguridad no se elimina. Si crea otra aplicación lógica con el mismo nombre, se crea otro archivo de instantánea. Solo puede tener 10 instantáneas para la misma aplicación lógica. Si se supera este número, verá el siguiente error:Microsoft.Azure.WebJobs.Script.WebHost: Repository has more than 10 non-decryptable secrets backups (host))
Para resolver este error, elimine los archivos de instantáneas adicionales del contenedor de almacenamiento.local.settings.json Archivo Contiene la configuración de la aplicación, las cadenas de conexión y otras configuraciones que los flujos de trabajo usan mientras se ejecutan localmente. En otras palabras, esta configuración y estos valores solo se aplican cuando se ejecutan los proyectos en el entorno de desarrollo local. Durante la implementación en Azure, el archivo y la configuración se omiten y no se incluyen con la implementación.
Este archivo almacena valores y opciones de configuración como variables de entorno local que las herramientas de desarrollo local usan como valoresappSettings
. Puede llamar a estas variables de entorno y hacer referencia a ellas tanto en tiempo de ejecución como en tiempo de implementación mediante la configuración de la aplicación y los parámetros.
Importante: el archivo local.settings.json puede contener secretos, por lo que debe asegurarse de excluir también este archivo del control de código fuente del proyecto.Nota:
La configuración de la aplicación FUNCTIONS_WORKER_RUNTIME es necesaria para la aplicación lógica estándar y el valor se estableció anteriormente en nodo. Sin embargo, el valor necesario ahora es dotnet para todas las aplicaciones lógicas estándar implementadas nuevas y existentes. Este cambio en el valor no debe afectar al tiempo de ejecución del flujo de trabajo, por lo que 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 es necesaria para la aplicación lógica estándar y el valor debe ser workflowApp. Como sea, en algunos escenarios, es posible que falte esta configuración de aplicación, por ejemplo, debido a la automatización mediante plantillas de Azure Resource Manager u otros escenarios en los que no se incluye la configuración. Si ciertas acciones no funcionan, como la acción Ejecutar código JavaScript o si el flujo de trabajo deja de funcionar, compruebe que la configuración de la aplicación APP_KIND existe y está establecida enworkflowApp. Para más información, consulte la configuración de la aplicación APP_KIND.
Conversión del proyecto a basado en paquetes NuGet (.NET)
De manera predeterminada, Visual Studio Code crea un proyecto de aplicación lógica basado en la agrupación de extensiones (Node.js), no basado en paquetes NuGet (.NET). Si necesita un proyecto de aplicación lógica basado en paquetes NuGet (.NET), por ejemplo, para habilitar la creación de conectores integrados, debe convertir el proyecto de basado en paquetes de extensión (Node.js) a basado en paquetes NuGet (.NET).
Importante
Esta acción es una operación unidireccional que no se puede deshacer.
En el panel Explorador, en la raíz del proyecto, mueva el puntero del ratón sobre cualquier área en blanco debajo de todos los demás archivos y carpetas, abra el menú contextual y seleccione Convertir en proyecto de aplicación lógica basada en NuGet.
Cuando se le pida, confirme la conversión del proyecto.
Habilitación de la creación de conectores integrados
Puede crear sus propios conectores integrados para cualquier servicio que necesite mediante el marco de extensibilidad de Azure Logic Apps de un único inquilino. De forma similar a los conectores integrados, como Azure Service Bus y SQL Server, estos conectores proporcionan mayor rendimiento, baja latencia y conectividad local, y se ejecutan de forma nativa en el mismo proceso que el runtime de Azure Logic Apps de un único inquilino.
La funcionalidad de creación solo está disponible actualmente en Visual Studio Code, pero no está habilitada de manera predeterminada. Para crear estos conectores, siga estos pasos:
Si aún no lo ha hecho, convierta el proyecto de basado en paquetes de extensión (Node.js) a basado en paquetes NuGet (.NET).
Revise y siga los pasos descritos en el artículo Azure Logic Apps que se ejecutan en cualquier lugar: Extensibilidad integrada del conector.
Adición de artefactos personalizados al proyecto
En un flujo de trabajo de aplicación lógica, algunos conectores tienen dependencias en artefactos como mapas, esquemas o ensamblados. En Visual Studio Code, puede cargar estos artefactos en su proyecto de aplicación lógica, de forma similar a cómo puede cargar estos artefactos en Azure Portal mediante el menú de recursos de la aplicación lógica en Artifacts, por ejemplo:
Adición de asignaciones al proyecto
Para agregar mapas al proyecto, en la jerarquía del proyecto, expanda Artifacts>Mapas, que es la carpeta donde puede poner los mapas.
Adición de esquemas al proyecto
Para agregar mapas al proyecto, en la jerarquía del proyecto, expanda Artifacts>Esquemas, que es la carpeta donde puede poner los esquemas.
Adición de ensamblados al proyecto
Una aplicación lógica estándar puede usar o hacer referencia a tipos específicos de ensamblados, que puede cargar en el proyecto en Visual Studio Code. Sin embargo, debe agregarlos a carpetas específicas del proyecto. En la tabla siguiente se proporciona más información sobre cada tipo de ensamblado y dónde se colocan exactamente en el proyecto.
Tipo de ensamblado | Descripción |
---|---|
Ensamblado cliente/SDK (.NET Framework) | Este tipo de ensamblado proporciona almacenamiento e implementación de cliente y SDK personalizado para .NET Framework. Por ejemplo, el conector integrado de SAP usa estos ensamblados para cargar los archivos DLL no redistribuibles de SAP NCo. Asegúrese de agregar estos ensamblados a la siguiente carpeta: \lib\builtinOperationSdks\net472 |
Ensamblado cliente/SDK (Java) | Este tipo de ensamblado proporciona almacenamiento e implementación del SDK personalizado para Java. Por ejemplo, el conector integrado JDBC usa estos archivos JAR para buscar controladores JDBC para bases de datos relacionales personalizadas (RDB). Asegúrese de agregar estos ensamblados a la siguiente carpeta: \lib\builtinOperationSdks\JAR |
Ensamblado personalizado (.NET Framework) | Este tipo de ensamblado proporciona almacenamiento e implementación de archivos DLL personalizados. Por ejemplo, la operación Transformar XML utiliza estos ensamblados para las funciones de transformación personalizadas necesarias durante la transformación XML. Asegúrese de agregar estos ensamblados a la siguiente carpeta: \lib\custom\net472 |
En la imagen siguiente se muestra dónde colocar cada tipo de ensamblado en el proyecto:
Para más información sobre cómo cargar ensamblados en el recurso de aplicación lógica en Azure Portal, consulte Adición de ensamblados a los que se hace referencia.
Migrar proyectos basados en NuGet para usar ensamblados "lib\*"
Importante
Esta tarea solo es necesaria para proyectos de aplicaciones lógicas basadas en NuGet.
Si creó el proyecto de aplicación lógica cuando la compatibilidad con ensamblados no estaba disponible para los flujos de trabajo de la aplicación lógica estándar, puede agregar las siguientes líneas al archivo <project-name>.csproj para trabajar con proyectos que usan ensamblados:
<ItemGroup>
<LibDirectory Include="$(MSBuildProjectDirectory)\lib\**\*"/>
</ItemGroup>
<Target Name="CopyDynamicLibraries" AfterTargets="_GenerateFunctionsExtensionsMetadataPostPublish">
<Copy SourceFiles="@(LibDirectory)" DestinationFiles="@(LibDirectory->'$(MSBuildProjectDirectory)\$(PublishUrl)\lib\%(RecursiveDir)%(Filename)%(Extension)')"/>
</Target>
Importante
Para un proyecto que se ejecuta en Linux o MacOS, asegúrese de actualizar el separador de directorios. Por ejemplo, revise la siguiente imagen que muestra el código anterior agregado al archivo <project-name>.csproj.
Apertura del archivo de definición del flujo de trabajo en el diseñador
Expanda la carpeta del proyecto del flujo de trabajo, denominada Stateful-Workflow en este ejemplo, y abra el archivo workflow.json .
Abra el menú contextual del archivo workflow.json y seleccione Abrir en el diseñador.
Una vez que se abra la lista Habilitar conectores en Azure, seleccione Usar conectores de Azure, que se aplica a todos los conectores administrados o "compartidos", que se hospedan y ejecutan en Azure frente a los conectores integrados, nativos o "en la aplicación", que se ejecutan directamente con el entorno de ejecución de Azure Logic Apps.
Nota
Actualmente, los flujos de trabajo sin estado solo son compatibles con acciones de conectores administrados, no con desencadenadores. Aunque tiene la opción de habilitar conectores en Azure para el flujo de trabajo sin estado, el diseñador no muestra ningún desencadenador de conector administrado para que pueda seleccionarlo.
Cuando se abra la lista Seleccionar suscripción, seleccione la suscripción de Azure que desea usar para su proyecto de aplicación lógica.
Cuando se abra la lista de grupos de recursos, seleccione Crear nuevo grupo de recursos.
Proporcione un nombre para el grupo de recursos y presione ENTRAR. En este ejemplo se usa Fabrikam-Workflows-RG.
En la lista de ubicaciones, seleccione la región de Azure que se usará al crear el grupo de recursos y los recursos. En este ejemplo se usa Centro-oeste de EE. UU.
Después de realizar este paso, Visual Studio Code abre el diseñador de flujos de trabajo.
Nota
Cuando Visual Studio Code inicia la API en tiempo de diseño del flujo de trabajo, puede que reciba un mensaje que indica que el inicio puede tardar unos segundos. Puede pasar por alto este mensaje o seleccionar Aceptar.
Si el diseñador no se abre, consulte en la sección de solución de problemas, el apartado en que se indica qué hacer si el diseñador no se abre.
Una vez que aparezca el diseñador, aparece el mensaje Agregar un desencadenador en el diseñador.
En el diseñador, seleccione Agregar un desencadenador, que abre el panel Agregar un desencadenador y una galería que muestra todos los conectores que tienen desencadenadores que puede seleccionar.
A continuación, agregue un desencadenador y acciones al flujo de trabajo.
Adición de un desencadenador y acciones
Después de abrir un flujo de trabajo en blanco en el diseñador, aparece el mensaje Agregar un desencadenador en el diseñador. Ahora puede empezar a crear el flujo de trabajo agregando un desencadenador y acciones.
Importante
Para ejecutar localmente un flujo de trabajo que usa un desencadenador o acciones basados en webhook, como el desencadenador o acción de webhook de HTTP integrado, debe habilitar esta funcionalidad mediante la configuración del reenvío de la dirección URL de devolución de llamada del webhook.
El flujo de trabajo de este ejemplo usa este desencadenador y estas acciones:
El desencadenador del conector integrado de solicitudes llamado Cuando se recibe una solicitud HTTP, que puede recibir llamadas o solicitudes entrantes y crea un punto de conexión al que pueden llamar otros servicios o flujos de trabajo de aplicaciones lógicas.
La acción del conector administrado de Office 365 Outlook denominada Enviar un correo electrónico. Para seguir esta guía paso a paso, necesita una cuenta de correo electrónico de Outlook Office 365. Si tiene una cuenta de correo electrónico compatible con un conector diferente, puede usar ese conector, pero la experiencia del usuario del conector variará de los pasos descritos en este ejemplo.
La acción de conector integrado de solicitudes llamada Respuesta, que se usa para enviar una respuesta y devolver los datos a la persona que llama.
Adición del desencadenador Request
En el diseñador de flujos de trabajo, en el panel Agregar un desencadenador , abra la lista Runtime y seleccione En la aplicación para ver solo los desencadenadores de conector integrados disponibles.
Busque el desencadenador de Solicitudes denominado Cuando se recibe una solicitud HTTP mediante el cuadro de búsqueda y agregue ese desencadenador al flujo de trabajo. Para más información, consulte Compilación de un flujo de trabajo con un desencadenador y acciones.
Cuando el desencadenador aparece en el diseñador, el panel de información del desencadenador se abre y muestra los parámetros del desencadenador, la configuración y otras tareas relacionadas.
Sugerencia
Si el panel de información no aparece, asegúrese de que el desencadenador esté seleccionado en el diseñador.
Guarde el flujo de trabajo. En la barra de herramientas del diseñador, seleccione Save (Guardar).
Si necesita eliminar un elemento del diseñador, siga estos pasos para eliminar elementos del diseñador.
Adición de la acción Office 365 Outlook
En el diseñador, bajo el desencadenador Solicitud, seleccione el signo más (+) >Agregar una acción.
En el panel Agregar una acción que se abre, en la lista Tiempo de ejecución , seleccione Compartido para que solo vea las acciones del conector administrado disponibles.
Busque la acción del conector administrado de Outlook Office 365 denominada Enviar un correo electrónico (V2) mediante el cuadro de búsqueda y agregue esa acción al flujo de trabajo. Para más información, consulte Compilación de un flujo de trabajo con un desencadenador y acciones.
Cuando se abra el panel de autenticación de la acción, seleccione Iniciar sesión para crear una conexión con su cuenta de correo electrónico.
Siga las indicaciones subsiguientes para seleccionar su cuenta, permitir el acceso y permitir el regreso a Visual Studio Code.
Nota
Si transcurre demasiado tiempo antes de completar las solicitudes, el proceso de autenticación agota el tiempo de espera y se produce un error. En este caso, vuelva al diseñador e intente iniciar sesión de nuevo para crear la conexión.
Cuando aparezca el símbolo del sistema de Microsoft, seleccione la cuenta de usuario para Office 365 Outlook y seleccione Permitir acceso.
Cuando Azure Logic Apps pida que abra un vínculo de Visual Studio Code, seleccione Abrir.
Cuando Visual Studio Code le pida que abra Microsoft Azure Tools, seleccione Abrir.
Sugerencia
Para omitir estos mensajes futuros, seleccione las siguientes opciones cuando aparezcan las indicaciones asociadas:
Permiso para abrir el vínculo para Visual Studio Code: seleccione Permitir siempre a logic-apis-westcentralus.consent.azure-apim.net abrir vínculos de este tipo en la aplicación asociada. Este dominio cambia en función de la región de Azure que seleccionó para el recurso de la aplicación lógica.
Permiso para abrir Microsoft Azure Tools: seleccione No volver a preguntar para esta extensión.
Después de que Visual Studio Code cree la conexión, algunos conectores muestran el mensaje La conexión solo será válida durante {n} días. Este límite de tiempo se aplica solo a la duración mientras crea el flujo de trabajo de su aplicación lógica en Visual Studio Code. Después de la implementación, ya no se aplica este límite porque su flujo de trabajo puede autenticarse durante el tiempo de ejecución mediante su identidad administrada asignada por el sistema habilitada automáticamente. Esta identidad administrada se diferencia de las credenciales de autenticación o de la cadena de conexión que se usan al crear una conexión. Si deshabilita esta identidad administrada asignada por el sistema, las conexiones no funcionarán durante el tiempo de ejecución.
En el diseñador, si la acción Enviar correo electrónico no aparece seleccionada, seleccione esa acción.
En el panel de información de la acción, en la pestaña Parámetros, proporcione la información necesaria para la acción, por ejemplo:
Propiedad Necesario Valor Descripción To Sí <your-email-address> El destinatario del correo electrónico, que puede ser su dirección de correo electrónico con fines de prueba. En este ejemplo se usa la dirección de correo electrónico ficticia sophia.owen@fabrikam.com. Subject Sí Un correo electrónico del flujo de trabajo de ejemplo El asunto del correo electrónico Cuerpo Sí Hola desde el flujo de trabajo de ejemplo. El contenido del cuerpo del correo electrónico. Nota
Si realiza algún cambio en la pestaña Pruebas, asegúrese de seleccionar Guardar para confirmar esos cambios antes de cambiar de pestaña o de cambiar el foco al diseñador. De lo contrario, Visual Studio Code no conservará los cambios.
Guarde el flujo de trabajo. En el diseñador, seleccione Guardar.
Habilitación de webhooks que se ejecutan localmente
Cuando se usa un desencadenador o una acción basados en webhook, como Webhook de HTTP, con un flujo de trabajo de aplicación lógica que se ejecuta en Azure, el runtime de Azure Logic Apps se suscribe al punto de conexión de servicio mediante la generación y el registro de una dirección URL de devolución de llamada con ese punto de conexión. Después, el desencadenador o la acción espera a que el punto de conexión de servicio llame a la dirección URL. Sin embargo, cuando se trabaja en Visual Studio Code, la dirección URL de devolución de llamada generada comienza por http://localhost:7071/...
. Esta dirección URL es para el servidor localhost, que es privado, por lo que el punto de conexión de servicio no puede llamar a esta dirección URL.
Para ejecutar localmente las acciones y los desencadenadores basados en webhook en Visual Studio Code, debe configurar una dirección URL pública que exponga el servidor localhost y reenvíe de forma segura las llamadas desde el punto de conexión de servicio a la dirección URL de devolución de llamada del webhook. Puede usar un servicio de reenvío y una herramienta como ngrok, que abre un túnel HTTP en el puerto localhost, o puede usar su propia herramienta equivalente.
Configuración del reenvío de llamadas con ngrok
Vaya alsitio web dengrok. Regístrese para obtener una cuenta nueva o inicie sesión en su cuenta, si ya tiene una.
Obtenga el token de autenticación personal, que el cliente de ngrok necesita para conectarse y autentique el acceso a su cuenta.
Para buscar la página del token de autenticación, en el menú del panel de la cuenta, expanda Autenticación, y seleccione Su Authtoken.
En el cuadro Your Authtoken (Su Authtoken), copie el token en una ubicación segura.
En la página de descargas de ngrok o el panel de la cuenta, descargue la versión de ngrok que desee y extraiga el archivo .zip. Para obtener más información, consulte Paso 1: Descomprima para la instalación.
En el equipo, abra la herramienta del símbolo del sistema. Desplácese hasta la ubicación en que se encuentra el archivo ngrok.exe.
Conecte el cliente de ngrok a su cuenta de ngrok ejecutando el siguiente comando. Para más información, consulte Paso 2: Conecte su cuenta.
ngrok authtoken <your_auth_token>
Abra el túnel HTTP en el puerto localhost 7071 ejecutando el siguiente comando. Para obtener más información, consulte el Paso 3: Actívelo.
ngrok http 7071
En la salida, busque la línea siguiente:
http://<domain>.ngrok.io -> http://localhost:7071
Copie y guarde la dirección URL que tiene este formato:
http://<domain>.ngrok.io
Configuración de la dirección URL de reenvío en la configuración de la aplicación
En Visual Studio Code, en el diseñador, agregue el desencadenador o acción basado en webhook que desea usar.
Este ejemplo continúa con el desencadenador HTTP + Webhook.
Cuando aparezca el mensaje en que se solicita la ubicación del punto de conexión del host, escriba la dirección URL de reenvío (redireccionamiento) que creó anteriormente.
Nota
Si se ignora el mensaje, aparecerá una advertencia, en la que se indica que se debe especificar la dirección URL de reenvío, así que seleccione Configurar y escriba la dirección URL. Después de este paso, el mensaje no aparece en las acciones o desencadenadores de webhook que pueda agregar posteriormente.
Para que el mensaje aparezca, en el nivel raíz del proyecto, abra el menú contextual del archivo local.settings.json y seleccione Configure Webhook Redirect Endpoint (Configurar punto de conexión de redireccionamiento de webhook). Ahora aparece el símbolo del sistema para que pueda especificar la dirección URL de reenvío.
Visual Studio Code agrega la dirección URL de reenvío al archivo local.settings.json de la carpeta raíz del proyecto. En el objeto
Values
, ahora aparece la propiedad denominadaWorkflows.WebhookRedirectHostUri
y se establece en la dirección URL de reenvío, por ejemplo:{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "dotnet", "FUNCTIONS_V2_COMPATIBILITY_MODE": "true", <...> "Workflows.WebhookRedirectHostUri": "http://xxxXXXXxxxXXX.ngrok.io", <...> } }
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 la aplicación FUNCTIONS_WORKER_RUNTIME.
La primera vez que se inicia una sesión de depuración local o se ejecuta el flujo de trabajo sin depurar, el runtime de Azure Logic Apps registra el flujo de trabajo con el punto de conexión de servicio y se suscribe a ese punto de conexión para notificar las operaciones de webhook. La próxima vez que se ejecute el flujo de trabajo, el tiempo de ejecución no se registrará ni se volverá a suscribir porque el registro de la suscripción ya existe en el almacenamiento local.
Al detener la sesión de depuración para una ejecución de flujo de trabajo que usa desencadenadores o acciones basados en webhook de ejecución local, los registros de suscripción existentes no se eliminan. Para anular el registro, tiene que quitar o eliminar manualmente los registros de suscripciones.
Nota
Después de que el flujo de trabajo empiece a ejecutarse, la ventana de terminal podría mostrar errores como el de este ejemplo:
message='Http request failed with unhandled exception of type 'InvalidOperationException' and message: 'System.InvalidOperationException: Synchronous operations are disallowed. Call ReadAsync or set AllowSynchronousIO to true instead.'
En este caso, abra el archivo local.settings.json en la carpeta raíz del proyecto y asegúrese de que la propiedad está establecida en true
:
"FUNCTIONS_V2_COMPATIBILITY_MODE": "true"
Administración de puntos de interrupción para la depuración
Antes de ejecutar y probar el flujo de trabajo de la aplicación lógica mediante el inicio de una sesión de depuración, puede establecer puntos de interrupción dentro del archivo workflow.json de cada flujo de trabajo. No es necesario realizar ninguna otra configuración.
En la actualidad, los puntos de interrupción solo se admiten en las acciones, no en los desencadenadores. Cada definición de acción tiene estas ubicaciones de puntos de interrupción:
Establezca el punto de interrupción inicial en la línea que muestra el nombre de la acción. Cuando este punto de interrupción llega durante la sesión de depuración, puede revisar las entradas de la acción antes de que se evalúen.
Establezca el punto de interrupción inicial en la línea que muestra la llave de cierre ( } ) de la acción. Cuando este punto de interrupción llega durante la sesión de depuración, puede revisar los resultados de la acción antes de que esta termine su ejecución.
Para agregar un punto de interrupción, siga estos pasos:
Abra el archivo workflow.json para el flujo de trabajo que quiere depurar.
En la línea donde quiere establecer el punto de interrupción, en la columna izquierda, seleccione dentro de esa columna. Para quitar el punto de interrupción, seleccione ese punto de interrupción.
Al iniciar la sesión de depuración, la vista de ejecución aparece en el lado izquierdo de la ventana de código, mientras que la barra de herramientas de depuración aparece cerca de la parte superior.
Nota
Si la vista de ejecución no aparece automáticamente, presione Ctrl+Mayús+D.
Para revisar la información disponible cuando se alcanza un punto de interrupción, en la vista de ejecución, examine el panel Variables.
Para continuar con la ejecución del flujo de trabajo, en la barra de herramientas de depuración, seleccione Continuar (botón de reproducción).
Puede agregar y quitar puntos de interrupción en cualquier momento durante la ejecución del flujo de trabajo. Sin embargo, si actualiza el archivo workflow.json después de que se inicie la ejecución, los puntos de interrupción no se actualizan automáticamente. Para actualizar los puntos de interrupción, reinicie la aplicación lógica.
Para obtener información general, consulte Puntos de interrupción: Visual Studio Code.
Ejecución, prueba y depuración locales
Para probar el flujo de trabajo de la aplicación lógica, siga estos pasos para iniciar una sesión de depuración y busque la dirección URL del punto de conexión creado por el desencadenador de solicitud. Necesitará esta dirección URL para poder enviar una solicitud a ese punto de conexión más adelante.
Para depurar un flujo de trabajo sin estado con mayor facilidad, puede habilitar el historial de ejecución para ese flujo de trabajo.
Si el emulador de Azurite ya se está ejecutando, continúe con el paso siguiente. De lo contrario, asegúrese de iniciar el emulador antes de ejecutar el flujo de trabajo:
En Visual Studio Code, desde el menú Vista, seleccione Paleta de comandos.
Una vez que aparezca la paleta de comandos, escriba Azurite: Start.
Para obtener más información sobre los comandos de Azurite, vea la documentación para la extensión Azurite en Visual Studio Code.
En la barra de actividad de Visual Studio Code, abra el menú Ejecutar y seleccione Iniciar depuración (F5).
Se abre la ventana Terminal para que pueda revisar la sesión de depuración.
Nota
Si aparece el error "Error exists after running preLaunchTask 'generateDebugSymbols'" (Se produce un error tras ejecutar preLaunchTask 'generateDebugSymbols), consulte la sección La sesión de depuración no se inicia.
Ahora, busque la URL de devolución de llamada para el punto de conexión en el desencadenador Solicitud.
Vuelva a abrir el panel del Explorador para que pueda ver el proyecto.
En el menú contextual del archivo workflow.json, seleccione Información general.
Busque el valor URL de devolución de llamadas, que tiene un aspecto similar a esta dirección URL para el desencadenador Solicitud de ejemplo:
http://localhost:7071/api/<workflow-name>/triggers/manual/invoke?api-version=2020-05-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=<shared-access-signature>
Copie y guarde el valor de la propiedad Dirección URL de devolución de llamada.
Para probar la dirección URL de devolución de llamada y desencadenar el flujo de trabajo, envíe una solicitud HTTP a la dirección URL, incluido el método que espera el desencadenador Solicitud mediante la herramienta de solicitud HTTP y sus instrucciones.
En este ejemplo se usa el método GET con la dirección URL copiada, que es similar al siguiente ejemplo:
GET http://localhost:7071/api/Stateful-Workflow/triggers/manual/invoke?api-version=2020-05-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=<shared-access-signature>
Cuando se activa el desencadenador, se ejecuta el flujo de trabajo de ejemplo y este envía un correo electrónico similar a este ejemplo:
En Visual Studio Code, vuelva a la página de información general del flujo de trabajo.
Si creó un flujo de trabajo con estado, después de que la solicitud que envió desencadene el flujo de trabajo, la página de información general mostrará el estado y el historial de ejecución del flujo de trabajo.
Sugerencia
Si el estado de ejecución no aparece, intente actualizar la página de información general seleccionando Actualizar. No se produce ninguna ejecución para un desencadenador que se omite debido a criterios que no se cumplen o si no se encuentra ningún dato.
En la tabla siguiente se muestran los posibles estados finales que cada ejecución de flujo de trabajo puede tener y mostrar en Visual Studio Code:
Estado de la ejecución Descripción Anulado La ejecución se ha detenido o no ha finalizado debido a problemas externos, por ejemplo, una interrupción del sistema o una suscripción de Azure vencida. Cancelado La ejecución se ha desencadenado y se ha iniciado, pero ha recibido una solicitud de cancelación. Erróneo Se ha producido un error en al menos una acción de la ejecución. No se ha configurado ninguna acción posterior en el flujo de trabajo para controlar el error. Ejecución La ejecución se ha desencadenado y está en curso, pero este estado también puede aparecer para una ejecución que está limitada debido a límites de acción o al plan de precios actual. Sugerencia: Si se configura un registro de diagnóstico, se puede obtener información sobre los eventos de limitación que se produzcan.
Correcto La ejecución se ha completado correctamente. Si se ha producido un error en alguna acción, se ha controlado mediante una acción posterior en el flujo de trabajo. Tiempo de espera agotado Se ha agotado el tiempo de espera de la ejecución porque la duración actual ha superado el límite de duración de la ejecución, que se controla mediante el valor Retención del historial de ejecución en días. La duración de una ejecución se calcula mediante su hora de inicio y su límite de duración en esa hora de inicio. Nota: Si la duración de la ejecución también supera el límite de retención del historial de ejecución actual, que también se controla mediante el valor Retención del historial de ejecución en días, la ejecución se borra del historial de ejecución mediante un trabajo de limpieza diaria. Con independencia de que la ejecución agote el tiempo de espera o se complete, el período de retención siempre se calcula mediante la hora de inicio de la ejecución y el límite de retención actual. Por tanto, si reduce el límite de duración de una ejecución en curso, se agota su tiempo de espera. Pero la ejecución se mantiene o se borra del historial de ejecución en función de si su duración supera el límite de retención.
En espera La ejecución no se ha iniciado o está en pausa, por ejemplo, debido a un flujo de trabajo anterior que sigue en ejecución. Para revisar los estados de cada paso de una ejecución específica, y las entradas y salidas del paso, seleccione el botón de puntos suspensivos (…) para esa ejecución y seleccione Mostrar la ejecución.
Visual Studio Code abre la vista de supervisión y muestra el estado de cada paso de la ejecución.
Nota
Si se produce un error en una ejecución y un paso en la vista de supervisión muestra el error 400 Solicitud incorrecta, este problema puede deberse a un nombre de acción o nombre de desencadenador más largo que hace que el identificador uniforme de recursos (URI) subyacente supere el límite de caracteres predeterminado. Para más información, vea "400 Solicitud errónea".
En la tabla siguiente se muestran los posibles estados que cada acción de flujo de trabajo puede tener y mostrar en Visual Studio Code:
Estado de la acción Descripción Anulado La acción se ha detenido o no ha finalizado debido a problemas externos; por ejemplo, una interrupción del sistema o una suscripción de Azure vencida. Cancelado La acción se estaba ejecutando, pero recibió una solicitud de cancelación. Erróneo Se produjo un error en la acción. Ejecución La acción se está ejecutando actualmente. Omitido La acción se omitió porque se produjo un error en la acción inmediatamente anterior. Una acción tiene una condición runAfter
que requiere que la acción anterior finalice correctamente antes de que se pueda ejecutar la acción actual.Correcto La acción se realizó correctamente. Se realizó correctamente con reintentos La acción se realizó correctamente, pero solo después de uno o varios reintentos. Para revisar el historial de reintentos en la vista de detalles del historial de ejecución, seleccione esa acción para que pueda ver las entradas y salidas. Tiempo de espera agotado La acción se detuvo debido al límite de tiempo de espera que especificó la configuración de la acción. En espera Se aplica a una acción de webhook que está esperando una solicitud entrante de un autor de llamada. Para revisar las entradas y salidas de cada paso, seleccione el paso que quiere inspeccionar. Para revisar aún más las entradas y salidas sin procesar para ese paso, seleccione Mostrar entradas sin procesar o Mostrar salidas sin procesar.
Para detener la sesión de depuración, en el menú Ejecutar, seleccione Detener depuración (Mayús+F5).
Devolución de respuesta
Cuando usted tiene un flujo de trabajo que se inicia con el desencadenador Solicitud, puede devolver una respuesta a la persona que envió una solicitud a su flujo de trabajo mediante el uso de la acción incorporada Solicitud denominada Respuesta.
En el diseñador de flujos de trabajo, en la acción Enviar un correo electrónico, seleccione el signo más (+) >Agregar una acción.
Se abrirá el panel Agregar una acción para que pueda seleccionar la siguiente acción.
En el panel Agregar una acción , en la lista Tiempo de ejecución, seleccione En la aplicación. Busque y agregue la acción Respuesta .
Cuando aparece la acción Respuesta en el diseñador, se abre automáticamente el panel de detalles de la acción.
En la pestaña Parámetros, proporcione la información necesaria para la función a la que quiere llamar.
Este ejemplo devuelve el valor del parámetro Cuerpo, que es la salida de la acción Enviar un correo electrónico.
Para el parámetro Cuerpo, seleccione dentro del cuadro de edición, y seleccione el icono del rayo, que abre la lista de contenido dinámico. Esta lista muestra los valores de salida disponibles del desencadenador anterior y las acciones del flujo de trabajo.
En la lista de contenido dinámico, en Enviar correo electrónico, seleccione Cuerpo.
Cuando haya terminado, la propiedad Cuerpo de la acción Respuesta estará establecida en el valor de salida Cuerpo de la acción Enviar correo electrónico.
En el diseñador, seleccione Guardar.
Nueva comprobación de la aplicación lógica
Después de realizar actualizaciones en la aplicación lógica, puede ejecutar otra prueba volviendo a ejecutar el depurador en Visual Studio y enviando otra solicitud para desencadenar la aplicación lógica actualizada, de forma similar a los pasos descritos en Ejecución, prueba y depuración locales.
En la barra de actividad de Visual Studio Code, abra el menú Ejecutar y seleccione Iniciar depuración (F5).
En Postman o en la herramienta para crear y enviar solicitudes, envíe otra solicitud para desencadenar el flujo de trabajo.
Si ha creado un flujo de trabajo con estado, en la página información general del flujo de trabajo, compruebe el estado de la ejecución más reciente. Para ver los estados, las entradas y las salidas de cada paso en esa ejecución, seleccione el botón de puntos suspensivos (…) para esa ejecución y seleccione Mostrar la ejecución.
Por ejemplo, este es el estado paso a paso de una ejecución después de que se haya actualizado el flujo de trabajo de ejemplo con la acción Respuesta.
Para detener la sesión de depuración, en el menú Ejecutar, seleccione Detener depuración (Mayús+F5).
Búsqueda de nombres de dominio para el acceso al firewall
Antes de implementar y ejecutar el flujo de trabajo de la aplicación lógica en Azure Portal, si su entorno tiene estrictos requisitos de red o firewalls que limitan el tráfico, debe configurar los permisos para las conexiones de desencadenador o acción que existan en el flujo de trabajo.
Para buscar los nombres de dominio completos (FQDN) de estas conexiones, siga estos pasos:
En el proyecto de la aplicación lógica, abra el archivo connections.json, que se crea después de agregar el primer desencadenador o acción basado en conexión al flujo de trabajo, y busque el objeto
managedApiConnections
.Para cada conexión que ha creado, copie y guarde el valor de la propiedad
connectionRuntimeUrl
en un lugar seguro para que pueda configurar el firewall con esta información.Este archivo connections.json de ejemplo contiene dos conexiones, una conexión AS2 y una conexión de Office 365, con estos valores de
connectionRuntimeUrl
:AS2:
"connectionRuntimeUrl": https://9d51d1ffc9f77572.00.common.logic-{Azure-region}.azure-apihub.net/apim/as2/11d3fec26c87435a80737460c85f42ba
Office 365:
"connectionRuntimeUrl": https://9d51d1ffc9f77572.00.common.logic-{Azure-region}.azure-apihub.net/apim/office365/668073340efe481192096ac27e7d467f
{ "managedApiConnections": { "as2": { "api": { "id": "/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region}/managedApis/as2" }, "connection": { "id": "/subscriptions/{Azure-subscription-ID}/resourceGroups/{Azure-resource-group}/providers/Microsoft.Web/connections/{connection-resource-name}" }, "connectionRuntimeUrl": https://9d51d1ffc9f77572.00.common.logic-{Azure-region}.azure-apihub.net/apim/as2/11d3fec26c87435a80737460c85f42ba, "authentication": { "type":"ManagedServiceIdentity" } }, "office365": { "api": { "id": "/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region}/managedApis/office365" }, "connection": { "id": "/subscriptions/{Azure-subscription-ID}/resourceGroups/{Azure-resource-group}/providers/Microsoft.Web/connections/{connection-resource-name}" }, "connectionRuntimeUrl": https://9d51d1ffc9f77572.00.common.logic-{Azure-region}.azure-apihub.net/apim/office365/668073340efe481192096ac27e7d467f, "authentication": { "type":"ManagedServiceIdentity" } } } }
Implementar en Azure
Desde Visual Studio Code, puede publicar directamente su proyecto en Azure para implementar su recurso de aplicación de lógica estándar. La aplicación lógica se puede publicar como un nuevo recurso, lo que crea automáticamente los recursos necesarios, como una cuenta de Azure Storage, similar a los requisitos de la aplicación de funciones. O bien, puede publicar la aplicación lógica en un recurso de aplicación lógica estándar implementado anteriormente, el cual sobrescribe dicha aplicación lógica.
La implementación para el tipo de recurso de aplicación lógica estándar requiere un plan de hospedaje y un plan de tarifa, los cuales debe seleccionar durante la implementación. Para más información, revise Planes de hospedaje y planes de tarifa.
Publicación en un nuevo recurso de aplicación lógica estándar
En la barra de actividades de Visual Studio Code, seleccione el icono de Azure para abrir la ventana de Azure.
En la ventana de Azure, en la barra de herramientas de la sección Área de trabajo, en el menú Azure Logic Apps, seleccione Implementar en la aplicación lógica.
Si se le solicita, seleccione la suscripción de Azure que se va a usar para la implementación de la aplicación lógica.
En la lista que abre Visual Studio Code, seleccione una de estas opciones:
- Create new Logic App (Standard) in Azure (Crear nueva instancia de Logic Apps [estándar] en Azure) (rápido)
- Create new Logic App (Standard) in Azure Advanced (Crear nueva instancia de Logic Apps [estándar] en Azure avanzado)
- Un recurso Logic Apps (estándar) implementado previamente, si existe.
Este ejemplo continúa con Create new Logic App (Standard) in Azure Advanced (Crear nueva instancia de Logic Apps [estándar] en Azure avanzado).
Para crear el nuevo recurso de aplicación lógica estándar, siga estos pasos:
Proporcione un nombre único globalmente para la nueva aplicación lógica, que es el nombre que se usará para el recurso Logic Apps (estándar) . En este ejemplo se usa Fabrikam-Workflows-App.
Seleccione un plan de hospedaje para la nueva aplicación lógica. Cree un nombre para el plan o seleccione un plan existente (solo planes de App Service basados en Windows). En este ejemplo se selecciona Crear nuevo plan de App Service.
Proporcione un nombre para el plan de hospedaje y, a continuación, seleccione un plan de tarifa para el plan seleccionado.
Para más información, revise Planes de hospedaje y planes de tarifa.
Para obtener un rendimiento óptimo, seleccione el mismo grupo de recursos que el proyecto para la implementación.
Nota
Aunque puede crear o usar un grupo de recursos diferente, esto podría afectar al rendimiento. Si crea o elige otro grupo de recursos, pero cancela después de que aparezca el mensaje de confirmación, la implementación también se cancelará.
Para flujos de trabajo con estado, seleccione Crear una nueva cuenta de almacenamiento o una cuenta de almacenamiento existente.
Si la configuración de la creación e implementación de la aplicación lógica admite el uso de Application Insights, puede habilitar opcionalmente el registro de diagnóstico y el seguimiento para la aplicación lógica. Puede hacerlo al implementar la aplicación lógica desde Visual Studio Code o después de la implementación. Debe tener una instancia de Application Insights, pero puede crear este recurso con antelación, al implementar la aplicación lógica o después de la implementación.
Para habilitar el registro y el seguimiento ahora, siga estos pasos:
Seleccione un recurso de Application Insights existente o Cree un nuevo recurso de Application Insights.
En Azure Portal, vaya al recurso de Application Insights.
En el menú del recurso, seleccione Información general. Busque y copie el valor de Clave de instrumentación.
En Visual Studio Code, en la carpeta raíz del proyecto, abra el archivo local.settings.json.
En el objeto
Values
, agregue la propiedadAPPINSIGHTS_INSTRUMENTATIONKEY
y establezca el valor en la clave de instrumentación, por ejemplo:{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "dotnet", "APPINSIGHTS_INSTRUMENTATIONKEY": <instrumentation-key> } }
Sugerencia
Puede comprobar si los nombres de los desencadenadores y las acciones aparecen correctamente en la instancia de Application Insights.
En Azure Portal, vaya al recurso de Application Insights.
En el menú de recursos, en Investigar, seleccione Asignación de aplicaciones.
Revise los nombres de las operaciones que aparecen en el mapa.
Algunas solicitudes entrantes de los desencadenadores integrados pueden aparecer como duplicadas en la asignación de aplicaciones. En lugar de usar el formato
WorkflowName.ActionName
, estos duplicados usan el nombre del flujo de trabajo como el nombre de la operación y se originan desde el host de Azure Functions.A continuación, si quiere puede ajustar el nivel de gravedad de los datos de seguimiento que la aplicación lógica recopila y envía a la instancia de Application Insights.
Cada vez que se produce un evento relacionado con el flujo de trabajo, como cuando se desencadena un flujo de trabajo o cuando se ejecuta una acción, el tiempo de ejecución emite varios seguimientos. Estos seguimientos cubren la duración del flujo de trabajo e incluyen, entre otros, los siguientes tipos de evento:
- Actividad del servicio, como inicio, detención y errores.
- Actividad de los trabajos y del distribuidor.
- Actividad de flujo de trabajo, como el desencadenador, la acción y la ejecución.
- Actividad de solicitud de almacenamiento, como correcto o error.
- Actividad de solicitud HTTP, como de entrada, salida, correcta y error.
- Todos los seguimientos de desarrollo, como los mensajes de depuración.
Cada tipo de evento se asigna a un nivel de gravedad. Por ejemplo, el nivel
Trace
captura los mensajes más detallados, mientras que el nivelInformation
captura la actividad general en el flujo de trabajo, como cuando la aplicación lógica, el flujo de trabajo, el desencadenador y las acciones se inician y detienen. En esta tabla se describen los niveles de gravedad y sus tipos de seguimiento:Nivel de gravedad Tipo de seguimiento Crítico Registros que describen un error irrecuperable en la aplicación lógica. Depurar Registros que puede usar para la investigación durante el desarrollo, por ejemplo, llamadas HTTP de entrada y salida. Error Registros que indican un error en la ejecución del flujo de trabajo, pero no un error general en la aplicación lógica. Información Registros que realizan el seguimiento de la actividad general en la aplicación lógica o el flujo de trabajo, por ejemplo: - Cuando se inicia y finaliza un desencadenador, una acción o una ejecución.
- Cuando se inicia o finaliza la aplicación lógica.Seguimiento Registros que contienen los mensajes más detallados, por ejemplo, las solicitudes de almacenamiento o la actividad del distribuidor, además de todos los mensajes relacionados con la actividad de ejecución del flujo de trabajo. Advertencia Registros que resaltan un estado anómalo en la aplicación lógica, pero no impiden su ejecución. Para establecer el nivel de gravedad, en el nivel raíz del proyecto, abra el archivo host.json y busque el objeto
logging
. Este objeto controla el filtrado de registros para todos los flujos de trabajo de la aplicación lógica y sigue el diseño de ASP.NET Core para el filtrado de tipo de registro.{ "version": "2.0", "logging": { "applicationInsights": { "samplingExcludedTypes": "Request", "samplingSettings": { "isEnabled": true } } } }
Si el objeto
logging
no contiene un objetologLevel
que incluya la propiedadHost.Triggers.Workflow
, agregue esos elementos. Establezca la propiedad en el nivel de gravedad para el tipo de seguimiento que desee, por ejemplo:{ "version": "2.0", "logging": { "applicationInsights": { "samplingExcludedTypes": "Request", "samplingSettings": { "isEnabled": true } }, "logLevel": { "Host.Triggers.Workflow": "Information" } } }
Cuando haya terminado con los pasos de implementación, Visual Studio Code comienza a crear e implementar los recursos necesarios para publicar la aplicación lógica.
Para revisar y supervisar el proceso de implementación, en el menú Ver, seleccione Salida. En la lista de la barra de herramientas de la ventana Salida, seleccione Azure Logic Apps.
Cuando Visual Studio Code termina de implementar la aplicación lógica en Azure, aparece el siguiente mensaje:
Enhorabuena, la aplicación lógica ahora está activa en Azure y habilitada de manera predeterminada.
Ahora puede obtener información sobre cómo realizar estas tareas:
Administrar la aplicación lógica implementada en Visual Studio Code o mediante Azure Portal.
Habilitar el historial de ejecución para flujos de trabajo sin estado.
Habilitar la vista de supervisión en Azure Portal para una aplicación lógica implementada.
Adición de un flujo de trabajo en blanco al proyecto
Puede tener varios flujos de trabajo en el proyecto de aplicación lógica. Para agregar un flujo de trabajo en blanco al proyecto, siga estos pasos:
En la barra de actividad de Visual Studio Code, seleccione el icono de Azure.
En la ventana de Azure, en la barra de herramientas de la sección Área de trabajo, en el menú Azure Logic Apps, seleccione Crear flujo de trabajo.
Seleccione el tipo de flujo de trabajo que desea agregar: Con estado o Sin estado.
Escriba un nombre para el flujo de trabajo.
Cuando haya terminado, aparecerá una nueva carpeta de flujo de trabajo en el proyecto junto con un archivo workflow.json para la definición de flujo de trabajo.
Administración de aplicaciones lógicas implementadas en Visual Studio Code
En Visual Studio Code, puede ver todas las aplicaciones lógicas implementadas en su suscripción de Azure, ya sean recursos de aplicación lógica de consumo o estándar, y seleccionar tareas que le ayuden a administrar dichas aplicaciones lógicas. Sin embargo, para acceder a ambos tipos de recursos, necesita las extensiones Azure Logic Apps (consumo) y Azure Logic Apps (estándar) para Visual Studio Code.
En la barra de actividad de Visual Studio Code, seleccione el icono de Azure. En Recursos, expanda la suscripción y expanda Aplicación lógica, que muestra todas las aplicaciones lógicas implementadas en Azure para esa suscripción.
Abra la aplicación lógica que desea administrar. En el menú contextual de la aplicación lógica, seleccione la tarea que desea realizar.
Por ejemplo, puede seleccionar tareas como detener, iniciar, reiniciar o eliminar la aplicación lógica implementada. Puede deshabilitar o habilitar un flujo de trabajo mediante Azure Portal.
Nota
Las operaciones detener la aplicación lógica y de eliminar la aplicación lógica afectan a las instancias de flujo de trabajo de maneras diferentes. Para obtener más información, consulte Consideraciones para detener aplicaciones lógicas y Consideraciones para eliminar aplicaciones lógicas.
Para ver todos los flujos de trabajo en la aplicación lógica, expándala y, después, expanda el nodo Flujos de trabajo.
Para ver un flujo de trabajo específico, abra el menú contextual del flujo de trabajo y seleccione Open in Designer (Abrir en el diseñador), que abre el flujo de trabajo en modo de solo lectura.
Para editar el flujo de trabajo, tiene estas opciones:
En Visual Studio Code, abra el archivo workflow.json del proyecto en el diseñador de flujos de trabajo, realice los cambios y vuelva a implementar la aplicación lógica en Azure.
En Azure Portal, abra la aplicación lógica. A continuación, puede abrir, editar y guardar el flujo de trabajo.
Para abrir la aplicación lógica implementada en Azure Portal, abra el menú contextual de la aplicación lógica y seleccione Abrir en el portal.
Azure Portal se abre en el explorador, inicia sesión automáticamente en el portal si ha iniciado sesión en Visual Studio Code y muestra la aplicación lógica.
También puede iniciar sesión por separado en Azure Portal, usar el cuadro de búsqueda del portal para buscar la aplicación lógica y, a continuación, seleccionar la aplicación lógica en la lista de resultados.
Consideraciones para detener aplicaciones lógicas
Detener una aplicación lógica afecta a las instancias de flujo de trabajo de las maneras siguientes:
Azure Logic Apps cancela de inmediato todas las ejecuciones en curso y pendientes.
Azure Logic Apps no crea ni ejecuta nuevas instancias de flujo de trabajo.
Los desencadenadores no se activarán la próxima vez que se cumplan las condiciones. Sin embargo, los estados de los desencadenadores recuerdan los puntos donde se detuvo la aplicación lógica. Por lo tanto, si reinicia la aplicación lógica, los desencadenadores se activan para todos los elementos no procesados desde la última ejecución.
Para evitar que un desencadenador se active para los elementos no procesados desde la última ejecución, borre el estado del desencadenador antes de reiniciar la aplicación lógica:
En la barra de actividades de Visual Studio Code, seleccione el icono de Azure para abrir la ventana de Azure.
En la sección Recursos, amplíe su suscripción, que muestra todas las aplicaciones lógicas implementadas para esa suscripción.
Expanda la aplicación lógica y, a continuación, expanda el nodo llamado Flujos de trabajo.
Abra un flujo de trabajo y edite cualquier parte de su desencadenador.
Guarde los cambios. Este paso restablece el estado actual del desencadenador.
Repita el procedimiento para cada flujo de trabajo.
Cuando haya terminado, reinicie la aplicación lógica.
Consideraciones para eliminar aplicaciones lógicas
Eliminar una aplicación lógica afecta a las instancias de flujo de trabajo de las maneras siguientes:
Azure Logic Apps cancela las ejecuciones en curso y pendientes de inmediato, pero no ejecuta tareas de limpieza en el almacenamiento usado por la aplicación.
Azure Logic Apps no crea ni ejecuta nuevas instancias de flujo de trabajo.
Si elimina un flujo de trabajo y, luego, vuelve a crear el mismo flujo de trabajo, el flujo de trabajo recreado no tendrá los mismos metadatos que el flujo de trabajo eliminado. Para actualizar los metadatos, tendrá que volver a guardar cualquier flujo de trabajo que haya llamado al que se ha eliminado. De este modo, el autor de la llamada obtiene la información correcta para el flujo de trabajo recreado. De lo contrario, las llamadas al flujo de trabajo recreado producirán un error
Unauthorized
. Este comportamiento también se aplica a los flujos de trabajo que usan artefactos en cuentas de integración y a flujos de trabajo que llaman a Azure Functions.
Administración de aplicaciones lógicas implementadas en el portal
Después de implementar una aplicación lógica en Azure Portal desde Visual Studio Code, puede ver todas las aplicaciones lógicas implementadas que se encuentran en su suscripción de Azure, ya sean recursos de aplicación lógica de consumo o estándar. Actualmente, cada tipo de recurso se organiza y administra como categoría independiente en Azure. Para buscar aplicaciones lógicas estándar, siga estos pasos:
En el cuadro de búsqueda de Azure Portal, escriba aplicaciones lógicas. Cuando aparezca la lista de resultados, en Servicios, seleccione Logic Apps.
En el panel Aplicaciones lógicas, seleccione la aplicación lógica que implementó desde Visual Studio Code.
Azure Portal abre la página individual de recursos para la aplicación lógica seleccionada.
Para ver los flujos de trabajo en esta aplicación lógica, en el menú de la aplicación lógica, seleccione Flujos de trabajo.
En el panel Flujos de trabajo se muestran todos los flujos de trabajo de la aplicación lógica actual. En este ejemplo se muestra el flujo de trabajo que creó en Visual Studio Code.
Para ver un flujo de trabajo, en el panel Flujos de trabajo, seleccione ese flujo de trabajo.
Se abre el panel del flujo de trabajo y muestra más información y tareas que puede realizar en ese flujo de trabajo.
Por ejemplo, para ver los pasos del flujo de trabajo, seleccione Diseñador.
El diseñador de flujos de trabajo se abre y muestra el flujo de trabajo que creó en Visual Studio Code. Ahora puede realizar cambios en este flujo de trabajo en Azure Portal.
Adición de otro flujo de trabajo en el portal
A través de Azure Portal, puede agregar flujos de trabajo en blanco a un recurso de aplicación lógica estándar que haya implementado desde Visual Studio Code y compilar esos flujos de trabajo en Azure Portal.
En Azure Portal, seleccione su recurso de aplicación lógica estándar implementado.
En el menú de recursos de la aplicación lógica, seleccione Flujos de trabajo. En el panel Flujos de trabajo, seleccione Agregar.
En el panel Nuevo flujo de trabajo, indique el nombre del flujo de trabajo. Seleccione Con estado o Sin estado > Crear.
Una vez que Azure implemente el nuevo flujo de trabajo, que aparece en el panel Flujos de trabajo, seleccione ese flujo de trabajo para que pueda administrar y realizar otras tareas, como abrir el diseñador o la vista de código.
Por ejemplo, al abrir el diseñador para un nuevo flujo de trabajo, se muestra un lienzo en blanco. Ahora puede compilar este flujo de trabajo en Azure Portal.
Habilitación del historial de ejecución para flujos de trabajo sin estado
Para depurar un flujo de trabajo sin estado con más facilidad, puede habilitar el historial de ejecución para ese flujo de trabajo y luego deshabilitar el historial de ejecución cuando haya terminado. Siga estos pasos para Visual Studio Code, o bien, si está trabajando en Azure Portal, consulte Creación de flujos de trabajo basados en un único inquilino en Azure Portal.
En el proyecto de Visual Studio Code, en el nivel de carpeta raíz, abra el archivo local.settings.json.
Agregue la propiedad
Workflows.{yourWorkflowName}.operationOptions
y establezca el valor enWithStatelessRunHistory
, por ejemplo:Windows
{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "dotnet", "Workflows.{yourWorkflowName}.OperationOptions": "WithStatelessRunHistory" } }
macOS o Linux
{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=fabrikamstorageacct; \ AccountKey=<access-key>;EndpointSuffix=core.windows.net", "FUNCTIONS_WORKER_RUNTIME": "dotnet", "Workflows.{yourWorkflowName}.OperationOptions": "WithStatelessRunHistory" } }
En la carpeta del proyecto denominada workflow-designtime, abra el archivo local.settings.json y realice el mismo cambio.
Para deshabilitar el historial de ejecución cuando haya terminado, establezca la propiedad
Workflows.{yourWorkflowName}.OperationOptions
enNone
o elimine la propiedad y su valor.
Habilitación de la vista de supervisión en Azure Portal
Después de implementar un recurso de Logic Apps (estándar) desde Visual Studio Code en Azure, puede revisar cualquier historial de ejecución disponible y los detalles de un flujo de trabajo en ese recurso mediante Azure Portal y la experiencia de Supervisión para ese flujo de trabajo. Sin embargo, en primer lugar, debe habilitar la funcionalidad de vista Supervisión en ese recurso de aplicación lógica.
En Azure Portal, abra el recurso Aplicación lógica estándar.
En el menú de recursos de la aplicación lógica, en API, seleccione CORS.
En el panel CORS, en Orígenes permitidos, agregue el carácter comodín (*).
Cuando esté listo, en la barra de herramientas de CORS, seleccione Guardar.
Habilitación o apertura de Application Insights después de la implementación
Durante la ejecución del flujo de trabajo, la aplicación lógica emite telemetría junto con otros eventos. Puede usar esta telemetría para obtener una mejor visibilidad de si el flujo de trabajo se ejecuta correctamente y cómo funciona el runtime de Logic Apps de varias maneras. Puede supervisar el flujo de trabajo mediante Application Insights, que proporciona telemetría casi en tiempo real (métricas en directo). Esta funcionalidad puede ayudarle a investigar los errores y problemas de rendimiento con más facilidad si usa estos datos para diagnosticar problemas, configurar alertas y crear gráficos.
Si la configuración de la creación e implementación de la aplicación lógica admite el uso de Application Insights, puede habilitar opcionalmente el registro de diagnóstico y el seguimiento para la aplicación lógica. Puede hacerlo al implementar la aplicación lógica desde Visual Studio Code o después de la implementación. Debe tener una instancia de Application Insights, pero puede crear este recurso con antelación, al implementar la aplicación lógica o después de la implementación.
Para habilitar Application Insights en una aplicación lógica implementada o para revisar los datos de Application Insights si ya está habilitado, siga estos pasos:
En Azure Portal, busque la aplicación lógica implementada.
En el menú de la aplicación lógica, en Configuración, seleccione Application Insights.
Si Application Insights no se ha habilitado, en el panel Application Insights, seleccione Activar Application Insights. Una vez que se actualice el panel, en la parte inferior, seleccione Aplicar.
Si se ha habilitado Application Insights, en el panel Application Insights, seleccione Ver datos de Application Insights.
Después de que se abra Application Insights, puede revisar varias métricas de la aplicación lógica. Para obtener más información, consulte estos temas:
- Azure Logic Apps en ejecución en cualquier ubicación: supervisión con Application Insights: parte 1
- Azure Logic Apps en ejecución en cualquier ubicación: supervisión con Application Insights: parte 2
Eliminación de elementos del diseñador
Para eliminar un elemento del flujo de trabajo del diseñador, siga cualquiera de estos pasos:
Seleccione el elemento, abra el menú contextual del elemento (Mayús+F10) y seleccione Eliminar. Para confirmar, seleccione Aceptar.
Seleccione el elemento y presione la tecla Supr. Para confirmar, seleccione Aceptar.
Seleccione el elemento para que se abra el panel de detalles de ese elemento. En la esquina superior derecha del panel, abra el menú de puntos suspensivos ( ... ) y seleccione Eliminar. Para confirmar, seleccione Aceptar.
Sugerencia
Si no está visible el menú de puntos suspensivos, expanda la ventana de Visual Studio Code el ancho suficiente para que en el panel de detalles se muestre el botón de puntos suspensivos ( ... ) en la esquina superior derecha.
Solución de errores y problemas
El diseñador no se abre
Al intentar abrir el diseñador, aparece este error, Workflow design time could not be started (No se pudo iniciar el tiempo de diseño del flujo de trabajo). Si anteriormente intentó abrir el diseñador y, después, dejó de usarlo o eliminó el proyecto, es posible que el conjunto de extensiones no se descargue correctamente. Para comprobar si esta es la causa del problema, siga estos pasos:
En Visual Studio Code, abra la ventana Salida. En el menú Ver, seleccione Salida.
En la lista de la barra de título de la ventana Salida, seleccione Azure Logic Apps (estándar) para que pueda consultar la salida de la extensión, por ejemplo:
Revise la salida y compruebe si aparece este mensaje de error:
A host error has occurred during startup operation '{operationID}'. System.Private.CoreLib: The file 'C:\Users\{userName}\AppData\Local\Temp\Functions\ ExtensionBundles\Microsoft.Azure.Functions.ExtensionBundle.Workflows\1.1.7\bin\ DurableTask.AzureStorage.dll' already exists. Value cannot be null. (Parameter 'provider') Application is shutting down... Initialization cancellation requested by runtime. Stopping host... Host shutdown completed.
Para resolver este error, elimine la carpeta ExtensionBundles en esta ubicación …\Users{su-nombre-de-usuario}\AppData\Local\Temp\Functions\ExtensionBundles y vuelva a intentar abrir el archivo workflow.json en el diseñador.
Faltan nuevos desencadenadores y acciones en el selector del diseñador para flujos de trabajo creados previamente
Azure Logic Apps de un único inquilino admite acciones integradas para las operaciones de Azure Functions, las operaciones de Liquid y las operaciones de XML, como Validación XML y Transformar XML. Sin embargo, en el caso de las aplicaciones lógicas creadas con anterioridad, es posible que estas acciones no aparezcan en el selector del diseñador para que las pueda seleccionar si Visual Studio Code usa una versión obsoleta del paquete de extensión Microsoft.Azure.Functions.ExtensionBundle.Workflows
.
Además, las acciones y el conector Azure Function Operations (Operaciones de función de Azure) no aparecen en el selector del diseñador a menos que haya habilitado o seleccionado Use connectors from Azure (Usar conectores de Azure) al crear la aplicación lógica. Si no ha habilitado los conectores implementados por Azure en el momento de la creación de la aplicación, puede habilitarlos desde el proyecto en Visual Studio Code. Abra el menú contextual workflow.json y seleccione Use connectors from Azure (Usar conectores de Azure).
Para corregir el paquete obsoleto, siga estos pasos a fin de eliminar el paquete obsoleto, lo que hace que Visual Studio Code actualice automáticamente el paquete de extensión a la versión más reciente.
Nota
Esta solución solo se aplica a las aplicaciones lógicas que se crean e implementan con Visual Studio Code con la extensión Azure Logic Apps (estándar), no a las aplicaciones lógicas que se han creado con Azure Portal. Vea Faltan desencadenadores y acciones en el diseñador en Azure Portal.
Guarde cualquier trabajo que no quiera perder y cierre Visual Studio.
En el equipo, busque la carpeta siguiente, que contiene las carpetas con versión para el paquete existente:
...\Users\{your-username}\.azure-functions-core-tools\Functions\ExtensionBundles\Microsoft.Azure.Functions.ExtensionBundle.Workflows
Elimine la carpeta de la versión del paquete anterior; por ejemplo, si tiene una carpeta para la versión 1.1.3, elimine esa carpeta.
Ahora, busque la carpeta siguiente, que contiene las carpetas con versión para el paquete NuGet necesario:
...\Users\{your-username}\.nuget\packages\microsoft.azure.workflows.webjobs.extension
Elimine la carpeta de la versión del paquete anterior.
Vuelva a abrir Visual Studio Code, el proyecto y el archivo workflow.json en el diseñador.
Los desencadenadores y las acciones que faltan ahora aparecen en el diseñador.
"400 Solicitud incorrecta" aparece en un desencadenador o una acción
Cuando se produce un error en una ejecución y se inspecciona la ejecución en la vista de supervisión, este error puede aparecer en un desencadenador o una acción que tienen un nombre más largo, lo que hace que el identificador uniforme de recursos (URI) subyacente supere el límite de caracteres predeterminado.
Para resolver este problema y ajustar el URI más largo, edite las claves del Registro UrlSegmentMaxCount
y UrlSegmentMaxLength
en el equipo siguiendo estos pasos. Estos valores predeterminados de la clave se describen en el tema Configuración del Registro de Http.sys para Windows.
Importante
Antes de empezar, asegúrese de guardar el trabajo. Esta solución requiere que reinicie el equipo una vez que haya terminado para que los cambios surtan efecto.
En el equipo, abra la ventana Ejecutar y ejecute el comando
regedit
, que abre el Editor del Registro.En el cuadro Control de cuentas de usuario, seleccione Sí para permitir los cambios en el equipo.
En el panel izquierdo, en Equipo, expanda los nodos a lo largo de la ruta de acceso HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters y, a continuación, seleccione Parámetros.
En el panel derecho, busque las claves del Registro
UrlSegmentMaxCount
yUrlSegmentMaxLength
.Aumente estos valores de clave lo suficiente para que los identificadores URI puedan contener los nombres que desea utilizar. Si estas claves no existen, agréguelas a la carpeta Parámetros siguiendo estos pasos:
En el menú contextual Parámetros, seleccione Nuevo>Valor de DWORD (32 bits) .
En el cuadro de edición que aparece, escriba
UrlSegmentMaxCount
como el nuevo nombre de la clave.Abra el menú contextual de la nueva clave y seleccione Modificar.
En el cuadro Editar cadena que aparece, escriba el valor de clave de Información del valor que desee en formato hexadecimal o decimal. Por ejemplo,
400
en formato hexadecimal es equivalente a1024
en formato decimal.Para agregar el valor de clave
UrlSegmentMaxLength
, repita estos pasos.
Después de aumentar o agregar estos valores de clave, el Editor del Registro presenta un aspecto similar al de este ejemplo:
Cuando haya terminado, reinicie el equipo para que los cambios surtan efecto.
La sesión de depuración no se inicia
Al intentar iniciar una sesión de depuración, aparece el error "Error exists after running preLaunchTask 'generateDebugSymbols'" (Aparece un error al ejecutar preLaunchTask 'generateDebugSymbols). Para resolver este problema, edite el archivo tasks.json del proyecto para omitir la generación de símbolos.
En el proyecto, expanda la carpeta llamada .vscode y abra el archivo tasks.json.
En la siguiente tarea, elimine la línea,
"dependsOn: "generateDebugSymbols"
, junto con la coma del final de la línea anterior, por ejemplo:Antes:
{ "type": "func", "command": "host start", "problemMatcher": "$func-watch", "isBackground": true, "dependsOn": "generateDebugSymbols" }
Después:
{ "type": "func", "command": "host start", "problemMatcher": "$func-watch", "isBackground": true }
Pasos siguientes
Nos gustaría conocer sus experiencias con la extensión Azure Logic Apps (estándar).
- En caso de errores o problemas, dirija los problemas a GitHub.
- Si tiene preguntas, solicitudes, ideas y comentarios, use este formulario de comentarios.