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 Azure PowerShell introduzido no módulo 4.4.0 do Az PowerShell. Ele permite que você faça solicitações HTTP personalizadas para o endpoint do Azure Resource Manager (ARM) usando o contexto Az.
Esse cmdlet é útil quando você deseja gerenciar Azure serviços 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 a 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 máxima flexibilidade, a maioria dos parâmetros para Invoke-AzRestMethod é opcional.
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.
Os parâmetros ResourceType e Name podem ter vários valores ao direcionar recursos que exigem mais de um nome. Por exemplo, para manipular uma pesquisa salva em um workspace Log Analytics, os parâmetros se parecem com o seguinte exemplo: -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 Azure podem ser encontradas no repositório azure-rest-api-specs GitHub.
Você pode encontrar a definição para a versão 2019-12-01-preview API do 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 container para a versão da API 2019-12-01-preview.
Para permitir apenas o acesso ao registro de um endereço IP específico, a carga útil precisa ser modificada, 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 cmdlets *-AzResource permitem personalizar a chamada à API REST para 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 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 *-AzResource, poderá continuar usando-os. 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