Как выполнить запрос параметра пропускной способности для баз данных и контейнеров Azure CosmosDB? - PullRequest
0 голосов
/ 07 июня 2019

Я работаю над созданием сценариев управления затратами, устанавливающих в первую очередь RU базы данных CosmosDB в нашем процессе CI с использованием PowerShell.

Текущий код работает для создания новых баз данных и установки RU

$resourceGroupName = "rg-01"
$accountName = "cosmos-01"
$databaseName = "db1"
$resourceName = $accountName + "/sql/" + $databaseName
$DataBaseProperties = @{
    "resource"=@{ "id"=$databaseName };
    "options"=@{ "Throughput"="500" }
}
New-AzureRMResource -ResourceType "Microsoft.DocumentDb/databaseAccounts/apis/databases" `
    -ApiVersion "2015-04-08" -ResourceGroupName $resourceGroupName `
    -Name $resourceName -PropertyObject $DataBaseProperties -Force

Контейнеры затем создаются с:

$containerName = "container1"
$resourceName = $accountName + "/sql/" + $databaseName + "/" + $containerName

$ContainerProperties = @{
    "resource"=@{
        "id"=$containerName; 
        "partitionKey"=@{
            "paths"=@("/CompanyName"); 
            "kind"="Hash"
        }
    }; 
    "options"=@{}
} 
New-AzureRMResource -ResourceType "Microsoft.DocumentDb/databaseAccounts/apis/databases/containers" `
    -ApiVersion "2015-04-08" -ResourceGroupName $resourceGroupName `
    -Name $resourceName -PropertyObject $ContainerProperties -Force

Я хочу иметь возможность запросить текущую настройку пропускной способности RU перед внесением изменений, но я не уверен, как запрашивать и / или перемещаться по -PropertyObject.

Мы используем CosmosDB для кэширования значений конфигурации и больших возвращаемых объектов json, которые могут быть воссозданы по мере необходимости. В настоящее время мы работаем над тем, чтобы установить минимально допустимые значения по умолчанию при запуске с помощью кода .NetCore, но также необходимо иметь возможность настраиваться на более высокие значения, если это требуется для производства.

Обновления Powershell очень медленные, поэтому я стараюсь не обновлять их во время КИ, если это не требуется. В настоящее время я использую следующий код для установки статических значений - что приведет к ошибке, если будут добавлены дополнительные контейнеры, а статические RU слишком малы для нового количества контейнеров. Я хочу сначала запросить значение, а затем продолжить при необходимости изменения.

$resourceGroupName = "RG-01"
$accountName = "cosmos-01"
$updateResource = "database" # or "container"
#$updateResource = "container"
Write-Warning "Set Cache Throughput"
$throughput = 1700
$databaseName = "db1"
$properties = @{
    "resource"=@{"throughput"=$throughput}
}
$databaseResourceName = $accountName + "/sql/" + $databaseName + "/throughput"
Set-AzureRMResource -ResourceType "Microsoft.DocumentDb/databaseAccounts/apis/databases/settings" -ApiVersion "2015-04-08" -ResourceGroupName $resourceGroupName -Name $databaseResourceName -PropertyObject $properties -Force
Write-Warning "Set DB Throughput"
$throughput = 500
$databaseName = "flight"
$properties = @{
    "resource"=@{"throughput"=$throughput}
}
$databaseResourceName = $accountName + "/sql/" + $databaseName + "/throughput"
Set-AzureRMResource -ResourceType "Microsoft.DocumentDb/databaseAccounts/apis/databases/settings" -ApiVersion "2015-04-08" -ResourceGroupName $resourceGroupName -Name $databaseResourceName -PropertyObject $properties -Force

Я хотел бы создать, чтобы создать функцию get-cosmosDatabaseThroughput, возвращающую текущую пропускную способность базы данных. Если пропускная способность базы данных не установлена, должна быть возвращена ошибка.

1 Ответ

0 голосов
/ 10 июня 2019

Используя Azure CLI, вы должны быть в состоянии прочитать существующую пропускную способность для данной базы данных и контейнера в учетной записи CosmosDB.

enter image description here

Дополнительная справочная документация -

Пропускная способность контейнера Azure CosmosDB с использованием Azure CLI Модуль PowerShellдля работы с AzureCosmosDB

Надеюсь, это поможет

...