Azure Queue Storage-trigger voor Azure Functions

De wachtrijopslagtrigger voert een functie uit wanneer berichten worden toegevoegd aan Azure Queue Storage.

Beslissingen voor het schalen van Azure Queue Storage voor de abonnementen Verbruik en Premium worden uitgevoerd via schaalaanpassing op basis van doel. Zie Schalen op basis van doel voor meer informatie.

Belangrijk

In dit artikel worden tabbladen gebruikt ter ondersteuning van meerdere versies van het Node.js programmeermodel. Het v4-model is algemeen beschikbaar en is ontworpen voor een flexibelere en intuïtievere ervaring voor JavaScript- en TypeScript-ontwikkelaars. Raadpleeg de ontwikkelaarshandleiding voor Azure Functions Node.js voor meer informatie over hoe het v4-model werkt. Raadpleeg de migratiehandleiding voor meer informatie over de verschillen tussen v3 en v4.

Azure Functions ondersteunt twee programmeermodellen voor Python. De manier waarop u uw bindingen definieert, is afhankelijk van het gekozen programmeermodel.

Met het Python v2-programmeermodel kunt u bindingen definiëren met behulp van decorators rechtstreeks in uw Python-functiecode. Zie de Ontwikkelaarshandleiding voor Python voor meer informatie.

Dit artikel ondersteunt beide programmeermodellen.

Opmerking

Gebruik de wachtrijtrigger om een functie te starten wanneer een nieuw item in een wachtrij wordt ontvangen. Het wachtrijbericht wordt geleverd als invoer voor de functie.

U kunt een C#-functie maken met behulp van een van de volgende C#-modi:

  • Geïsoleerd werkrolmodel: gecompileerde C#-functie die wordt uitgevoerd in een werkproces dat is geïsoleerd van de runtime. Geïsoleerd werkproces is vereist voor de ondersteuning van C#-functies die worden uitgevoerd op LTS- en niet-LTS-versies .NET en .NET Framework. Extensies voor geïsoleerde werkprocesfuncties maken gebruik van Microsoft.Azure.Functions.Worker.Extensions.* naamruimten.
  • In-process model: gecompileerde C#-functie die wordt uitgevoerd in hetzelfde proces als de Functions-runtime. In een variatie van dit model kunnen functies worden uitgevoerd met behulp van C#-scripting. Dit wordt voornamelijk ondersteund voor het bewerken van de C#-portal. Extensies voor in-process-functies maken gebruik van Microsoft.Azure.WebJobs.Extensions.* naamruimten.

In het volgende voorbeeld ziet u een C#-functie die de input-queue wachtrij peilt en verschillende berichten naar een uitvoerwachtrij schrijft telkens wanneer een wachtrij-item wordt verwerkt.

[Function(nameof(QueueFunction))]
[QueueOutput("output-queue")]
public string[] Run([QueueTrigger("input-queue")] Album myQueueItem, FunctionContext context)
{
    // Use a string array to return more than one message.
    string[] messages = {
        $"Album name = {myQueueItem.Name}",
        $"Album songs = {myQueueItem.Songs.ToString()}"};

    _logger.LogInformation("{msg1},{msg2}", messages[0], messages[1]);

    // Queue Output messages
    return messages;
}

In het volgende Java-voorbeeld ziet u een triggerfunctie voor opslagwachtrijen, waarin het geactiveerde bericht in de wachtrij myqueuenamewordt geregistreerd.

@FunctionName("queueprocessor")
public void run(
    @QueueTrigger(name = "msg",
                queueName = "myqueuename",
                connection = "myconnvarname") String message,
    final ExecutionContext context
) {
    context.getLogger().info(message);
}

In het volgende voorbeeld ziet u een TypeScript-functie voor een wachtrijtrigger. De functie peilt de myqueue-items wachtrij en schrijft een logboek telkens wanneer een wachtrij-item wordt verwerkt.

import { app, InvocationContext } from '@azure/functions';

export async function storageQueueTrigger1(queueItem: unknown, context: InvocationContext): Promise<void> {
    context.log('Storage queue function processed work item:', queueItem);
    context.log('expirationTime =', context.triggerMetadata.expirationTime);
    context.log('insertionTime =', context.triggerMetadata.insertionTime);
    context.log('nextVisibleTime =', context.triggerMetadata.nextVisibleTime);
    context.log('id =', context.triggerMetadata.id);
    context.log('popReceipt =', context.triggerMetadata.popReceipt);
    context.log('dequeueCount =', context.triggerMetadata.dequeueCount);
}

app.storageQueue('storageQueueTrigger1', {
    queueName: 'myqueue-items',
    connection: 'MyStorageConnectionAppSetting',
    handler: storageQueueTrigger1,
});

In de sectie Gebruik wordt uitgelegd queueItem. In de sectie met berichtmetagegevens worden alle andere variabelen uitgelegd die worden weergegeven.

In het volgende voorbeeld ziet u een JavaScript-functie voor wachtrijtriggers. De functie peilt de myqueue-items wachtrij en schrijft een logboek telkens wanneer een wachtrij-item wordt verwerkt.

const { app } = require('@azure/functions');

app.storageQueue('storageQueueTrigger1', {
    queueName: 'myqueue-items',
    connection: 'MyStorageConnectionAppSetting',
    handler: (queueItem, context) => {
        context.log('Storage queue function processed work item:', queueItem);
        context.log('expirationTime =', context.triggerMetadata.expirationTime);
        context.log('insertionTime =', context.triggerMetadata.insertionTime);
        context.log('nextVisibleTime =', context.triggerMetadata.nextVisibleTime);
        context.log('id =', context.triggerMetadata.id);
        context.log('popReceipt =', context.triggerMetadata.popReceipt);
        context.log('dequeueCount =', context.triggerMetadata.dequeueCount);
    },
});

In de sectie Gebruik wordt uitgelegd queueItem. In de sectie met berichtmetagegevens worden alle andere variabelen uitgelegd die worden weergegeven.

In het volgende voorbeeld ziet u hoe u een wachtrijbericht leest dat via een trigger aan een functie is doorgegeven.

Er wordt een trigger voor de opslagwachtrij gedefinieerd in function.json bestand waar type deze is ingesteld op queueTrigger .

{
  "bindings": [
    {
      "name": "QueueItem",
      "type": "queueTrigger",
      "direction": "in",
      "queueName": "messages",
      "connection": "MyStorageConnectionAppSetting"
    }
  ]
}

De code in het bestand Run.ps1 declareert een parameter als $QueueItem, waarmee u het wachtrijbericht in uw functie kunt lezen.

# Input bindings are passed in via param block.
param([string] $QueueItem, $TriggerMetadata)

# Write out the queue message and metadata to the information log.
Write-Host "PowerShell queue trigger function processed work item: $QueueItem"
Write-Host "Queue item expiration time: $($TriggerMetadata.ExpirationTime)"
Write-Host "Queue item insertion time: $($TriggerMetadata.InsertionTime)"
Write-Host "Queue item next visible time: $($TriggerMetadata.NextVisibleTime)"
Write-Host "ID: $($TriggerMetadata.Id)"
Write-Host "Pop receipt: $($TriggerMetadata.PopReceipt)"
Write-Host "Dequeue count: $($TriggerMetadata.DequeueCount)"

In het volgende voorbeeld ziet u hoe u een wachtrijbericht leest dat via een trigger aan een functie is doorgegeven. Het voorbeeld is afhankelijk van of u het python-programmeermodel v1 of v2 gebruikt.

import logging
import azure.functions as func

app = func.FunctionApp()

@app.function_name(name="QueueFunc")
@app.queue_trigger(arg_name="msg", queue_name="inputqueue",
                   connection="storageAccountConnectionString")  # Queue trigger
@app.queue_output(arg_name="outputQueueItem", queue_name="outqueue",
                 connection="storageAccountConnectionString")  # Queue output binding
def test_function(msg: func.QueueMessage,
                  outputQueueItem: func.Out[str]) -> None:
    logging.info('Python queue trigger function processed a queue item: %s',
                 msg.get_body().decode('utf-8'))
    outputQueueItem.set('hello')

Kenmerken

C#-bibliotheken voor zowel in-process- als geïsoleerde werkprocessen maken gebruik van queueTriggerAttribute om de functie te definiëren. C#-script maakt in plaats daarvan gebruik van een function.json configuratiebestand, zoals beschreven in de handleiding voor C#-scripts.

In C#-klassebibliotheken neemt de constructor van het kenmerk de naam van de wachtrij om te bewaken, zoals wordt weergegeven in het volgende voorbeeld:

[Function(nameof(QueueFunction))]
[QueueOutput("output-queue")]
public string[] Run([QueueTrigger("input-queue")] Album myQueueItem, FunctionContext context)

In dit voorbeeld ziet u ook hoe u de verbindingsreeks instelling instelt in het kenmerk zelf.

Aantekeningen

Met QueueTrigger de aantekening hebt u toegang tot de wachtrij waarmee de functie wordt geactiveerd. In het volgende voorbeeld wordt het wachtrijbericht beschikbaar gemaakt voor de functie via de message parameter.

package com.function;
import com.microsoft.azure.functions.annotation.*;
import java.util.Queue;
import com.microsoft.azure.functions.*;

public class QueueTriggerDemo {
    @FunctionName("QueueTriggerDemo")
    public void run(
        @QueueTrigger(name = "message", queueName = "messages", connection = "MyStorageConnectionAppSetting") String message,
        final ExecutionContext context
    ) {
        context.getLogger().info("Queue message: " + message);
    }
}
Eigenschappen Beschrijving
name Declareert de parameternaam in de functiehandtekening. Wanneer de functie wordt geactiveerd, heeft de waarde van deze parameter de inhoud van het wachtrijbericht.
queueName Declareert de naam van de wachtrij in het opslagaccount.
connection Verwijst naar het opslagaccount verbindingsreeks.

Decorators

Is alleen van toepassing op het Python v2-programmeermodel.

Voor Python v2-functies die zijn gedefinieerd met decorators, definiëren de volgende eigenschappen op de queue_trigger decorator de Queue Storage-trigger:

Eigenschappen Beschrijving
arg_name Declareert de parameternaam in de functiehandtekening. Wanneer de functie wordt geactiveerd, heeft de waarde van deze parameter de inhoud van het wachtrijbericht.
queue_name Declareert de naam van de wachtrij in het opslagaccount.
connection Verwijst naar het opslagaccount verbindingsreeks.

Zie de sectie Configuratie voor Python-functies die zijn gedefinieerd met behulp van function.json.

Configuratie

Is alleen van toepassing op het Python v1-programmeermodel.

In de volgende tabel worden de eigenschappen uitgelegd die u kunt instellen voor het options object dat aan de app.storageQueue() methode is doorgegeven.

Eigenschappen Beschrijving
queueName De naam van de wachtrij die moet worden gepeild.
verbinding De naam van een app-instelling of verzameling die aangeeft hoe verbinding moet worden gemaakt met Azure Queues. Zie Verbinding maken ions.

De volgende tabel bevat informatie over de bindingsconfiguratie-eigenschappen die u instelt in het bestand function.json en het kenmerk QueueTrigger.

function.json-eigenschap Beschrijving
type Moet worden ingesteld op queueTrigger. Deze eigenschap wordt automatisch ingesteld wanneer u de trigger maakt in de Azure-portal.
direction Alleen in het function.json bestand. Moet worden ingesteld op in. Deze eigenschap wordt automatisch ingesteld wanneer u de trigger maakt in de Azure-portal.
name De naam van de variabele die de nettolading van het wachtrijitem bevat in de functiecode.
queueName De naam van de wachtrij die moet worden gepeild.
verbinding De naam van een app-instelling of verzameling die aangeeft hoe verbinding moet worden gemaakt met Azure Queues. Zie Verbinding maken ions.

Zie de sectie Voorbeeld voor volledige voorbeelden.

Wanneer u lokaal ontwikkelt, voegt u uw toepassingsinstellingen toe aan het local.settings.json-bestand in de Values verzameling.

Gebruik

Notitie

Functions verwachten een met base64 gecodeerde tekenreeks. Alle aanpassingen van het coderingstype (om gegevens voor te bereiden als een met base64 gecodeerde tekenreeks) moeten worden geïmplementeerd in de aanroepende service.

Het gebruik van de wachtrijtrigger is afhankelijk van de versie van het extensiepakket en de C#-modaliteit die wordt gebruikt in uw functie-app. Dit kan een van deze modi zijn:

Een geïsoleerde werkprocesklassebibliotheek gecompileerde C#-functie wordt uitgevoerd in een proces dat is geïsoleerd van de runtime.

Kies een versie om gebruiksgegevens voor de modus en versie te bekijken.

De wachtrijtrigger kan worden verbonden met de volgende typen:

Type Description
string De inhoud van het bericht als een tekenreeks. Gebruik dit bericht wanneer het bericht eenvoudige tekst is..
byte[] De bytes van het bericht.
JSON serialiseerbare typen Wanneer een wachtrijbericht JSON-gegevens bevat, probeert Functions deSerialiseren van de JSON-gegevens in een poCO-type (plain-old CLR object).
QueueMessage1 Het bericht.
BinaryData1 De bytes van het bericht.

1 Als u deze typen wilt gebruiken, moet u verwijzen naar Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues 5.2.0 of hoger en de algemene afhankelijkheden voor SDK-typebindingen.

Met de aantekening van QueueTrigger hebt u toegang tot het wachtrijbericht dat de functie heeft geactiveerd.

Open het wachtrijitem als het eerste argument voor uw functie. Als de nettolading JSON is, wordt de waarde gedeserialiseerd in een object.

Open het wachtrijbericht via een tekenreeksparameter die overeenkomt met de naam die is aangewezen door de parameter van name de binding in het bestand function.json .

Open het wachtrijbericht via de parameter die is getypt als QueueMessage.

Metagegevens

De wachtrijtrigger biedt verschillende metagegevenseigenschappen. Deze eigenschappen kunnen worden gebruikt als onderdeel van bindingexpressies in andere bindingen of als parameters in uw code, voor taalwerkers die deze toegang bieden tot metagegevens van berichten.

De eigenschappen van de metagegevens van het bericht zijn leden van de klasse CloudQueueMessage .

De eigenschappen van de metagegevens van het bericht kunnen worden geopend vanuit context.triggerMetadata.

De eigenschappen van de metagegevens van het bericht kunnen worden geopend vanuit de doorgegeven $TriggerMetadata parameter.

Eigenschap Type Description
QueueTrigger string Nettolading van wachtrij (als een geldige tekenreeks). Als de nettolading van het wachtrijbericht een tekenreeks is, QueueTrigger heeft deze dezelfde waarde als de variabele met de naam van de name eigenschap in function.json.
DequeueCount long Het aantal keren dat dit bericht is ontkend.
ExpirationTime DateTimeOffset Het tijdstip waarop het bericht verloopt.
Id string Wachtrijbericht-id.
InsertionTime DateTimeOffset Het tijdstip waarop het bericht is toegevoegd aan de wachtrij.
NextVisibleTime DateTimeOffset Het tijdstip waarop het bericht weer zichtbaar is.
PopReceipt string Het pop-ontvangstbewijs van het bericht.

De volgende eigenschappen van de metagegevens van het bericht kunnen worden geopend vanuit de doorgegeven bindingsparameter (msg in eerdere voorbeelden).

Eigenschappen Beschrijving
body Nettolading van wachtrij als een tekenreeks.
dequeue_count Het aantal keren dat dit bericht is ontkend.
expiration_time Het tijdstip waarop het bericht verloopt.
id Wachtrijbericht-id.
insertion_time Het tijdstip waarop het bericht is toegevoegd aan de wachtrij.
time_next_visible Het tijdstip waarop het bericht weer zichtbaar is.
pop_receipt Het pop-ontvangstbewijs van het bericht.

Connecties

De connection eigenschap is een verwijzing naar de omgevingsconfiguratie die aangeeft hoe de app verbinding moet maken met Azure Queues. Het kan het volgende opgeven:

Als de geconfigureerde waarde zowel een exacte overeenkomst is voor één instelling als een voorvoegselovereenkomst voor andere instellingen, wordt de exacte overeenkomst gebruikt.

Connection string

Als u een verbindingsreeks wilt verkrijgen, volgt u de stappen in Toegangssleutels voor het opslagaccount beheren.

Deze verbindingsreeks moet worden opgeslagen in een toepassingsinstelling met een naam die overeenkomt met de waarde die is opgegeven door de connection eigenschap van de bindingsconfiguratie.

Als de naam van de app-instelling begint met 'AzureWebJobs', kunt u hier alleen de rest van de naam opgeven. Als u bijvoorbeeld instelt op connection 'MyStorage', zoekt de Functions-runtime naar een app-instelling met de naam 'AzureWebJobsMyStorage'. Als u leeg laatconnection, gebruikt de Functions-runtime de standaardopslag-verbindingsreeks in de app-instelling met de naamAzureWebJobsStorage.

Op identiteit gebaseerde verbindingen

Als u versie 5.x of hoger van de extensie gebruikt (bundel 3.x of hoger voor non-.NET taalstacks), in plaats van een verbindingsreeks met een geheim te gebruiken, kunt u de app een Microsoft Entra-identiteit laten gebruiken. Als u een identiteit wilt gebruiken, definieert u instellingen onder een gemeenschappelijk voorvoegsel dat wordt toegewezen aan de connection eigenschap in de trigger- en bindingsconfiguratie.

Als u 'AzureWebJobsStorage' insteltconnection, raadpleegt u Verbinding maken voor het hosten van opslag met een identiteit. Voor alle andere verbindingen vereist de extensie de volgende eigenschappen:

Eigenschappen Sjabloon voor omgevingsvariabele Beschrijving Voorbeeldwaarde
Wachtrijservice-URI <CONNECTION_NAME_PREFIX>__queueServiceUri1 De gegevensvlak-URI van de wachtrijservice waarmee u verbinding maakt, met behulp van het HTTPS-schema. <https:// storage_account_name.queue.core.windows.net>

1<CONNECTION_NAME_PREFIX>__serviceUri kan als alias worden gebruikt. Als beide formulieren worden opgegeven, wordt het queueServiceUri formulier gebruikt. Het serviceUri formulier kan niet worden gebruikt wanneer de algemene verbindingsconfiguratie moet worden gebruikt in blobs, wachtrijen en/of tabellen.

Andere eigenschappen kunnen worden ingesteld om de verbinding aan te passen. Zie Algemene eigenschappen voor op identiteit gebaseerde verbindingen.

Wanneer deze worden gehost in de Azure Functions-service, maken identiteitsverbindingen gebruik van een beheerde identiteit. De door het systeem toegewezen identiteit wordt standaard gebruikt, hoewel een door de gebruiker toegewezen identiteit kan worden opgegeven met de credential en clientID eigenschappen. Houd er rekening mee dat het configureren van een door de gebruiker toegewezen identiteit met een resource-id niet wordt ondersteund. Wanneer uw ontwikkelaarsidentiteit wordt uitgevoerd in andere contexten, zoals lokale ontwikkeling, wordt in plaats daarvan uw ontwikkelaarsidentiteit gebruikt, hoewel dit kan worden aangepast. Zie Lokale ontwikkeling met op identiteit gebaseerde verbindingen.

Toestemming verlenen aan de identiteit

Elke identiteit die wordt gebruikt, moet machtigingen hebben om de beoogde acties uit te voeren. Voor de meeste Azure-services betekent dit dat u een rol in Azure RBAC moet toewijzen met behulp van ingebouwde of aangepaste rollen die deze machtigingen bieden.

Belangrijk

Sommige machtigingen worden mogelijk weergegeven door de doelservice die niet nodig is voor alle contexten. Waar mogelijk moet u zich houden aan het principe van minimale bevoegdheid, waarbij de identiteit alleen vereiste bevoegdheden verleent. Als de app bijvoorbeeld alleen uit een gegevensbron moet kunnen lezen, gebruikt u een rol die alleen gemachtigd is om te lezen. Het zou ongepast zijn om een rol toe te wijzen die ook schrijfbewerkingen naar die service toestaat, omdat dit overmatige machtigingen zou zijn voor een leesbewerking. Op dezelfde manier wilt u ervoor zorgen dat de roltoewijzing alleen is afgestemd op de resources die moeten worden gelezen.

U moet een roltoewijzing maken die tijdens runtime toegang biedt tot uw wachtrij. Beheerrollen zoals Eigenaar zijn niet voldoende. In de volgende tabel ziet u ingebouwde rollen die worden aanbevolen bij het gebruik van de Queue Storage-extensie in normale werking. Uw toepassing vereist mogelijk extra machtigingen op basis van de code die u schrijft.

Bindingstype Voorbeeld van ingebouwde rollen
Trigger Storage Queue Data Reader, Storage Queue Data Message Processor
Uitvoerbinding Inzender voor opslagwachtrijgegevens, afzender van opslagwachtrijgegevensbericht

Gifberichten

Wanneer een wachtrijtriggerfunctie mislukt, probeert Azure Functions de functie maximaal vijf keer opnieuw voor een bepaald wachtrijbericht, inclusief de eerste poging. Als alle vijf pogingen mislukken, voegt de functions-runtime een bericht toe aan een wachtrij met de naam originalqueuename-poison>.< U kunt een functie schrijven om berichten uit de gifwachtrij te verwerken door ze te registreren of een melding te verzenden die handmatige aandacht nodig heeft.

Als u gifberichten handmatig wilt verwerken, controleert u het dequeueCount van het wachtrijbericht.

Vergrendeling bekijken

Het peek-lock-patroon vindt automatisch plaats voor wachtrijtriggers met behulp van de zichtbaarheidsmechanica van de opslagservice. Omdat berichten worden ontkend door de geactiveerde functie, worden ze gemarkeerd als onzichtbaar. Uitvoering van een door een wachtrij geactiveerde functie kan een van deze resultaten hebben voor het bericht in de wachtrij:

  • De uitvoering van de functie is voltooid en het bericht wordt verwijderd uit de wachtrij.
  • De uitvoering van de functie mislukt en de Functions-host werkt de zichtbaarheid van het bericht bij op basis van de visibilityTimeoutinstelling in het host.json-bestand. De standaardtime-out voor zichtbaarheid is nul, wat betekent dat het bericht onmiddellijk opnieuw wordt weergegeven in de wachtrij voor opnieuw verwerken. Gebruik de visibilityTimeout instelling om het opnieuw verwerken van berichten die niet kunnen worden verwerkt, uit te stellen. Deze time-outinstelling is van toepassing op alle door de wachtrij geactiveerde functies in de functie-app.
  • De Functions-host loopt vast tijdens de uitvoering van de functie. Wanneer deze ongebruikelijke gebeurtenis optreedt, kan de host het visibilityTimeout bericht dat wordt verwerkt, niet toepassen. In plaats daarvan wordt het bericht achtergelaten met de standaardtime-out van 10 minuten die is ingesteld door de opslagservice. Na 10 minuten wordt het bericht opnieuw weergegeven in de wachtrij voor het opnieuw verwerken. Deze door de service gedefinieerde standaardtime-out kan niet worden gewijzigd.

Polling-algoritme

De wachtrijtrigger implementeert een willekeurig exponentieel back-off-algoritme om het effect van inactieve wachtrijen op opslagtransactiekosten te verminderen.

Het algoritme maakt gebruik van de volgende logica:

  • Wanneer er een bericht wordt gevonden, wacht de runtime 100 milliseconden en controleert vervolgens op een ander bericht.
  • Wanneer er geen bericht wordt gevonden, wacht het ongeveer 200 milliseconden voordat u het opnieuw probeert.
  • Na volgende mislukte pogingen om een wachtrijbericht te krijgen, blijft de wachttijd toenemen totdat de maximale wachttijd is bereikt, wat standaard één minuut is.
  • De maximale wachttijd kan worden geconfigureerd via de maxPollingInterval eigenschap in het host.json-bestand.

Tijdens lokale ontwikkeling wordt het maximale polling-interval standaard ingesteld op twee seconden.

Notitie

Wat betreft facturering bij het hosten van functie-apps in het verbruiksabonnement, worden er geen kosten in rekening gebracht voor tijd die is besteed aan polling door de runtime.

Gelijktijdigheid

Wanneer er meerdere wachtrijberichten wachten, haalt de wachtrijtrigger een batch berichten op en roept de functie-exemplaren gelijktijdig aan om ze te verwerken. Standaard is de batchgrootte 16. Wanneer het nummer dat wordt verwerkt tot 8 wordt verwerkt, krijgt de runtime een andere batch en wordt deze berichten verwerkt. Het maximum aantal gelijktijdige berichten dat per functie op één virtuele machine (VM) wordt verwerkt, is dus 24. Deze limiet is afzonderlijk van toepassing op elke functie die door de wachtrij wordt geactiveerd op elke VIRTUELE machine. Als uw functie-app wordt uitgeschaald naar meerdere VM's, wacht elke VM op triggers en probeert u functies uit te voeren. Als een functie-app bijvoorbeeld wordt uitgeschaald naar 3 VM's, is het standaard maximum aantal gelijktijdige exemplaren van één door wachtrij geactiveerde functie 72.

De batchgrootte en de drempelwaarde voor het verkrijgen van een nieuwe batch kunnen worden geconfigureerd in het host.json-bestand. Als u parallelle uitvoering voor door wachtrij geactiveerde functies in een functie-app wilt minimaliseren, kunt u de batchgrootte instellen op 1. Deze instelling elimineert gelijktijdigheid zolang uw functie-app wordt uitgevoerd op één virtuele machine (VM).

De wachtrijtrigger voorkomt automatisch dat een functie meerdere keren tegelijk een wachtrijbericht verwerkt.

host.json-eigenschappen

Het bestand host.json bevat instellingen waarmee het gedrag van de wachtrijtrigger wordt bepaald. Zie de sectie host.json instellingen voor meer informatie over beschikbare instellingen.

Volgende stappen