インデックス作成ポリシーを管理する

完了

新しいコンテナーを作成するときに、CLI を使用して作成時にインデックス作成ポリシーを指定できます。

注意

インデックス作成ポリシーを指定しない場合は、既定のポリシーが使用されます。

カスタム インデックス作成ポリシーを使用して新しいコンテナーを作成するには、次の 2 つの方法のいずれかで --idx 引数を使用する必要があります。

JSON ファイル

カスタム インデックス作成ポリシーを使用して、JSON ファイルの名前を渡すことができます。 policy.json という名前のファイルにインデックス作成ポリシーが定義されているとします。

{
  "indexingMode": "consistent",
  "automatic": true,
  "includedPaths": [
    {
      "path": "/*"
    }
  ],
  "excludedPaths": [
    {
      "path": "/headquarters/*"
    },
    {
      "path": "/\"_etag\"/?"
    }
  ]
}

--idx 引数を使用する場合、CLI コマンドにファイル名を渡すだけで済みます。

az cosmosdb sql container create \
    --account-name '<account-name>' \
    --resource-group '<resource-group>' \
    --database-name '<database-name>' \
    --name '<container-name>' \
    --partition-key-path '<partition-key-path-string>' \
    --idx '@.\policy.json' \
    --throughput '400'

生の JSON 文字列

もう 1 つの方法として、インデックス作成ポリシーが定義されている生の JSON 文字列を渡すこともできます。 この例では、縮小文字列として定義されている、同じ JSON インデックス作成ポリシーを使用します。

az cosmosdb sql container create \
    --account-name '<account-name>' \
    --resource-group '<resource-group>' \
    --database-name '<database-name>' \
    --name '<container-name>' \
    --partition-key-path '<partition-key-path-string>' \
    --idx '{\"indexingMode\":\"consistent\",\"automatic\":true,\"includedPaths\":[{\"path\":\"/*\"}],\"excludedPaths\":[{\"path\":\"/headquarters/*\"},{\"path\":\"/\\\"_etag\\\"/?\"}]}' \
    --throughput '400'

ヒント

--idx 引数を含む生の JSON 文字列を使用する予定の場合は、文字列のエスケープや処理に関するシェル固有の動作に精通しておく必要があります。 Bash や PowerShell などの一般的なシェルは、JSON 文字列リテラルを処理するときに、動作が大幅に異なる場合があります。