Azure Queue Storage-eseményindító az Azure Functionshez

A várólista-tároló eseményindítója egy függvényt futtat, amikor a rendszer üzeneteket ad hozzá az Azure Queue Storage-hoz.

Az Azure Queue Storage használati és prémium csomagokkal kapcsolatos skálázási döntései célalapú skálázással érhetők el. További információ: Célalapú skálázás.

Fontos

Ez a cikk lapokat használ a Node.js programozási modell több verziójának támogatásához. A v4-modell általánosan elérhető, és úgy lett kialakítva, hogy rugalmasabb és intuitívabb felhasználói élményt nyújtson JavaScript- és TypeScript-fejlesztők számára. A v4-modell működésével kapcsolatos további információkért tekintse meg az Azure Functions Node.js fejlesztői útmutatóját. A v3 és a v4 közötti különbségekről a migrálási útmutatóban olvashat bővebben.

Az Azure Functions két Python-programozási modellt támogat. A kötések definiálásának módja a választott programozási modelltől függ.

A Python v2 programozási modell lehetővé teszi, hogy a kötéseket dekorátorokkal definiálja közvetlenül a Python-függvénykódban. További információt a Python fejlesztői útmutatójában talál.

Ez a cikk mindkét programozási modellt támogatja.

Példa

Az üzenetsor-eseményindítóval elindíthat egy függvényt, amikor új elem érkezik egy üzenetsorba. A várakozó üzenetet a függvény bemeneteként adja át.

A C#-függvények a következő C#-módok egyikével hozhatók létre:

  • Izolált feldolgozómodell: Lefordított C# függvény, amely a futtatókörnyezettől elkülönített feldolgozói folyamatban fut. Izolált feldolgozói folyamat szükséges az LTS- és nem LTS-verziókon futó C#-függvények támogatásához .NET és .NET-keretrendszer. Az izolált feldolgozói folyamatfüggvények bővítményei névtereket használnak Microsoft.Azure.Functions.Worker.Extensions.* .
  • Folyamaton belüli modell: Lefordított C# függvény, amely ugyanabban a folyamatban fut, mint a Functions-futtatókörnyezet. A modell egy változatában a Functions C#-szkriptekkel futtatható, amely elsősorban a C#-portál szerkesztéséhez támogatott. A folyamaton belüli függvények bővítményei névtereket használnak Microsoft.Azure.WebJobs.Extensions.* .

Az alábbi példa egy C# függvényt mutat be, amely lekérdezi az input-queue üzenetsort, és több üzenetet ír egy kimeneti üzenetsorba minden egyes üzenetsor feldolgozásakor.

[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;
}

Az alábbi Java-példa egy tárolási üzenetsor-eseményindító függvényt mutat be, amely naplózza az üzenetsorba myqueuenamehelyezett aktivált üzenetet.

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

Az alábbi példa egy üzenetsor-eseményindító TypeScript-függvényét mutatja be. A függvény lekérdezi az myqueue-items üzenetsort, és naplót ír minden egyes üzenetsorelem feldolgozásakor.

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,
});

A használati szakasz ismerteti queueItem. Az üzenet metaadatai szakasz az összes többi megjelenített változót ismerteti.

Az alábbi példa egy üzenetsor-trigger JavaScript-függvényét mutatja be. A függvény lekérdezi az myqueue-items üzenetsort, és naplót ír minden egyes üzenetsorelem feldolgozásakor.

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);
    },
});

A használati szakasz ismerteti queueItem. Az üzenet metaadatai szakasz az összes többi megjelenített változót ismerteti.

Az alábbi példa bemutatja, hogyan olvasható be egy függvénynek átadott üzenetsor egy eseményindítón keresztül.

A Storage-üzenetsor-eseményindító function.json fájlban van definiálva, ahol type a beállítás értéke queueTrigger.

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

A Run.ps1 fájlban lévő kód egy paramétert $QueueItemdeklarál, amely lehetővé teszi az üzenetsor üzenetének olvasását a függvényben.

# 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)"

Az alábbi példa bemutatja, hogyan olvasható be egy függvénynek átadott üzenetsor egy eseményindítón keresztül. A példa attól függ, hogy a v1 vagy v2 Python programozási modellt használja-e.

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')

Attribútumok

A folyamaton belüli és az izolált feldolgozói folyamat C# kódtárai a QueueTriggerAttribute használatával határozzák meg a függvényt. A C#-szkript ehelyett egy function.json konfigurációs fájlt használ a C#-szkriptelési útmutatóban leírtak szerint.

A C#-osztálytárakban az attribútum konstruktora a monitorozni kívánt üzenetsor nevét veszi fel, ahogyan az alábbi példában látható:

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

Ez a példa azt is bemutatja, hogy a kapcsolati sztring beállítást maga az attribútum állítja be.

Jegyzetek

A QueueTrigger széljegyzet hozzáférést biztosít a függvényt aktiváló üzenetsorhoz. Az alábbi példa elérhetővé teszi az üzenetsor-üzenetet a függvény számára a message paraméteren keresztül.

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);
    }
}
Tulajdonság Leírás
name Deklarálja a paraméter nevét a függvény-aláírásban. A függvény aktiválásakor ennek a paraméternek az értéke tartalmazza az üzenetsor-üzenet tartalmát.
queueName Deklarálja az üzenetsor nevét a tárfiókban.
connection A tárfiókra mutat kapcsolati sztring.

Dekorátorok

Csak a Python v2 programozási modellre vonatkozik.

A dekoratőrrel definiált Python v2-függvények esetében a queue_trigger dekorátor következő tulajdonságai határozzák meg a Queue Storage-eseményindítót:

Tulajdonság Leírás
arg_name Deklarálja a paraméter nevét a függvény-aláírásban. A függvény aktiválásakor ennek a paraméternek az értéke tartalmazza az üzenetsor-üzenet tartalmát.
queue_name Deklarálja az üzenetsor nevét a tárfiókban.
connection A tárfiókra mutat kapcsolati sztring.

A function.json használatával definiált Python-függvények esetében lásd a Konfiguráció szakaszt.

Konfiguráció

Csak a Python v1 programozási modellre vonatkozik.

Az alábbi táblázat a metódusnak app.storageQueue() átadott objektumon options beállítható tulajdonságokat ismerteti.

Tulajdonság Leírás
queueName A lekérdezni kívánt üzenetsor neve.
Kapcsolat Egy alkalmazásbeállítás vagy beállításgyűjtemény neve, amely meghatározza, hogyan csatlakozhat az Azure Queueshoz. Lásd: Csatlakozás ions.

Az alábbi táblázat a function.json fájlban és az QueueTrigger attribútumban beállított kötéskonfigurációs tulajdonságokat ismerteti.

function.json tulajdonság Leírás
type A beállításnak a queueTriggerkövetkezőnek kell lennie: . Ez a tulajdonság automatikusan be van állítva, amikor létrehozza az eseményindítót az Azure Portalon.
direction Csak a function.json fájlban. A beállításnak a inkövetkezőnek kell lennie: . Ez a tulajdonság automatikusan be van állítva, amikor létrehozza az eseményindítót az Azure Portalon.
név Annak a változónak a neve, amely az üzenetsorelem hasznos adatait tartalmazza a függvénykódban.
queueName A lekérdezni kívánt üzenetsor neve.
Kapcsolat Egy alkalmazásbeállítás vagy beállításgyűjtemény neve, amely meghatározza, hogyan csatlakozhat az Azure Queueshoz. Lásd: Csatlakozás ions.

A teljes példákért tekintse meg a Példa szakaszt .

Helyi fejlesztéskor adja hozzá az alkalmazásbeállításokat a gyűjtemény local.settings.json fájljáhozValues.

Használat

Feljegyzés

A függvények alap64 kódolású sztringet várnak. A kódolási típus bármilyen módosítását (az adatok base64 kódolású sztringként való előkészítéséhez) végre kell hajtani a hívószolgáltatásban.

Az Üzenetsor-eseményindító használata a bővítménycsomag verziójától és a függvényalkalmazásban használt C# módtól függ, amely az alábbi módok egyike lehet:

A C# függvényt lefordított izolált feldolgozói folyamatosztály-kódtár a futtatókörnyezettől elkülönített folyamatban fut.

Válasszon egy verziót a mód és a verzió használati adatainak megtekintéséhez.

Az üzenetsor-eseményindító a következő típusokhoz tud kapcsolódni:

Típus Leírás
string Az üzenet tartalma sztringként. Akkor használja, ha az üzenet egyszerű szöveg.
byte[] Az üzenet bájtja.
JSON szerializálható típusok Ha egy üzenetsor JSON-adatokat tartalmaz, a Functions megpróbálja deszerializálni a JSON-adatokat egy egyszerű régi CLR-objektum (POCO) típusba.
QueueMessage1 Az üzenet.
BinaryData1 Az üzenet bájtja.

1 Ezeknek a típusoknak a használatához hivatkoznia kell a Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues 5.2.0-s vagy újabb verziójára, valamint az SDK-típuskötések gyakori függőségeire.

A QueueTrigger széljegyzete hozzáférést biztosít a függvényt aktiváló üzenetsorhoz.

Az üzenetsorelem elérése a függvény első argumentumaként. Ha a hasznos adat JSON, az érték deszerializálva lesz egy objektumba.

Az üzenetsor-üzenet elérése a function.json fájlban lévő kötés paramétere name által megadott névnek megfelelő karakterlánc-paraméterrel.

Az üzenetsor üzenetének elérése a QueueMessage paraméteren keresztül.

Metaadatok

Az üzenetsor-eseményindító számos metaadat-tulajdonságot biztosít. Ezek a tulajdonságok más kötések kötési kifejezéseinek részeként vagy a kód paramétereiként használhatók azoknak a nyelvmunkásoknak, akik hozzáférést biztosítanak az üzenet metaadataihoz.

Az üzenet metaadatainak tulajdonságai a CloudQueueMessage osztály tagjai.

Az üzenet metaadatainak tulajdonságai a következőből context.triggerMetadataérhetők el: .

Az üzenet metaadatainak tulajdonságai az átadott $TriggerMetadata paraméterből érhetők el.

Tulajdonság Típus Leírás
QueueTrigger string Üzenetsor hasznos adatai (ha érvényes sztring). Ha az üzenetsor-üzenet hasznos adattartalma egy sztring, QueueTrigger akkor ugyanaz az érték, mint a function.json tulajdonsága által name elnevezett változó.
DequeueCount long Az üzenet lekérdezésének száma.
ExpirationTime DateTimeOffset Az üzenet lejárati ideje.
Id string Üzenetsor-üzenet azonosítója.
InsertionTime DateTimeOffset Az üzenet üzenetsorhoz való hozzáadásának időpontja.
NextVisibleTime DateTimeOffset Az az idő, amikor az üzenet ezután látható lesz.
PopReceipt string Az üzenet pop-nyugtája.

Az alábbi üzenet metaadat-tulajdonságai az átadott kötési paraméterből érhetők el (msg a korábbi példákban).

Tulajdonság Leírás
body Üzenetsor hasznos adatai sztringként.
dequeue_count Az üzenet lekérdezésének száma.
expiration_time Az üzenet lejárati ideje.
id Üzenetsor-üzenet azonosítója.
insertion_time Az üzenet üzenetsorhoz való hozzáadásának időpontja.
time_next_visible Az az idő, amikor az üzenet ezután látható lesz.
pop_receipt Az üzenet pop-nyugtája.

Kapcsolatok

A connection tulajdonság a környezeti konfigurációra mutató hivatkozás, amely meghatározza, hogy az alkalmazásnak hogyan kell csatlakoznia az Azure Queueshoz. A következőt határozhatja meg:

Ha a konfigurált érték egy adott beállítás pontos egyezése, a többi beállítás előtagja pedig egyezik, akkor a rendszer a pontos egyezést használja.

Kapcsolati sztring

A kapcsolati sztring beszerzéséhez kövesse a tárfiók hozzáférési kulcsainak kezelése című témakörben ismertetett lépéseket.

Ezt a kapcsolati sztring a kötéskonfiguráció tulajdonsága által connection megadott értéknek megfelelő névvel rendelkező alkalmazásbeállításban kell tárolni.

Ha az alkalmazásbeállítás neve az "AzureWebJobs" névvel kezdődik, itt csak a név fennmaradó részét adhatja meg. Ha például a "MyStorage" értékre van állítvaconnection, a Functions-futtatókörnyezet egy "AzureWebJobsMyStorage" nevű alkalmazásbeállítást keres. Ha üresen hagyjaconnection, a Functions-futtatókörnyezet az alapértelmezett Storage-kapcsolati sztring használja a nevesített AzureWebJobsStoragealkalmazásbeállításban.

Identitásalapú kapcsolatok

Ha a bővítmény 5.x vagy újabb verzióját használja (a 3.x vagy újabb csomag non-.NET nyelvi veremekhez), ahelyett, hogy titkos kapcsolati sztring használ, az alkalmazás Microsoft Entra-identitást használhat. Identitás használatához olyan beállításokat kell megadnia egy közös előtag alatt, amely leképezi a tulajdonságot az connection eseményindító és a kötés konfigurációjában.

Ha az "AzureWebJobsStorage" értékre van állítvaconnection, tekintse meg Csatlakozás a tároló identitással való üzemeltetését. Az összes többi kapcsolat esetében a bővítményhez a következő tulajdonságok szükségesek:

Tulajdonság Környezeti változó sablonja Leírás Példaérték
Üzenetsor-szolgáltatás URI-ja <CONNECTION_NAME_PREFIX>__queueServiceUri1 Annak az üzenetsor-szolgáltatásnak az adatsíkja, amelyhez csatlakozik, a HTTPS-séma használatával. <https:// storage_account_name.queue.core.windows.net>

Az 1<CONNECTION_NAME_PREFIX>__serviceUri aliasként használható. Ha mindkét űrlap meg van adva, a rendszer az queueServiceUri űrlapot használja. Az serviceUri űrlap nem használható, ha az általános kapcsolatkonfigurációt blobokon, üzenetsorokon és/vagy táblákon kell használni.

Más tulajdonságok is beállíthatók a kapcsolat testreszabásához. Tekintse meg az identitásalapú kapcsolatok gyakori tulajdonságait.

Az Azure Functions szolgáltatásban üzemeltetett identitásalapú kapcsolatok felügyelt identitást használnak. A rendszer alapértelmezés szerint a rendszer által hozzárendelt identitást használja, bár a felhasználó által hozzárendelt identitás megadható a credential tulajdonságokkal együtt clientID . Vegye figyelembe, hogy a felhasználó által hozzárendelt identitás erőforrás-azonosítóval való konfigurálása nem támogatott. Ha más környezetekben, például helyi fejlesztésben fut, a rendszer ehelyett a fejlesztői identitást használja, bár ez testre szabható. Lásd: Helyi fejlesztés identitásalapú kapcsolatokkal.

Engedély megadása az identitáshoz

Bármilyen identitást is használ, rendelkeznie kell a kívánt műveletek végrehajtásához szükséges engedélyekkel. A legtöbb Azure-szolgáltatás esetében ez azt jelenti, hogy egy szerepkört kell hozzárendelnie az Azure RBAC-ben beépített vagy egyéni szerepkörökkel, amelyek biztosítják ezeket az engedélyeket.

Fontos

A célszolgáltatás bizonyos engedélyeket közzétehet, amelyek nem minden környezethez szükségesek. Ahol lehetséges, tartsa be a minimális jogosultság elvét, és csak az identitáshoz szükséges jogosultságokat adja meg. Ha például az alkalmazásnak csak adatforrásból kell olvasnia, használjon olyan szerepkört, amely csak olvasási engedéllyel rendelkezik. Nem lenne helyénvaló olyan szerepkört hozzárendelni, amely lehetővé teszi az írást is a szolgáltatáshoz, mivel ez túlzott engedély lenne egy olvasási művelethez. Hasonlóképpen meg szeretné győződni arról, hogy a szerepkör-hozzárendelés csak az elolvasandó erőforrásokra terjed ki.

Létre kell hoznia egy szerepkör-hozzárendelést, amely futásidőben hozzáférést biztosít az üzenetsorhoz. A tulajdonoshoz hasonló felügyeleti szerepkörök nem elegendőek. Az alábbi táblázat olyan beépített szerepköröket mutat be, amelyek a Queue Storage bővítmény normál működésben való használatakor ajánlottak. Előfordulhat, hogy az alkalmazás további engedélyeket igényel az Ön által írt kód alapján.

Kötés típusa Példa beépített szerepkörökre
Eseményindító Storage Queue Data Reader, Storage Queue Data Message Processor
Kimeneti kötés Storage Queue Data Contributor, Storage Queue Data Message Sender

Méregüzenetek

Ha egy üzenetsor-eseményindító függvény meghiúsul, az Azure Functions legfeljebb ötször újrapróbálkozza a függvényt egy adott üzenetsor-üzenethez, beleértve az első próbálkozást is. Ha mind az öt kísérlet sikertelen, a függvény-futtatókörnyezet egy üzenetet ad hozzá egy originalqueuename-poison> nevű <üzenetsorhoz. A mérgező üzenetsorból érkező üzenetek feldolgozásához megírhat egy függvényt, ha naplózzák őket, vagy értesítést küldenek arról, hogy manuális beavatkozásra van szükség.

A méregüzenetek manuális kezeléséhez ellenőrizze az üzenetsor-üzenet dequeueCount elemét.

Betekintő zárolás

A betekintő-zárolási minta automatikusan történik az üzenetsor-eseményindítók esetében a tárolási szolgáltatás által biztosított láthatósági mechanikával. Mivel az üzeneteket az aktivált függvény lekérdezi, láthatatlanként lesznek megjelölve. Az üzenetsor által aktivált függvény végrehajtása a következő eredmények egyikével rendelkezhet az üzenetsorban:

  • A függvény végrehajtása sikeresen befejeződik, és az üzenet törlődik az üzenetsorból.
  • A függvény végrehajtása meghiúsul, és a Functions-gazdagép a host.json fájlban megadott beállítás alapján visibilityTimeoutfrissíti az üzenet láthatóságát. Az alapértelmezett láthatósági időtúllépés nulla, ami azt jelenti, hogy az üzenet azonnal újra megjelenik az üzenetsorban az újrafeldolgozáshoz. visibilityTimeout A beállítással késleltetheti a feldolgozni nem kívánt üzenetek újrafeldolgozását. Ez az időtúllépési beállítás a függvényalkalmazás összes üzenetsor által aktivált függvényére vonatkozik.
  • A Függvények gazdagép összeomlik a függvény végrehajtása során. Amikor ez a nem gyakori esemény bekövetkezik, a gazdagép nem tudja alkalmazni a visibilityTimeout feldolgozott üzenetre. Ehelyett az üzenet a tárolási szolgáltatás által beállított alapértelmezett 10 perces időtúllépéssel marad. 10 perc elteltével az üzenet újra megjelenik az üzenetsorban az újrafeldolgozáshoz. Ez a szolgáltatás által definiált alapértelmezett időtúllépés nem módosítható.

Lekérdezési algoritmus

Az üzenetsor-eseményindító véletlenszerű exponenciális háttéralgoritmust implementál, amely csökkenti az inaktív üzenetsorok lekérdezésének a tárolási tranzakciók költségeire gyakorolt hatását.

Az algoritmus a következő logikát használja:

  • Amikor egy üzenet található, a futtatókörnyezet 100 ezredmásodpercet vár, majd egy másik üzenetet keres.
  • Ha nem található üzenet, körülbelül 200 ezredmásodpercet vár, mielőtt újra próbálkozna.
  • Az üzenetsor-üzenet későbbi sikertelen lekérési kísérletei után a várakozási idő mindaddig nő, amíg el nem éri a maximális várakozási időt, amely alapértelmezés szerint egy percre esik.
  • A maximális várakozási idő a maxPollingInterval host.json fájlban lévő tulajdonságon keresztül konfigurálható.

A helyi fejlesztés során a lekérdezési időköz maximális értéke két másodperc.

Feljegyzés

A használatalapú csomagban lévő függvényalkalmazások üzemeltetésének számlázásával kapcsolatban nem kell fizetnie a futásidejű lekérdezéssel töltött időért.

Egyidejűség

Ha több üzenetsor-üzenet vár, az üzenetsor-eseményindító lekéri az üzenetek kötegét, és egyidejűleg meghívja a függvénypéldányokat a feldolgozásukhoz. Alapértelmezés szerint a köteg mérete 16. Amikor a feldolgozott szám 8-ra csökken, a futtatókörnyezet újabb köteget kap, és megkezdi az üzenetek feldolgozását. Így az egyidejű üzenetek maximális száma függvényenként egy virtuális gépen (virtuális gépen) 24. Ez a korlát külön vonatkozik az egyes virtuális gépek üzenetsor által aktivált függvényére. Ha a függvényalkalmazás több virtuális gépre skálázódik, minden virtuális gép megvárja az eseményindítókat, és megpróbálja futtatni a függvényeket. Ha például egy függvényalkalmazás 3 virtuális gépre skálázódik, az egy üzenetsor által aktivált függvény egyidejű példányainak alapértelmezett maximális száma 72.

A köteg mérete és az új köteg beszerzésének küszöbértéke konfigurálható a host.json fájlban. Ha szeretné minimalizálni a párhuzamos végrehajtást az üzenetsor által aktivált függvények esetében egy függvényalkalmazásban, beállíthatja a köteg méretét 1-esre. Ez a beállítás csak addig szünteti meg az egyidejűséget, amíg a függvényalkalmazás egyetlen virtuális gépen (virtuális gépen) fut.

Az üzenetsor-eseményindító automatikusan megakadályozza, hogy egy függvény egyszerre többször is feldolgozza az üzenetsor-üzeneteket.

host.json tulajdonságok

A host.json fájl az üzenetsor-eseményindító viselkedését vezérlő beállításokat tartalmaz. Az elérhető beállításokkal kapcsolatos részletekért tekintse meg a host.json beállítások szakaszát.

Következő lépések