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.
Tato sada článků vysvětluje, jak pracovat s vazbami služby Azure Cosmos DB ve službě Azure Functions. Azure Functions podporuje aktivační, vstupní a výstupní vazby pro službu Azure Cosmos DB.
| Akce | Typ |
|---|---|
| Spuštění funkce při vytvoření nebo úpravě dokumentu Azure Cosmos DB | Spouštěč |
| Čtení dokumentu služby Azure Cosmos DB | Vstupní vazba |
| Uložení změn do dokumentu azure Cosmos DB | Výstupní vazba |
Důležité
Tato verze rozšíření vazeb Azure Cosmos DB podporuje Azure Functions verze 4.x. Pokud vaše aplikace stále používá verzi 1.x modulu runtime Functions, podívejte se místo toho na vazby Azure Cosmos DB pro Azure Functions 1.x.
V modulu runtime Functions v1.x byla tato vazba původně pojmenována DocumentDB.
Podporovaná rozhraní API
Tato tabulka udává, jak se z kódu funkce připojit k různým rozhraním API služby Azure Cosmos DB:
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.
Postup instalace rozšíření se liší v závislosti na verzi rozšíření:
Tato verze rozšíření vazeb Azure Cosmos DB 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.
Přidejte rozšíření do projektu instalací balíčku NuGet verze 4.x.
Pokud píšete aplikaci pomocí F#, musíte toto rozšíření nakonfigurovat také jako součást konfigurace spuštění aplikace. Do volání ConfigureFunctionsWorkerDefaults() nebo ConfigureFunctionsWebApplication()přidejte delegáta, který přebírá IFunctionsWorkerApplication parametr. Potom v těle tohoto delegáta zavolejte ConfigureCosmosDBExtension() objekt:
let hostBuilder = new HostBuilder()
hostBuilder.ConfigureFunctionsWorkerDefaults(fun (context: HostBuilderContext) (appBuilder: IFunctionsWorkerApplicationBuilder) ->
appBuilder.ConfigureCosmosDBExtension() |> ignore
) |> ignore
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.
Kvůli změnám schématu v sadě Sdk služby Azure Cosmos DB vyžaduje rozšíření Azure Cosmos DB verze 4.x azure-functions-java-library verze 3.0.0 pro funkce Java.
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 Microsoft.Azure.Cosmosje ve verzi Preview.
Trigger služby Cosmos DB
Pokud chcete, aby funkce zpracovávala jeden dokument, trigger Cosmos DB může svázat s následujícími typy:
| Typ | Popis |
|---|---|
| Serializovatelné typy JSON | Funkce se snaží deserializovat data JSON dokumentu z kanálu změn Cosmos DB do prostého typu objektu CLR (POCO). |
Pokud chcete, aby funkce zpracovávala dávku dokumentů, trigger Cosmos DB může svázat s následujícími typy:
| Typ | Popis |
|---|---|
IEnumerable<T>where T je serializovatelný typ JSON |
Výčet entit zahrnutých v dávce. Každá položka představuje jeden dokument z kanálu změn Cosmos DB. |
Vstupní vazba Cosmos DB
Pokud chcete, aby funkce zpracovávala jeden dokument, vstupní vazba Cosmos DB může svázat s následujícími typy:
| Typ | Popis |
|---|---|
| Serializovatelné typy JSON | Funkce se pokusí deserializovat data JSON dokumentu do prostého typu objektu CLR (POCO). |
Pokud chcete, aby funkce zpracovávala více dokumentů z dotazu, vstupní vazba Cosmos DB může svázat s následujícími typy:
| Typ | Popis |
|---|---|
IEnumerable<T>where T je serializovatelný typ JSON |
Výčet entit vrácených dotazem. Každá položka představuje jeden dokument. |
| CosmosClient1 | Klient připojený k účtu Cosmos DB. |
| Databáze1 | Klient připojený k databázi Cosmos DB. |
| Kontejner1 | Klient připojený ke kontejneru Cosmos DB. |
1 Pokud chcete použít tyto typy, musíte odkazovat na Microsoft.Azure.Functions.Worker.Extensions.CosmosDB 4.4.0 nebo novější a běžné závislosti pro vazby typu sady SDK.
Výstupní vazba Cosmos DB
Pokud chcete, aby funkce zapisuje do jednoho dokumentu, výstupní vazba Cosmos DB může svázat s následujícími typy:
| Typ | Popis |
|---|---|
| Serializovatelné typy JSON | Objekt představující obsah JSON dokumentu. Funkce se pokusí serializovat prostý starý typ objektu CLR (POCO) do dat JSON. |
Pokud chcete, aby funkce zapisovat do více dokumentů, výstupní vazba Cosmos DB může svázat s následujícími typy:
| Typ | Popis |
|---|---|
T[] kde T je JSON serializovatelný typ |
Pole obsahující více dokumentů. Každá položka představuje jeden dokument. |
V případě jiných výstupních scénářů vytvořte a použijte CosmosClient s jinými typy z Microsoft.Azure.Cosmos přímo. Příklad použití injektáže závislostí k vytvoření typu klienta ze sady Azure SDK najdete v tématu Registrace klientů Azure.
Typy vazeb sady SDK
Podpora typu sady SDK pro Azure Cosmos je ve verzi Preview. Pokud chcete začít pracovat s typy sad SDK pro Cosmos v Pythonu, postupujte podle ukázek vazeb sady Python SDK pro Službu Cosmos DB .
Důležité
Použití vazeb typu sady SDK vyžaduje programovací model Pythonu v2.
| Vazba | Typy parametrů | Vzorky |
|---|---|---|
| Vstup cosmos DB |
ContainerProxy, CosmosClient, DatabaseProxy |
ContainerProxy,CosmosClient,DatabaseProxy |
Výjimky a návratové kódy
| Vazba | Odkazy |
|---|---|
| Azure Cosmos DB | Stavové kódy HTTP pro službu Azure Cosmos DB |
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.
{
"version": "2.0",
"extensions": {
"cosmosDB": {
"connectionMode": "Gateway",
"userAgentSuffix": "MyDesiredUserAgentStamp"
}
}
}
| Vlastnost | Výchozí | Popis |
|---|---|---|
| connectionMode | Gateway |
Režim připojení používaný funkcí při připojování ke službě Azure Cosmos DB. Možnosti: Direct Umožňuje připojení přímo k back-endovým replikám přes protokol TCP a může poskytovat nižší latenci a Gateway směrovat požadavky přes front-endovou bránu přes PROTOKOL HTTPS. Další informace najdete v tématu Režimy připojení sady SDK služby Azure Cosmos DB. |
| userAgentSuffix | Není k dispozici | Přidá zadanou řetězcovou hodnotu do všech požadavků provedených triggerem nebo vazbou ke službě. To usnadňuje sledování aktivity ve službě Azure Monitor na základě konkrétní aplikace funkcí a filtrování podle User Agent. |