Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Invoke-AzRestMethod è un cmdlet di Azure PowerShell introdotto nel modulo Az PowerShell versione 4.4.0. Consente di effettuare richieste HTTP personalizzate all'endpoint di Azure Resource Manager (ARM) usando il contesto Az.
Questo cmdlet è utile quando si vogliono gestire i servizi di Azure per le funzionalità non ancora disponibili nel modulo Az PowerShell.
Come usare Invoke-AzRestMethod
Ad esempio, è possibile consentire l'accesso a Registro Azure Container solo per reti specifiche o negare l'accesso pubblico. A partire dal modulo Az PowerShell versione 4.5.0, tale funzionalità non è ancora disponibile nel modulo Az.ContainerRegistry di PowerShell. Tuttavia, può essere gestito nel frattempo con Invoke-AzRestMethod.
Uso di Invoke-AzRestMethod con operazioni GET
Nell'esempio seguente viene illustrato come usare il Invoke-AzRestMethod cmdlet con un'operazione GET:
$getParams = @{
ResourceGroupName = 'myresourcegroup'
ResourceProviderName = 'Microsoft.ContainerRegistry'
ResourceType = 'registries'
Name = 'myacr'
ApiVersion = '2019-12-01-preview'
Method = 'GET'
}
Invoke-AzRestMethod @getParams
Per consentire la massima flessibilità, la maggior parte dei parametri per Invoke-AzRestMethod è facoltativa.
Tuttavia, quando si gestiscono le risorse all'interno di un gruppo di risorse, è necessario fornire l'ID completo alla risorsa o ai parametri, ad esempio gruppo di risorse, provider di risorse e tipo di risorsa.
I ResourceType parametri e Name possono accettare più valori quando la destinazione è destinata a risorse che richiedono più di un nome. Ad esempio, per modificare una ricerca salvata in un'area di lavoro Log Analytics, i parametri sono simili all'esempio seguente: -ResourceType @('workspaces', 'savedsearches') -Name @('my-la', 'my-search').
Usando un mapping basato sulla posizione nella matrice, il cmdlet costruisce la risorsa seguente: Id:'/workspaces/my-la/savedsearches/my-search'.
Il APIVersion parametro consente di usare una versione api specifica, incluse quelle di anteprima. Le versioni api supportate per i provider di risorse di Azure sono disponibili nel repository GitHub azure-rest-api-specs .
È possibile trovare la definizione per la versione dell'API 2019-12-01-preview ACR nel percorso seguente: azure-rest-api-specification/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/.
Uso di Invoke-AzRestMethod con operazioni PATCH
È possibile disabilitare l'accesso pubblico al Registro Azure Container esistente denominato myacr nel myresourcegroup gruppo di risorse usando il Invoke-AzRestMethod cmdlet .
Per disabilitare l'accesso alla rete pubblica, è necessario effettuare una chiamata PATCH all'API che modifica il valore del publicNetwokAccess parametro, come illustrato nell'esempio seguente:
$patchParams = @{
ResourceGroupName = 'myresourcegroup'
Name = 'myacr'
ResourceProviderName = 'Microsoft.ContainerRegistry'
ResourceType = 'registries'
ApiVersion = '2019-12-01-preview'
Payload = '{ "properties": {
"publicNetworkAccess": "Disabled"
} }'
Method = 'PATCH'
}
Invoke-AzRestMethod @patchParams
La Payload proprietà è una stringa JSON che mostra il percorso della proprietà da modificare.
Tutti i parametri per questa API sono descritti nel file rest-api-spec associato a questa API.
La definizione specifica per il parametro publicNetworkAccess è disponibile nel file JSON del registro contenitori per la versione dell'API 2019-12-01-preview .
Per consentire solo l'accesso al Registro di sistema da un indirizzo IP specifico, il payload deve essere modificato come illustrato nell'esempio seguente:
$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
Confronto con Get-AzResource, New-AzResource e Remove-AzResource
I *-AzResource cmdlet consentono di personalizzare la chiamata API REST ad Azure specificando il tipo di risorsa, la versione dell'API e le proprietà da aggiornare. Tuttavia, le proprietà devono essere create per prime come PSObject. Questo processo aggiunge un ulteriore livello di complessità e può diventare complicato.
Invoke-AzRestMethod offre un modo per gestire le risorse di Azure. Come illustrato nell'esempio precedente, è possibile compilare una stringa JSON e usarla per personalizzare la chiamata API REST senza dover creare in precedenza alcun oggetto PSObjects.
Se si ha già familiarità con i *-AzResource cmdlet, è possibile continuare a usarli. Non abbiamo intenzione di smettere di sostenerli. Con Invoke-AzRestMethodè stato aggiunto un nuovo cmdlet al toolkit.