Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: Azure Logic Apps (estándar)
En esta guía se muestra cómo crear localmente un flujo de trabajo de aplicación lógica estándar de ejemplo que puede ejecutar en Azure Logic Apps de un solo inquilino al usar Visual Studio Code con la extensión Azure Logic Apps (Estándar).
En esta guía, creará un proyecto y un área de trabajo de aplicación lógica estándar, compilará el flujo de trabajo e implementará el proyecto como un recurso de aplicación lógica estándar en Azure donde el flujo de trabajo se puede ejecutar en Azure Logic Apps de un solo inquilino o en 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 Kubernetes pueda ejecutarse, como Azure, Azure Kubernetes Service, local o incluso otros proveedores de nube, debido al entorno de ejecución en contenedores para Azure Logic Apps (Estándar).
Estas son solo algunas ventajas que proporcionan las aplicaciones lógicas estándar:
Puede crear, depurar, ejecutar y probar flujos de trabajo localmente en el entorno de desarrollo de Visual Studio Code local. Tanto Azure Portal como Visual Studio Code proporcionan la capacidad de compilar, ejecutar e implementar recursos y flujos de trabajo de aplicaciones lógicas estándar. Sin embargo, con Visual Studio Code, puede realizar estas tareas localmente.
El proyecto de aplicación lógica estándar puede incluir flujos de trabajo con estado y sin estado.
Los flujos de trabajo del mismo recurso de aplicación lógica estándar y el mismo inquilino se ejecutan en el mismo proceso que el tiempo de ejecución de Azure Logic Apps (Estándar), por lo que comparten los mismos recursos y proporcionan un mejor rendimiento.
El flujo de trabajo de ejemplo de esta guía comienza inicialmente con un desencadenador de solicitud seguido de una acción de Office 365 Outlook . El desencadenador Request crea un punto de conexión invocable para el flujo de trabajo y espera una solicitud HTTPS entrante desde cualquier llamador. Cuando el desencadenador recibe una solicitud y se activa, la siguiente acción se ejecuta mediante el envío de correo electrónico al destinatario especificado junto con las salidas del desencadenador que seleccione. Más adelante, puede agregar una acción Respuesta que devuelva una respuesta y los datos procesados al autor de la llamada.
Aunque el ejemplo de esta guía se basa en la nube y solo tiene unos pocos pasos, puede crear flujos de trabajo mediante operaciones de más de 1400 conectores que le ayudarán a integrar una amplia gama de servicios, sistemas, aplicaciones y datos en la nube, locales y entornos híbridos.
A medida que avance a través de la guía, complete las siguientes tareas de alto nivel:
- Cree un área de trabajo de aplicación lógica estándar y un proyecto con un flujo de trabajo con estado en blanco.
- Agregue un desencadenador y acciones al flujo de trabajo.
- Ejecute, depure y pruebe localmente.
- Revise el historial de ejecución del flujo de trabajo.
- Buscar los detalles del nombre de dominio para el acceso al firewall.
- Habilitar el historial de ejecución para flujos de trabajo sin estado.
- Implementar en Azure, que incluye opcionalmente habilitar Application Insights.
- Habilitar o abrir Application Insights después de la implementación.
- Administre el recurso de aplicación lógica implementada en Visual Studio Code y Azure Portal.
Prerrequisitos
Requisitos de acceso y conectividad
Si planea crear y ejecutar flujos de trabajo localmente con solo operaciones integradas, que se ejecutan de forma nativa en el entorno de ejecución de Azure Logic Apps (Estándar), no necesita los requisitos de acceso y conectividad de esta sección. Sin embargo, para los escenarios siguientes, debe cumplir estos requisitos:
- Implemente la aplicación lógica en Azure desde Visual Studio Code.
- Cree un flujo de trabajo que use operaciones del conector administrado que se ejecutan en Azure global.
- Acceda a los recursos y flujos de trabajo existentes de la aplicación lógica estándar en Azure u otros recursos de Azure implementados.
Estos requisitos incluyen los siguientes elementos:
Una cuenta y una suscripción de Azure. Si no tiene una suscripción, regístrese para obtener una cuenta gratuita de Azure.
Acceso a Internet para que pueda descargar la extensión necesaria, conectarse desde Visual Studio Code a su cuenta de Azure, probar flujos de trabajo que incluyen operaciones de conector administrado e implementar en Azure desde Visual Studio Code.
Para crear el mismo flujo de trabajo de ejemplo en esta guía, 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 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. 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, la experiencia y las opciones pueden diferir de alguna manera. Por ejemplo, con el conector de Outlook.com, use su cuenta microsoft personal para iniciar sesión.
herramientas
Descargue e instale Visual Studio Code, que es gratuito.
Descargue e instale la extensión Azure Logic Apps (Estándar) para Visual Studio Code siguiendo estos pasos:
En Visual Studio Code, en la barra actividad, seleccione Extensiones. (Teclado: Presione Ctrl+Mayús+X)
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.
La extensión descarga e instala todas las dependencias necesarias y las versiones correctas para los marcos siguientes:
- Azure Functions Core Tools
- SDK de .NET
- Node.js.
Una vez finalizada la instalación, la extensión aparece en la lista Extensiones: Instaladas.
Vuelva a cargar o reiniciar Visual Studio Code para asegurarse de que la extensión y todas las dependencias se instalan correctamente.
Para confirmar que la extensión y todas las dependencias están instaladas correctamente, consulte Comprobación de la instalación de la extensión.
Actualmente, puede tener instaladas las extensiones de Consumo (multiinquilino) y Estándar (un solo inquilino) al mismo tiempo. Las experiencias de desarrollo se diferencian entre sí de alguna manera, pero la suscripción de Azure puede incluir los tipos de recursos de aplicación lógica Estándar y Consumo. En Visual Studio Code, el panel de Azure muestra todas las aplicaciones lógicas implementadas y hospedadas en Azure en su suscripción de Azure, pero organiza las aplicaciones de las maneras siguientes:
- Sección Recursos: todas las aplicaciones lógicas estándar de la suscripción.
- Sección Logic Apps (Consumo): Todas las aplicaciones lógicas de consumo de la suscripción
Para ejecutar localmente desencadenadores y acciones basados en webhook, como el desencadenador de webhook HTTP integrado, debe configurar el reenvío de la URL de devolución en Visual Studio Code.
Para habilitar el registro y el seguimiento de diagnósticos con Application Insights para la aplicación lógica estándar, puede completar esta tarea durante la implementación de la aplicación lógica o después de la implementación. Debe tener un recurso de Application Insights, pero puede crear este recurso de antemano, durante la implementación o después de la implementación.
Instale o use una herramienta que pueda enviar solicitudes HTTP para probar el flujo de trabajo de ejemplo, 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
- rizo
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. La herramienta debe funcionar sin conexión o localmente y no requerir el inicio de sesión en una cuenta en línea o sincronizar datos en la nube. Cuando se usa una herramienta con estas características, se reduce el riesgo de exponer datos confidenciales al público.
Comprobación de la instalación de la extensión
Para asegurarse de que la extensión y todas las dependencias 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.
Asegúrese de que La comprobación automática de actualizaciones está seleccionada y que La actualización automática está establecida en Todas las extensiones.
Confirme que la configuración estándar de Azure Logic Apps: Project Runtime está establecida en la versión correcta:
En la pestaña Usuario, vaya a >Extensiones>Azure Logic Apps (estándar).
Asegúrese de que Project Runtime esté establecido en la versión ~4, por ejemplo:
Nota:
Esta versión es necesaria para utilizar las acciones de Operaciones de código en línea.
Conexión a la cuenta de Azure
Si aún no está conectado a su cuenta de Azure, siga estos pasos para conectarse:
En Visual Studio Code, en la barra de actividades, seleccione el icono de Azure para abrir el panel de Azure .
En el panel 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.
Después de iniciar sesión, el panel 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 la lista de suscripciones actualizadas, seleccione las suscripciones que desee y asegúrese de seleccionar Aceptar.
Creación de un área de trabajo local
Un proyecto de aplicación lógica siempre requiere un área de trabajo. Por lo tanto, para poder crear la aplicación lógica, debe crear un área de trabajo donde mantenga el proyecto de aplicación lógica. Posteriormente, usará este área de trabajo y proyecto para administrar, ejecutar e implementar su aplicación de lógica desde Visual Studio Code a su entorno de implementación. El proyecto subyacente es similar a un proyecto de Azure Functions, también conocido como proyecto de aplicación de funciones;
En el equipo, cree una carpeta local vacía que se usará más adelante para el área de trabajo y el proyecto.
En este ejemplo se crea una carpeta denominada fabrikam-workflows.
En Visual Studio Code, cierre todas las carpetas abiertas.
En la ventana de Azure, en la barra de herramientas Área de trabajo, en el menú Azure Logic Apps, seleccione Crear área de trabajo de aplicación lógica.
Si firewall de Windows Defender le pide que conceda acceso a la red para Code.exe, que es Visual Studio Code y, para func.exe, que es Azure Functions Core Tools, seleccione Redes privadas, como mi red principal o profesional>Permitir el acceso.
En la ventana Seleccionar carpeta, vaya a la ubicación donde creó su carpeta, seleccione la carpeta y elija Seleccionar (no seleccione la carpeta dos veces).
En la barra de herramientas de Visual Studio Code, aparece un mensaje para asignar un nombre al área de trabajo.
En Proporcione un nombre de área de trabajo, escriba el nombre del área de trabajo que se va a usar.
En este ejemplo se usan Fabrikam-Workflows.
A continuación, cree el proyecto de aplicación lógica.
Creación del proyecto de aplicación lógica
Después de crear el área de trabajo necesaria, siga las indicaciones para crear el proyecto.
En la plantilla de proyecto, seleccione Aplicación lógica. Escriba un nombre de proyecto que se va a usar.
En este ejemplo se usan Fabrikam-Workflows.
En la plantilla de flujo de trabajo, seleccione Flujo de trabajo con estado o Flujo de trabajo sin estado, en función de su escenario. Escriba un nombre de flujo de trabajo que se va a usar.
En este ejemplo se selecciona Flujo de trabajo con estado, que almacena el historial de flujo de trabajo, las entradas y las salidas, y usa Stateful-Workflow como nombre.
Los flujos de trabajo sin estado no almacenan estos datos y actualmente solo admiten acciones del conector administrado, no 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.
Nota:
Si recibe 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, intente reinstalar la extensión de Azure Functions para Visual Studio Code, ya sea directamente desde Visual Studio Marketplace o desde Visual Studio Code.
Ahora, elija si desea abrir el proyecto en la ventana actual de Visual Studio Code o en una nueva ventana. Seleccione Abrir en la ventana actual o Abrir en nueva ventana, según sus preferencias.
Se abre el panel Explorador para mostrar el área de trabajo, el proyecto y el archivo workflow.json abierto automáticamente. Este archivo existe en la carpeta denominada Stateful-Workflow y almacena la definición JSON subyacente para el flujo de trabajo que se compila en el diseñador. Para obtener información sobre la estructura del proyecto, consulte Estructura del proyecto de aplicación lógica estándar.
También recibirás un mensaje para habilitar conectores "compartidos" alojados en Azure para varios clientes, por ejemplo:
Para habilitar todos los conectores "compartidos" administrados que se ejecutan en Azure multiinquilino para que pueda ver y elegir usarlos en el flujo de trabajo, seleccione Usar conectores de Azure.
Nota:
Si no selecciona esta opción y, más adelante, intenta agregar una operación de conector administrado al compilar el flujo de trabajo, no puede continuar porque el panel de información de la operación muestra un círculo giratorio que no se detiene.
En el grupo de recursos de Azure, seleccione Crear nuevo grupo de recursos. Escriba el nombre del grupo de recursos que se va a usar.
En este ejemplo se usa Fabrikam-Workflows-RG.
Para la suscripción, seleccione la suscripción de Azure que se usará con el proyecto de aplicación lógica.
Para la ubicación donde crear el grupo y los recursos, seleccione la región de Azure.
En este ejemplo se usa Centro-oeste de EE. UU.
Si el proyecto necesita otra configuración para el desarrollo o necesita artefactos auxiliares para compilar el flujo de trabajo, consulte los siguientes escenarios y tareas relacionadas:
Ahora, abra el diseñador de flujo de trabajo.
Abrir el diseñador de flujo de trabajo
Una vez que el proyecto se abra en el panel Explorador, abra el diseñador para que pueda compilar el flujo de trabajo.
En el menú contextual del archivo workflow.json, seleccione Abrir diseñador.
Nota:
Después de seleccionar esta opción, es posible que reciba el mensaje de que el inicio puede tardar unos segundos debido a que se está iniciando la API de diseño del flujo de trabajo. Puede pasar por alto este mensaje o seleccionar Aceptar.
Visual Studio Code abre el diseñador de flujo de trabajo y muestra el mensaje Agregar un desencadenador , por ejemplo:
Nota:
Si el diseñador no se abre, consulte la sección de solución de problemas, Diseñador no se puede abrir.
A continuación, agregue un desencadenador y acciones para crear el flujo de trabajo.
Agregar un desencadenador y una acción
Para crear el flujo de trabajo, inicie el flujo de trabajo con un desencadenador y agregue inicialmente una sola acción. De este modo, puede probar el flujo de trabajo antes de agregar la siguiente acción. En el flujo de trabajo de ejemplo se usan los siguientes desencadenadores y acciones, conocidos colectivamente como operaciones:
Conector o grupo de operaciones | Nombre de la operación | Tipo de operación | Descripción |
---|---|---|---|
Solicitud | Cuando se recibe una solicitud HTTP | Desencadenador (integrado) | Crea una dirección URL de punto de conexión en el flujo de trabajo para recibir llamadas entrantes o solicitudes de otros servicios o flujos de trabajo de aplicación lógica. Para obtener más información, consulte Recepción y respuesta a llamadas HTTPs entrantes a flujos de trabajo. |
Office 365 Outlook | Enviar un correo electrónico | Acción (gestionada) | Enviar un correo electrónico mediante una cuenta de Office 365 Outlook. Para seguir los pasos de esta guía, necesita una cuenta de correo electrónico de Office 365 Outlook. Para obtener más información, consulte Conexión a Office 365 Outlook desde Azure Logic Apps. Nota: Si tiene una cuenta de correo electrónico compatible con un conector diferente, puede usar ese conector, pero la experiencia del usuario del conector difiere de los pasos descritos en este ejemplo. |
Solicitud | Respuesta | Acción (integrada) | Envíe una respuesta y devuelva datos al autor de la llamada. Para obtener más información, vea Agregar una acción de respuesta. |
Adición del desencadenador Request
En el diseñador de flujos de trabajo, seleccione Agregar un desencadenador, si aún no está seleccionado.
Se abre el panel Agregar un desencadenador y se muestra una galería donde puede seleccionar entre los conectores y grupos de operaciones disponibles, por ejemplo:
En el panel Agregar un desencadenador , siga estos pasos generales para agregar el desencadenador de solicitud denominado Cuando se recibe una solicitud HTTP.
En el ejemplo siguiente se selecciona la opción Integrada para que solo aparezcan los desencadenadores integrados:
Cuando el desencadenador aparece en el diseñador, se abre el panel de información del desencadenador y se muestran los parámetros, la configuración y otras tareas relacionadas del desencadenador.
Nota:
Si el panel de información del desencadenador 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).
Adición de la acción Office 365 Outlook
En el diseñador, en el desencadenador Solicitud, siga estos pasos generales para agregar la acción de Office 365 Outlook denominada Enviar un correo electrónico (V2).
Si la acción no aparece en los resultados iniciales, junto al nombre del conector, seleccione Ver más, por ejemplo:
Cuando aparezca el panel de autenticación de la acción, seleccione Iniciar sesión para crear una conexión a la cuenta de correo electrónico.
Siga las indicaciones posteriores para autenticar las credenciales, permitir el acceso y permitir la devolución 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 mensaje de autenticación de Microsoft, seleccione su cuenta de usuario para Office 365 Outlook. En la página de confirmación necesaria que se abre, 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 tenga la extensión abierta microsoft Azure Tools, seleccione Abrir.
Después de que Visual Studio Code cree la conexión, algunos conectores muestran el mensaje de que 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 panel Enviar información de correo electrónico que se abre, en la pestaña Parámetros , proporcione la información necesaria para la acción.
Nota:
Si el panel de información de acción no se ha abierto automáticamente, seleccione la acción Enviar un correo electrónico en el diseñador.
Propiedad Obligatorio Importancia Descripción A Sí < dirección de correo electrónico> 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. Asunto 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. Por ejemplo:
Guarde el flujo de trabajo. En el diseñador, seleccione Guardar.
Estructura de proyecto de aplicación lógica estándar
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 puede incluir carpetas o archivos ligeramente diferentes. Por ejemplo, un proyecto basado en paquetes Nuget tiene una carpeta .bin que contiene paquetes y otros archivos de biblioteca. Un proyecto basado en agrupación de extensiones no incluye esta carpeta .bin .
Algunos escenarios requieren un proyecto basado en paquetes NuGet para que la aplicación se ejecute, por ejemplo, cuando quiera 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.
El proyecto basado en agrupación de extensiones predeterminado tiene una estructura de carpetas y archivos similar al ejemplo siguiente:
MyWorkspaceName
| MyBundleBasedLogicAppProjectName
|| .vscode
|| Artifacts
||| Maps
|||| MapName1
|||| ...
||| Rules
||| Schemas
|||| SchemaName1
|||| ...
|| lib
||| builtinOperationSdks
|||| JAR
|||| net472
||| custom
|| WorkflowName1
||| workflow.json
||| ...
|| WorkflowName2
||| workflow.json
||| ...
|| workflow-designtime
||| host.json
||| local.settings.json
|| .funcignore
|| connections.json
|| host.json
|| local.settings.json
En el nivel raíz del proyecto, puede encontrar las siguientes carpetas y archivos junto 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 las siguientes carpetas: - Mapas: contiene mapas que se van a usar para las operaciones de transformación XML. - Esquemas: contiene esquemas que se usarán para las operaciones de validación XML. - Reglas: Artefactos para reglas de negocio en proyectos de motor basados en reglas. |
Lib | Carpeta | Contiene ensamblados admitidos que la aplicación lógica puede usar o hacer referencia. Puede cargar estos ensamblados en el proyecto en Visual Studio Code, pero debe agregarlos a carpetas específicas del proyecto. Por ejemplo, esta carpeta incluye las siguientes carpetas: - builtinOperationSdks: contiene las carpetas JAR y net472 para los ensamblados de Java y .NET Framework, respectivamente. - custom: contiene ensamblados personalizados de .NET Framework. Para obtener más información sobre los tipos de ensamblado admitidos y dónde colocarlos en el proyecto, vea Agregar ensamblados al proyecto. |
< 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. Para obtener información de referencia, consulte Editar la configuración de la aplicación y la configuración del host. 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. Esta configuración y 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 la configuración y los valores como variables de entorno locales que usan las herramientas de desarrollo local para los appSettings valores. 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. Este archivo también contiene la configuración de la aplicación que su aplicación lógica necesita para funcionar correctamente. Para obtener información de referencia, consulte Editar la configuración de la aplicación y la configuración del host. |
Otras tareas de configuración de desarrollo
Después de crear el proyecto, es posible que todavía tenga otras tareas de configuración para admitir escenarios de desarrollo locales específicos en torno a la compilación, ejecución e implementación de aplicaciones lógicas estándar mediante Visual Studio Code. En las secciones siguientes se describen las tareas de estos escenarios.
Habilitación de webhooks que se ejecutan localmente
Una operación de webhook es un desencadenador o una acción de flujo de trabajo que espera a que se produzca un evento antes de que se pueda ejecutar la operación. En concreto, la operación de webhook espera a que una solicitud HTTPS llegue desde un servicio o flujo de trabajo de llamada antes de que la operación pueda continuar. Por ejemplo, los webhooks incluyen operaciones como el desencadenador request y el desencadenador HTTP + Webhook .
En Azure Portal, el entorno de ejecución de Azure Logic Apps suscribe automáticamente el webhook al servicio o flujo de trabajo del autor de la llamada. El entorno de ejecución registra una dirección URL de devolución de llamada para el webhook con el servicio de llamada o el flujo de trabajo. A continuación, el webhook espera a que el autor de la llamada envíe la solicitud mediante la dirección URL de devolución de llamada.
Sin embargo, en Visual Studio Code, debe completar algunas tareas de configuración para que las operaciones de webhook funcionen correctamente. En este escenario, la dirección URL de devolución de llamada usa el servidor localhost (http://localhost:7071/...
), que es privado, por lo que el autor de la llamada no puede enviar directamente una solicitud a través de Internet a esta dirección URL.
Para las operaciones de webhook en flujos de trabajo en ejecución local, debe configurar una dirección URL pública que exponga el servidor localhost y reenvíe de forma segura las llamadas desde el autor de la llamada a la dirección URL de devolución de llamada. 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 mediante ngrok
Vaya alsitio web dengrok. Regístrese para obtener una nueva cuenta 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 ngrok a la cuenta de ngrok mediante la ejecución del siguiente comando:
ngrok authtoken <your-authentication-token>
Para más información, consulte Paso 2: Conecte su cuenta.
Abra el túnel HTTP en el puerto localhost 7071 mediante la ejecución del comando siguiente:
ngrok http 7071
Para obtener más información, consulte el Paso 3: Actívelo.
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 la operación de webhook que desea usar en el flujo de trabajo.
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 finalizar este paso, la solicitud no aparecerá para las operaciones posteriores de webhook que puede agregar.
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
Values
objeto , la propiedad denominadaWorkflows.WebhookRedirectHostUri
ahora aparece 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", <...> } }
Para obtener más información sobre esta configuración de aplicación, consulte Editar la configuración de la aplicación y la configuración de host para aplicaciones lógicas estándar.
La primera vez que inicia una sesión de depuración local o ejecuta el flujo de trabajo sin depurar, el tiempo de ejecución de Azure Logic Apps registra el flujo de trabajo con el autor de la llamada y se suscribe al punto de conexión del autor de la llamada que notifica 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 de un flujo de trabajo que usa operaciones de 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"
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.<workflow-name>.operationOptions
y establezca el valor enWithStatelessRunHistory
, por ejemplo:Windows
{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "dotnet", "Workflows.<workflow-name>.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.<workflow-name>.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.<workflow-name>.OperationOptions
enNone
, o elimine la propiedad y su valor.
Adición de artefactos y dependencias al proyecto
En escenarios específicos, el flujo de trabajo puede incluir operaciones que requieran dependencias como ensamblados o artefactos como mapas, esquemas o reglas. En Visual Studio Code, puede agregar estos elementos a las carpetas correspondientes del proyecto, por ejemplo:
Elemento | Tipo de archivo | Descripción |
---|---|---|
Mapas | .xslt | Para obtener más información, consulte Adición de mapas para transformaciones en flujos de trabajo. |
Esquemas | .xsd | Para obtener más información, vea Agregar esquemas para la validación. |
Reglas | .xml | Para más información, consulte Creación de un proyecto del motor de reglas de Azure Logic Apps. |
Ensamblados |
-
.dll (.NET Framework o .NET 8) - .jar (Java) |
Un recurso de 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 de proyecto específicas. Para obtener más información, vea Agregar ensamblados a los que se hace referencia. Nota: Si tiene un proyecto de aplicación lógica basado en paquetes NuGet (.NET) antes de que los ensamblados fueran compatibles, consulte cómo migrar proyectos basados en paquetes NuGet para que usen ensamblados en la carpeta lib. |
Conversión del proyecto a basado en paquetes NuGet (.NET)
De forma predeterminada, Visual Studio Code crea el proyecto de aplicación lógica como un proyecto basado en agrupación de extensiones (Node.js). Si necesita un proyecto basado en paquetes NuGet (.NET), por ejemplo, para crear sus propios conectores integrados, debe convertir el proyecto predeterminado en un proyecto basado en paquetes NuGet (.NET).
Importante
Esta acción es una operación unidireccional que no se puede deshacer.
En el panel Explorador, mueva el puntero del mouse sobre cualquier área en blanco debajo de las carpetas y archivos del proyecto, 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.
Migración de proyectos basados en paquetes NuGet para usar ensamblados en la carpeta "lib"
Importante
Esta tarea solo es necesaria para los proyectos de aplicaciones LOGIC APP (.NET) basados en paquetes NuGet creados antes de que estuviera disponible el soporte para ensamblados.
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>:
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 basado en agrupación de extensiones (Node.js) en un proyecto 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.
Ejecutar, depurar y probar flujos de trabajo localmente
En las secciones siguientes se muestra cómo puede establecer puntos de interrupción e iniciar una sesión de depuración para ejecutar y probar el flujo de trabajo localmente.
Establecimiento 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.
Actualmente, los puntos de interrupción solo se admiten para acciones, no para 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.
Depuración y prueba del flujo de trabajo
Para probar el flujo de trabajo, siga estos pasos para ejecutar 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.
Si tiene un flujo de trabajo sin estado, habilite el historial de ejecución del flujo de trabajo para facilitar la depuración.
En el menú Ejecutar , 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 dirección URL de devolución de llamada del punto de conexión creado por el desencadenador Solicitud.
Vuelva a abrir el panel Explorador para ver el proyecto.
En el menú contextual del archivo workflow.json, seleccione Información general.
Copie y guarde la dirección URL de devolución de llamada, que tiene un aspecto similar a la siguiente dirección URL para el desencadenador Cuando se recibe una solicitud HTTP en este 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>
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, mediante la herramienta de solicitud HTTP y sus instrucciones.
Este ejemplo 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. En Historial de ejecución, compruebe el estado de la 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. Una ejecución no se produce para un desencadenador que se omite debido a criterios no correctos ni a la búsqueda de 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 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. cancelados La ejecución se ha desencadenado y se ha iniciado, pero ha recibido una solicitud de cancelación. Fallido 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. en 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.Éxito 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 denominado 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 la opción Retención del historial de ejecución de en días, la ejecución se borra del historial de ejecución mediante un trabajo de limpieza diario. 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. Sin embargo, la ejecución se mantiene o se borra del historial de ejecución en función de si su duración supera o no 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 ver el estado, las entradas y las salidas de cada paso para una ejecución de flujo de trabajo específica, elija cualquiera de los pasos siguientes:
En la columna Identificador , seleccione el identificador de ejecución del flujo de trabajo.
Junto a la columna Duración, abra el menú de puntos suspensivos (...) de una ejecución de flujo de trabajo y, por ejemplo, seleccione Mostrar ejecución.
Visual Studio Code abre la vista de detalles de ejecución y muestra el estado de cada paso de la ejecución del flujo de trabajo.
Nota:
Si se produjo un error en una ejecución y un paso en la vista de detalles de ejecución muestra el error 400 Solicitud incorrecta, este problema podría deberse a un nombre de desencadenador más largo o un nombre de acción 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. cancelados La acción se estaba ejecutando, pero recibió una solicitud de cancelación. Fallido Se produjo un error en la acción. en ejecución La acción se está ejecutando actualmente. Se omitió 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.Éxito 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 especificado por la configuración de esa acción. En espera Se aplica a una acción de webhook que está esperando una solicitud entrante de un autor de llamada. Para ver las entradas y salidas de cada paso, seleccione el paso que desee, por ejemplo:
Para ver las entradas y salidas sin procesar, 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 tiene un flujo de trabajo que comienza con el desencadenador Cuando se recibe una solicitud HTTP, el flujo de trabajo puede devolver una respuesta al autor de la llamada que envió la solicitud inicial mediante la acción Solicitud denominada Respuesta.
En el diseñador de flujo de trabajo, en la acción Enviar un correo electrónico , siga estos pasos generales para agregar la acción Solicitud denominada Respuesta.
En el panel información de la acción Respuesta , en la pestaña Parámetros , proporcione la información necesaria para responder al autor de la llamada.
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 ahora se establece en el valor De salida Cuerpo de la acción Enviar un correo electrónico, por ejemplo:
Guarde el flujo de trabajo.
Volver a probar el flujo de trabajo
Para probar las actualizaciones, puede volver a ejecutar el depurador y enviar otra solicitud que desencadene el flujo de trabajo, de forma similar a los pasos descritos en Ejecutar, depurar y probar flujos de trabajo localmente.
En la barra de herramientas de Visual Studio Code, en el menú Ejecutar y seleccione Iniciar depuración (F5).
En la herramienta para crear y enviar solicitudes, envíe otra solicitud para desencadenar el flujo de trabajo.
En la página de información general del flujo de trabajo, en Historial de ejecución, compruebe el estado de la ejecución más reciente y abra la vista de detalles de ejecución.
Por ejemplo, este es el estado paso a paso de una ejecución después de actualizar 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).
Preparar la implementación
Antes de implementar la aplicación lógica estándar en Azure Portal, revise esta sección para obtener cualquier preparación que necesite realizar.
Configuración del acceso al firewall
Si el entorno tiene estrictos requisitos de red o firewalls que limitan el tráfico, debe configurar permisos para las conexiones creadas por los conectores administrados, hospedados y compartidos de Azure y que se usan en el flujo de trabajo.
Para buscar los nombres de dominio completos (FQDN) de estas conexiones, siga estos pasos:
En el proyecto de aplicación lógica, abra el archivo local.settings.json .
Para cada conexión que haya creado, busque la propiedad denominada
<connection-name>-ConnectionRuntimeUrl
, que usa la sintaxis siguiente:"<connection-name>-ConnectionRuntimeUrl": <connection-runtime-URL>
Por ejemplo, supongamos que tiene un archivo local.settings.json de ejemplo que contiene estas conexiones: una conexión de Office 365 y una conexión AS2. Estas conexiones usan los siguientes valores de ejemplo correspondientes para las
<connection-name>-ConnectionRuntimeUrl
propiedades:Office 365:
"office365-ConnectionRuntimeUrl": https://A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u.00.common.logic-<Azure-region>.azure-apihub.net/apim/office365/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1"
AS2:
"as2-ConnectionRuntimeUrl": https://A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u.00.common.logic-<Azure-region>.azure-apihub.net/apim/as2/b1b1b1b1-cccc-dddd-eeee-f2f2f2f2f2f2
El archivo local.settings.json de ejemplo es similar a la versión siguiente:
{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "node", "APP_KIND": "workflowapp", "ProjectDirectoryPath": "c:\\Users\\<local-username>\\Desktop\\Visual Studio Code projects\\Azure Logic Apps\fabrikam-workflows\\Fabrikam-Workflows\\Fabrikam-Workflows", "WORKFLOWS_TENANT_ID": "<Microsoft-Entra-tenant-ID>", "WORKFLOWS_SUBSCRIPTION_ID": "<Azure-subscription-ID>", "WORKFLOWS_RESOURCE_GROUP_NAME": "Fabrikam-Workflows-RG", "WORKFLOWS_LOCATION_NAME": "westcentralus", "WORKFLOWS_MANAGEMENT_BASE_URI": "https://management.azure.com/", "as2-connectionKey": "<connection-key>", "as2-ConnectionRuntimeUrl": "https://A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u.00.common.logic-<Azure-region>.azure-apihub.net/apim/as2/b1b1b1b1-cccc-dddd-eeee-f2f2f2f2f2f2", "office365-connectionKey": "<connection-key>", "office365-ConnectionRuntimeUrl": "https://A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u.00.common.logic-<Azure-region>.azure-apihub.net/apim/office365/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1", } }
Copie y guarde estas direcciones URL del entorno de ejecución de conexión en algún lugar seguro para que pueda configurar el firewall con esta información.
Cuando esté listo, configure el firewall mediante las direcciones URL guardadas. Para más información, consulte la siguiente documentación:
Implementación en Azure
Para implementar la aplicación lógica estándar desde Visual Studio Code, puede publicar directamente el proyecto en Azure. Puede publicar la aplicación lógica como un nuevo recurso, que crea automáticamente los recursos necesarios, como una cuenta de Azure Storage, de forma 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, que sobrescribe la versión implementada.
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 obtener más información, consulte Planes de hospedaje y niveles de precios.
Publicación en un nuevo recurso de aplicación lógica estándar
En el panel Explorador, mueva el puntero del mouse sobre cualquier área en blanco debajo de las carpetas y archivos del proyecto, abra el menú contextual y seleccione Implementar en la aplicación lógica.
Aunque no es necesario tener ningún archivo abierto para la implementación, asegúrese de guardar todo lo que planea implementar.
Se le pedirán las siguientes opciones para el recurso de aplicación lógica estándar de destino. Puede crear una nueva aplicación lógica estándar o seleccionar una aplicación lógica estándar implementada existente en Azure:
- 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)
- Seleccione entre los recursos de aplicación lógica estándar implementados anteriormente, si existe alguno.
Para las opciones de implementación, seleccione si desea crear o usar un recurso de aplicación lógica de destino existente.
Este ejemplo continúa con Create new Logic App (Standard) in Azure Advanced (Crear nueva instancia de Logic Apps [estándar] en Azure avanzado).
Siga estos pasos para crear el nuevo recurso de aplicación lógica de destino:
Escriba un nombre único global para la aplicación lógica de destino.
En este ejemplo se usa Fabrikam-Workflows-App.
Para la ubicación en la que se va a implementar, seleccione la región de Azure.
En este ejemplo se usa Centro-oeste de EE. UU.
Para el plan de hospedaje, elija entre las opciones siguientes:
Plan de hospedaje Descripción Flujo de trabajo estándar Implemente como un nuevo recurso de aplicación lógica Estándar hospedado en Azure Logic Apps de un solo inquilino. Híbrido Implemente como una aplicación lógica estándar hospedada en su propia infraestructura.
Nota: Antes de seleccionar esta opción, asegúrese de que ha configurado la infraestructura necesaria. Para más información, consulte Configuración de su propia infraestructura para aplicaciones lógicas estándar mediante la implementación híbrida.Para el plan de Windows App Service, elija una de las siguientes opciones:
- Creación de un nuevo plan de App Service
- Seleccione entre los planes de App Service existentes en la región de Azure seleccionada (solo planes basados en Windows), si existe alguno.
En este ejemplo se selecciona Crear nuevo plan de App Service.
Para el nuevo plan, proporcione un nombre único global y seleccione un plan de tarifa.
En este ejemplo se usa Fabrikam-Workflows-App-Service-Plan y se selecciona el nivel Estándar de flujo de trabajo de WS1 .
Para obtener más información, consulte Planes de hospedaje y niveles de precios.
En el grupo de recursos de Azure de destino, seleccione el mismo grupo de recursos que el proyecto para obtener un rendimiento óptimo.
En este ejemplo se usa el mismo grupo creado anteriormente denominado Fabrikam-Workflows-RG.
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 que la cuenta de Almacenamiento de Azure se use con flujos de trabajo que permiten guardar información del historial de ejecución, elija entre las siguientes opciones:
- Creación de una cuenta de almacenamiento
- Seleccione entre las cuentas de Almacenamiento de Azure existentes, si las hay.
En este ejemplo se selecciona Crear nueva cuenta de almacenamiento.
Escriba un nombre único global para la cuenta de almacenamiento. Solo puede usar letras minúsculas y números.
En este ejemplo se usa fabrikamstorageaccount<number>.
Para la opción para usar el almacenamiento de SQL en este ejemplo, seleccione No.
Si ya ha configurado una base de datos SQL para usarla para el almacenamiento siguiendo Configuración del almacenamiento de SQL Database para flujos de trabajo de aplicaciones lógicas estándar, puede seleccionar Sí.
Para el recurso de Application Insights, que habilita el registro de diagnóstico y el seguimiento de la aplicación lógica, elija entre las siguientes opciones:
- Creación de un nuevo recurso de Application Insights
- Omitir por ahora. Puede configurar Application Insights después de la implementación.
- Seleccione un recurso de Application Insights existente, si existe alguno.
En este ejemplo se selecciona Omitir por ahora.
Nota:
Si tiene un recurso de Application Insights que desea usar, puede seleccionar ese recurso.
Para crear un nuevo recurso de Application Insights en este momento para que pueda habilitar el registro y el seguimiento de diagnósticos, consulte Habilitación de Application Insights durante la implementación.
Para más información sobre Application Insights, consulte la siguiente documentación:
Después de seleccionar Omitir por ahora o un recurso de Application Insights existente, Visual Studio Code muestra un mensaje de confirmación para iniciar la implementación. El mensaje también recomienda que, para obtener el mejor rendimiento, coloque los recursos de conexión para las operaciones administradas en el mismo grupo de recursos que el recurso y los flujos de trabajo de la aplicación lógica. En Azure Logic Apps, las conexiones de operación administradas existen como recursos individuales de Azure.
Cuando esté listo para implementar, en el mensaje de confirmación, seleccione Implementar.
Visual Studio Code comienza a crear e implementar los recursos necesarios para publicar la aplicación lógica en Azure.
Para ver y supervisar el proceso de implementación, en el menú Ver , seleccione Salida.
En la barra de herramientas de la ventana Salida, en la lista de ámbitos, seleccione Azure Logic Apps (Estándar).
Cuando Visual Studio Code termina de implementar la aplicación lógica en Azure, aparece un mensaje que indica que la creación de la aplicación lógica se completó correctamente, por ejemplo:
El recurso y el flujo de trabajo de la aplicación lógica ahora están activos, habilitados y en ejecución en Azure.
Habilitación de Application Insights durante la implementación
Para habilitar el registro y el seguimiento de diagnósticos con Application Insights durante la implementación de la aplicación lógica, 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> } }
Compruebe si los nombres de desencadenador y acción del flujo de trabajo 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.
Opcionalmente, ajuste el nivel de gravedad de los datos de seguimiento que recopila la aplicación lógica y los 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 la tabla siguiente 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 el flujo de trabajo de 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" } } }
Tareas posteriores a la implementación
En las secciones siguientes se describen las tareas que se deben realizar una vez completada la implementación de la aplicación lógica.
Confirmación de la implementación en Azure Portal
Después de implementar la aplicación lógica desde Visual Studio Code en Azure Portal, confirme que la aplicación lógica aparece en el portal. Los recursos de Azure se organizan y agrupan en el portal en función de su tipo de recurso. Para buscar aplicaciones lógicas estándar, siga estos pasos:
Inicie sesión en Azure Portal con su cuenta de Azure.
En el cuadro de búsqueda título de Azure, escriba el nombre de la aplicación lógica, que debería aparecer como resultado en la sección Recursos . Seleccione la aplicación lógica para abrir el recurso.
En el menú de la aplicación lógica, en Flujos de trabajo, seleccione Flujos de trabajo.
En la página Flujos de trabajo, seleccione el flujo de trabajo.
En el menú flujo de trabajo, en Herramientas, seleccione Diseñador. Confirme que el flujo de trabajo aparece según lo previsto.
Ahora puede realizar cambios en este flujo de trabajo en Azure Portal.
Asegúrese de habilitar la experiencia de supervisión de la aplicación lógica implementada para que pueda ver el historial de ejecución del flujo de trabajo, las entradas, las salidas y otra información relacionada.
Habilitación de la experiencia de supervisión para la aplicación lógica implementada
Para poder revisar cualquier historial de ejecución de flujo de trabajo, entradas, salidas e información relacionada de un recurso de aplicación lógica estándar implementado con la experiencia de supervisión en Azure Portal, primero debe habilitar esa experiencia en el recurso de aplicación lógica.
En Azure Portal, abra el recurso de aplicación lógica estándar implementado.
En el menú de recursos, 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, el flujo de trabajo de la aplicación lógica emite telemetría junto con otros eventos. Puede usar esta telemetría para obtener una mejor visibilidad sobre cómo funciona el flujo de trabajo y cómo funciona el entorno de ejecución de Azure Logic Apps. Application Insights proporciona la funcionalidad de habilitar el registro, el seguimiento y la supervisión de diagnósticos para la aplicación lógica mediante telemetría casi en tiempo real (métricas activas). Esta funcionalidad le ayuda a investigar errores y problemas de rendimiento más fácilmente cuando se usan los datos de telemetría para diagnosticar problemas, configurar alertas y crear gráficos.
Si anteriormente no configuró Application Insights, puede habilitar esta funcionalidad en Azure Portal después de la implementación de aplicaciones lógicas desde Visual Studio Code. Debe tener un recurso de Application Insights en Azure, pero puede crear este recurso por separado de antemano o al habilitar esta funcionalidad después de la implementación.
Si anteriormente configuró Application Insights durante la implementación desde Visual Studio Code, puede abrir el recurso de Application Insights desde la aplicación lógica en Azure Portal.
Habilitación de Application Insights para una aplicación lógica implementada
En Azure Portal, busque y abra la aplicación lógica implementada.
En el menú aplicación lógica, en Supervisión, seleccione Application Insights.
En la página Application Insights , seleccione Activar Application Insights.
Después de actualizar la página de Application Insights , en la sección Cambiar el recurso , seleccione entre las opciones siguientes:
Creación de un nuevo recurso
Azure crea recursos para Application Insights y un área de trabajo de Log Analytics mediante la suscripción y el grupo de recursos actuales. Si desea usar una suscripción y un grupo de recursos diferentes, consulte Creación de un nuevo recurso de Application Insights y, a continuación, vuelva a esta página.
Propiedad Descripción Nuevo nombre de recurso Acepte el nombre generado o proporcione otro nombre. Ubicación Seleccionar una región de Azure. Área de trabajo de Log Analytics Seleccione un área de trabajo existente, si existe. De lo contrario, se crea automáticamente un área de trabajo predeterminada. Para obtener más información, vea Información general del área de trabajo de Log Analytics. Seleccione el recurso existente:
Seleccione la suscripción de Azure para el recurso de Application Insights.
Selección del recurso de Application Insights.
Cuando haya terminado, en la parte inferior de la página, seleccione Aplicar.
Apertura de Application Insights desde la aplicación lógica
En Azure Portal, busque y abra la aplicación lógica implementada.
En el menú aplicación lógica, en Supervisión, seleccione Application Insights.
En la página Application Insights , seleccione el vínculo del recurso 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 artículos:
- 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
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, pero descontinuó o eliminó el proyecto, es posible que la agrupación de extensiones no se descargue correctamente. Para comprobar si este motivo es la causa, 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 '<operation-ID>'. System.Private.CoreLib: The file 'C:\Users\<user-name>\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\<user-name>\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 cree e implemente mediante Visual Studio Code con la extensión Azure Logic Apps (Estándar), no a las aplicaciones lógicas que cree mediante Azure Portal. Vea Faltan desencadenadores y acciones en el diseñador en Azure Portal.
Guarde todos los trabajos que no quiera perder y cierre Visual Studio Code.
En el equipo, busque la carpeta siguiente, que contiene las carpetas con versión para el paquete existente:
...\Users\<user-name>\.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\<user-name>\.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
de su equipo siguiendo estos pasos. Estos valores predeterminados de clave se describen en este artículo ,Http.sys configuración del Registro 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.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 }