Share via


Ongestructureerde gegevens opslaan met behulp van Azure Functions en Azure Cosmos DB

Azure Cosmos DB is een geweldige manier om ongestructureerde gegevens en JSON-gegevens op te slaan. In combinatie met Azure Functions maakt Azure Cosmos DB het opslaan van gegevens snel en eenvoudig met veel minder code dan nodig is voor het opslaan van gegevens in een relationele database.

Notitie

Op dit moment werken de Azure Cosmos DB-trigger, invoerbindingen en uitvoerbindingen alleen met SQL API- en Graph API-accounts.

In Azure Functions bieden invoer- en uitvoerbindingen een verklarende manier om verbinding te maken met externe servicegegevens vanuit uw functie. In dit artikel wordt uitgelegd hoe u een bestaande functie kunt bijwerken voor het toevoegen van een uitvoerbinding die niet-gestructureerde gegevens in een Azure Cosmos DB-document opslaat.

Vereisten

Vereisten voor het voltooien van deze zelfstudie:

Als startpunt van dit onderwerp dienen de resources die zijn gemaakt in Create your first function from the Azure portal (Uw eerste functie maken vanuit Azure Portal). Voltooi nu deze stappen om de functie-app te maken, als u dit nog niet hebt gedaan.

Maak een Azure Cosmos DB-account

U moet een Azure Cosmos DB-account hebben dat gebruikmaakt van de SQL-API voordat u de uitvoerbinding maakt.

  1. Selecteer vanuit het menu van Azure Portal of op de startpagina de optie Een resource maken.

  2. Zoek naar Azure Cosmos DB. Selecteer Azure>Cosmos DB maken.

  3. Selecteer op de pagina Een Azure Cosmos DB-account maken de optie Maken in de sectie Azure Cosmos DB for NoSQL .

    Azure Cosmos DB biedt verschillende API's:

    • NoSQL voor documentgegevens
    • PostgreSQL
    • MongoDB, voor documentgegevens
    • Apache Cassandra
    • Tabel
    • Apache Gremlin voor grafiekgegevens

    Zie Welkom bij Azure Cosmos DB voor meer informatie over de API voor NoSQL.

  4. Voer op de pagina Azure Cosmos DB-account maken de basisinstellingen voor het nieuwe Azure Cosmos DB-account in.

    Instelling Waarde Beschrijving
    Abonnement Abonnementsnaam Selecteer het Azure-abonnement dat u voor dit Azure Cosmos DB-account wilt gebruiken.
    Resourcegroep Naam van de resourcegroep Selecteer een resourcegroep of selecteer Nieuwe maken en voer vervolgens een unieke naam in voor de nieuwe resourcegroep.
    Accountnaam Een unieke naam Voer een naam in om uw Azure Cosmos DB-account te identificeren. Gebruik een unieke naam omdat documents.azure.com is toegevoegd aan de naam die u hebt opgegeven om uw URI te maken. De naam mag alleen kleine letters, cijfers en het afbreekstreepje (-) bevatten. Deze moet 3-44 tekens bevatten.
    Locatie De regio het dichtst bij uw gebruikers Selecteer een geografische locatie waar u het Azure Cosmos DB-account wilt hosten. Gebruik de locatie die zich het dichtst bij uw gebruikers bevindt, zodat ze de snelst mogelijke toegang tot de gegevens hebben.
    Capaciteitsmodus Ingerichte doorvoer of serverloos Selecteer Ingerichte doorvoer om een account te maken in de modus Ingerichte doorvoer. Selecteer Serverloos om een account te maken in de modus serverloos.
    Niveaukorting op gratis laag van Azure Cosmos DB toepassen Toepassen of niet toepassen Met de gratis laag van Azure Cosmos DB krijgt u de eerste 1000 RU/s en 25 GB gratis opslagruimte in een account. Meer informatie over de gratis laag.
    Totale accountdoorvoer beperken Geselecteerd of niet Beperk de totale hoeveelheid doorvoer die voor dit account kan worden ingericht. Deze limiet voorkomt onverwachte kosten met betrekking tot ingerichte doorvoer. U kunt deze limiet bijwerken of verwijderen nadat uw account is gemaakt.

    U kunt maximaal één Azure Cosmos DB-account in de gratis laag per Azure-abonnement hebben en u moet zich aanmelden bij het maken van het account. Als u de optie voor het toepassen van de korting voor de gratis laag niet ziet, is een ander account in het abonnement al ingeschakeld met de gratis laag.

    Schermopname van de pagina Azure Cosmos DB-account maken.

    Notitie

    De volgende opties zijn niet beschikbaar als u Serverloos als Capaciteitsmodus selecteert:

    • Korting voor gratis lagen toepassen
    • Totale accountdoorvoer beperken
  5. Configureer op het tabblad Globale distributie de volgende details. U kunt de standaardwaarden voor deze quickstart laten staan:

    Instelling Waarde Beschrijving
    Georedundantie Uitschakelen Schakel globale distributie voor uw account in of uit door uw regio te koppelen met een koppelingsregio. U kunt later meer regio's aan uw account toevoegen.
    Schrijven voor meerdere regio's Uitschakelen Dankzij de mogelijkheid voor schrijfbewerkingen in meerdere regio's kunt over de hele wereld profiteren van de ingerichte doorvoer voor uw databases en containers.
    Beschikbaarheidszones Uitschakelen Met beschikbaarheidszones kunt u de beschikbaarheid en tolerantie van uw toepassing verder verbeteren.

    Notitie

    De volgende opties zijn niet beschikbaar als u Serverloos selecteert als capaciteitsmodus op de vorige pagina Basisbeginselen :

    • Geografische redundantie
    • Schrijven voor meerdere regio's
  6. U kunt desgewenst meer details configureren op de volgende tabbladen:

  7. Selecteer Controleren + maken.

  8. Controleer de accountinstellingen en selecteer vervolgens Maken. Het duurt een paar minuten om het account te maken. Wacht tot de portal-pagina Uw implementatie is voltooid weergeeft.

    Schermopname die laat zien dat uw implementatie is voltooid.

  9. Selecteer Ga naar resource om naar de Azure Cosmos DB-accountpagina te gaan.

    Schermopname van de azure Cosmos DB-accountpagina.

Een uitvoerbinding toevoegen

  1. Ga in de Azure-portal naar en selecteer de functie-app die u eerder hebt gemaakt.

  2. Selecteer Functies en vervolgens de functie HttpTrigger.

    Selecteer uw HTTP-functie in de Azure-portal.

  3. Selecteer Integratie en + Uitvoer toevoegen.

    Een Cosmos DB-uitvoerbinding toevoegen

  4. Gebruik de Uitvoer maken-instellingen zoals opgegeven in de tabel:

    Azure Cosmos DB-uitvoerbinding configureren

    Instelling Voorgestelde waarde Beschrijving
    Bindingstype Azure Cosmos DB De naam van het te selecteren bindingstype om de uitvoerbinding te maken naar Azure Cosmos DB.
    Parameternaam van document taskDocument Naam die verwijst naar het Azure Cosmos DB-object in code.
    Databasenaam taskDatabase Naam van database waarin documenten worden opgeslagen.
    Naam van verzameling taskCollection Naam van de databaseverzameling.
    Indien waar, maakt u de Azure Cosmos DB-database en -verzameling Ja De verzameling bestaat nog niet, dus moet u deze maken.
    Verbinding met het Azure Cosmos DB-account Nieuwe instelling Selecteer Nieuw, kies Azure Cosmos DB-account , gevolgd door het Database-account dat u eerder hebt gemaakt en selecteer OK. Hiermee maakt u een toepassingsinstelling voor uw accountverbinding. Deze instelling wordt gebruikt door de binding om verbinding te maken met de database.
  5. Selecteer OK om de binding te maken.

De functiecode bijwerken

Vervang de bestaande functiecode door het volgende in de door u gekozen taal:

Vervang de bestaande C#-functie door de volgende code:

#r "Newtonsoft.Json"

using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;

public static IActionResult Run(HttpRequest req, out object taskDocument, ILogger log)
{
    string name = req.Query["name"];
    string task = req.Query["task"];
    string duedate = req.Query["duedate"];

    // We need both name and task parameters.
    if (!string.IsNullOrEmpty(name) && !string.IsNullOrEmpty(task))
    {
        taskDocument = new
        {
            name,
            duedate,
            task
        };

        return (ActionResult)new OkResult();
    }
    else
    {
        taskDocument = null;
        return (ActionResult)new BadRequestResult();
    }
}

In dit codevoorbeeld worden de queryreeksen van de HTTP-aanvraag gelezen en toegewezen aan het velden in het taskDocument-object. De taskDocument-binding verzendt de objectgegevens van deze bindingsparameter voor opslag in de gebonden documentdatabase. De database wordt de eerste keer dat de functie wordt uitgevoerd gemaakt.

De functie en database testen

  1. Selecteer Testen/Uitvoeren. Selecteer onder Query de optie + Parameter toevoegen en voeg de volgende parameters toe aan de querytekenreeks:

    • name
    • task
    • duedate

    Test de functie.

  2. Selecteer Uitvoeren en controleer of een 200-status wordt geretourneerd.

    Schermopname toont de status van de HTTP-antwoordcode 200 gemarkeerd na het selecteren van Uitvoeren.

  3. Zoek en selecteer Azure Cosmos DB in de Azure-portal.

    Zoek naar de Azure Cosmos DB-service.

  4. Kies uw Azure Cosmos DB-account en selecteer vervolgens Data Explorer.

  5. Vouw de TaskCollection-knooppunten uit, selecteer het nieuwe document en controleer of het document uw querytekenreekswaarden, samen met enkele aanvullende metagegevens, bevat.

    Controleer de tekenreekswaarden in uw document.

U hebt een binding toegevoegd aan uw HTTP-trigger om ongestructureerde gegevens op te slaan in een Azure Cosmos DB-exemplaar.

Resources opschonen

In de voorgaande stappen hebt u Azure-resources in een resourcegroep gemaakt. Als u deze resources in de toekomst waarschijnlijk niet nodig hebt, kunt u ze verwijderen door de resourcegroep te verwijderen.

Selecteer Resourcegroepen in het menu of op de beginpagina van de Azure-portal. Selecteer myResourceGroup op de pagina Resourcegroepen.

Controleer op de pagina myResourceGroup of de weergegeven resources de resources zijn die u wilt verwijderen.

Selecteer Resourcegroep verwijderen, typ myResourceGroup in het tekstvak om dit te bevestigen en selecteer Verwijderen.

Volgende stappen

Zie Azure Cosmos DB-bindingen Azure Functions voor meer informatie over het binden aan een Azure Cosmos DB-exemplaar.