Přehled triggerů a vazeb azure Queue Storage pro Azure Functions
Azure Functions se můžou spouštět jako nové zprávy azure Queue Storage a můžou psát zprávy fronty v rámci funkce.
Akce | Typ |
---|---|
Spuštění funkce jako změny dat ve službě Queue Storage | Trigger |
Zápis zpráv úložiště front | Výstupní vazba |
Instalace rozšíření
Balíček NuGet rozšíření, který nainstalujete, závisí na režimu jazyka C#, který používáte ve své aplikaci funkcí:
Funkce se spouštějí v izolovaném pracovním procesu C#. Další informace najdete v průvodci spuštěním služby Azure Functions v jazyce C# v izolovaném pracovním procesu.
Funkce rozšíření se liší v závislosti na verzi rozšíření:
Tato verze představuje možnost připojení pomocí identity místo tajného kódu. Kurz konfigurace aplikací funkcí se spravovanými identitami najdete v kurzu vytvoření aplikace funkcí s připojeními založenými na identitách.
Tato verze umožňuje svázat typy z Azure.Storage.Queues.
Přidejte rozšíření do projektu instalací balíčku NuGet verze 5.x.
Pomocí rozhraní příkazového řádku .NET:
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues --version 5.0.0
Poznámka:
Objekty blob Azure, fronty Azure a tabulky Azure teď používají samostatná rozšíření a odkazují se jednotlivě. Pokud chcete například použít triggery a vazby pro všechny tři služby v izolované aplikaci .NET, měli byste do projektu přidat následující balíčky:
- Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs
- Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues
- Microsoft.Azure.Functions.Worker.Extensions.Tables
Dříve byla rozšíření dodávána společně jako Microsoft.Azure.Functions.Worker.Extensions.Storage verze 4.x. Tento stejný balíček má také verzi 5.x, která odkazuje pouze na rozdělené balíčky pro objekty blob a fronty. Při upgradu odkazů na balíčky ze starších verzí proto možná budete muset odkazovat na nový balíček NuGet Microsoft.Azure.Functions.Worker.Extensions.Tables . Při odkazování na tyto novější rozdělené balíčky se ujistěte, že neodkazujete na starší verzi kombinovaného balíčku úložiště, protože výsledkem budou konflikty ze dvou definic stejných vazeb.
Instalace sady
Vazba úložiště objektů blob je součástí sady rozšíření, která je zadaná v souboru projektu host.json. Možná budete muset tuto sadu upravit, aby se změnila verze vazby, nebo pokud sady ještě nejsou nainstalované. Další informace najdete v sadě rozšíření.
Tato verze představuje možnost připojení pomocí identity místo tajného kódu. Kurz konfigurace aplikací funkcí se spravovanými identitami najdete v kurzu vytvoření aplikace funkcí s připojeními založenými na identitách.
Tuto verzi rozšíření můžete přidat z sady rozšíření preview verze 3 přidáním nebo nahrazením následujícího kódu v host.json
souboru:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[3.3.0, 4.0.0)"
}
}
Další informace najdete v tématu Aktualizace rozšíření.
Typy vazeb
Typy vazeb podporované pro .NET závisí na režimu spouštění rozšíření i jazyka C#, což může být jedna z následujících možností:
Kompilovaná funkce C# v izolované knihovně tříd pracovních procesů běží v procesu izolovaném od modulu runtime.
Zvolte verzi a zobrazte podrobnosti o typu vazby pro režim a verzi.
Izolovaný pracovní proces podporuje typy parametrů podle následujících tabulek. Podpora vazby na typy z Azure.Storage.Queues je ve verzi Preview.
Trigger fronty
Trigger fronty může svázat s následujícími typy:
Typ | Popis |
---|---|
string |
Obsah zprávy jako řetězec. Používá se, pokud je zpráva jednoduchá. |
byte[] |
Bajty zprávy. |
Serializovatelné typy JSON | Když zpráva fronty obsahuje data JSON, functions se pokusí deserializovat data JSON do prostého typu objektu CLR (POCO). |
QueueMessage1 | Zpráva |
BinaryData1 | Bajty zprávy. |
1 Pokud chcete tyto typy použít, musíte odkazovat na Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues 5.2.0 nebo novější a běžné závislosti pro vazby typu sady SDK.
Výstupní vazba fronty
Pokud chcete, aby funkce zapisuje jednu zprávu, výstupní vazba fronty může svázat s následujícími typy:
Typ | Popis |
---|---|
string |
Obsah zprávy jako řetězec. Používá se, když je zpráva jednoduchá. |
byte[] |
Bajty zprávy. |
Serializovatelné typy JSON | Objekt představující obsah zprávy JSON. Funkce se pokusí serializovat prostý starý typ objektu CLR (POCO) do dat JSON. |
Pokud chcete, aby funkce zapisuje více zpráv, výstupní vazba fronty může svázat s následujícími typy:
Typ | Popis |
---|---|
T[] where T is one of the single message types |
Pole obsahující obsah pro více zpráv. Každá položka představuje jednu zprávu. |
V případě jiných výstupních scénářů vytvořte a použijte QueueClient s jinými typy přímo z Azure.Storage.Queues . Příklad použití injektáže závislostí k vytvoření typu klienta ze sady Azure SDK najdete v tématu Registrace klientů Azure.
nastavení host.json
Tato část popisuje nastavení konfigurace dostupné pro tuto vazbu ve verzích 2.x a novějších. Nastavení v souboru host.json platí pro všechny funkce v instanci aplikace funkcí. Následující příklad host.json souboru obsahuje pouze nastavení verze 2.x+ pro tuto vazbu. Další informace o nastavení konfigurace aplikace funkcí ve verzích 2.x a novějších verzích najdete v host.json referenčních informacích ke službě Azure Functions.
Poznámka:
Referenční informace o host.json ve službě Functions 1.x najdete v host.json referenčních informacích ke službě Azure Functions 1.x.
{
"version": "2.0",
"extensions": {
"queues": {
"maxPollingInterval": "00:00:02",
"visibilityTimeout" : "00:00:30",
"batchSize": 16,
"maxDequeueCount": 5,
"newBatchThreshold": 8,
"messageEncoding": "base64"
}
}
}
Vlastnost | Výchozí | Popis |
---|---|---|
maxPollingInterval | 00:01:00 | Maximální interval mezi dotazy fronty. Minimální interval je 00:00:00.100 (100 ms). Intervaly se navyšují až na maxPollingInterval . Výchozí hodnota maxPollingInterval je 00:01:00 (1 min). maxPollingInterval nesmí být menší než 00:00:00.100 (100 ms). Ve službě Functions 2.x a novějším je datový typ .TimeSpan Ve službě Functions 1.x je v milisekundách. |
visibilityTimeout | 00:00:00 | Časový interval mezi opakovanými pokusy při zpracování zprávy selže. |
batchSize | 16 | Počet zpráv fronty, které modul runtime Služby Functions načítá souběžně a zpracovává paralelně. Jakmile se číslo zpracuje, newBatchThreshold modul runtime získá jinou dávku a začne tyto zprávy zpracovávat. Takže maximální počet souběžných zpráv zpracovávaných na funkci je batchSize plus newBatchThreshold . Tento limit platí samostatně pro každou funkci aktivovanou frontou. Pokud se chcete vyhnout paralelnímu provádění zpráv přijatých v jedné frontě, můžete nastavit batchSize hodnotu 1. Toto nastavení ale eliminuje souběžnost, pokud vaše aplikace funkcí běží jenom na jednom virtuálním počítači. Pokud se aplikace funkcí škáluje na více virtuálních počítačů, může každý virtuální počítač spustit jednu instanci každé funkce aktivované frontou.Maximum batchSize je 32. |
maxDequeueCount | 5 | Počet pokusů o zpracování zprávy před přesunutím do fronty jedu |
newBatchThreshold | N*batchSize/2 | Pokaždé, když počet zpracovávaných zpráv současně přejde na toto číslo, modul runtime načte jinou dávku.N představuje počet virtuálních procesorů, které jsou k dispozici při spuštění v plánech Služby App Service nebo Premium. Jeho hodnota je 1 pro plán Consumption. |
messageEncoding | base64 | Toto nastavení je k dispozici pouze v sadě rozšíření verze 5.0.0 a vyšší. Představuje formát kódování zpráv. Platné hodnoty jsou base64 a none . |