Обновление политики CosmosDb индексации с помощью шаблонов ARM

голоса
0

Я пытаюсь использовать шаблоны ARM для обновления политики индексации для космоса контейнера. Я попробовал 2 метода, один просто объявить политику индексации в декларируя контейнер в ARM.

{
      apiVersion: [variables('cosmosDbApiVersion')],
      type: Microsoft.DocumentDB/databaseAccounts/apis/databases/containers,
      dependsOn: [ /* resourceId */ ],
      name: /* containerName */,
      properties: {
        resource: {
          id: /* id */,
          partitionKey: {
            paths: [
              /partitionKey
            ],
            kind: Hash
          },
          indexes: [
            {
              indexingMode: consistent,
              automatic: true,
              includedPaths: [
                {
                  path: /*,
                  indexes: [
                    {
                      kind: Range,
                      dataType: Number,
                      precision: -1
                    },
                    {
                      kind: Hash,
                      dataType: String,
                      precision: 3
                    }
                  ]
                }
              ]
            }
          ],
          defaultTtl: [variables('defaultTtlValueToEnableTtl')]
        }
      }
    },

Второй заключается в использовании в использовании ARM для развертывания настройки контейнера, как например:

{
      apiVersion: [variables('cosmosDbApiVersion')],
      type: Microsoft.DocumentDB/databaseAccounts/apis/databases/containers/settings,
      name: [/* name */,
      dependsOn: [  /* container name */ ],
      properties: {
        resource: {
          throughput: /* some throughput */,
          indexes: [
            {
              indexingMode: consistent,
              automatic: true,
              includedPaths: [
                {
                  path: /*,
                  indexes: [
                    {
                      kind: Range,
                      dataType: Number,
                      precision: -1
                    },
                    {
                      kind: Hash,
                      dataType: String,
                      precision: 3
                    }
                  ]
                }
              ]
            }
          ]
        }
      }
    },

Оба методы не выходит из строя развертывания, но политика индексации не меняется.

Был бы признателен за помощь.

Задан 14/02/2020 в 00:00
источник пользователем
На других языках...                            


2 ответов

голоса
0

это пример из эталонных шаблонов (внешний вид немного отличается от того, что вы делаете):

"resource": {
  "id": "string",
  "indexingPolicy": {
    "automatic": "boolean",
    "indexingMode": "string",
    "includedPaths": [
      {
        "path": "string",
        "indexes": [
          {
            "dataType": "string",
            "precision": "integer",
            "kind": "string"
          }
        ]
      }
    ],
    "excludedPaths": [
      {
        "path": "string"
      }
    ],
    "spatialIndexes": [
      {
        "path": "string",
        "types": [
          "string"
        ]
      }
    ]
  },
  xxx
}

https://docs.microsoft.com/en-us/azure/templates/microsoft.documentdb/2019-08-01/databaseaccounts/sqldatabases/containers

Ответил 14/02/2020 в 07:52
источник пользователем

голоса
0

Диапазон и индексировать хэш тип игнорируется поставщиком ресурса Cosmos теперь для новых контейнеров или контейнеров, которые были созданы в прошлом году или около того. ARM не проверяет политику индекса, поэтому шаблон будет развернут успешно.

Индекс Hash осуждались для этого нового контейнера, так как производительность индекса диапазона в новом индексатора превосходит то, что хэш-индекс не предусмотрен, так был уже не нужно.

Для того, чтобы создать / изменить политику индекса относятся к этой статье ниже. Есть несколько примеров политики индексов, которые реализуют все от очень простых до более сложных стратегий, которые включают в себя составные индексы, пространственные индексы и уникальные ключи.

https://docs.microsoft.com/en-us/azure/cosmos-db/manage-sql-with-resource-manager#create-resource

Ответил 16/02/2020 в 21:15
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more