Перечислите доступные SKU виртуальных машин для политики azure «Разрешенные SKU виртуальных машин» - PullRequest
0 голосов
/ 14 января 2020
$definition = Get-AzPolicyDefinition | Where-Object {$_.Properties.DisplayName -eq "Allowed virtual machine SKUs"}

New-AzPolicyAssignment -Name 'Test' -DisplayName 'Test' -Scope $ResourceGroup.ResourceID -PolicyDefinition $definition

При запуске этой команды будет запрошено «listOfAllowedSKUs», для которых SKU я хочу разрешить создание в указанной группе ресурсов. Я могу найти их список, зайдя на портал azure, найдя политику и нажав «Назначить политику», затем выбрав «Разрешенные виртуальные машины skus», а затем зайдя в параметры и посмотрев имена.

Я могу вводить эти имена вручную по одному, когда меня просят об этом после выполнения команды, но вместо того, чтобы каждый раз открывать портал azure, я хочу иметь возможность перечислять доступные SKU в вместо PowerShell. Я не могу найти в Интернете ничего о получении списка доступных SKU в консоли.

Можно ли получить список доступных SKU для создания?

Ответы [ 2 ]

0 голосов
/ 15 января 2020

Здравствуйте и добро пожаловать в Stack Overflow!

Если вы хотите получить SKU, соответствующие указанному c местоположению, издателю и предложению, вы можете использовать командлет Get-AzVMImageSku чтобы получить SKU VMImage, указав в качестве входных параметров Location, PublisherName и Offer, а затем создайте объект AllowedSkus. Например:

$sku = Get-AzVMImageSku -Location "Central US" -PublisherName "Fabrikam" -Offer "LinuxServer"
$AllowedSkus = @{'listOfAllowedSKUs'=($sku.Skus)}

Иначе, чтобы mimi c список доступных SKU, представленных на портале, вы можете использовать командлет Get-AzVMSize , чтобы получить доступную виртуальную машину следующие размеры:

$allsizes = Get-AzLocation | Get-AzVmSize | Select-Object -ExpandProperty Name | Sort-Object | Get-Unique
$AllowedSkus = @{'listOfAllowedSKUs'=($allsizes)}

Наконец, это можно передать командлету New-AzPolicyAssignment, используя параметр -PolicyParameterObject:

New-AzPolicyAssignment -Name '<policy assignment name>' -DisplayName '<display name>' -Scope $ResourceGroup.ResourceID -PolicyDefinition $definition -PolicyParameterObject $AllowedSkus

Другие примеры здесь . Надеюсь, это поможет.

0 голосов
/ 15 января 2020

Согласно моему тесту, если вы хотите узнать доступные SKU виртуальной машины в подписке, вы можете использовать следующую команду PowerShell

Get-AzComputeResourceSku | where{$_.ResourceType.Equals('virtualMachines')}| fl

В ее выходных данных содержится параметр Ограничения . Параметр скажет нам, какой SKU нельзя использовать. Например,

  • Предоставление одного типа ограничения: Тип зоны для размера Standard_A0, что означает, что при определенной подписке Standard_A0 недоступно для создания в регионе Западной Европы, если оно размещено в зонах доступности

enter image description here

  • В конце не дается никаких ограничений, что означает, что VM Size: Standard_F8s может быть создан по этой конкретной подписке в этом регионе: Западная Европа без каких-либо ограничений (то есть: его можно создать с помощью зоны доступности и без зоны доступности)

enter image description here

  • Предоставление двух типов ограничений: тип зоны и тип местоположения, что означает, что размер виртуальной машины Standard_DS2_V2_Promo не может быть создан в этой конкретной подписке в этом регионе: WestEurope вообще.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...