Post Top Ad

Your Ad Spot

sábado, 1 de agosto de 2020

Funciones sin servidor Azure V2: compatibilidad con Linux, Python y .NET Core


Lanzamiento V2

Nos complace anunciar la versión oficial v2 del complemento Serverless Azure Functions para Serverless Framework. Esta versión incluye algunas nuevas características y correcciones interesantes que creemos que simplificarán su experiencia de desarrollo y le permitirán hacer más con Azure Functions.
No dude en consultar nuestro registro de cambios completo , pero estos son los aspectos más destacados:
  • Soporte de Linux
  • Soporte de Python
  • Soporte de .NET Core
  • Configuración simplificada del tiempo de ejecución
  • No más x-azure-settings(aún compatible con versiones anteriores)
  • Pruebas de integración automatizadas.
  • Invocar el punto final APIM
  • sls info y sls deploy --dryrun
  • Verbosidad de registro configurable
  • Etiquetado de grupo de recursos
Soporte de Linux
Ahora puede implementar una aplicación de función de Linux con el siguiente indicador en su configuración:
1...
2  provider:
3    os: linux
4...
El valor predeterminado ossigue siendo windowspara todas las aplicaciones de función (excepto Python, que no permite aplicaciones de función de Windows).
Soporte de Python
La plantilla actualizada de Python ahora está incluida en Serverless Framework. Simplemente ejecute:
1$ sls create -t azure-python -p {your-app-name}
Como se mencionó anteriormente, las aplicaciones de función Python solo pueden ejecutarse en Linux, por lo que si está implementando una aplicación de función Python, se verá obligado a usar Linux, independientemente de su especificación serverless.yml.
Nosotros altamente recomendamos la creación de un entorno virtual en el desarrollo local y asegúrese de agregar el nombre de su entorno a la excludesección dentro serverless.yml.
Soporte de .NET Core
Para implementar una aplicación .NET Core Function a través de Serverless Framework, también debe tener instalada la CLI de .NET Core . El packageevento de ciclo de vida invoca el dotnet buildcomando para compilar la aplicación de función.
Configuración de tiempo de ejecución simplificada
En lugar de anclar a un parche específico / versión menor de Node, e intentar determinar si esa versión es compatible con Azure Functions, simplificamos la provider.runtimepropiedad. Aquí están los valores válidos:
  • nodejs10
  • nodejs12
  • python3.6
  • python3.7
  • python3.8
  • dotnet2.2
  • dotnet3.1
Este es el enfoque recomendado por el equipo de Azure Functions también.
No más x-azure-settings
La característica que todos estaban esperando ... Hemos allanado la functionconfiguración para que ya no necesite el x-azure-settingsobjeto para construir los enlaces de funciones.
antes de
1functions:
2  hello:
3    handler: hello.sayHello
4    events:
5      - http: true
6        x-azure-settings:
7          methods:
8            - GET
9          authLevel: anonymous
Después
1functions:
2  hello:
3    handler: hello.sayHello
4    events:
5      - http: true
6        methods:
7          - GET
8        authLevel: anonymous
Sin embargo, lo hicimos compatible con versiones anteriores, por lo que aún puede usarlo x-azure-functionssi lo desea por alguna razón. No hay juicios aquí.
Pruebas de integración automatizadas
Dado que agregamos soporte para dos nuevos lenguajes de tiempo de ejecución y un sistema operativo adicional, nuestra capacidad de probar manualmente las posibilidades de implementación disminuyó rápidamente. Estamos utilizando Clover para automatizar el despliegue, la invocación y la limpieza de aplicaciones de funciones, así como para hacer afirmaciones sobre la salida de los comandos. Estas pruebas de integración se realizan en un temporizador que se ejecuta dos veces al día y se ejecuta en un flujo de trabajo de GitHub en el repositorio de complementos.
Aquí hay enlaces a nuestros flujos de trabajo para pruebas de integración de .NET , Python y Node .
Invocar punto final de administración de API
El complemento permite la implementación de una instancia de API Management, y anteriormente, tendría que copiar / pegar en Postman o en su navegador para probar el punto final APIM. Ahora, simplemente puede invocarlo directamente a través de la CLI ejecutando:
1$ sls invoke apim -f <function> ...
Comando de información
El infocomando es una forma de ver un resumen rápido de sus recursos desplegados . correr
1$ sls info
y verás algo como:
Resource Group Name: <resource-group-name>
Function App Name: <function-app-name>
Functions:
        hello
        goodbye
Azure Resources:
{
  "name": "<function-app-name>",
  "resourceType": "Microsoft.Web/sites",
  "region": "westeurope"
},
{
  "name": "<app-insights-name>",
  "resourceType": "microsoft.insights/components",
  "region": "westeurope"
},
{
  "name": "<storage-account-name>",
  "resourceType": "Microsoft.Storage/storageAccounts",
  "region": "westeurope"
}
Implementaciones en seco
De manera similar al infocomando, queríamos una forma de obtener información sobre cómo será la implementación Agregamos la --dryrunopción al deploycomando para que pueda ver los recursos de Azure que se implementarán con la configuración actual. Correr:
1$ sls deploy --dryrun
y verá exactamente el mismo formato que la infosalida, pero en función de lo que generaría su configuración actual.
Etiquetar grupo de recursos
Las etiquetas de grupo de recursos pueden ser una parte importante del gobierno de Azure. Anteriormente, cualquier implementación sobrescribía las etiquetas que existían en el grupo de recursos. Ahora, la implementación verificará si existen etiquetas y agregará las que se incluyeron serverless.yml, que pueden incluirse así:
1...
2provider:
3  tags:
4    TAG_1: tagValue1
5    TAG_2: tagValue2
Conclusión
Gracias a muchos de ustedes que han utilizado el complemento, han brindado valiosos comentarios e incluso han devuelto solicitudes al repositorio. No dude en ponerse en contacto con cualquier pregunta, problema o solicitud de funciones publicando un problema . Hasta la próxima ⚡

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

outbrain

Páginas