Я не думаю, что вы можете передать -ResourceId
непосредственно в команду, все встроенные параметры здесь: https://docs.microsoft.com/en-us/powershell/module/az.network/get-azpublicipaddress?view=azps-1.4.0. Самый близкий путь, который я могу найти, это ваш вариант 2.
Не уверен, почему вы хотите использовать Get-AzPublicIpAddress
через ResourceId
, даже если мы используем -Name
и -ResourceGroupName
, то есть Get-AzPublicIpAddress -Name <publicIpName> -ResourceGroupName <ResourceGroupName>
, он, по сути, также передает их в URL запроса rest api которую команда назвала .
GET https://management.azure.com/subscriptions/xxxxxxxxx/resourceGroups/joywebapp/providers/Microsoft.Network/publicIPAddresses/joyVM-ip?api-version=2018-10-01
На самом деле, вы можете найти /subscriptions/xxxxxxxxx/resourceGroups/joywebapp/providers/Microsoft.Network/publicIPAddresses/joyVM-ip
это ResourceId
.
Так что я думаю, что для Microsoft не должно быть слишком сложным добавить -ResourceId
в качестве встроенного параметра команды Get-AzPublicIpAddress
, если вы хотите улучшить его, вы можете оставить отзыв здесь .
Обновление
Microsoft ответила на эту проблему, см .: https://github.com/Azure/azure-powershell/issues/8704#issuecomment-470604852
спасибо, что открыли этот запрос функции - чтобы лучше понять, почему проблемы, о которых вы упоминали, были закрыты: все новые командлеты, которые мы отправляем в Az, должны соответствовать шаблону наличия наборов параметров, которые позволяют пользователю выполнять следующее:
Укажите компоненты ресурса (например, имя группы ресурсов, имя ресурса и т. Д.)
Укажите идентификатор ресурса ресурса
Укажите объектное представление ресурса (некоторые командлеты не будут использовать это, например, Get - *)
Позже в этом году мы начнем генерировать наши командлеты с использованием AutoRest ( см. Этот пост в блоге для получения более подробной информации ), и вышеуказанные шаблоны будут применены в генераторе. Наша цель - создать командлеты для существующих служб Azure и заменить существующие командлеты на созданные.