Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Invoke-AzRestMethod é um cmdlet do Azure PowerShell que foi introduzido no módulo Az PowerShell versão 4.4.0. Ele permite que você faça solicitações HTTP personalizadas para o ponto de extremidade do Azure Resource Manager (ARM) usando o contexto Az.
Esse cmdlet é útil quando você deseja gerenciar serviços do Azure para recursos que ainda não estão disponíveis no módulo Az PowerShell.
Como usar Invoke-AzRestMethod
Como 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 Az PowerShell versão 4.5.0, esse recurso ainda não está disponível no módulo Az.ContainerRegistry PowerShell. No entanto, pode ser gerido entretanto 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 são opcionais.
No entanto, ao gerenciar recursos dentro de 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 ResourceType parâmetros 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 espaço de trabalho 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 as de visualização. As versões de API suportadas 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 2019-12-01-preview API 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 grupo de recursos usando o myresourcegroupInvoke-AzRestMethod cmdlet.
Para desabilitar o acesso à rede pública, você precisa fazer uma chamada PATCH para a 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 o acesso ao registro somente a partir de um endereço IP específico, a carga 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 *-AzResource cmdlets permitem personalizar a chamada da 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 PSObjectarquivo . Este processo acrescenta um nível adicional de complexidade e pode tornar-se complicado.
Invoke-AzRestMethod oferece uma maneira de gerenciar recursos do Azure. Como mostrado no exemplo anterior, você pode criar uma cadeia de caracteres JSON e usá-la para personalizar a chamada da API REST sem ter que pré-criar nenhum PSObjectsarquivo .
Se você já estiver familiarizado com os *-AzResource cmdlets, poderá continuar a usá-los. Não temos planos de parar de apoiá-los. Com Invoke-AzRestMethodo , adicionamos um novo cmdlet ao seu kit de ferramentas.
Ver também
Azure PowerShell