Share via


Tutorial: Función de Python con Azure Queue Storage como desencadenador

En este tutorial, aprenderá a configurar una función de Python con una cola de Storage como desencadenador al completar las tareas siguientes.

  • Use Visual Studio Code para crear un proyecto de función de Python.
  • Use Visual Studio Code para ejecutar la función localmente.
  • Use la CLI de Azure para crear una conexión entre la función de Azure y la cola de Storage con el Conector de servicio.
  • Use Visual Studio para implementar la función.

Información general de los componentes del proyecto de función en este tutorial:

Componente de proyecto Selección o solución
Servicio de origen Función de Azure
Servicio de destino Cola de Azure Storage
Enlace de funciones Cola de Storage como desencadenador
Tipo de autenticación de proyecto local Cadena de conexión
Tipo de autenticación de función en la nube Cadena de conexión

Requisitos previos

Creación de un proyecto de función de Python

Siga el tutorial para crear un proyecto local de Azure Functions y proporcione la siguiente información en las indicaciones:

Prompt Número de selección
Selección de un idioma Elija Python. (Modelo de lenguaje de programación v1)
Seleccionar el intérprete de Python para crear un entorno virtual Elija el intérprete de Python que prefiera usar. Si no se muestra una opción, escriba la ruta de acceso completa al archivo binario de Python.
Seleccionar una plantilla para la primera función de su proyecto Elija Azure Queue Storage trigger.
Proporcionar un nombre de función Escriba QueueStorageTriggerFunc.
Seleccione la configuración en "local.settings.json" Elija Create new local app settings, que le permite seleccionar la cuenta de Storage y proporcionar el nombre de la cola que funciona como desencadenador.

Ha creado un proyecto de función de Python con la cola de Azure Storage como desencadenador. El proyecto local se conecta a Azure Storage mediante la cadena de conexión guardada en el archivo local.settings.json. Por último, la función main en el archivo __init__.py de la función puede consumir la cadena de conexión con la ayuda del enlace de función definido en el archivo function.json.

Ejecución local de la función

Siga el tutorial para ejecutar la función localmente y comprobar el desencadenador.

  1. Seleccione la cuenta de almacenamiento que eligió al crear el recurso de Azure Functions si se le pide que se conecte a Storage. Este valor se utiliza para el entorno de ejecución de Azure Functions y no coincide necesariamente con el de la cuenta de almacenamiento que se usa para el desencadenador.
  2. Para iniciar la función localmente, presione <kbd>F5</kbd> o seleccione el icono Ejecutar y depurar en la barra de actividad del lado izquierdo.
  3. Para comprobar que el desencadenador funciona correctamente, siga ejecutando la función localmente y abra la hoja Cola de Storage en Azure Portal, seleccione Agregar mensaje y proporcione un mensaje de prueba. Debe ver que la función se desencadena y se procesa como elemento de cola en el terminal de Visual Studio Code.

Creación de una conexión mediante el Conector de servicio

En el último paso, ha comprobado el proyecto de función localmente. Ahora aprenderá a configurar la conexión entre la función de Azure y la cola de Azure Storage en la nube, para que la cola de Storage pueda desencadenar la función después de implementarse en la nube.

  1. Abra el archivo function.json en el proyecto local y cambie el valor de la propiedad connection en bindings para que sea AZURE_STORAGEQUEUE_CONNECTIONSTRING.
  2. Ejecute el siguiente comando de la CLI de Azure para crear una conexión entre la función de Azure y la cuenta de almacenamiento de Azure.
az functionapp connection create storage-queue --source-id "<your-function-resource-id>" --target-id "<your-storage-queue-resource-id>" --secret
  • Formato --source-id: /subscriptions/{subscription}/resourceG roups/{source_resource_group}/providers/Microsoft.Web/sites/{site}
  • Formato --target-id: /subscriptions/{subscription}/resourceGroups/{target_resource_group}/providers/Microsoft.Storage/storageAccounts/{account}/queueServices/default

Este paso crea un recurso Conector de servicio que configura una variable AZURE_STORAGEQUEUE_CONNECTIONSTRING en la configuración de la aplicación de funciones. El entorno de ejecución del enlace de función lo usa para conectarse al almacenamiento, de modo que la función pueda aceptar desencadenadores de la cola de Storage. Para obtener más información, consulte cómo el Conector de servicio ayuda a Azure Functions a conectarse a los servicios.

Implementación de la función en Azure

Ahora puede implementar la función en Azure y comprobar que el desencadenador de cola de Storage funciona.

  1. Siga el tutorial de Azure Functions para implementar la función en Azure.
  2. Abra la hoja Cola de Storage en Azure Portal, seleccione Agregar mensaje y proporcione un mensaje de prueba. Debe ver que la función se desencadena y se procesa como elemento de cola en los registros de función.

Solución de problemas

Si hay algún error relacionado con el host de almacenamiento, como No such host is known (<acount-name>.queue.core.windows.net:443), compruebe si la cadena de conexión que usa para conectarse a Azure Storage contiene el punto de conexión de cola o no. Si no es así, vaya a Azure Storage en Azure Portal, copie la cadena de conexión de la hoja Access keys y reemplace los valores.

Si este error se produce al iniciar el proyecto localmente, compruebe el archivo local.settings.json.

Si este error se produce al implementar la función en la nube (en este caso, la implementación de la función suele producir un error en Syncing triggers), compruebe la configuración de la aplicación de funciones.

Limpieza de recursos

Si no va a seguir usando este proyecto, elimine el recurso de aplicación de funciones que creó anteriormente.

  1. En Azure Portal, abra el recurso Aplicación de funciones y seleccione Eliminar.
  2. Escriba el nombre de la aplicación y seleccione Eliminar para confirmarlo.

Pasos siguientes

Lea los artículos siguientes para obtener más información sobre los conceptos del Conector de servicio y cómo ayuda a Azure Functions a conectarse a otros servicios.