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 vereist 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 om deze zelfstudie te voltooien:
In dit artikel worden de resources gebruikt die zijn gemaakt in Uw eerste functie maken in Azure Portal. Doorloop nu deze stappen om de functie-app te maken, als u dit nog niet hebt gedaan.
Een Azure Cosmos DB-account maken
U moet een Azure Cosmos DB-account hebben dat gebruikmaakt van de SQL-API voordat u de uitvoerbinding maakt.
Selecteer vanuit het menu van Azure Portal of op de startpagina de optie Een resource maken.
Zoek naar Azure Cosmos DB. Selecteer Azure Cosmos DB maken>.
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.
Voer op de pagina Azure Cosmos DB-account maken de basisinstellingen voor het nieuwe Azure Cosmos DB-account in.
Instelling Weergegeven als Beschrijving Abonnement Naam van het abonnement Selecteer het Azure-abonnement dat u wilt gebruiken voor dit Azure Cosmos DB-account. 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. Het moet 3-44 tekens zijn. 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 opslagruimte gratis 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 gratis Azure Cosmos DB-account 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 op de gratis laag niet ziet, is er al een ander account in het abonnement ingeschakeld met de gratis laag.
Notitie
De volgende opties zijn niet beschikbaar als u Serverloos als Capaciteitsmodus selecteert:
- Korting voor gratis laag toepassen
- Totale accountdoorvoer beperken
Configureer op het tabblad Globale distributie de volgende details. U kunt de standaardwaarden voor deze quickstart behouden:
Instelling Weergegeven als 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
U kunt desgewenst meer details configureren op de volgende tabbladen:
- Netwerken. Toegang configureren vanuit een virtueel netwerk.
- Back-upbeleid. Configureer periodiek of doorlopend back-upbeleid.
- Versleuteling. Gebruik een door de service beheerde sleutel of een door de klant beheerde sleutel.
- Tags. Tags zijn naam/waarde-paren waarmee u resources kunt categoriseren en een geconsolideerde facturering kunt weergeven. Hiervoor past u dezelfde tag toe op meerdere resources en resourcegroepen.
Selecteer Controleren + maken.
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.
Selecteer Ga naar resource om naar de Azure Cosmos DB-accountpagina te gaan.
Een uitvoerbinding toevoegen
Ga in de Azure-portal naar en selecteer de functie-app die u eerder hebt gemaakt.
Selecteer Functies en vervolgens de functie HttpTrigger.
Selecteer Integratie en + Uitvoer toevoegen.
Gebruik de Uitvoer maken-instellingen zoals opgegeven in de tabel:
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 De 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. 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
Selecteer Testen/Uitvoeren. Selecteer onder Query de optie + Parameter toevoegen en voeg de volgende parameters toe aan de querytekenreeks:
name
task
duedate
Selecteer Uitvoeren en controleer of een 200-status wordt geretourneerd.
Zoek en selecteer Azure Cosmos DB in de Azure-portal.
Kies uw Azure Cosmos DB-account en selecteer Data Explorer.
Vouw de TaskCollection-knooppunten uit, selecteer het nieuwe document en controleer of het document uw querytekenreekswaarden, samen met enkele aanvullende metagegevens, bevat.
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 Functions Azure Cosmos DB-bindingen voor meer informatie over binding met een Azure Cosmos DB-exemplaar.
- Concepten van Azure Functions-triggers en -bindingen
Meer informatie over hoe Functions kan worden geïntegreerd met andere services. - Naslaginformatie over Azure Functions voor ontwikkelaars
Biedt meer technische informatie over de Functions-runtime en bevat gedetailleerde informatie over het coderen van functies en het definiëren van triggers en bindingen. - Azure-functies lokaal programmeren en testen
Beschrijft de opties voor het lokaal ontwikkelen van uw functies.