Sdílet prostřednictvím


Přehled triggerů a vazeb služby Azure Cosmos DB pro Azure Functions 2.x a vyšší

Tato sada článků vysvětluje, jak pracovat s vazbami služby Azure Cosmos DB ve službě Azure Functions 2.x a vyšší. 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 Trigger
Čtení dokumentu služby Azure Cosmos DB Vstupní vazba
Uložení změn do dokumentu azure Cosmos DB Výstupní vazba

Poznámka:

Tento odkaz je určený pro Azure Functions verze 2.x a vyšší. Informace o tom, jak tyto vazby používat ve službě Functions 1.x, najdete v tématu Vazby služby Azure Cosmos DB pro Azure Functions 1.x.

Tato vazba měla původně název DocumentDB. Ve službě Azure Functions verze 2.x a vyšší se aktivační událost, vazby a balíček nazývají Azure Cosmos DB.

Podporovaná rozhraní API

Vazby Azure Cosmos DB se podporují jenom pro použití se službou Azure Cosmos DB for NoSQL. Podpora služby Azure Cosmos DB pro tabulku je poskytována pomocí vazeb Table Storage počínaje rozšířením 5.x. Pro všechna ostatní rozhraní API služby Azure Cosmos DB byste měli přistupovat k databázi z vaší funkce pomocí statického klienta pro vaše rozhraní API, včetně Azure Cosmos DB pro MongoDB, Azure Cosmos DB for Cassandra a Azure Cosmos DB for Apache Gremlin.

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

Rozšíření vazeb Azure Cosmos DB 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í.

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.

Tato verze sady obsahuje verzi 4.x rozšíření vazeb Služby Azure Cosmos DB, které zavádí 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 4 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.Preview",
    "version": "[4.0.0, 5.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 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[] where T is JSON serializable type 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.

Výjimky a návratové kódy

Vazba Reference
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 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.

{
    "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 jsou Direct a Gateway
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.

Další kroky