Lezen in het Engels

Delen via


Overzicht van Azure Cosmos DB-triggers en -bindingen voor Azure Functions 2.x en hoger

Een programmeertaal kiezen

In deze reeks artikelen wordt uitgelegd hoe u kunt werken met Azure Cosmos DB-bindingen in Azure Functions 2.x en hoger. Azure Functions ondersteunt trigger-, invoer- en uitvoerbindingen voor Azure Cosmos DB.

Actie Type
Een functie uitvoeren wanneer een Azure Cosmos DB-document wordt gemaakt of gewijzigd Trigger
Een Azure Cosmos DB-document lezen Invoerbinding
Wijzigingen opslaan in een Azure Cosmos DB-document Uitvoerbinding

Notitie

Deze verwijzing is voor Azure Functions versie 2.x en hoger. Zie Azure Cosmos DB-bindingen voor Azure Functions 1.x voor informatie over het gebruik van deze bindingen in Functions 1.x.

Deze binding heette oorspronkelijk DocumentDB. In Azure Functions versie 2.x en hoger hebben de trigger, bindingen en het pakket allemaal de naam Azure Cosmos DB.

Ondersteunde API's

Azure Cosmos DB-bindingen worden alleen ondersteund voor gebruik met Azure Cosmos DB voor NoSQL. Ondersteuning voor Azure Cosmos DB voor Table wordt geleverd met behulp van de Table Storage-bindingen, te beginnen met extensie 5.x. Voor alle andere Azure Cosmos DB-API's hebt u toegang tot de database vanuit uw functie met behulp van de statische client voor uw API, waaronder Azure Cosmos DB voor MongoDB, Azure Cosmos DB voor Cassandra en Azure Cosmos DB voor Apache Gremlin.

De extensie installeren

Het NuGet-extensiepakket dat u installeert, is afhankelijk van de C#-modus die u gebruikt in uw functie-app:

Functies worden uitgevoerd in hetzelfde proces als de Functions-host. Zie C#-klassebibliotheekfuncties ontwikkelen met behulp van Azure Functions voor meer informatie.

In een variatie van dit model kunnen functies worden uitgevoerd met behulp van C#-scripting. Dit wordt voornamelijk ondersteund voor het bewerken van de C#-portal. Zie Uw extensies bijwerken als u bestaande bindingsextensies wilt bijwerken voor C#-script-apps die worden uitgevoerd in de portal zonder dat u de functie-app opnieuw hoeft te publiceren.

Het proces voor het installeren van de extensie varieert afhankelijk van de extensieversie:

In deze sectie wordt beschreven hoe u een klassebibliotheek gebruikt. Voor C#-scripts moet u in plaats daarvan de extensiebundel, versie 4.x, installeren.

Deze versie van de Azure Cosmos DB bindings-extensie introduceert de mogelijkheid om verbinding te maken met behulp van een identiteit in plaats van een geheim. Zie de zelfstudie over het maken van een functie-app met op identiteit gebaseerde verbindingen voor een zelfstudie over het configureren van uw functie-apps met beheerde identiteiten.

In deze versie worden ook de typen gewijzigd waarmee u verbinding kunt maken, waarbij u de typen van de v2 SDK Microsoft.Azure.DocumentDB vervangt door nieuwere typen van de v3 SDK Microsoft.Azure.Cosmos. Meer informatie over hoe deze nieuwe typen verschillen en hoe u ernaar kunt migreren vanuit de SDK-migratiehandleiding, trigger, invoerbinding en uitvoerbindingsvoorbeelden .

Deze extensieversie is beschikbaar als een NuGet-pakket, versie 4.x.

Bundel installeren

De Azure Cosmos DB-bindingsextensie maakt deel uit van een extensiebundel, die is opgegeven in uw host.json projectbestand. Mogelijk moet u deze bundel wijzigen om de versie van de binding te wijzigen of als bundels nog niet zijn geïnstalleerd. Zie uitbreidingsbundel voor meer informatie.

Vanwege schemawijzigingen in de Azure Cosmos DB SDK vereist versie 4.x van de Azure Cosmos DB-extensie azure-functions-java-library V3.0.0 voor Java-functies.

Deze versie van de bundel bevat versie 4.x van de Azure Cosmos DB-bindingsextensie waarmee u verbinding kunt maken met behulp van een identiteit in plaats van een geheim. Zie de zelfstudie over het maken van een functie-app met op identiteit gebaseerde verbindingen voor een zelfstudie over het configureren van uw functie-apps met beheerde identiteiten.

U kunt deze versie van de extensie toevoegen vanuit de preview-extensiebundel v4 door de volgende code toe te voegen of te vervangen in uw host.json bestand:

JSON
{
  "version": "2.0",
  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle.Preview",
    "version": "[4.0.0, 5.0.0)"
  }
}

Zie Uw extensies bijwerken voor meer informatie.

Bindingstypen

De bindingstypen die worden ondersteund voor .NET zijn afhankelijk van zowel de extensieversie als de C#-uitvoeringsmodus. Dit kan een van de volgende zijn:

Een in-process-klassebibliotheek is een gecompileerde C#-functie die wordt uitgevoerd in hetzelfde proces als de Functions-runtime.

Kies een versie om de details van het bindingstype voor de modus en versie weer te geven.

De Azure Cosmos DB-extensie ondersteunt parametertypen volgens de onderstaande tabel.

Bindingsscenario Parametertypen
Cosmos DB-trigger (één document) JSON serialiseerbare typen1
Cosmos DB-trigger (batch documenten) IEnumerable<T>waarbij T een JSON serialiseerbaar type1 is
Cosmos DB-invoer (één document) JSON serialiseerbare typen1
Cosmos DB-invoer (query die meerdere documenten retourneert) CosmosClient
IEnumerable<T> waarbij T een JSON serialiseerbaar type1 is
Cosmos DB-uitvoer (één document) JSON serialiseerbare typen1
Cosmos DB-uitvoer (meerdere documenten) ICollector<T> of IAsyncCollector<T> waar T is een JSON serialiseerbare type1

1 Documenten die JSON-gegevens bevatten, kunnen worden gedeserialiseerd in bekende niet-oude CLR-objecttypen (POCO).

Uitzonderingen en retourcodes

Binding Verwijzing
Azure Cosmos DB HTTP-statuscodes voor Azure Cosmos DB

host.json-instellingen

In deze sectie worden de configuratie-instellingen beschreven die beschikbaar zijn voor deze binding in versie 2.x en hoger. Instellingen in het bestand host.json zijn van toepassing op alle functies in een exemplaar van een functie-app. Het onderstaande voorbeeld host.json bestand bevat alleen de instellingen voor versie 2.x+ voor deze binding. Zie host.json naslaginformatie voor Azure Functions voor meer informatie over configuratie-instellingen voor functie-apps in versies 2.x en latere versies.

JSON
{
    "version": "2.0",
    "extensions": {
        "cosmosDB": {
            "connectionMode": "Gateway",
            "userAgentSuffix": "MyDesiredUserAgentStamp"
        }
    }
}
Eigenschappen Standaard Beschrijving
connectionMode Gateway De verbindingsmodus die door de functie wordt gebruikt bij het maken van verbinding met de Azure Cosmos DB-service. Opties zijn Direct en Gateway
userAgentSuffix n.v.t. Hiermee voegt u de opgegeven tekenreekswaarde toe aan alle aanvragen die door de trigger of binding aan de service zijn gedaan. Hierdoor kunt u de activiteit in Azure Monitor gemakkelijker bijhouden op basis van een specifieke functie-app en filteren User Agentop.

Volgende stappen