Cvičení – vytvoření účtu a prostředků rozhraní API pro NoSQL

Dokončeno

Teď můžete vytvořit různé prostředky, jako jsou databáze, kontejnery a položky, které používáte ve svém účtu služby Azure Cosmos DB. V tomto cvičení vytvoříte databázi s názvem cosmicworks jeden kontejner s názvem products. Pokud tuto konzolovou aplikaci spustíte vícekrát, musíte se ujistit, že se kód nespustí při pokusu o opětovné vytvoření kontejneru.

V tuto chvíli máte několik klíčových požadavků:

  1. Vytvoření databáze, pokud ještě neexistuje
  2. Vytvoření kontejneru, pokud ještě neexistuje

Illustration of icons indicating Azure Cosmos DB resources are created in the cloud.

Po dokončení tohoto cvičení projekt vytvoří všechny databáze nebo kontejnery, které vyžaduje ke spuštění.

Vytvořit databázi

Sada SDK obsahuje užitečné metody, které vytvoří nový prostředek, pokud ještě neexistuje. Pomocí těchtometodch Tady vytvoříte databázi.

  1. Vraťte se do souboru Program.cs .

  2. Vytvořte nebo získejte novou databázi voláním CreateDatabaseIfNotExistsAsync(String, ThroughputProperties, RequestOptions, CancellationToken). Uložte výsledek do proměnné s názvem database. Nezapomeňte nastavit tyto parametry:

    Parametr Hodnota
    id cosmicworks
    Database database = await client.CreateDatabaseIfNotExistsAsync(
        id: "cosmicworks"
    );
    
  3. Vypíše jedinečný identifikátor databáze.

    Console.WriteLine($"[Database created]:\t{database.Id}");
    
  4. Uložte soubor Program.cs.

Vytvoření kontejneru

Tady vytvoříte kontejner s konkrétní "řezem" sdílené propustnosti z databáze.

  1. Vytvořte objekt vlastností pro nový kontejner pomocí typu ContainerProperties . Uložte výsledek do proměnné s názvem properties. Nezapomeňte nastavit tyto parametry:

    Parametr Hodnota
    id products
    partitionKeyPath /categoryId
    ContainerProperties properties = new(
        id: "products",
        partitionKeyPath: "/categoryId"
    );
    
  2. Vytvořte objekt propustnosti automatického CreateAutoscaleThroughput(Int32) škálování pomocí statické metody. Uložte výsledek do proměnné s názvem throughput. Nezapomeňte nastavit tyto parametry:

    Parametr Hodnota
    autoscaleMaxThroughput 1000
    var throughput = ThroughputProperties.CreateAutoscaleThroughput(
        autoscaleMaxThroughput: 1000
    );
    
  3. Vytvořte nebo získejte nový kontejner voláním CreateContainerIfNotExistsAsync(String, String, Nullable<Int32>, RequestOptions, CancellationToken). Uložte výsledek do proměnné s názvem container. Nezapomeňte nastavit tyto parametry:

    Container container = await database.CreateContainerIfNotExistsAsync(
        containerProperties: properties,
        throughputProperties: throughput
    );
    
  4. Teď vypíšete jedinečný identifikátor kontejneru.

    Console.WriteLine($"[Container created]:\t{container.Id}");
    
  5. Uložte soubor Program.cs.

Vytvoření typů záznamů pro položky

Data jazyka C# lze reprezentovat pomocí různých typů, včetně tříd, struktur a záznamů. Pro tuto sadu SDK jsou záznamy užitečné, protože jsou ve výchozím nastavení neměnné. Pokud potřebujete, můžete přidat kód pro vytvoření upravené kopie záznamu. Záznamy mají také snadno čitelnou syntaxi a rychle se vytvářejí jen s několika řádky kódu. V této části vytvoříte základní typ pro všechny položky a jednotlivé typy pro každý "druh" položky.

  1. Pomocí editoru Visual Studio Code vytvořte nový soubor s názvem Item.cs. Pak soubor otevřete v editoru.

  2. Vytvořte základní typ záznamu s Item třemi vlastnostmi, které chcete použít ve všech položkách pro tento kontejner: id, categoryIda type.

    public record Item(
        string Id,
        string CategoryId,
        string Type
    );
    
  3. Uložte soubor Item.cs. Zavřete soubor Item.cs.

  4. Vytvořte další nový soubor s názvem Category.cs. Otevřete tento soubor v editoru.

  5. Vytvořte nový typ s názvem Kategorie , který dědí z typu Položka . Ujistěte se, že typ předá své hodnoty základní implementaci, a nastavte proměnnou typu na výstup názvu typu Category .

    public record Category(
        string Id,
        string CategoryId
    ) : Item(
        Id,
        CategoryId,
        nameof(Category)
    );
    
  6. Uložte soubor Category.cs. Zavřete soubor Category.cs.

  7. Nakonec vytvořte poslední soubor s názvem Product.cs. Otevřete tento soubor také v editoru.

  8. Vytvořte nový typ s názvem Product , který dědí z položky , a přidá několik nových vlastností: name, price, archiveda quantity.

    public record Product(
        string Id,
        string CategoryId
    ) : Item(
        Id,
        CategoryId,
        nameof(Product)
    )
    {
        public string Name { get; init; } = default!;
        public decimal Price { get; init; }
        public bool Archived { get; init; }
        public int Quantity { get; init; }
    };
    
  9. Uložte soubor Product.cs. Zavřete soubor Product.cs.

Kontrola práce

Vaše aplikace teď vytvoří databázi a kontejner. Metody, které jste použili k vytvoření těchto prostředků, jsou dostatečně odolné, aby se spustily vícekrát, aniž by to způsobilo výjimku. Tady spustíte aplikaci a zkontrolujete výstup jedinečných identifikátorů obou prostředků.

  1. Spuštění aplikace .NET v terminálu

    dotnet run
    
  2. Sledujte výstup spuštění aplikace. Výstup by se měl shodovat s následujícím příkladem:

    ...
    [Database created]:     cosmicworks
    [Container created]:    products