Snabbstart: Skapa en Cassandra-app med .NET Core och Azure Cosmos DB

GÄLLER för: API för Cassandra

Den här snabbstarten visar hur du använder .NET Core och Azure Cosmos DB API för Cassandra för att skapa en profilapp genom att klona ett exempel från GitHub. Den här snabbstarten visar även hur du använder den webbaserade Azure-portalen för att skapa ett Azure Cosmos DB-konto.

Azure Cosmos DB är Microsofts globalt distribuerade databastjänst för flera datamodeller. Du kan snabbt skapa och ställa frågor mot databaser med dokument, tabeller, nyckel/värde-par och grafer. Du får fördelar av den globala distributionen och den horisontella skalningsförmågan som ligger i grunden hos Azure Cosmos DB.

Förutsättningar

Om du inte har en Azure-prenumerationkan du skapa ett kostnads fritt konto innan du börjar. Du kan även Testa Azure Cosmos DB kostnadsfritt utan en Azure-prenumeration, utan kostnad och åtaganden.

Dessutom behöver du:

  • Om du inte redan har installerat Visual Studio 2019 kan du ladda ned och använda den kostnadsfria versionen Visual Studio 2019 Community Edition. Se till att du aktiverar Azure-utveckling under installationen av Visual Studio.
  • Installera Git för att klona exemplet.

Skapa ett databaskonto

  1. På Azure Portal eller på sidan Start väljer du Skapa en resurs.

  2. På sidan Nytt söker du efter och väljer Azure Cosmos DB.

  3. Azure Cosmos DB väljer du Skapa.

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

    Inställning Värde Beskrivning
    Prenumeration Din prenumeration Välj den Azure-prenumeration som ska användas för det här Azure Cosmos DB-kontot.
    Resursgrupp Skapa ny

    Ange sedan samma namn som Kontonamn
    Välj Skapa ny. Ange sedan ett nytt resursgruppnamn för ditt konto. För enkelhetens skull använder du samma namn som namnet på ditt Azure Cosmos-konto.
    Account Name Ange ett unikt namn Ange ett unikt namn som identifierar ditt Azure Cosmos DB-konto. Din konto-URI cassandra.cosmos.azure.com till ditt unika kontonamn.

    Kontonamnet får bara innehålla gemener, siffror och bindestreck (-) och måste vara mellan 3 och 31 tecken långt.
    API Cassandra API:et avgör vilken typ av konto som skapas. Azure Cosmos DB innehåller fem API:er: Core (SQL) för dokumentdatabaser, Gremlin för grafdatabaser, MongoDB för dokumentdatabaser, Azure Table och Cassandra. Du måste skapa ett separat konto för varje API.

    Välj Cassandra eftersom du i den här snabbstarten skapar en tabell som fungerar med API för Cassandra.

    Läs mer om Cassandra-API:n.
    Location 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 Azure Cosmos DB rabatt på den kostnadsfria nivån Tillämpa eller Tillämpa inte Med Azure Cosmos DB kostnadsfri nivå får du de första 1 000 RU/s och 25 GB lagringsutrymme kostnadsfritt i ett konto. Läs mer om den kostnadsfria nivån.

    Anteckning

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

    Den nya kontosidan för Azure Cosmos DB API för Cassandra

  5. Konfigurera följande information på fliken Global distribution. 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 koppla 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 för flera regioner kan du dra nytta av det etablerade dataflödet för dina databaser och containrar över hela världen.

    Anteckning

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

    • Tillämpa rabatt för kostnadsfri nivå
    • Geo-redundans
    • Skrivåtgärder för flera regioner
  6. Du kan också konfigurera ytterligare information på följande flikar:

    • Nätverk – Konfigurera åtkomst från ett virtuellt nätverk.
    • Säkerhetskopieringspolicy – Konfigurera antingen periodisk eller kontinuerlig säkerhetskopieringspolicy.
    • Kryptering – Använd antingen en tjänst hanterad nyckel eller en kund hanterad nyckel.
    • Taggar – Taggar är namn/värde-par som gör att du kan kategorisera resurser och visa konsoliderad fakturering 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.

    Meddelandefönstret på Azure-portalen

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

Klona exempelprogrammet

Nu ska vi övergå till att arbeta med kod. Nu ska vi klona en Cassandra API-app från GitHub, ange anslutningssträngen och köra appen. Du kommer att se hur lätt det är att arbeta med data programmässigt.

  1. Öppna en kommandotolk. Skapa en ny mapp med namnet git-samples. Stäng kommandotolken.

    md "C:\git-samples"
    
  2. Öppna ett git-terminalfönster, t.ex. git bash, och använd kommandot cd för att ändra till den nya mappen där du vill installera exempelappen.

    cd "C:\git-samples"
    
  3. Klona exempellagringsplatsen med följande kommando. Detta kommando skapar en kopia av exempelappen på din dator.

    git clone https://github.com/Azure-Samples/azure-cosmos-db-cassandra-dotnet-core-getting-started.git
    
  4. Öppna sedan lösningsfilen CassandraQuickStartSample i Visual Studio.

Granska koden

Det här är valfritt. Om du vill lära dig hur databasresurserna skapas i koden kan du granska följande kodavsnitt. Alla kodfragmenten är tagna Program.cs från -filen async Task ProcessAsync() i -metoden, installerade i C:\git-samples\azure-cosmos-db-cassandra-dotnet-core-getting-started\CassandraQuickStart mappen . Annars kan du gå vidare till Uppdatera din anslutningssträng.

  • Initiera sessionen genom att ansluta till en Cassandra-klusterslutpunkt. Cassandra-API:et på Azure Cosmos DB stöder endast TLSv1.2.

        var options = new Cassandra.SSLOptions(SslProtocols.Tls12, true, ValidateServerCertificate);
        options.SetHostNameResolver((ipAddress) => CASSANDRACONTACTPOINT);
        Cluster cluster = Cluster
            .Builder()
            .WithCredentials(USERNAME, PASSWORD)
            .WithPort(CASSANDRAPORT)
            .AddContactPoint(CASSANDRACONTACTPOINT)
            .WithSSL(options)
            .Build()
        ;
        ISession session = await cluster.ConnectAsync();
    
  • Ta bort befintligt nyckelutrymme om det redan finns.

    await session.ExecuteAsync(new SimpleStatement("DROP KEYSPACE IF EXISTS uprofile")); 
    
  • Skapa ett nytt keyspace.

    await session.ExecuteAsync(new SimpleStatement("CREATE KEYSPACE uprofile WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'datacenter1' : 1 };"));
    
  • Skapa en ny tabell.

    await session.ExecuteAsync(new SimpleStatement("CREATE TABLE IF NOT EXISTS uprofile.user (user_id int PRIMARY KEY, user_name text, user_bcity text)"));
    
  • Infoga användarentiteter med hjälp av IMapper-objektet med en ny session som ansluter till uprofile keyspace.

    await mapper.InsertAsync<User>(new User(1, "LyubovK", "Dubai"));
    
  • Fråga för att hämta alla användares information.

    foreach (User user in await mapper.FetchAsync<User>("Select * from user"))
    {
        Console.WriteLine(user);
    }
    
  • Fråga för att hämta en användares information.

    mapper.FirstOrDefault<User>("Select * from user where user_id = ?", 3);
    

Uppdatera din anslutningssträng

Gå nu tillbaka till Azure Portal för att hämta information om din anslutningssträng och kopiera den till appen. Informationen i anslutningssträngen gör det möjligt för appen att kommunicera med den värdbaserade databasen.

  1. Azure-portalen väljer du Anslutningssträng.

  2. Använd knappen till höger på skärmen för att kopiera VÄRDET ANVÄNDARNAMN.

    Visa och kopiera en åtkomstnyckel från Azure-portalen, sidan Anslutningssträng

  3. I Visual Studio du filen Program.cs.

  4. Klistra in värdet för ANVÄNDARNAMN från portalen över <PROVIDE> på rad 13.

    Rad 13 i Program.cs bör nu se ut ungefär så här

    private const string UserName = "cosmos-db-quickstart";

    Du kan också klistra in samma värde <PROVIDE> över på rad 15 för KONTAKTPUNKT-värdet:

    private const string CassandraContactPoint = "cosmos-db-quickstarts.cassandra.cosmosdb.azure.com"; // DnsName

  5. Gå tillbaka till portalen och kopiera värdet LÖSENORD. Klistra in värdet för LÖSENORD från portalen över <PROVIDE> på rad 14.

    Rad 14 i Program.cs bör nu se ut ungefär så här

    private const string Password = "2Ggkr662ifxz2Mg...==";

  6. Gå tillbaka till portalen och kopiera värdet KONTAKTPUNKT. Klistra in KONTAKTPUNKT-värdet från portalen över <PROVIDE> på rad 16.

    Rad 16 i Program.cs bör nu se ut ungefär så här

    private const string CASSANDRACONTACTPOINT = "quickstart-cassandra-api.cassandra.cosmos.azure.com";

  7. Spara filen Program.cs.

Kör .NET Core-appen

  1. I Visual Studio väljer du Verktyg > NuGet Package Manager Package Manager > Console.

  2. I kommandotolken installerar du .NET-drivrutinens NuGet-paket genom att köra följande kommando.

    Install-Package CassandraCSharpDriver
    
  3. Tryck på Ctrl + F5 för att köra programmet. Appen visas i konsolfönstret.

    Visa och verifiera utdata

    Tryck på CTRL + C om du vill stoppa körningen av programmet och stänga konsolfönstret.

  4. I Datautforskaren på Azure-portalen kan du fråga, ändra och arbeta med dessa nya data.

    Visa data i Datautforskaren

Granska serviceavtal i Azure-portalen

Den Azure Portal övervakar Cosmos DB dataflöde, lagring, tillgänglighet, svarstid och konsekvens för ditt konto. Diagram för mått som är associerade med Azure Cosmos DB Serviceavtal (SLA) visar SLA-värdet jämfört med faktiska prestanda. Den här måttsviten gör övervakningen av dina serviceavtal transparent.

Så här granskar du mått och serviceavtal:

  1. Välj Mått i Cosmos DB-kontots navigeringsmeny.

  2. Välj en flik, till exempel Svarstid, och välj en tidsram till höger. Jämför linjerna Actual och SLA i diagrammen.

    Azure Cosmos DB-måttsvit

  3. Granska måtten på de andra flikarna.

Rensa resurser

När du är klar med din app och Azure Cosmos DB-konto kan du ta bort de Azure-resurser som du skapade så att du inte debiteras mer. Ta bort resurser:

  1. I sökfältet Azure Portal du efter och väljer Resursgrupper.

  2. I listan väljer du den resursgrupp som du skapade för den här snabbstarten.

    Välj den resursgrupp som ska tas bort

  3. På sidan Översikt för resursgruppen väljer du Ta bort resursgrupp.

    Ta bort resursgruppen

  4. I nästa fönster anger du namnet på den resursgrupp som ska tas bort och väljer sedan Ta bort.

Nästa steg

I den här snabbstarten har du lärt dig hur du skapar ett Azure Cosmos DB-konto, hur du skapar en container med hjälp av Datautforskaren och hur du kör en webbapp. Du kan nu importera ytterligare data till ditt Cosmos DB-konto.