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.
Belangrijk
De ondersteuning wordt beëindigd voor het in-process model op 10 november 2026. We raden u ten zeerste aan uw apps te migreren naar het geïsoleerde werkrolmodel voor volledige ondersteuning.
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}"};
_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 myqueuename
wordt 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 verbindingen. |
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 verbindingen. |
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 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:
- De naam van een toepassingsinstelling met een verbindingsreeks
- De naam van een gedeeld voorvoegsel voor meerdere toepassingsinstellingen, samen het definiëren van een op identiteit gebaseerde verbinding.
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' instelt connection
, raadpleegt u Verbinding maken met hostopslag met een identiteit. Voor alle andere verbindingen vereist de extensie de volgende eigenschappen:
Eigenschappen | Sjabloon voor omgevingsvariabele | Beschrijving | Voorbeeldwaarde |
---|---|---|---|
Wachtrijservice-URI | <CONNECTION_NAME_PREFIX>__queueServiceUri 1 |
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
visibilityTimeout
instelling 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 devisibilityTimeout
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.