Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Invoke-AzRestMethod é um cmdlet do Azure PowerShell que foi introduzido no módulo 4.4.0 do Az PowerShell. Ele permite que você faça solicitações HTTP personalizadas para o ponto de extremidade do ARM (Azure Resource Manager) usando o contexto Az.
Esse cmdlet é útil quando você deseja gerenciar os serviços do Azure para recursos que ainda não estão disponíveis no módulo do Az PowerShell.
Como usar Invoke-AzRestMethod
Por exemplo, você pode permitir o acesso ao Registro de Contêiner do Azure (ACR) somente para redes específicas ou negar acesso público. A partir do módulo 4.5.0 do Az PowerShell, esse recurso ainda não está disponível no módulo Az.ContainerRegistry PowerShell. No entanto, ele pode ser gerenciado nesse ínterim com Invoke-AzRestMethod.
Usando Invoke-AzRestMethod com operações GET
O exemplo a seguir demonstra como usar o Invoke-AzRestMethod cmdlet com uma operação GET:
$getParams = @{
ResourceGroupName = 'myresourcegroup'
ResourceProviderName = 'Microsoft.ContainerRegistry'
ResourceType = 'registries'
Name = 'myacr'
ApiVersion = '2019-12-01-preview'
Method = 'GET'
}
Invoke-AzRestMethod @getParams
Para permitir a flexibilidade máxima, a maioria dos parâmetros para Invoke-AzRestMethod os quais são opcionais.
No entanto, ao gerenciar recursos em um grupo de recursos, você precisará fornecer a ID completa para o recurso ou parâmetros como grupo de recursos, provedor de recursos e tipo de recurso.
O ResourceType parâmetro e Name os parâmetros podem ter vários valores ao direcionar recursos que exigem mais de um nome. Por exemplo, para manipular uma pesquisa salva em um workspace do Log Analytics, os parâmetros se parecem com o exemplo a seguir: -ResourceType @('workspaces', 'savedsearches') -Name @('my-la', 'my-search').
Usando um mapeamento com base na posição na matriz, o cmdlet constrói o seguinte recurso: Id:'/workspaces/my-la/savedsearches/my-search'.
O APIVersion parâmetro permite que você use uma versão específica da API, incluindo a versão prévia. As versões de API com suporte para provedores de recursos do Azure podem ser encontradas no repositório GitHub azure-rest-api-specs .
Você pode encontrar a definição para a versão da API do 2019-12-01-preview ACR no seguinte local: azure-rest-api-specs/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/.
Usando Invoke-AzRestMethod com operações PATCH
Você pode desabilitar o acesso público ao ACR existente nomeado myacr no myresourcegroup grupo de recursos usando o Invoke-AzRestMethod cmdlet.
Para desabilitar o acesso à rede pública, você precisa fazer uma chamada PATCH à API que altera o valor do publicNetwokAccess parâmetro, conforme mostrado no exemplo a seguir:
$patchParams = @{
ResourceGroupName = 'myresourcegroup'
Name = 'myacr'
ResourceProviderName = 'Microsoft.ContainerRegistry'
ResourceType = 'registries'
ApiVersion = '2019-12-01-preview'
Payload = '{ "properties": {
"publicNetworkAccess": "Disabled"
} }'
Method = 'PATCH'
}
Invoke-AzRestMethod @patchParams
A Payload propriedade é uma cadeia de caracteres JSON que mostra o caminho da propriedade a ser modificada.
Todos os parâmetros para essa API são descritos no arquivo rest-api-spec associado a essa API.
A definição específica para o parâmetro publicNetworkAccess pode ser encontrada no arquivo JSON do registro de contêiner para a versão da 2019-12-01-preview API.
Para permitir apenas o acesso ao registro de um endereço IP específico, o conteúdo precisa ser modificado, conforme mostrado no exemplo a seguir:
$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
Comparação com Get-AzResource, New-AzResource e Remove-AzResource
Os *-AzResource cmdlets permitem personalizar a chamada à API REST para o Azure especificando o tipo de recurso, a versão da API e as propriedades a serem atualizadas. No entanto, as propriedades precisam ser criadas primeiro como um PSObject. Esse processo adiciona um nível adicional de complexidade e pode se tornar complicado.
Invoke-AzRestMethod oferece uma maneira de gerenciar recursos do Azure. Conforme mostrado no exemplo anterior, você pode criar uma cadeia de caracteres JSON e usá-la para personalizar a chamada à API REST sem precisar criar previamente nenhuma PSObjects.
Se você já estiver familiarizado com os cmdlets, poderá continuar usando-os *-AzResource . Não temos planos de parar de apoiá-los. Com Invoke-AzRestMethod, adicionamos um novo cmdlet ao seu kit de ferramentas.
Consulte Também
Azure PowerShell