Implementación continua para Azure Functions
Azure Functions permite implementar continuamente los cambios realizados en un repositorio de control de código fuente en una aplicación de funciones conectada. Esta 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.
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. Si se conecta a un espacio de producción, asegúrese de que solo se incluye código de calidad de producción en la rama de código integrada.
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. Estos pasos pueden tener como destino un almacenamiento provisional o un espacio de producción.
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
La unidad de implementación de las funciones en Azure es la aplicación de funciones. Para que la implementación continua se realice correctamente, la estructura de directorios del proyecto debe ser compatible con la estructura de carpetas básica que espera Azure Functions. Al crear el proyecto de código mediante Azure Functions Core Tools, Visual Studio Code o Visual Studio, las plantillas de Azure Functions se usan para crear proyectos de código con la estructura de directorios correcta. 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.
Nota:
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).
Selección de un proveedor 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.
Importante
Para aumentar la seguridad, considere la posibilidad de usar un proveedor de compilación que admita identidades administradas, incluidas Azure Pipelines y Acciones de Gitub. El servicio App Service (Kudu) requiere que habilite la autenticación básica y trabaje con credenciales basadas en texto.
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. Compatibilidad con identidades administradas.
Tenga en cuenta las ventajas y limitaciones de estos proveedores al habilitar la integración del control de código fuente. Es posible que tenga que cambiar el tipo de origen del repositorio para aprovechar las ventajas de un proveedor específico.
Configuración de la implementación continua
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 específica de configurar la implementación continua depende tanto del tipo de repositorio de control de código fuente en el que reside el código como 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.
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.
Habilitar la 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
En algunos casos, la aplicación de funciones se crea con acceso de autenticación básico al punto de conexión 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
:
Vaya a la aplicación de funciones en Azure Portal.
En el menú izquierdo de la aplicación, seleccione Configuración>Configuración>Configuración general.
Establezca Credenciales de publicación de autenticación básica de SCM a En, y a continuación, seleccione Guardar.