次の方法で共有


Azure portal を使用して Azure DocumentDB に接続する

MongoDB Shell (mongosh) は、MongoDB デプロイとやり取りするための JavaScript および Node.js 環境です。 これは、クエリをテストし、Azure DocumentDB クラスター内のデータと対話するための一般的なコミュニティ ツールです。 Azure portal には、Azure Cloud Shell を含む MongoDB データに対してクエリを実行するための複数のツールが含まれています。 Azure Cloud Shell は、Azure リソースを管理するための、ブラウザーでアクセスできる対話形式の認証されたターミナルです。 この記事では、Azure Cloud Shell 内で MongoDB シェルを使用して Azure DocumentDB クラスターに接続する方法について説明します。

[前提条件]

  • Azure サブスクリプション

    • Azure サブスクリプションをお持ちでない場合は、無料アカウントを作成してください
  • 既存の Azure DocumentDB クラスター

  • ネットワーク内のクライアントがクラスターに接続できるようにするファイアウォール規則。 詳細については、「ファイアウォールの 構成」を参照してください。

  • (省略可能)これらの前提条件は、Azure DocumentDB と同じまたはピアリングされた仮想ネットワーク内で Azure Cloud Shell を使用している場合にのみ必要です。

    • Azure Cloud Shell と Azure DocumentDB デプロイ用のサブネットを持つ 1 つ以上の既存の Azure Virtual Networks。

    • Azure DocumentDB クラスターのプライベート エンドポイント。 詳細については、 プライベート リンクの構成に関するページを参照してください。

    • Azure Cloud Shellが、Azure DocumentDBプライベートエンドポイントへの接続を持つ同じ仮想ネットワークまたはピアされた仮想ネットワークに展開されている。 詳細については、「 Cloud Shell を仮想ネットワークにデプロイする」を参照してください。

Azure Cloud Shell からクラスターへのアクセスを有効にする

まず、ファイアウォールで IP アドレスを許可することで、Azure Cloud Shell が Azure DocumentDB クラスターにアクセスできることを確認します。

  1. Azure portal (https://portal.azure.com) にサインインします。

  2. Azure DocumentDB クラスターに移動します。

  3. ナビゲーション メニューから [ ネットワーク ] を選択します。

  4. [パブリック アクセス] セクションの [ネットワーク] ページで、[+ Azure Cloud Shell IP の追加] オプションを選択して、現在の IP アドレスを許可リストに自動的に追加します。

  5. [保存] をクリックして変更を適用します。

接続を確保するには、リージョンの特定の IP アドレスが許可されていることを確認します。 詳細については、 Azure DocumentDB の IP アドレスに関するページを参照してください。

クイック スタートから Azure Cloud Shell を使用して接続する

MongoDB シェルを使用して Azure DocumentDB に直接接続するには、Azure portal のリソースのページで利用できるクイック スタート エクスペリエンスを使用します。

  1. クラスター リソース ページで、ナビゲーション メニューから クイック スタート (プレビュー) を選択します。

  2. 次に、[ MongoDB シェルを開く] を選択します。

  3. MongoDB シェル環境が開始されるまで待ちます。

  4. 環境の準備ができたら、「 Y 」と入力して通知を受け入れます。

    通知を受け入れた後に MongoDB Shell を使用した接続で問題が発生する場合は、Azure Cloud Shell がクラスターにアクセスできることを確認してください。

  5. 次に、Cloud Shell にクラスターを接続するためのパスワードを入力します。

クラスターの資格情報を取得する

このクラスターに接続するために必要な接続文字列を取得します。

  1. Azure portal にサインインします (https://portal.azure.com)。

  2. 既存の Azure DocumentDB クラスターに移動します。

クラスターへの接続に使用する資格情報を取得します。

  1. クラスター ページで、リソース メニューの [接続文字列 ] オプションを選択します。

  2. [ 接続文字列 ] セクションで、[ 接続文字列 ] フィールドの値をコピーまたは記録します。

接続文字列オプションを示すスクリーンショット。

Important

ポータルの接続文字列には、パスワードの値は含まれません。 <password> プレースホルダーは、クラスターの作成時に入力した資格情報に置き換えるか、対話形式でパスワードを入力する必要があります。

Azure Cloud Shell で MongoDB シェルを手動で構成する

Node Package Manager (npm) を使用して、MongoDB シェル (mongosh) クライアントを Azure Cloud Shell インスタンスにインストールします。

  1. Bash スクリプト環境で構成された Azure Cloud Shell を開きます。

  2. MongoDB シェルのバージョン 1 をユーザー ディレクトリにローカルにインストールします。

    npm install mongosh@1
    
  3. インストールが完了するまで待ちます。

  4. mongosh ツールのバージョンを取得して、インストールが成功したことを確認します。

    npx mongosh --version
    

クラスターに接続する

パスワードを含まない接続文字列で MongoDB シェルを使用してクラスターに接続します。 対話型のパスワード プロンプトを使用して、接続手順の一部としてパスワードを入力します。

  1. MongoDB シェル プロンプトにパスワードを入力して接続します。 この手順では、パスワードなしで接続文字列を使用します。

    npx mongosh "mongodb+srv://<username>@<cluster-name>.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"
    
  2. パスワードを指定し、正常に認証されたら、表示される警告を確認します。

    ------
       Warning: Non-Genuine MongoDB Detected
       This server or service appears to be an emulation of MongoDB rather than an official MongoDB product.
    ------
    

    ヒント

    この警告は無視しても問題ありません。 この警告は、接続文字列に cosmos.azure が含まれているために生成されます。 Azure DocumentDB は、サービスとしてのネイティブ Azure プラットフォーム (PaaS) オファリングです。

テスト クエリの実行

一連のテスト コマンドとクエリを実行して、クラスターに正常に接続されていることを確認します。

  1. connectionStatus コマンドを実行して、接続の状態を確認します。

    db.runCommand({connectionStatus: 1})
    
    {
      ...
      ok: 1
    }
    
  2. クラスター内のデータベースを一覧表示します。

    show dbs
    
  3. 特定のデータベースに切り替えます。 <database-name> プレースホルダーをクラスター内の任意のデータベースの名前に置き換えます。

    use <database-name>
    

    ヒント

    たとえば、データベース名が inventoryされている場合、コマンドは use inventoryされます。

  4. データベース内のコレクションを一覧表示します。

    show collections
    
  5. 特定のコレクション内の最初の 5 つの項目を検索します。 <collection-name> プレースホルダーをクラスター内のコレクションの名前に置き換えます。

    db.<collection-name>.find().limit(5)
    

    ヒント

    たとえば、コレクション名が equipmentされている場合、コマンドは db.equipment.find().limit(5)