Ejercicio: publicar una función en Azure con Core Tools

Completado

En este ejercicio, creará una aplicación de funciones en Azure y publicará nuestro proyecto.

Creación de una aplicación de funciones

Importante

Los procedimientos de esta unidad dependen del trabajo completado en la Unidad 3. El espacio aislado de este módulo debe estar activo. El espacio aislado le proporciona acceso gratuito y temporal a Azure y a la CLI de Azure.

Respecto a d Shell, ya tiene que tener la sesión iniciada en su cuenta y tiene que estar configurado. Si el espacio aislado no está activo, ha perdido el acceso, los recursos y la salida necesarios. Vuelva y complete la unidad 3.

Para poder publicar el código en una aplicación de funciones mediante Core Tools, debe crear la aplicación en Azure mediante la CLI de Azure desde Cloud Shell.

Ejecute los siguientes comandos en Azure Cloud Shell para crear una aplicación de funciones en Azure.

RESOURCEGROUP="<rgn>[sandbox resource group]</rgn>"
STORAGEACCT=learnstorage$(openssl rand -hex 5)
FUNCTIONAPP=learnfunctions$(openssl rand -hex 5)

az storage account create \
  --resource-group "$RESOURCEGROUP" \
  --name "$STORAGEACCT" \
  --kind StorageV2 \
  --location centralus

az functionapp create \
  --resource-group "$RESOURCEGROUP" \
  --name "$FUNCTIONAPP" \
  --storage-account "$STORAGEACCT" \
  --runtime node \
  --consumption-plan-location centralus \
  --functions-version 4

Esto es lo que hacen estos comandos:

  • Las primeras tres líneas de la parte superior crean variables de shell con valores que se usan repetidamente en los siguientes comandos.

    • En el caso del grupo de recursos, especifique el grupo creado automáticamente por el espacio aislado. Debe ser el valor correcto en función del espacio aislado actual.
    • Los nombres de la cuenta de almacenamiento y de la aplicación de funciones incluyen $(openssl rand -hex 5), que genera una cadena aleatoria de cinco caracteres, para asegurarse de que los nombres cumplen el requisito de ser únicos globalmente, así como otros requisitos de nomenclatura de servicios.
  • az storage account create crea una cuenta de almacenamiento de Azure que usa la aplicación de funciones. Una cuenta de almacenamiento es un recurso de Azure independiente que se debe crear para poder crear la aplicación de funciones.

  • az functionapp create crea la aplicación de funciones. La nueva aplicación usa el entorno de ejecución node (JavaScript), que se ejecuta sin servidor en un plan de hospedaje de consumo.

Nota:

El comando az functionapp create también intenta crear automáticamente una instancia de Application Insights para supervisar las ejecuciones en la aplicación de funciones. Dado que los recursos de Application Insights basados en áreas de trabajo no se pueden hospedar actualmente en el espacio aislado, las funciones funcionan, pero los registros de ejecución no se envían a Application Insights.

Publicar en Azure

Ahora que ha creado la aplicación de funciones en Azure, puede publicar el proyecto en ella con Core Tools.

En Cloud Shell, ejecute los comandos siguientes para publicar. Ejecute cd primero para asegurarse de que todavía está en la carpeta del proyecto de funciones antes de publicar.

cd ~/loan-wizard
func azure functionapp publish "$FUNCTIONAPP" --force

Nota:

Si el comando muestra un error que indica que no puede encontrar la aplicación, espere dos minutos y vuelva a intentarlo. Las nuevas aplicaciones de funciones tardan unos segundos en ser detectables por Core Tools después de su creación.

Además, va a anexar --force al comando para actualizar la coincidencia de la versión de la aplicación de funciones.

A diferencia del ejercicio anterior, donde hospedó temporalmente la función localmente desde Core Tools, la función ahora está activa en Internet. Permanece disponible globalmente hasta que expire el espacio aislado de este tutorial. Dado que el punto de conexión HTTP se definió con un nivel de autorización anonymous, cualquier usuario de la web puede acceder a él.

Ejecución de la función

La función ya está publicada en Azure y se puede llamar desde cualquier lugar. Como función desencadenada por HTTP que responde a solicitudes GET, se puede ejecutar desde un explorador.

  1. Ejecute el comando siguiente para obtener la dirección URL de la solicitud:

    func azure functionapp list-functions "$FUNCTIONAPP" --show-keys
    
  2. Pegue la dirección URL de la salida en una nueva pestaña del explorador. Verá la misma salida que observó cuando ejecutó la función localmente sin proporcionar los parámetros de cadena de consulta correctos. No se incluye ninguna clave en la salida cuando se usa un nivel de autorización anonymous.

  3. Agregue ?principal=5000&rate=.035&term=36 al final de la dirección URL y seleccione Entrar. Asegúrese de conservar el parámetro code, si está presente. El resultado devuelto es 6300.000000000001, como se esperaba.