Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Invoke-AzRestMethod to polecenie cmdlet programu Azure PowerShell wprowadzone w module Az programu PowerShell w wersji 4.4.0. Umożliwia ona wykonywanie niestandardowych żądań HTTP do punktu końcowego usługi Azure Resource Manager (ARM) przy użyciu kontekstu Az.
To polecenie cmdlet jest przydatne, gdy chcesz zarządzać usługami platformy Azure dla funkcji, które nie są jeszcze dostępne w module Az programu PowerShell.
Jak używać Invoke-AzRestMethod
Na przykład możesz zezwolić na dostęp do usługi Azure Container Registry (ACR) tylko dla określonych sieci lub odmowy dostępu publicznego. Od modułu Az programu PowerShell w wersji 4.5.0 ta funkcja nie jest jeszcze dostępna w module Az.ContainerRegistry programu PowerShell. Można go jednak zarządzać w międzyczasie za pomocą polecenia Invoke-AzRestMethod.
Używanie Invoke-AzRestMethod z operacjami GET
W poniższym przykładzie pokazano, jak używać Invoke-AzRestMethod polecenia cmdlet z operacją GET:
$getParams = @{
ResourceGroupName = 'myresourcegroup'
ResourceProviderName = 'Microsoft.ContainerRegistry'
ResourceType = 'registries'
Name = 'myacr'
ApiVersion = '2019-12-01-preview'
Method = 'GET'
}
Invoke-AzRestMethod @getParams
Aby zapewnić maksymalną elastyczność, większość parametrów funkcji Invoke-AzRestMethod jest opcjonalna.
Jednak w przypadku zarządzania zasobami w grupie zasobów należy podać pełny identyfikator zasobu lub parametrów, takich jak grupa zasobów, dostawca zasobów i typ zasobu.
Parametry ResourceType i Name mogą przyjmować wiele wartości podczas określania wartości docelowych zasobów, które wymagają więcej niż jednej nazwy. Na przykład aby manipulować zapisanym wyszukiwaniem w obszarze roboczym usługi Log Analytics, parametry wyglądają jak w poniższym przykładzie: -ResourceType @('workspaces', 'savedsearches') -Name @('my-la', 'my-search').
Za pomocą mapowania na podstawie pozycji w tablicy polecenie cmdlet konstruuje następujący zasób: Id:'/workspaces/my-la/savedsearches/my-search'.
Parametr APIVersion umożliwia korzystanie z określonej wersji interfejsu API, w tym wersji zapoznawczej. Obsługiwane wersje interfejsu API dla dostawców zasobów platformy Azure można znaleźć w repozytorium GitHub azure-rest-api-specs .
Definicję wersji interfejsu 2019-12-01-preview API usługi ACR można znaleźć w następującej lokalizacji: azure-rest-api-specs/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/.
Używanie Invoke-AzRestMethod z operacjami PATCH
Dostęp publiczny do istniejącej usługi ACR o nazwie myacr w myresourcegroup grupie zasobów można wyłączyć przy użyciu Invoke-AzRestMethod polecenia cmdlet .
Aby wyłączyć dostęp do sieci publicznej, należy wykonać wywołanie PATCH interfejsu API, które zmienia wartość parametru publicNetwokAccess , jak pokazano w poniższym przykładzie:
$patchParams = @{
ResourceGroupName = 'myresourcegroup'
Name = 'myacr'
ResourceProviderName = 'Microsoft.ContainerRegistry'
ResourceType = 'registries'
ApiVersion = '2019-12-01-preview'
Payload = '{ "properties": {
"publicNetworkAccess": "Disabled"
} }'
Method = 'PATCH'
}
Invoke-AzRestMethod @patchParams
Właściwość Payload jest ciągiem JSON, który pokazuje ścieżkę właściwości do zmodyfikowania.
Wszystkie parametry tego interfejsu API są opisane w pliku rest-api-spec skojarzonym z tym interfejsem API.
Konkretną definicję parametru publicNetworkAccess można znaleźć w pliku JSON rejestru kontenerów dla wersji interfejsu 2019-12-01-preview API.
Aby zezwolić tylko na dostęp do rejestru z określonego adresu IP, należy zmodyfikować ładunek, jak pokazano w poniższym przykładzie:
$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
Porównanie z poleceniami Get-AzResource, New-AzResource i Remove-AzResource
Polecenia *-AzResource cmdlet umożliwiają dostosowanie wywołania interfejsu API REST do platformy Azure przez określenie typu zasobu, wersji interfejsu API i właściwości do zaktualizowania. Należy jednak najpierw utworzyć właściwości jako PSObject. Ten proces dodaje dodatkowy poziom złożoności i może stać się skomplikowany.
Invoke-AzRestMethod oferuje sposób zarządzania zasobami platformy Azure. Jak pokazano w poprzednim przykładzie, można utworzyć ciąg JSON i użyć go do dostosowania wywołania interfejsu API REST bez konieczności wstępnego tworzenia dowolnego PSObjectselementu .
Jeśli znasz już *-AzResource polecenia cmdlet, możesz nadal z nich korzystać. Nie planujemy ich wspierania. W programie Invoke-AzRestMethoddodaliśmy nowe polecenie cmdlet do zestawu narzędzi.
Zobacz też
Azure PowerShell