Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Invoke-AzRestMethod — это командлет Azure PowerShell, представленный в модуле Az PowerShell версии 4.4.0. Он позволяет выполнять пользовательские HTTP-запросы к конечной точке Azure Resource Manager (ARM) с помощью контекста Az.
Этот командлет полезен, если вы хотите управлять службами Azure для функций, которые еще не доступны в модуле Az PowerShell.
Как использовать Invoke-AzRestMethod
Например, можно разрешить доступ к Реестр контейнеров Azure (ACR) только для определенных сетей или запретить общедоступный доступ. По состоянию на модуль Az PowerShell версии 4.5.0 эта функция еще не доступна в модуле Az.ContainerRegistry PowerShell. Однако его можно контролировать во временном порядке с помощью Invoke-AzRestMethod.
Использование Invoke-AzRestMethod с операциями GET
В следующем примере показано, как использовать командлет Invoke-AzRestMethod с операцией GET.
$getParams = @{
ResourceGroupName = 'myresourcegroup'
ResourceProviderName = 'Microsoft.ContainerRegistry'
ResourceType = 'registries'
Name = 'myacr'
ApiVersion = '2019-12-01-preview'
Method = 'GET'
}
Invoke-AzRestMethod @getParams
Чтобы обеспечить максимальную гибкость, большинство параметров Invoke-AzRestMethod необязательны.
Однако при управлении ресурсами в группе ресурсов необходимо указать полный идентификатор ресурса или параметры, такие как группа ресурсов, поставщик ресурсов и тип ресурса.
Параметры ResourceType и Name могут принимать несколько значений при нацеливании на ресурсы, которые требуют нескольких имен. Например, для управления сохраненным поиском в рабочей области Log Analytics параметры выглядят следующим образом: -ResourceType @('workspaces', 'savedsearches') -Name @('my-la', 'my-search').
При использовании сопоставления, основанного на позиции в массиве, командлет создает следующий ресурс: Id:'/workspaces/my-la/savedsearches/my-search'.
Параметр APIVersion позволяет использовать определенную версию API, включая предварительную версию. Поддерживаемые версии API для поставщиков ресурсов Azure можно найти в репозитории azure-rest-api-specs GitHub.
Определение для версии ACR API 2019-12-01-preview можно найти в следующем расположении: azure-rest-api-specs/specification/containerregistry/resource-manager/Майкрософт.ContainerRegistry/preview/.
Использование Invoke-AzRestMethod с операциями PATCH
Вы можете отключить публичный доступ к существующему ACR myacr в группе ресурсов myresourcegroup с помощью командлета Invoke-AzRestMethod.
Чтобы отключить доступ к общедоступной сети, необходимо выполнить вызов PATCH к API, который изменяет значение publicNetwokAccess параметра, как показано в следующем примере:
$patchParams = @{
ResourceGroupName = 'myresourcegroup'
Name = 'myacr'
ResourceProviderName = 'Microsoft.ContainerRegistry'
ResourceType = 'registries'
ApiVersion = '2019-12-01-preview'
Payload = '{ "properties": {
"publicNetworkAccess": "Disabled"
} }'
Method = 'PATCH'
}
Invoke-AzRestMethod @patchParams
Свойство Payload представляет собой строку JSON, показывющую путь к свойству, который необходимо изменить.
Все параметры для этого API описаны в файле rest-api-spec, связанном с этим API.
Конкретное определение параметра publicNetworkAccess можно найти в файле JSON реестра container registry для версии API 2019-12-01-preview.
Чтобы разрешить доступ к реестру только с определенного IP-адреса, нагрузку необходимо изменить, как показано в следующем примере:
$specificIpParams = @{
ResourceGroupName = 'myresourcegroup'
Name = 'myacr'
ResourceProviderName = 'Microsoft.ContainerRegistry'
ResourceType = 'registries'
ApiVersion = '2019-12-01-preview'
Payload = '{ "properties": {
"networkRuleSet": {
"defaultAction": "Deny",
"ipRules": [ {
"action": "Allow",
"value": "24.22.123.123"
} ]
}
} }'
Method = 'PATCH'
}
Invoke-AzRestMethod @specificIpParams
Сравнение с Get-AzResource, New-AzResource и Remove-AzResource
Командлеты *-AzResource позволяют настроить вызов REST API на Azure, указав тип ресурса, версию API и обновляемые свойства. Однако сначала необходимо создать свойства в качестве PSObject. Этот процесс добавляет дополнительный уровень сложности и может стать сложным.
Invoke-AzRestMethod предлагает способ управления ресурсами Azure. Как показано в предыдущем примере, можно создать строку JSON и использовать ее для настройки вызова REST API без необходимости предварительного создания PSObjects.
Если вы уже знакомы с *-AzResource командлетами, вы можете продолжать использовать их. Мы не планируем прекратить их поддержку. С Invoke-AzRestMethod мы добавили новый командлет в ваш набор инструментов.
См. также
Azure PowerShell