Inicio rápido: Creación de una función de Python en Azure desde la línea de comandos
En este artículo se usan herramientas de línea de comandos para crear una función de Python que responda a solicitudes HTTP. Después de probar el código localmente, se implementa en el entorno sin servidor de Azure Functions.
En este artículo, se usa el modelo de programación de Python v2 para Azure Functions, que proporciona un enfoque basado en decorador para crear funciones. Para obtener más información sobre el modelo de programación de Python v2, consulte la Guía de referencia para desarrolladores
Este inicio rápido supone un pequeño costo en su cuenta de Azure.
También está disponible una de versión este artículo basada en Visual Studio Code.
Configuración del entorno local
Antes de comenzar, deberá asegurarse de que cumple con los siguientes requisitos:
Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
Una de las siguientes herramientas para crear recursos de Azure:
CLI de Azure, versión 2.4 o posterior.
El módulo Az de PowerShell, versión 5.9.0 o posterior.
El emulador de almacenamiento Azurite. Aunque también puede usar una cuenta real de Azure Storage, en el artículo se supone que usa este emulador.
Instalación de Azure Functions Core Tools
La manera recomendada de instalar Core Tools depende del sistema operativo del equipo de desarrollo local.
En los pasos siguientes se utiliza Windows Installer (MSI) para instalar Core Tools v4.x. Para más información sobre otros instaladores basados en paquetes, consulte el archivo Léame de Core Tools.
Descargue y ejecute el instalador de Core Tools según su versión de Windows:
- v4.x: Windows 64 bits (recomendado. La depuración de Visual Studio Code requiere 64 bits).
- v4.x: Windows de 32 bits
Si ha usado previamente Windows Installer (MSI) para instalar Core Tools en Windows, debe desinstalar la versión anterior desde Agregar/Quitar programas antes de instalar la versión más reciente.
Use el comando func --version
para asegurarse de que la versión de Core Tools sea al menos 4.0.5530
.
Creación y activación de un entorno virtual
En una carpeta adecuada, ejecute los comandos siguientes para crear y activar un entorno virtual denominado .venv
. Asegúrese de que está utilizando una versión de Python compatible con Azure Functions.
python -m venv .venv
source .venv/bin/activate
Si Python no instaló el paquete venv en la distribución de Linux, ejecute el siguiente comando:
sudo apt-get install python3-venv
Ejecute todos los comandos siguientes en este entorno virtual activado.
Creación de una función local
En Azure Functions, un proyecto de función es un contenedor para una o varias funciones individuales que responden a un desencadenador específico. Todas las funciones de un proyecto comparten las mismas configuraciones locales y de hospedaje.
En esta sección, creará un proyecto de función y agregará una función desencadenada por HTTP.
Ejecute el comando
func init
de la manera siguiente para crear un proyecto de funciones de Python v2 en el entorno virtual.func init --python
El entorno contiene ahora varios archivos para el proyecto, incluidos los archivos de configuración denominados local.settings.json y host.json. Como local.settings.json puede contener secretos descargados de Azure, el archivo se excluye del control de código fuente de forma predeterminada en el archivo .gitignore.
Agregue una función al proyecto mediante el comando siguiente, donde el argumento
--name
es el nombre único de la función (HttpExample) y el argumento--template
especifica el desencadenador de esta (HTTP).func new --name HttpExample --template "HTTP trigger" --authlevel "anonymous"
Si se le solicita, elija la opción ANONYMOUS.
func new
agrega un punto de conexión de desencadenador HTTP denominadoHttpExample
al archivofunction_app.py
, al que se puede acceder sin autenticación.
Ejecución local de la función
Para ejecutar la función, inicie el host en tiempo de ejecución local de Azure Functions desde la carpeta LocalFunctionProj.
func start
En la parte final de la salida, deberán aparecer las líneas siguientes:
Nota
Si HttpExample no aparece como se ha mostrado arriba, es probable que haya iniciado el host desde fuera de la carpeta raíz del proyecto. En ese caso, use Ctrl+C para detener el host, vaya a la carpeta raíz del proyecto y vuelva a ejecutar el comando anterior.
Copie la URL de su función HTTP de esta salida a un navegador y agregue la cadena de consulta
?name=<YOUR_NAME>
, lo que hace que la URL completa sea comohttp://localhost:7071/api/HttpExample?name=Functions
. El explorador debe mostrar un mensaje de respuesta que devuelve el valor de la cadena de consulta. El terminal en el que inició el proyecto también muestra la salida del registro cuando realiza solicitudes.Cuando termine, presione Ctrl + C y escriba
y
para detener el host de Azure Functions.
Creación de recursos auxiliares de Azure para la función
Antes de poder implementar el código de la función en Azure, debe crear tres recursos:
- Un grupo de recursos, que es un contenedor lógico de recursos relacionados.
- Una cuenta de almacenamiento que mantenga la información acerca del estado, entre otros parámetros, de los proyectos.
- Una aplicación de funciones, que proporciona el entorno para ejecutar el código de función. Una aplicación de funciones se asigna al proyecto de funciones y le permite agrupar funciones como una unidad lógica para facilitar la administración, la implementación y el uso compartido de recursos.
Utilice los comandos siguientes para crear los elementos. Se admiten las CLI de Azure y de PowerShell.
Si es necesario, inicie sesión en Azure.
az login
El comando
az login
inicia sesión en su cuenta de Azure.Cree un grupo de recursos, denominado
AzureFunctionsQuickstart-rg
, en la región que haya elegido.az group create --name AzureFunctionsQuickstart-rg --location <REGION>
El comando az group create crea un grupo de recursos. En el comando anterior, reemplace
<REGION>
por una región cercana mediante un código de región disponible devuelto por el comando az account list-locations.Nota
No se pueden hospedar aplicaciones de Windows y Linux en el mismo grupo de recursos. Si tiene un grupo de recursos existente llamado
AzureFunctionsQuickstart-rg
con una aplicación web o aplicación de función de Windows, debe usar un grupo de recursos diferente.Cree una cuenta de almacenamiento de uso general en el grupo de recursos y la región.
az storage account create --name <STORAGE_NAME> --location <REGION> --resource-group AzureFunctionsQuickstart-rg --sku Standard_LRS
El comando az storage account create crea la cuenta de almacenamiento.
En el ejemplo anterior, reemplace el valor
<STORAGE_NAME>
por el nombre que considere, que deberá ser único en Azure Storage. Los nombres deben contener entre 3 y 24 caracteres y solo letras minúsculas. El valorStandard_LRS
especifica que se trata de una cuenta de uso general y que Functions admite su uso.Este inicio rápido solo le supondrá unos pequeños gastos a la cuenta de almacenamiento.
Cree la aplicación de funciones en Azure.
az functionapp create --resource-group AzureFunctionsQuickstart-rg --consumption-plan-location westeurope --runtime python --runtime-version <PYTHON_VERSION> --functions-version 4 --name <APP_NAME> --os-type linux --storage-account <STORAGE_NAME>
El comando az functionapp create crea la aplicación de funciones en Azure. Debe proporcionar
--os-type linux
porque las funciones de Python solo se ejecutan en Linux.En el ejemplo anterior, reemplace
<APP_NAME>
por un nombre único global que sea adecuado.<APP_NAME>
también es el subdominio predeterminado de la aplicación de funciones. Asegúrese de que el valor establecido para<PYTHON_VERSION>
es una versión compatible con Functions y es la misma versión que usó durante el desarrollo local.Este comando crea una aplicación de funciones que se ejecuta en el entorno de ejecución del lenguaje especificado en el plan de consumo de Azure Functions, que es gratuito para la cantidad de uso que se realiza aquí. El comando también crea una instancia asociada de Application Insights de Azure en el mismo grupo de recursos con la que puede supervisar la aplicación de funciones y ver registros. Para más información, consulte Supervisión de Azure Functions. La instancia no incurrirá en ningún costo hasta que se active.
Implementación del proyecto de función en Azure
Después de haber creado correctamente su aplicación de funciones en Azure, estará listo para implementar el proyecto de funciones local mediante el comando func azure functionapp publish
.
En la carpeta del proyecto raíz, ejecute este comando func azure functionapp publish
:
func azure functionapp publish <APP_NAME>
En este ejemplo, reemplace <APP_NAME>
por el nombre de la aplicación. Una implementación correcta muestra resultados similares a la salida siguiente (truncada por motivos de simplicidad):
... Getting site publishing info... Creating archive for current directory... Performing remote build for functions project. ... Deployment successful. Remote build succeeded! Syncing triggers... Functions in msdocs-azurefunctions-qs: HttpExample - [httpTrigger] Invoke url: https://msdocs-azurefunctions-qs.azurewebsites.net/api/httpexample
Invocación de la función en Azure
Como la función usa un desencadenador HTTP, para invocarla es preciso realizar una solicitud HTTP a su dirección URL en el explorador o con una herramienta como CURL.
Copie el valor completo de Invoke URL completa que se muestra en la salida del comando publish
en una barra de direcciones del explorador y anexe el parámetro de consulta ?name=Functions
. El explorador debe mostrar una salida similar a cuando ejecutó la función localmente.
Limpieza de recursos
Si continúa con el paso siguiente y agrega un enlace de salida de la cola de Azure Storage, conserve todos los recursos intactos, ya que va a crear a partir de lo que ya ha hecho.
De lo contrario, use el siguiente comando para eliminar el grupo de recursos y todos los recursos que contiene para evitar incurrir en costos adicionales.
az group delete --name AzureFunctionsQuickstart-rg
Pasos siguientes
¿Tiene problemas con este artículo?