Azure-resources beheren met Invoke-AzRestMethod
Invoke-AzRestMethod is een Azure PowerShell-cmdlet die is geïntroduceerd in Az PowerShell-moduleversie 4.4.0. Hiermee kunt u aangepaste HTTP-aanvragen indienen bij het AZURE Resource Manager-eindpunt (ARM) met behulp van de Az-context.
Deze cmdlet is handig als u Azure-services wilt beheren voor functies die nog niet beschikbaar zijn in de Az PowerShell-module.
Invoke-AzRestMethod gebruiken
U kunt bijvoorbeeld alleen toegang tot Azure Container Registry (ACR) toestaan voor specifieke netwerken of openbare toegang weigeren. Vanaf Az PowerShell-moduleversie 4.5.0 is die functie nog niet beschikbaar in de Az.ContainerRegistry PowerShell-module. Het kan echter in de tussentijd worden beheerd met Invoke-AzRestMethod
.
Invoke-AzRestMethod gebruiken met GET-bewerkingen
In het volgende voorbeeld ziet u hoe u de cmdlet Invoke-AzRestMethod
gebruikt met een GET-bewerking:
$getParams = @{
ResourceGroupName = 'myresourcegroup'
ResourceProviderName = 'Microsoft.ContainerRegistry'
ResourceType = 'registries'
Name = 'myacr'
ApiVersion = '2019-12-01-preview'
Method = 'GET'
}
Invoke-AzRestMethod @getParams
Om maximale flexibiliteit mogelijk te maken, zijn de meeste parameters voor Invoke-AzRestMethod
optioneel.
Wanneer u echter resources binnen een resource-groep beheert, moet u de volledige ID opgeven voor de resource of parameters zoals resource-groep, resource-provider en resource-type.
De parameters ResourceType
en Name
kunnen meerdere waarden aannemen bij het instellen van resources waarvoor meer dan één naam is vereist. Als u bijvoorbeeld een opgeslagen zoekopdracht in een Log Analytics-werkruimte wilt bewerken, zien de parameters eruit als in het volgende voorbeeld: -ResourceType @('workspaces', 'savedsearches') -Name @('my-la', 'my-search')
.
Met behulp van een toewijzing op basis van de positie in de matrix maakt de cmdlet de volgende resource: Id:'/workspaces/my-la/savedsearches/my-search'
.
Met de parameter APIVersion
kunt u een specifieke API-versie gebruiken, inclusief preview-versies. De ondersteunde API-versies voor Azure Resource-providers vindt u in de azure-rest-api-specs GitHub-opslagplaats.
U vindt de definitie voor de 2019-12-01-preview
ACR API-versie op de volgende locatie: azure-rest-api-specs/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/.
Gebruik maken van Invoke-AzRestMethod met PATCH-bewerkingen
U kunt openbare toegang tot de bestaande ACR met de naam myacr
uitschakelen in de myresourcegroup
resourcegroep met behulp van de cmdlet Invoke-AzRestMethod
.
Als u de toegang tot het openbare netwerk wilt uitschakelen, moet u een PATCH--aanroep naar de API maken waarmee de waarde van de parameter publicNetwokAccess
wordt gewijzigd, zoals wordt weergegeven in het volgende voorbeeld:
$patchParams = @{
ResourceGroupName = 'myresourcegroup'
Name = 'myacr'
ResourceProviderName = 'Microsoft.ContainerRegistry'
ResourceType = 'registries'
ApiVersion = '2019-12-01-preview'
Payload = '{ "properties": {
"publicNetworkAccess": "Disabled"
} }'
Method = 'PATCH'
}
Invoke-AzRestMethod @patchParams
De eigenschap Payload
is een JSON-tekenreeks met het pad van de eigenschap die moet worden gewijzigd.
Alle parameters voor deze API worden beschreven in het rest-api-spec--bestand dat is gekoppeld aan deze API.
De specifieke definitie voor de parameter publicNetworkAccess vindt u in het JSON-bestand containerregister voor de 2019-12-01-preview
API-versie.
Als u alleen toegang tot het register vanaf een specifiek IP-adres wilt toestaan, moet de nettolading worden gewijzigd, zoals wordt weergegeven in het volgende voorbeeld:
$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
Vergelijking met Get-AzResource, New-AzResource en Remove-AzResource
Met de *-AzResource
cmdlets kunt u de REST API-aanroep naar Azure aanpassen door het resourcetype, de API-versie en de eigenschappen op te geven die moeten worden bijgewerkt. De eigenschappen moeten echter eerst worden gemaakt als een PSObject
. Dit proces voegt een extra complexiteitsniveau toe en kan ingewikkeld worden.
Invoke-AzRestMethod
biedt een manier om Azure-resources te beheren. Zoals in het vorige voorbeeld wordt weergegeven, kunt u een JSON-tekenreeks bouwen en deze gebruiken om de REST API-aanroep aan te passen zonder dat u vooraf een PSObjects
hoeft te maken.
Als u al bekend bent met de *-AzResource
cmdlets, kunt u deze blijven gebruiken. We hebben geen plannen om te stoppen met het ondersteunen van hen. Met Invoke-AzRestMethod
hebben we een nieuwe cmdlet toegevoegd aan uw toolkit.
Zie ook
Azure PowerShell