Я не понимаю, как передать key=value
в параметр --add
команды az appservice plan update --id --add
.
Я хотел бы запустить эту команду azure cli:
az appservice plan update --id $plan --add "perSiteScaling=true"
Однако это вызывает ошибку:
ERROR: Couldn't find 'perSiteScaling=true' in ''. Available options: ['elasticScaleEnabled', 'extendedLocation', 'freeOfferExpirationTime', 'geoRegion', 'hostingEnvironmentProfile', 'hyperV', 'id', 'isSpot', 'isXenon', 'kind', 'kubeEnvironmentProfile', 'location', 'maximumElasticWorkerCount', 'maximumNumberOfWorkers', 'name', 'numberOfSites', 'numberOfWorkers', 'perSiteScaling', 'provisioningState', 'reserved', 'resourceGroup', 'sku', 'spotExpirationTime', 'status', 'subscription', 'tags', 'targetWorkerCount', 'targetWorkerSizeId', 'type', 'workerTierName', 'zoneRedundant']
Документы для команды находятся здесь: https://learn.microsoft.com/en-us/cli/azure/appservice/plan?view=azure-cli-latest#az-appservice-plan-update
В документах говорится о необязательном параметре --add:
--add
Add an object to a list of objects by specifying a path and key value pairs. Example: --add property.listProperty <key=value, string or JSON string>.
default value: []
Вы можете попробовать это:
az appservice plan update --id $plan --add perSiteScaling true
Помните, что Stack Overflow предназначен не только для решения непосредственной проблемы, но и для того, чтобы помочь будущим читателям найти решения похожих проблем, что требует понимания базового кода. Это особенно важно для членов нашего сообщества, которые являются новичками и не знакомы с синтаксисом. Учитывая это, можете ли вы отредактировать свой ответ, включив в него объяснение того, что вы делаете, и почему вы считаете, что это лучший подход?
Изначально, согласно MsDoc, не существовало прямого параметра для масштабирования плана обслуживания приложений. (масштабирование по сайту).
Если вы хотите включить persitescaling
для службы приложений, используйте параметр —set
, а не параметр add
. Потому что параметр —add
используется для изменения значений, а также для увеличения или уменьшения sku
мощностей для определенного списка объектов.
Однако persitescaling
— это функция, которую можно включить или отключить для службы приложений. В результате вам нужно использовать —set
вместо persitescaling
.
Поскольку вы уже пробовали этот обходной путь, я попробовал аналогичный подход, и он сработал, как показано ниже:
az appservice plan update --name MyPlan --resource-group <resourcegroup> --sku P2V2 --set perSiteScaling=true
Следуя приведенному выше обходному пути, я нашел другую альтернативу, основанную на концепции:
Как правило, единственная причина масштабирования службы приложений — увеличение number of workers
. В результате, если вы увеличите его, как показано ниже, вы сможете масштабировать план службы приложений по мере необходимости.
az appservice plan update --name MyPlan --resource-group <resourcegroup> --sku P2V2 --number-of-workers 3
Кроме того, я попытался получить точные результаты с помощью Azure PowerShell
, и это сработало:
Set-AzAppServicePlan -ResourceGroupName <ResourceGroup> -Name "myplan" -PerSiteScaling $true
Вместо этого я искал эту команду и нашел:
az appservice plan update --id $plan --set "perSiteScaling=true"
. Я оставлю это открытым, если кто-нибудь сможет понять, как использовать команду с параметром --add.