Dela via


Skapa en funktion som utlöses av Azure Cosmos DB

Lär dig hur du skapar en funktion i Azure-portalen som utlöses när data läggs till i eller ändras i Azure Cosmos DB. Läs mer om Azure Cosmos DB i Azure Cosmos DB: Serverless database computing using Azure Functions (Azure Cosmos DB: Serverfria databasberäkningar med Azure Functions).

Kommentar

Redigering i portalen stöds endast för JavaScript-, PowerShell- och C#-skriptfunktioner. Python-redigering i portalen stöds endast när den körs i förbrukningsplanen. Om du vill skapa en C#-skriptapp som stöder redigering i portalen måste du välja en körningsversion som stöder den processbaserade modellen.

När det är möjligt bör du utveckla dina funktioner lokalt.

Mer information om begränsningarna för redigering av funktionskod i Azure-portalen finns i Utvecklingsbegränsningar i Azure-portalen.

Förutsättningar

För att slutföra den här kursen behöver du:

  • Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.

Kommentar

Azure Cosmos DB-bindningar stöds endast för användning med Azure Cosmos DB för NoSQL. Stöd för Azure Cosmos DB for Table tillhandahålls med hjälp av Table Storage-bindningar, från och med tillägg 5.x. För alla andra Azure Cosmos DB-API:er bör du komma åt databasen från din funktion med hjälp av den statiska klienten för ditt API, inklusive Azure Cosmos DB för MongoDB, Azure Cosmos DB för Cassandra och Azure Cosmos DB för Apache Gremlin.

Logga in på Azure

Logga in på Azure Portal med ditt Azure-konto.

Skapa ett Azure Cosmos DB-konto

Du måste ha ett Azure Cosmos DB-konto som använder SQL API innan du skapar utlösaren.

  1. I menyn i Azure-portalen eller på sidan Start väljer du Skapa en resurs.

  2. Sök efter Azure Cosmos DB. Välj Skapa>Azure Cosmos DB.

  3. På sidan Skapa ett Azure Cosmos DB-konto väljer du alternativet Skapa i avsnittet Azure Cosmos DB för NoSQL .

    Azure Cosmos DB innehåller flera API:er:

    • NoSQL för dokumentdata
    • PostgreSQL
    • MongoDB, för dokumentdata
    • Apache Cassandra
    • Register
    • Apache Gremlin, för grafdata

    Mer information om API:et för NoSQL finns i Välkommen till Azure Cosmos DB.

  4. På sidan Skapa Azure Cosmos DB-konto anger du de grundläggande inställningarna för det nya Azure Cosmos DB-kontot.

    Inställning Värde beskrivning
    Prenumeration Prenumerationsnamn Välj den Azure-prenumeration som du vill använda för det här Azure Cosmos DB-kontot.
    Resursgrupp Namn på resursgrupp Välj en resursgrupp eller välj Skapa ny och ange sedan ett unikt namn för den nya resursgruppen.
    Kontonamn Ett unikt namn Ange ett namn för att identifiera ditt Azure Cosmos DB-konto. Eftersomdocuments.azure.com läggs till det namn du anger för att skapa din URI måste du använda ett unikt namn. Namnet får bara innehålla gemener, siffror och bindestreck (-). Det måste vara 3–44 tecken.
    Plats Den region som är närmast dina användare Välj en geografisk plats som värd för ditt Azure Cosmos DB-konto. Använd den plats som är närmast dina användare för att ge dem så snabb åtkomst till data som möjligt.
    Kapacitetsläge Etablerat dataflöde eller serverlöst Välj Etablerat dataflöde för att skapa ett konto i etablerat dataflödesläge . Välj Serverlös för att skapa ett konto i serverlöst läge.
    Tillämpa rabatt på den kostnadsfria Azure Cosmos DB-nivån Tillämpa eller tillämpa inte Med den kostnadsfria Azure Cosmos DB-nivån får du de första 1 000 RU/s och 25 GB lagringsutrymme kostnadsfritt på ett konto. Lär dig mer om kostnadsfri nivå.
    Begränsa det totala kontots dataflöde Markerad eller inte Begränsa den totala mängden dataflöde som kan etableras för det här kontot. Den här gränsen förhindrar oväntade avgifter relaterade till etablerat dataflöde. Du kan uppdatera eller ta bort den här gränsen när ditt konto har skapats.

    Du kan ha upp till ett Azure Cosmos DB-konto på en kostnadsfri nivå per Azure-prenumeration och måste anmäla dig när du skapar kontot. Om du inte ser alternativet att tillämpa rabatten på den kostnadsfria nivån har ett annat konto i prenumerationen redan aktiverats med den kostnadsfria nivån.

    Skärmbild som visar sidan Skapa Azure Cosmos DB-konto.

    Kommentar

    Följande alternativ är inte tillgängliga om du väljer Serverlös som kapacitetsläge:

    • Tillämpa rabatt för kostnadsfri nivå
    • Begränsa det totala kontots dataflöde
  5. På fliken Global distribution konfigurerar du följande information. Du kan lämna standardvärdena för den här snabbstarten:

    Inställning Värde beskrivning
    Geo-redundans Inaktivera Aktivera eller inaktivera global distribution på ditt konto genom att para ihop din region med en parregion. Du kan lägga till fler regioner i ditt konto senare.
    Skrivåtgärder för flera regioner Inaktivera Med skrivfunktioner i flera regioner kan du dra nytta av det etablerade dataflödet för dina databaser och containrar över hela världen.
    Tillgänglighetszoner Inaktivera Tillgänglighetszoner hjälper dig att ytterligare förbättra programmets tillgänglighet och återhämtning.

    Kommentar

    Följande alternativ är inte tillgängliga om du väljer Serverlös som kapacitetsläge på föregående grundläggande sida:

    • Geo-redundans
    • Skrivåtgärder för flera regioner
  6. Du kan också konfigurera mer information på följande flikar:

    • Nätverk. Konfigurera åtkomst från ett virtuellt nätverk.
    • Säkerhetskopieringsprincip. Konfigurera antingen regelbunden eller kontinuerlig säkerhetskopieringsprincip.
    • Kryptering. Använd antingen tjänsthanterad nyckel eller en kundhanterad nyckel.
    • Taggar. Taggar är namn/värde-par som gör att du kan kategorisera resurser och visa sammanställd faktureringsinformation genom att tillämpa samma tagg på flera resurser och resursgrupper.
  7. Välj Granska + skapa.

  8. Granska kontoinställningarna och välj sedan Skapa. Det tar några minuter att skapa kontot. Vänta tills portalsidan visar meddelandet Distributionen är klar.

    Skärmbild som visar att distributionen är klar.

  9. Välj Gå till resurs för att gå till sidan för Azure Cosmos DB-kontot.

    Skärmbild som visar kontosidan för Azure Cosmos DB.

Skapa en funktionsapp i Azure

  1. I menyn i Azure-portalen eller på sidan Start väljer du Skapa en resurs.

  2. På sidan Nytt väljer du Beräkningsfunktionsapp>.

  3. Under Välj ett värdalternativ väljer du Förbrukning>Välj för att skapa din app i standardförbrukningsplanen. I det här serverlösa värdalternativet betalar du bara för den tid som dina funktioner körs. Premium-planen erbjuder även dynamisk skalning. När du använder en App Service-plan måste du hantera funktionsappens skalning.

  4. På sidan Grundläggande använder du inställningarna för funktionsappen enligt beskrivningen i följande tabell:

    Inställning Föreslaget värde beskrivning
    Abonnemang Din prenumeration Prenumerationen där du skapar din nya funktionsapp.
    Resursgrupp myResourceGroup Namn på den nya resursgrupp där du skapar funktionsappen. Du bör skapa en ny resursgrupp eftersom det finns kända begränsningar när du skapar nya funktionsappar i en befintlig resursgrupp.
    Funktionsappens namn Globalt unikt namn Namn som identifierar din nya funktionsapp. Giltiga tecken är a-z (skiftlägesokänsligt), 0-9 och -.
    Körningsstack Önskat språk Välj en körning som stöder det funktionsprogrammeringsspråk som du föredrar. Redigering i portalen är endast tillgängligt för JavaScript-, PowerShell-, Python-, TypeScript- och C#-skript.
    Om du vill skapa en C#-skriptapp som stöder redigering i portalen måste du välja en körningsversion som stöder den processbaserade modellen.
    C#-klassbibliotek och Java-funktioner måste utvecklas lokalt.
    Version: Versionsnummer Välj den version av din installerade körning.
    Region Önskad region Välj en region som är nära dig eller nära andra tjänster som dina funktioner kan komma åt.
    Operativsystem Windows Ett operativsystem är förvalt baserat på val av körningsstack, men du kan ändra inställningen om det behövs. Redigering i portalen stöds endast i Windows.
  5. Acceptera standardalternativen på de återstående flikarna, inklusive standardbeteendet för att skapa ett nytt lagringskonto på fliken Lagring och en ny Application Insight-instans på fliken Övervakning . Du kan också välja att använda ett befintligt lagringskonto eller En Application Insights-instans.

  6. Välj Granska + skapa för att granska appkonfigurationen du valde och välj sedan Skapa för att etablera och distribuera funktionsappen.

  7. Välj ikonen Meddelanden i det övre högra hörnet i portalen och håll utkik efter meddelandet Distributionen lyckades.

  8. Välj Gå till resurs för att se den nya funktionsappen. Du kan också välja Fäst på instrumentpanelen. Med fästning blir det enklare att återgå till den här funktionsappresursen från instrumentpanelen.

    Skärmbild av distributionsmeddelande.

Därefter skapar du en funktion i den nya funktionsappen.

Skapa en Azure Cosmos DB-utlösare

  1. I funktionsappen väljer du Översikt och sedan + Skapa under Funktioner.

  2. Under Välj en mall rullar du nedåt och väljer azure Cosmos DB-utlösarmallen .

  3. I Mallinformation konfigurerar du den nya utlösaren med de inställningar som anges i den här tabellen och väljer sedan Skapa:

    Inställning Föreslaget värde beskrivning
    Ny funktion Acceptera standardnamnet Namnet på funktionen.
    Azure Cosmos DB-kontoanslutning Acceptera det nya standardnamnet Välj Nytt, databaskontot som du skapade tidigare och sedan OK. Den här åtgärden skapar en programinställning för din kontoanslutning. Den här inställningen används av bindningen för anslutningen till databasen.
    Databasnamn Uppgifter Namnet på databasen som innehåller samlingen som ska övervakas.
    Samlingsnamn Artiklar Namnet på samlingen som ska övervakas.
    Samlingsnamn för lån leases Namnet på samlingen som ska lagra lånen.
    Skapa lånesamling om den inte finns Ja Söker efter förekomsten av lånesamlingen och skapar den automatiskt.

    Azure skapar den Azure Cosmos DB-utlösta funktionen baserat på de angivna värdena.

  4. Om du vill visa den mallbaserade funktionskoden väljer du Kod + Test.

    Azure Cosmos DB-funktionsmall i C#

    Den här funktionsmallen skriver antalet dokument och ID:t för det första dokumentet till loggarna.

Därefter ansluter du till ditt Azure Cosmos DB-konto och skapar containern Items Tasks i databasen.

Skapa containern Items

  1. Öppna en andra instans av Azure-portalen på en ny flik i webbläsaren.

  2. Expandera ikonfältet till vänster på portalen, skriv cosmos i sökfältet och välj Azure Cosmos DB.

    Sök efter Azure Cosmos DB-tjänsten

  3. Välj ditt Azure Cosmos DB-konto och välj sedan Datautforskaren.

  4. Under SQL API väljer du Uppgiftsdatabas och väljer Ny container.

    Skapa en container

  5. I Lägg till container använder du inställningarna som visas i tabellen under bilden.

    Definiera containern Uppgifter

    Inställning Föreslaget värde beskrivning
    Databas-ID Uppgifter Namnet på din nya databas. Måste matcha namnet som definierats i funktionsbindningen.
    Container-ID Artiklar Namnet på den nya containern. Måste matcha namnet som definierats i funktionsbindningen.
    Partitionsnyckel /category En partitionsnyckel som distribuerar data jämnt till varje partition. Det är viktigt att välja rätt partitionsnyckel för att skapa en högpresterande container.
    Dataflöde 400 RU Använd standardvärdet. Du kan skala upp dataflödet senare om du vill minska svarstiden.
  6. Klicka på OK för att skapa containern Objekt. Det kan ta en kort tid innan containern skapas.

När containern som anges i funktionsbindningen finns kan du testa funktionen genom att lägga till objekt i den nya containern.

Testa funktionen

  1. Expandera den nya containern Objekt i Datautforskaren, välj Objekt och välj sedan Nytt objekt.

    Skapa ett objekt i en objektcontainer

  2. Ersätt innehållet i det nya objektet med följande innehåll och välj sedan Spara.

    {
        "id": "task1",
        "category": "general",
        "description": "some task"
    }
    
  3. Växla till den första webbläsarfliken som innehåller din funktion i portalen. Utöka funktionsloggarna och kontrollera att det nya dokumentet har utlöst funktionen. Se efter så att dokumentets ID-värde task1 skrivs till loggarna.

    Visa meddelande i loggarna.

  4. (Valfritt) Gå tillbaka till dokumentet, gör en ändring och klicka på Uppdatera. Gå tillbaka till funktionsloggarna och kontrollera att uppdateringen också har utlöst funktionen.

Rensa resurser

De andra snabbstarterna i den här samlingen bygger på den här snabbstarten. Om du planerar att arbeta med efterföljande snabbstarter, självstudier eller med någon av de tjänster som du har skapat i den här snabbstarten ska du inte rensa resurserna.

Resurser i Azure avser funktionsappar, funktioner, lagringskonton och så vidare. De är grupperade i resursgrupper och du kan ta bort allt i en grupp genom att ta bort gruppen.

Du har skapat resurser för att slutföra de här snabbstarterna. Du kan debiteras för dessa resurser, beroende på kontostatus och tjänstpriser. Om du inte behöver resurserna längre så visar vi hur du tar bort dem här:

  1. Gå till sidan Resursgrupp i Azure Portal.

    Om du vill komma till den sidan från funktionsappsidan väljer du fliken Översikt och väljer sedan länken under Resursgrupp.

    Skärmbild som visar hur du väljer den resursgrupp som ska tas bort från funktionsappsidan.

    För att komma till den sidan från instrumentpanelen väljer du Resursgrupper och sedan den resursgrupp som du använde för den här artikeln.

  2. På sidan Resursgrupp granskar du listan över inkluderade resurser och kontrollerar att det är de som du vill ta bort.

  3. Välj Ta bort resursgrupp och följ anvisningarna.

    Borttagningen kan ta några minuter. När du är färdig visas ett meddelande i några sekunder. Du kan även välja klockikonen högst upp på sidan för att se meddelandet.

Nästa steg

Du har nu skapat en funktion som körs när ett dokument läggs till eller ändras i Azure Cosmos DB. Mer information om Cosmos DB-utlösare finns i Azure Cosmos DB-bindningar för Azure Functions.

Nu när du har skapat din första funktion ska vi lägga till en utdatabindning till funktionen som skriver ett meddelande till en lagringskö.