En una variación de este modelo, Functions se puede ejecutar mediante el scripting de C#, que se admite principalmente para la edición del portal de C#. Para actualizar las extensiones de enlace existentes de las aplicaciones del script de C# que se ejecutan en el portal sin tener que volver a publicar la aplicación de funciones, consulte Actualización de las extensiones.
La funcionalidad de la extensión varía en función de la versión de la extensión:
Azure Blobs, Azure Queues y Azure Tables ahora usan extensiones diferentes y se les hace referencia por separado. Por ejemplo, para usar los desencadenadores y enlaces para los tres servicios de la aplicación en proceso de .NET, debe agregar los siguientes paquetes al proyecto:
Anteriormente, las extensiones se enviaban juntas como Microsoft.Azure.WebJobs.Extensions.Storage, versión 4.x. Este mismo paquete también tiene una versión 5.x que hace referencia solo a los paquetes divididos para blobs y colas. Al actualizar las referencias del paquete desde versiones anteriores, es posible que tenga que hacer referencia además al nuevo paquete de NuGet Microsoft.Azure.WebJobs.Extensions.Tables. Además, al hacer referencia a estos paquetes divididos más recientes, asegúrese de que no hace referencia a una versión anterior del paquete de almacenamiento combinado, ya que esto provocaría conflictos por las dos definiciones de los mismos enlaces.
Para trabajar con el desencadenador y los enlaces, es necesario hacer referencia al paquete NuGet adecuado. Instale el paquete NuGet, versión 3.x o 4.x.
Las aplicaciones de Functions 1.x tienen automáticamente una referencia al paquete NuGet Microsoft.Azure.WebJobs, versión 2.x.
En Functions 1.x, los desencadenadores y enlaces de Storage usan la versión 7.2.1 del SDK de Azure Storage (paquete NuGet WindowsAzure.Storage). Si hace referencia a una versión diferente del SDK de Storage y enlaza a un tipo de SDK de Storage en la signatura de función, el runtime de Functions puede notificar que no se puede enlazar con ese tipo. La solución es asegurarse de que el proyecto hace referencia a WindowsAzure.Storage 7.2.1.
Azure Blobs, Azure Queues y Azure Tables ahora usan extensiones diferentes y se les hace referencia por separado. Por ejemplo, para usar los desencadenadores y enlaces de los tres servicios en la aplicación en un proceso aislado de .NET, debe agregar los siguientes paquetes al proyecto:
Antes, las extensiones se distribuían juntas como Microsoft.Azure.Functions.Worker.Extensions.Storage, versión 4.x. Este mismo paquete también tiene una versión 5.x que hace referencia solo a los paquetes divididos para blobs y colas. Al actualizar las versiones anteriores de las referencias del paquete, es posible que tenga que hacer referencia también al nuevo paquete NuGet Microsoft.Azure.Functions.Worker.Extensions.Tables. Además, al hacer referencia a estos paquetes divididos más recientes, asegúrese de que no hace referencia a una versión anterior del paquete de almacenamiento combinado, ya que esto provocaría conflictos por las dos definiciones de los mismos enlaces.
Para agregar la extensión al proyecto, instale el paquete NuGet, versión 4.x.
La versión 1.x de Functions no admite el proceso de trabajo aislado.
Instalación del conjunto
El enlace de almacenamiento de Blob forma parte de un conjunto de extensiones, que se especifica en el archivo de proyecto host.json. Es posible que tenga que modificar este conjunto para cambiar la versión de los enlaces o en caso de que los conjuntos aún no estén instalados. Para obtener más información, consulte Conjuntos de extensiones.
Para agregar esta versión de la extensión desde el conjunto de extensiones en versión preliminar v3, puede agregar o reemplazar el código siguiente en el archivo host.json:
QueueClient ICollector<T> o IAsyncCollector<T>, donde T es uno de los tipos de mensaje únicos
1 Los mensajes que contienen datos JSON se pueden deserializar en tipos conocidos de objetos CLR sin formato (POCO).
Las versiones anteriores de la extensión exponen tipos del espacio de nombres Microsoft.Azure.Storage.Queues ahora en desuso. Los tipos más recientes de Azure.Storage.Queues son exclusivos de la extensión 5.x.
Esta versión de la extensión admite tipos de parámetros según la tabla siguiente.
El proceso de trabajo aislado admite tipos de parámetros según las tablas siguientes. La compatibilidad con el enlace a tipos de Azure.Storage.Queues está en versión preliminar.
Desencadenador de cola
El desencadenador de cola puede enlazarse a los siguientes tipos:
Tipo
Descripción
string
Contenido del mensaje como una cadena. Se usa cuando el mensaje es de texto simple.
byte[]
Bytes del mensaje.
Tipos serializables con JSON
Cuando un mensaje de cola contiene datos JSON, Functions intenta deserializar los datos JSON en un tipo de objeto CLR sin formato (POCO).
Cuando quiera que la función escriba un único mensaje, el enlace de salida de la cola puede enlazarse a los siguientes tipos:
Tipo
Descripción
string
Contenido del mensaje como una cadena. Se usa cuando el mensaje es de texto simple.
byte[]
Bytes del mensaje.
Tipos serializables con JSON
Objeto que representa el contenido de un mensaje JSON. Functions intenta serializar un tipo de objeto CLR sin formato (POCO) en datos JSON.
Cuando quiera que la función escriba varios mensajes, el enlace de salida de la cola puede enlazarse a los siguientes tipos:
Tipo
Descripción
T[] donde T es uno de los tipos de mensaje únicos
Matriz que contiene contenido para varios mensajes. Cada entrada representa un mensaje.
Para otros escenarios de salida, cree y use queueClientcon otros tipos de Azure.Storage.Queues directamente. Consulte Registro de clientes de Azure para obtener un ejemplo de uso de la inserción de dependencias para crear un tipo de cliente a partir del SDK de Azure.
Las versiones anteriores de extensiones del proceso de trabajo aislado solo admiten el enlace a tipos de cadena. Hay opciones adicionales disponibles para la extensión 5.
En esta sección se describen las opciones de configuración disponibles para este enlace en las versiones 2.x y posteriores. La configuración del archivo host.json se aplica a todas las funciones de una instancia de la aplicación de funciones. El siguiente archivo host.json de ejemplo contiene solo la configuración de la versión 2.x+ para este enlace. Para obtener más información sobre la configuración de la aplicación de funciones en las versiones 2.x y posteriores, consulte la referencia de host.json para Azure Functions.
Intervalo máximo entre sondeos de la cola. El intervalo mínimo es 00:00:00.100 (100 milisegundos). Los intervalos se incrementan hasta maxPollingInterval. El valor predeterminado de maxPollingInterval es 00:01:00 (1 minuto).
maxPollingInterval no debe ser menor que 00:00:00.100 (100 milisegundos). En Functions 2.x y versiones posteriores, el tipo de datos es TimeSpan. En Functions 1.x, se expresa en milisegundos.
visibilityTimeout
00:00:00
Intervalo de tiempo entre los reintentos cuando se produce un error al procesar un mensaje.
batchSize
16
El número de mensajes en cola que el runtime de Functions recupera simultáneamente y procesa en paralelo. Cuando el número que se está procesando llega a newBatchThreshold el runtime obtiene otro lote y empieza a procesar esos mensajes. Por lo tanto, el número máximo de mensajes simultáneos que se procesan por función es batchSize más newBatchThreshold. Este límite se aplica por separado a cada función desencadenada por la cola.
Si desea evitar la ejecución en paralelo de los mensajes de una cola, puede establecer batchSize en 1. Sin embargo, este valor elimina la simultaneidad siempre y cuando la aplicación de funciones se ejecute en una única máquina virtual (VM). Si la aplicación de función se escala horizontalmente a varias máquinas virtuales, cada una de ellas podría ejecutar una instancia de cada función desencadenada por la cola.
El valor máximo de batchSize es 32.
maxDequeueCount
5
Número de veces que se intenta procesar un mensaje antes de pasarlo a la cola de mensajes dudosos.
newBatchThreshold
N*batchSize/2
Siempre que el número de mensajes que se procesan simultáneamente llega a este número, el runtime recupera otro lote.
N representa el número de vCPU disponibles al ejecutarse en planes Premium o App Service. Su valor es 1 para el plan de consumo.
messageEncoding
base64
Esta opción solo está disponible en la versión de extensión 5.0.0 y posteriores. Representa el formato de codificación de los mensajes. Los valores válidos son base64 y none.
Únase a la serie de reuniones para crear soluciones de inteligencia artificial escalables basadas en casos de uso reales con compañeros desarrolladores y expertos.