Sdílet prostřednictvím


Přehled triggerů a vazeb služby Azure Cosmos DB pro Azure Functions

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:

API Recommendation
Azure Cosmos DB for NoSQL Použití rozšíření vazby služby Azure Cosmos DB
Azure Cosmos DB pro MongoDB Použijte nativní klientskou sadu SDK.
Azure Cosmos DB pro tabulku Použijte verzi 5.x nebo novější rozšíření vazby tabulek Azure.
Azure Cosmos DB pro Apache Cassandra Použijte nativní klientskou sadu SDK.
Azure Cosmos DB pro Apache Gremlin (Graph API) Použití nativní klientské sady SDK
Azure Cosmos DB for PostgreSQL Použijte nativní klientskou sadu SDK.

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.

Další kroky