Anuncio de la disponibilidad general de la compatibilidad de Azure Functions con Python

Publicado el 19 agosto, 2019

Principal PM Manager, Azure Functions

La compatibilidad de Azure Functions con Python ya está disponible con carácter general y lista para hospedar sus cargas de producción de ciencia de datos, aprendizaje automático, administración de recursos automatizada, etc. Ya puede implementar aplicaciones de Python 3.6 para ejecutarlas en el entorno de ejecución multiplataforma y de código abierto Functions Runtime 2.0. Puede publicarlas como código o como contenedores de Docker en una plataforma de hospedaje sin servidor basada en Linux en Azure. Esta pila sustenta las innovaciones de la solución de los usuarios pioneros. Clientes como General Electric Aviation y TCF Bank ya están utilizando funciones de Azure Functions escritas en Python para sus cargas de trabajo de producción sin servidor. A ellos queremos agradecerles su colaboración constante.

Como dijo David Havera, director de Blockchain Analytics Engineering, "GE Aviation Digital Group espera tener un lenguaje común que se pueda usar tanto en ingeniería de datos en el back-end como en análisis y aprendizaje automático en el front-end. Microsoft ha sido fundamental para llevar a cabo esta idea al hacer realidad lo que antes era una versión preliminar de la funcionalidad de Python en Azure Functions, ya que nos ha permitido realizar una implementación real de ciencia de datos y cadena de bloques en nuestro proyecto TRUEngine".

Durante la versión preliminar de Python en Azure Functions, recopilamos comentarios de la comunidad con el fin de facilitar la experiencia de creación, incluir un modelo de programación idiomático y crear una plataforma más sólida en Linux que ofreciera un rendimiento mayor. Esta entrada es un resumen de todo lo que necesita saber sobre la funcionalidad de Python en Azure Functions e incluye recursos para ayudarle a comenzar con las herramientas que prefiera.

Traiga sus cargas de trabajo de Python a Azure Functions

Muchas cargas de trabajo de Python funcionan muy bien con el modelo sin servidor. Esto le permite centrarse en la lógica de negocios única de su organización mientras deja que Azure se ocupe de cómo se ejecuta el código. Estamos encantados por el interés que ha mostrado la comunidad de Python y por las soluciones productivas que se han creado con Python en Functions.

Cargas de trabajo y patrones de diseño

Aunque esta no es de ningún modo una lista exhaustiva, mencionamos aquí algunos ejemplos de cargas de trabajo y patrones de diseño que son fáciles de convertir en funciones de Azure Functions escritas en Python.

Canalizaciones de ciencia de datos simplificadas

Python es un lenguaje magnífico para la ciencia de datos y el aprendizaje automático. Aproveche la compatibilidad de Azure Functions con Python para proporcionar hospedaje sin servidor para aplicaciones inteligentes. Estas son algunas ideas que puede tener en cuenta:

  • Use Azure Functions para implementar un modelo de aprendizaje automático entrenado junto con un script de puntuación para crear una aplicación de inferencia.

Aplicación de inferencia de Azure Functions

  • Aproveche desencadenadores y enlaces de datos para ingerir, mover, preparar, transformar y procesar datos con Functions.
  • Use Functions para incluir desencadenadores controlados por eventos con el fin de volver a entrenar y modelar canalizaciones de actualización cuando hay nuevos conjuntos de datos disponibles.

Administración de recursos automatizada

A medida que se traslada un número cada vez mayor de recursos y cargas de trabajo a la nube, hay una clara necesidad de proporcionar formas más eficaces de administrar, gobernar y automatizar los correspondientes recursos en la nube. Estos escenarios de automatización requieren lógica personalizada que se puede expresar fácilmente con Python. Los siguientes son algunos escenarios comunes:

  • Procesar alertas de Azure Monitor generadas por los servicios de Azure.
  • Reaccionar a eventos de Azure capturados por Azure Event Grid y aplicar requisitos operativos a los recursos.

Administración de recursos automatizada controlada por eventos

  • Aprovechar Azure Logic Apps para conectarse a sistemas externos, como los de administración de servicios de TI, DevOps o sistemas de supervisión mientras se procesa la carga útil con una función de Python.
  • Realizar tareas operativas programadas en máquinas virtuales, SQL Server, aplicaciones web y otros recursos de Azure.

Modelo de programación eficaz

Azure Functions proporciona un modelo de programación productivo basado en desencadenadores de eventos y enlaces de datos que permite agilizar el desarrollo con Python. Este modelo se basa en una experiencia de desarrollo integral de talla mundial que abarca desde la compilación y la depuración en modo local hasta la implementación y la supervisión en la nube.

El modelo de programación está diseñado para proporcionar una experiencia homogénea a los desarrolladores de Python con el fin de que puedan comenzar a escribir funciones con rapidez usando construcciones de código que ya conocen o importando scripts .py y módulos que ya tienen para crear una función. Por ejemplo, puede implementar funciones como corrutinas asincrónicas usando el calificador async def o enviar datos de seguimiento de supervisión al host utilizando el módulo de registro estándar. Se pueden configurar dependencias adicionales para pip install usando el archivo requirements.txt.

Modelo de programación de Azure Functions

Con el modelo de programación controlado por eventos de Functions, basado en desencadenadores y enlaces, puede configurar fácilmente eventos que desencadenen la ejecución de una función y los orígenes de datos que la función necesite para la orquestación. Este modelo permite aumentar la productividad cuando se desarrollan aplicaciones que interactúan con varios orígenes de datos, ya que reduce la cantidad de código reutilizable, los SDK y las dependencias que requieren administración y soporte técnico. Una vez configurado, puede recuperar datos rápidamente de los enlaces o reescribirlos usando los atributos de método de la función de punto de entrada. El SDK de Python para Azure Functions proporciona un nivel de API muy completo para crear enlaces con solicitudes HTTP, eventos de temporizador y otros servicios de Azure, como Azure Storage, Azure Cosmos DB, Service Bus, Event Hubs o Event Grid, de modo que puede usar mejoras de la productividad, como la finalización de código e Intellisense, cuando escribe código. El modelo de extensibilidad de Azure Functions le permite usar sus propios enlaces con una función, de modo que puede conectarse también a otros flujos de datos, como Kafka o SignalR.

Ejemplo de desencadenador de cola de Azure Functions

Desarrollo más sencillo

Como desarrollador de Python, puede usar las herramientas que prefiera para desarrollar funciones. Con Azure Functions Core Tools, podrá ponerse en marcha usando plantillas basadas en desencadenadores, ejecutar funciones en modo local para probarlas con eventos en tiempo real procedentes de orígenes en la nube reales y publicarlas directamente en Azure, al tiempo que invoca automáticamente una compilación de dependencias en el lado servidor tras la implementación. Puede usar Core Tools junto con el IDE o el editor de texto que desee para mejorar la experiencia de creación.

También puede aprovechar la extensión de Azure Functions para Visual Studio Code con el fin de lograr una experiencia de edición perfectamente integrada que facilite la creación de aplicaciones nuevas, la adición de funciones y la implementación, todo ello en cuestión de minutos. La experiencia de depuración con un solo clic permite probar las funciones en modo local, establecer puntos de interrupción en el código y evaluar la pila de llamadas, simplemente presionando F5. Combine esto con la extensión de Python para Visual Studio Code y obtendrá una experiencia de desarrollo con Python mejorada con características como la finalización de código, Intellisense, el análisis de código en busca de errores (linting) y la depuración.

Desarrollo con Azure Functions y Visual Studio Code

Para disfrutar de una experiencia de entrega continua completa, ahora puede aprovechar la integración con Azure Pipelines, uno de los servicios de Azure DevOps, usando una tarea optimizada para Azure Functions que permite crear las dependencias de una aplicación y publicarlas en la nube. La canalización se puede configurar usando una plantilla de Azure DevOps o con la CLI de Azure.

A través de Azure Application Insights, hay disponible también una funcionalidad avanzada de observación y supervisión para funciones escritas en Python, de modo que puede supervisar sus aplicaciones usando Live Metrics Stream, recopilar datos, consultar los registros de ejecución y ver los datos de seguimiento distribuidos en una gran variedad de servicios de Azure.

Hospede sus aplicaciones de Python con Azure Functions

Hospede sus aplicaciones de Python con el plan Consumo o el plan Premium de Azure Functions en Linux.

El plan Consumo ya está disponible con carácter general para el hospedaje basado en Linux y listo para cargas de trabajo de producción. Este plan sin servidor proporciona escalado dinámico controlado por eventos y solo se cobran los recursos de proceso cuando se ejecutan las funciones. Ahora el plan para Linux admite también identidades administradas, lo que permite que una aplicación funcione sin problemas con recursos de Azure, como Azure Key Vault, sin necesidad de usar más secretos.

Identidades administradas en el plan Consumo para Linux de Azure Functions

El hospedaje del plan Consumo para Linux incluye también una versión preliminar de compilaciones remotas integradas que simplifican la administración de dependencias. Esta nueva funcionalidad está disponible como opción cuando se publican soluciones a través de Azure Functions Core Tools y permite realizar compilaciones en la nube en el mismo entorno que se usa para hospedar las aplicaciones, en lugar de configurar un entorno de compilación local en línea con el hospedaje de Azure Functions.

Compilación remota de Python con Azure Functions

Las cargas de trabajo que requieren características avanzadas, como un hardware con más prestaciones, la capacidad de mantener las instancias en espera semiactiva de forma indefinida y la conectividad de red virtual, pueden beneficiarse del plan Premium, que ahora incluye hosting basado en Linux en versión preliminar.

Integración con redes virtuales en el plan Premium de Azure Functions

Con el plan Premium para el hospedaje basado en Linux, puede elegir entre traer solo el código de la aplicación o traer una imagen de Docker personalizada para encapsular todas las dependencias, incluido Azure Functions Runtime, como se explica en el artículo “Creación de una función en Linux con una imagen personalizada” de la documentación. En los dos casos se beneficia porque evita el arranque en frío y porque dispone de escalado dinámico basado en eventos.

Hospedaje del plan Premium de Azure Functions para código o contenedores

Pasos siguientes

Estos son algunos recursos que puede aprovechar para comenzar a crear aplicaciones con Python en Azure Functions hoy mismo:

En el equipo de Azure Functions, tenemos el compromiso de ofrecer una experiencia sin servidor homogénea y productiva para desarrollar y hospedar aplicaciones de Python. Con todas las características que se están lanzando y las que se lanzarán pronto, nos encantaría conocer su opinión y saber más sobre sus escenarios de uso. Puede ponerse en contacto con el equipo en Twitter y en GitHub. También supervisamos StackOverflow y UserVoice, donde puede formular preguntas o aportar sugerencias. Esperamos sus noticias.