Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 | Spouštěč |
| 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.
Tato verze podporuje konfiguraci triggerů a vazeb prostřednictvím integrace .NET Aspire.
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
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
Pokud chcete v aplikaci použít toto rozšíření vazeb, ujistěte se, že soubor host.json v kořenovém adresáři projektu obsahuje tento extensionBundle odkaz:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.0.0, 5.0.0)"
}
}
V tomto příkladu version hodnota [4.0.0, 5.0.0) dává hostiteli Functions pokyn, aby používal verzi sady, která je alespoň 4.0.0 , ale menší než 5.0.0, která zahrnuje všechny potenciální verze 4.x. Tato notace efektivně udržuje vaši aplikaci na nejnovější dostupné podverzi sady rozšíření v4.x.
Pokud je to možné, měli byste použít nejnovější hlavní verzi sady rozšíření a umožnit modulu runtime automaticky udržovat nejnovější podverzi. Obsah nejnovější sady můžete zobrazit na stránce verze sady rozšíření. Další informace najdete v sadách rozšíření Azure Functions.
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 verzi 2.x a novější. Nastavení v souboru host.json platí pro všechny funkce v instanci aplikace funkcí. Další informace o nastavení konfigurace aplikace funkcí 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. |
| časový limit viditelnosti | 00:00:00 | Časový interval mezi opakovanými pokusy při zpracování zprávy selže. |
| velikost_dávky | 16 | Počet zpráv fronty, které modul runtime Služby Functions načítá souběžně a zpracovává paralelně. Jakmile se číslo zpracuje, newBatchThresholdmodul 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 (maximální počet odebrání) | 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. |