Publicar una función en Azure con Core Tools

Completado

Puede usar Core Tools para publicar las funciones en Azure.

Ahora que ha creado y probado la función de interés simple, quiere publicarla en Azure. Sería excelente verlo en funcionamiento en la web. Cuando sea así, puede enviar la dirección URL a sus compañeros para que puedan llamarla desde cualquier lugar.

Creación de una aplicación de función

Para poder usar Core Tools para publicar un proyecto, debe crear los recursos necesarios en Azure, incluida la aplicación de funciones que se usa para hospedar el proyecto. Functions también requiere una cuenta de almacenamiento. No puede usar Core Tools para crear estos recursos de Azure. En su lugar, se crean aplicaciones de funciones mediante herramientas de administración de Azure, que incluyen Azure Portal, la CLI de Azure y Azure PowerShell. En el ejercicio siguiente, ejecute el comando az functionapp create de la CLI de Azure para crear una aplicación de funciones en la que publicar el código.

Dentro del ámbito de este tutorial, la opción más importante que se debe tener en cuenta al crear una aplicación de funciones es el runtime del lenguaje. Una aplicación de funciones solo admite un único runtime de lenguaje. Si ya tiene un proyecto local de Functions que quiere publicar, asegúrese de crear la aplicación de funciones con el mismo runtime de lenguaje. Cuando intente implementar un proyecto en una aplicación con un runtime diferente, la publicación se detiene con un error.

Publicar en Azure

Para publicar el proyecto de funciones en una aplicación de funciones en Azure, ejecute func azure functionapp publish <app_name> desde la carpeta del proyecto de funciones. <app_name> es el nombre de la aplicación de funciones de destino en Azure, no el nombre de la carpeta del proyecto, que puede ser diferente.

Publishing a function app with func azure functionapp publish.

Core Tools no le pide que inicie sesión en Azure. En su lugar, accede a las suscripciones y los recursos cargando la información de sesión desde la CLI de Azure o Azure PowerShell. Si no tiene una sesión activa en una de esas herramientas, se produce un error en la publicación. Es posible publicar desde Core Tools sin la CLI de Azure ni Azure PowerShell, Sin embargo, es más fácil si los tiene. Se recomienda instalar uno u otro. Asegúrese de iniciar sesión antes de intentar publicar.

Una vez completada la salida, las funciones están en funcionamiento en Azure. La salida de publicación final muestra las funciones publicadas, incluida la dirección URL de invocación de cada función desencadenada por HTTP.

Cosas que debe saber

Estas son algunas cosas que debe tener en cuenta al usar Core Tools para publicar las funciones:

  • Core Tools no valida ni prueba el código de las funciones durante la publicación.
  • Asegúrese de usar func start para realizar algunas pruebas antes de publicar.
  • Al publicar, las funciones que ya están presentes en la aplicación de destino se detienen y se eliminan antes de que se implemente el contenido del proyecto.
  • No se pueden combinar funciones de varios proyectos en una aplicación publicándolos en esta secuencia.
  • Todas las funciones que quiera tener en la aplicación deben estar en un proyecto.
  • La publicación en Azure no crea ningún tipo de relación entre el proyecto local y la aplicación de funciones de destino.
  • Puede publicar un solo proyecto de Functions en varias aplicaciones de funciones.
  • También puede volver a publicar un proyecto en la misma aplicación de forma repetida mientras trabaja en el código.
  • Las direcciones URL de invocación que se muestran después de la publicación pueden incluir un parámetro code en la cadena de consulta.
  • Puede verlo en la captura de pantalla: ?code=4FowT1ywMNoxqa...
  • Las funciones de desencadenador HTTP tienen un nivel de autorización de función, que requiere que pase una clave de función secreta en los encabezados de solicitud o en la cadena de consulta.
  • Core Tools devuelve la clave en la cadena de consulta de la dirección URL mostrada, para su comodidad.