Implementación continua para Azure Functions

Puede usar Azure Functions para implementar el código de forma continua mediante la integración del control de código fuente. La integración del control de código fuente permite un flujo de trabajo en el que una actualización de código desencadena la compilación, el empaquetado y la implementación desde el proyecto a Azure.

La implementación continua es una buena opción para los proyectos donde se integran contribuciones diversas y frecuentes. Al usar la implementación continua, se mantiene un único origen de confianza para el código, lo que permite a los equipos colaborar fácilmente.

En los pasos de este artículo se muestra cómo configurar implementaciones de código continuas en la aplicación de funciones en Azure mediante el Centro de implementación de Azure Portal. También puede configurar la integración continua mediante la CLI de Azure.

Functions admite estos orígenes para la implementación continua en la aplicación:

Mantenga el código del proyecto en Azure Repos, uno de los servicios de Azure DevOps. Admite el Control de versiones de Team Foundation y Git. Se usa con el proveedor de compilación de Azure Pipelines. Para obtener más información, consulte ¿Qué es Azure Repos?

También puede conectar la aplicación de funciones a un repositorio Git externo, pero esto requiere una sincronización manual. Para más información sobre las opciones de implementación, consulte Tecnologías de implementación en Azure Functions.

Nota:

Las opciones de implementación continua que se tratan en este artículo son específicas de las implementaciones de solo código. Para las implementaciones de aplicaciones de funciones en contenedor, consulte Habilitación de la implementación continua de contenedores en Azure.

Requisitos

Para que la implementación continua se realice correctamente, la estructura de directorios debe ser compatible con la estructura básica de carpetas que espera Azure Functions.

El código de todas las funciones de una aplicación de funciones está ubicado en una carpeta de proyecto raíz que contiene un archivo de configuración de host. El archivo host.json contiene configuraciones específicas del entorno de ejecución y está en la carpeta raíz de la aplicación de funciones. Un carpeta bin contiene paquetes y otros archivos de biblioteca que requiere la aplicación de funciones. Las estructuras de carpeta específicas necesarias para la aplicación de funciones dependen del lenguaje:

Todas las funciones de una aplicación de funciones deben compartir la misma pila de lenguaje.

Proveedores de compilación

La compilación del proyecto de código forma parte del proceso de implementación. El proceso de compilación específico depende de la pila de lenguajes, el sistema operativo y el plan de hospedaje específicos. Las compilaciones se pueden realizar de forma local o remota, de nuevo en función del hospedaje específico. Para obtener más información, consulte Compilación remota.

Functions admite estos proveedores de compilación:

Azure Pipelines es uno de los servicios de Azure DevOps y el proveedor de compilación predeterminado para los proyectos de Azure Repos. También puede usar Pipelines para compilar proyectos desde GitHub. En Pipelines, hay una tarea de AzureFunctionApp diseñada específicamente para la implementación en Azure Functions. Esta tarea le proporciona control sobre cómo se compila, empaqueta e implementa el proyecto.

Las opciones para las que se pueden usar estos proveedores de compilación dependen del origen de implementación de código específico.

Centro de implementación

Azure Portal proporciona un centro de implementación para las aplicaciones de funciones, lo que facilita la configuración de la implementación continua. La forma en la que configure la implementación continua dependerá del control de código fuente específico en el que resida el código y del proveedor de compilación que elija.

En Azure Portal, vaya a la página de la aplicación de funciones y seleccione Centro de implementación en Implementación en el panel izquierdo.

Captura de pantalla del Centro de implementación de aplicaciones de funciones en Azure Portal, en el que debe elegir el repositorio de origen.

Seleccione el tipo de repositorio Origen en el que se mantenga el código del proyecto desde una de estas opciones admitidas:

Las implementaciones de Azure Repos que usan Azure Pipelines se definen en el portal de Azure DevOps y no en la aplicación de funciones. Para obtener una guía paso a paso para crear una implementación basada en canalizaciones desde Azure Repos, consulte Entrega continua con Azure Pipelines.

Cuando finalice la implementación, todo el código del origen especificado se implementará en la aplicación. Hecho esto, los cambios en el origen de implementación desencadenarán una implementación de dichos cambios en la aplicación de funciones en Azure.

Consideraciones

Debe tener en cuenta estas consideraciones al planear una estrategia de implementación continua:

  • GitHub es el único origen que actualmente admite la implementación continua para aplicaciones Linux que se ejecutan en un plan de consumo, que es una opción de hospedaje popular para las aplicaciones de Python.

  • La unidad de implementación de las funciones en Azure es la aplicación de funciones. Todas las funciones de una aplicación de funciones se implementan al mismo tiempo y en el mismo paquete.

  • Después de habilitar la implementación continua, el acceso al código de función en Azure Portal se configura como de solo lectura porque el origen de confianza se sabe que reside en otro lugar.

  • Siempre debe configurar la implementación continua para un espacio de ensayo y no de producción. Cuando se usa el espacio de producción, las actualizaciones de código se insertan directamente en producción sin comprobarse en Azure. En su lugar, habilite la implementación continua en un espacio de ensayo, compruebe las actualizaciones en este y, después de que todo se ejecute correctamente, podrá intercambiar el código del espacio de ensayo por el de producción.

  • El Centro de implementación no admite la habilitación de la implementación continua para una aplicación de funciones con restricciones de red entrantes. En su lugar, debe configurar el flujo de trabajo del proveedor de compilación directamente en GitHub o Azure Pipelines. Estos flujos de trabajo también requieren que use una máquina virtual en la misma red virtual que la aplicación de funciones como un agente autohospedado (Pipelines) o un ejecutor autohospedado (GitHub).

Implementación continua durante la creación de aplicaciones

Actualmente, puede configurar la implementación continua desde GitHub mediante Acciones de GitHub al crear la aplicación de funciones en Azure Portal. Puede hacerlo en la pestaña Implementación de la página Crear aplicación de funciones.

Si desea usar otro origen de implementación o proveedor de compilación para la integración continua, cree primero la aplicación de funciones y, a continuación, vuelva al portal y configure la integración continua en el Centro de implementación.

Habilitación de la autenticación básica para implementaciones

De forma predeterminada, la aplicación de funciones se crea con acceso de autenticación básico al punto de conexión de scm deshabilitado. Esto bloquea la publicación por todos los métodos que no pueden usar identidades administradas para acceder al punto de conexiónscm. Los efectos de publicación de tener deshabilitado el punto de conexión scm se detallan en Implementación sin autenticación básica.

Importante

Cuando se usa la autenticación básica, las credenciales se envían en texto no cifrado. Para proteger estas credenciales, solo debe acceder al punto de conexión scm a través de una conexión cifrada (HTTPS) al usar la autenticación básica. Para obtener más información, vea implementación segura.

Para habilitar la autenticación básica en el punto de conexión scm:

  1. Vaya a la aplicación de funciones en Azure Portal.

  2. En el menú izquierdo de la aplicación, seleccione configuración>Configuración general.

  3. Establezca Credenciales de publicación de autenticación básica de SCM a En, y a continuación, seleccione Guardar.

Pasos siguientes