Creación de Durable Functions mediante Azure Portal
La extensión Durable Functions para Azure Functions se proporciona en el paquete NuGet Microsoft.Azure.WebJobs.Extensions.DurableTask. Esta extensión debe instalarse en la aplicación de función. En este artículo se muestra cómo instalar este paquete para que pueda desarrollar funciones duraderas en Azure Portal.
Nota
- Si está desarrollando Durable Functions en C#, debería tener en cuenta el desarrollo de Visual Studio 2019.
- Si está desarrollando Durable Functions en JavaScript, debería tener en cuenta el desarrollo de Visual Studio Code.
Creación de una aplicación de función
Debe tener una aplicación de función para hospedar la ejecución de cualquier función. Una aplicación de funciones permite agrupar funciones como una unidad lógica para facilitar la administración, la implementación, el escalado y el uso compartido de recursos. Puede crear una aplicación .NET o JavaScript.
En el menú o la página Inicio de Azure Portal, seleccione Crear un recurso.
En la página Nuevo, seleccione Compute>Function App.
En Seleccionar una opción de hospedaje, seleccione Consumo>Seleccione para crear la aplicación en el plan de consumo predeterminado. En esta opción de hospedaje sin servidor, solo paga por el tiempo durante el cual se ejecutan las funciones. El plan Premium también ofrece escalado dinámico. Si ejecuta un plan de App Service, debe administrar el escalado de la aplicación de función.
En la página Básico, utilice la configuración de la aplicación de funciones como se especifica en la tabla siguiente:
Configuración Valor sugerido Descripción Suscripción Su suscripción Suscripción en la que creará la nueva aplicación de funciones. Grupo de recursos myResourceGroup Nombre del nuevo grupo de recursos en el que crea la aplicación de funciones. Debe crear un nuevo grupo de recursos, ya que existen limitaciones conocidas a la hora de crear nuevas aplicaciones de funciones en un grupo de recursos existente. Nombre de la aplicación de función Nombre único globalmente Nombre que identifica la nueva Function App. Los caracteres válidos son a-z
(no distingue mayúsculas de minúsculas),0-9
y-
.Pila en tiempo de ejecución Lenguaje preferido Elija un tiempo de ejecución que admita su lenguaje de programación de funciones preferido. La edición en el portal solo está disponible para JavaScript, PowerShell, Python, TypeScript y el script de C#.
Para crear una aplicación de script de C# que admita la edición en el portal, debe elegir una versión en runtime que admita el modelo en proceso.
Las funciones de la biblioteca de clases de C# y Java deben estar desarrolladas en el entorno local.Versión Número de la versión Elija la versión del entorno de ejecución instalado. Región Región preferida Seleccione una región próxima a usted o a otros servicios a los que accedan las funciones. Sistema operativo Windows Se preselecciona un sistema operativo en función de la selección de pila en tiempo de ejecución, pero es posible cambiar esta configuración si fuera necesario. La edición en el portal solo se admite en Windows. Acepte las opciones predeterminadas en las pestañas restantes, incluido el comportamiento predeterminado para crear una nueva cuenta de almacenamiento en la pestaña Almacenamiento y una nueva instancia de Application Insights en la pestaña Supervisión. También puede optar por usar una cuenta de almacenamiento existente o una instancia de Application Insights.
Seleccione Revisar y crear para revisar la configuración de la aplicación que ha elegido y, después, seleccione Crear para aprovisionar e implementar la aplicación de funciones.
Seleccione el icono Notificaciones de la esquina superior derecha del portal y observe el mensaje Implementación correcta.
Seleccione Ir al recurso para ver la nueva aplicación de función. También puede seleccionar Anclar al panel. Dicho anclaje facilita la vuelta a este recurso de aplicación de función desde el panel.
De forma predeterminada, la aplicación de función creada utiliza la versión 2.x del entorno de ejecución de Azure Functions. La extensión de Durable Functions funciona en ambas versiones 1.x y 2.x del entorno de ejecución de Azure Functions en C# y en la versión 2.x de JavaScript. Sin embargo, las plantillas solo están disponibles cuando la versión del entorno de ejecución de destino es la 2.x, con independencia del lenguaje elegido.
Instalación del paquete npm de Durable Functions (solo para JavaScript)
Si va a crear Durable Functions de JavaScript, deberá instalar el durable-functions
paquete npm:
En la página de la aplicación de funciones, seleccione Herramientas avanzadas en Herramientas de desarrollo en el panel izquierdo.
En la página Herramientas avanzadas, seleccione Ir.
En la consola de Kudu, seleccione Consola de depuración y, a continuación, CMD.
Debería aparecer la estructura de directorios de archivos de la aplicación de funciones. Vaya a la carpeta
site/wwwroot
. Desde allí, puede cargar un archivopackage.json
al arrastrarlo y colocarlo en la ventana del directorio de archivo. A continuación se muestra el ejemplopackage.json
:{ "dependencies": { "durable-functions": "^1.3.1" } }
Una vez cargado el archivo
package.json
, ejecute el comandonpm install
en la consola de ejecución remota de Kudu.
Creación de una función de orquestador
En la aplicación de funciones, seleccione Funciones en el panel izquierdo y, a continuación, seleccione Agregar en el menú superior.
En el campo de búsqueda de la página Nueva función, escriba
durable
y elija la plantilla Inicio HTTP de Durable Functions.Para el nombre de la Nueva función, escriba
HttpStart
y seleccione Crear función.La función creada se usa para iniciar la orquestación.
Cree otra función en la aplicación de funciones, esta vez mediante la plantilla Orquestador de Durable Functions. Asigne un nombre a la nueva función de orquestación
HelloSequence
.Cree una tercera función llamada
Hello
mediante la plantilla Actividad de Durable Functions.
Prueba de la orquestación de función duradera
Vuelva a la función HttpStart, elija Obtener la dirección URL de la función y seleccione el icono Copiar al Portapapeles para copiar la dirección URL. Use esta dirección URL para iniciar la función HelloSequence.
Use una herramienta de prueba HTTP segura para enviar una solicitud HTTP POST al punto de conexión de la dirección URL. Este ejemplo es un comando de cURL que envía una solicitud POST a la función duradera:
curl -X POST https://{your-function-app-name}.azurewebsites.net/api/orchestrators/{functionName} --header "Content-Length: 0"
En este ejemplo,
{your-function-app-name}
es el dominio que es el nombre de la aplicación de función y{functionName}
es la función orquestadora HelloSequence. El mensaje de respuesta contiene un conjunto de puntos de conexión URI que puede usar para supervisar y administrar la ejecución, que es similar al ejemplo siguiente:{ "id":"10585834a930427195479de25e0b952d", "statusQueryGetUri":"https://...", "sendEventPostUri":"https://...", "terminatePostUri":"https://...", "rewindPostUri":"https://..." }
Asegúrese de elegir una herramienta de prueba HTTP que mantenga los datos seguros. Para obtener más información, vea herramientas de prueba HTTP.
Llame al URI del punto de conexión
statusQueryGetUri
y verá el estado actual de la función duradera, lo que podría parecerse a este ejemplo:{ "runtimeStatus": "Running", "input": null, "output": null, "createdTime": "2017-12-01T05:37:33Z", "lastUpdatedTime": "2017-12-01T05:37:36Z" }
Continúe con la llamada al punto de conexión
statusQueryGetUri
hasta que el estado cambie a Completado, y verá una respuesta similar al ejemplo siguiente:{ "runtimeStatus": "Completed", "input": null, "output": [ "Hello Tokyo!", "Hello Seattle!", "Hello London!" ], "createdTime": "2017-12-01T05:38:22Z", "lastUpdatedTime": "2017-12-01T05:38:28Z" }
La primera función duradera ahora está en funcionamiento en Azure.