準備

完了

Azure Cosmos DB for NoSQL コンテナーにデータをインポートしてクエリを実行する .NET アプリケーションを構築します。 ここでは、プロジェクトの全体的な目標と、インポートとクエリの機能を実装する方法について説明します。 さらに、必要な API for NoSQL アカウントを設定する方法について説明します。

Illustration of the icon of an Azure Cosmos DB account.

プロジェクトの概要

このプロジェクトの目標は、API for NoSQL コンテナーに項目をアップロードしてクエリを実行する .NET コンソール アプリケーションを構築して検証することです。 この .NET アプリケーションでは、Azure Cosmos DB for NoSQL 用の .NET SDK を使って、Azure 内のサービス インスタンスとやり取りします。 プロジェクト コードでは、トランザクション バッチを使って、複数の関連項目を同時に作成します。 また、プロジェクト コードでは、文字列として表されたクエリを使って、項目が正常にアップロードされたことを検証します。

次のフローチャートは、アプリで実行する必要があるビジネス ロジックを示したものです。

Diagram of a flowchart showing steps to create and submit client batches.

実行する必要がある主なタスクは次のとおりです。

  1. Azure Cosmos DB アカウントを作成し、接続文字列を取得します。
  2. .NET コンソール アプリケーションを作成し、Microsoft.Azure.Cosmos SDK へのパッケージ参照を追加します。
  3. データベースとコンテナーのリソースを作成します。
  4. 単純な操作として 1 つの項目を追加します。
  5. 4 つの項目を追加するトランザクション バッチを作成します。
  6. クエリを実行し、その結果を観察します。

セットアップ

このプロジェクトを完了するには、API for NoSQL アカウントが必要です。

Azure Cosmos DB for NoSQL アカウントを作成する

API for NoSQL アカウントを使って、このプロジェクトで作成するデータを格納し、クエリを実行します。 このセクションでは、Azure Cloud Shell ターミナルで直接 Azure CLI を使って新しいアカウントを作成する手順について説明します。

  1. suffix という名前の新しいシェル変数を、乱数を使用して作成します。 [sandbox resource group name] リソース グループ内に、NoSQL 用 API の新しいアカウントを作成します。

    let suffix=$RANDOM*$RANDOM
    
    az cosmosdb create \
        --resource-group "<rgn>[sandbox resource group name]</rgn>" \
        --name "mslearn-$suffix" \
        --locations "regionName=westus"
    

    重要

    このリソース グループは、サンドボックスによって既に作成されています。

  2. 新しいアカウントが作成されたら、コマンドが完了するまで待ちます。 新しいアカウントの作成には、数分かかることがあります。

    ヒント

    Azure portal を使用して、NoSQL 用 API の新しいアカウントに移動することができます。

アカウントの接続文字列を取得する

これで NoSQL 用 API アカウントを入手したので、Azure CLI から az cosmosdb keys list コマンドを使用して、そのアカウントの資格情報を取得することができます。 このセクションでは、コマンドの出力をフィルター処理して、接続文字列を 1 つだけ返します。

  1. まず、最近作成された NoSQL 用 API アカウントの名前を取得します。

    let resourceGroup="<rgn>[sandbox resource group name]</rgn>"
    
    az cosmosdb list \
        --resource-group $resourceGroup \
        --query "sort_by([].{name:name,created:systemData.createdAt}, &created)" \
        --output table
    
  2. 次に、その最近作成されたアカウントの一覧から、1 番目のアカウントの Primary SQL Connection String 資格情報を取得します。

    let resourceGroup="<rgn>[sandbox resource group name]</rgn>"
    
    az cosmosdb keys list \
        --resource-group $resourceGroup \
        --name $(az cosmosdb list \
            --resource-group $resourceGroup \
            --query "sort_by([].{name:name,created:systemData.createdAt}, &created)[0].name" \
            --output tsv) \
        --type connection-strings \
        --query "connectionStrings[?description=='Primary SQL Connection String'].connectionString" \
        --output tsv
    
  3. この接続文字列の値を記録します。 このプロジェクトの後半で接続文字列を使用して、このアカウントに接続します。

開発環境を構成する

開発コンテナー環境は、このプロジェクトのすべての演習を完了するために必要なすべての依存関係で使用できます。 開発コンテナーは、GitHub Codespaces で実行することも、Visual Studio Code をローカルで使用して実行することもできます。

GitHub Codespaces では、Web 用 Visual Studio Code をブラウザーベースのユーザー インターフェイスとして使用し、GitHub によって管理される開発コンテナーを実行します。 正しい開発者ツールと、このトレーニング モジュールを完了するために事前インストールされた依存関係を持つ最も簡単な開発環境として、GitHub Codespaces を使用します。

重要

すべての GitHub アカウントでは、2 つのコア インスタンスで毎月最大 60 時間無料で Codespaces を使用できます。

  1. azure-samples/cosmos-db-dotnet テンプレートを使用して、新しい GitHub codespace を作成します。

    Open in GitHub Codespaces

  2. [codespace の作成] ページ上で、codespace の構成設定を確認し、それから [新しい Codespace の作成] を選択します。

  3. Codespace が起動するまで待ちます。 この起動プロセスには数分かかることがあります。

  4. codespace で新しいターミナルを開きます。

  5. .NET 8 が環境にインストールされていることを確認します。

    dotnet --list-sdks
    
  6. ターミナルを閉じます。

このプロジェクトの残りの演習は、この開発コンテナーのコンテキストで行われます。