Správa prostředků Azure pomocí Invoke-AzRestMethod
Invoke-AzRestMethod je rutina Azure PowerShellu, která byla zavedena v modulu Az PowerShell verze 4.4.0. Umožňuje provádět vlastní požadavky HTTP na koncový bod Azure Resource Manageru (ARM) pomocí kontextu Az.
Tato rutina je užitečná, když chcete spravovat služby Azure pro funkce, které ještě nejsou dostupné v modulu Az PowerShell.
Jak používat Invoke-AzRestMethod
Jako příklad můžete povolit přístup ke službě Azure Container Registry (ACR) jenom pro konkrétní sítě nebo zakázat veřejný přístup. Od modulu Az PowerShell verze 4.5.0 tato funkce ještě není dostupná v modulu Az.ContainerRegistry PowerShellu. Lze jej však v přechodném období řídit s Invoke-AzRestMethod
.
Použití Invoke-AzRestMethod s operacemi GET
Následující příklad ukazuje použití rutiny Invoke-AzRestMethod
s operací GET:
$getParams = @{
ResourceGroupName = 'myresourcegroup'
ResourceProviderName = 'Microsoft.ContainerRegistry'
ResourceType = 'registries'
Name = 'myacr'
ApiVersion = '2019-12-01-preview'
Method = 'GET'
}
Invoke-AzRestMethod @getParams
Pro maximální flexibilitu je většina parametrů pro Invoke-AzRestMethod
volitelná.
Pokud ale spravujete prostředky v rámci skupiny prostředků, budete muset zadat úplné ID prostředku nebo parametry, jako je skupina prostředků, poskytovatel prostředků a typ prostředku.
Parametry ResourceType
a Name
mohou při cílení na prostředky, které vyžadují více než jeden název, přijmout více hodnot. Pokud například chcete manipulovat s uloženým vyhledáváním v pracovním prostoru služby Log Analytics, parametry vypadají jako v následujícím příkladu: -ResourceType @('workspaces', 'savedsearches') -Name @('my-la', 'my-search')
.
Pomocí mapování na základě pozice v poli rutina vytvoří následující prostředek: Id:'/workspaces/my-la/savedsearches/my-search'
.
Parametr APIVersion
umožňuje použít konkrétní verzi rozhraní API, včetně verzí Preview. Podporované verze rozhraní API pro poskytovatele prostředků Azure najdete v specifikace azure-rest-api-specs úložiště GitHub.
Definici pro verzi rozhraní API 2019-12-01-preview
ACR najdete na následujícím místě: azure-rest-api-specs/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/.
Použití Invoke-AzRestMethod s operacemi PATCH
Pomocí rutiny Invoke-AzRestMethod
můžete zakázat veřejný přístup k ACR s názvem myacr
ve skupině prostředků myresourcegroup
.
Pokud chcete zakázat přístup k veřejné síti, musíte provést volání PATCH rozhraní API, které změní hodnotu parametru publicNetwokAccess
, jak je znázorněno v následujícím příkladu:
$patchParams = @{
ResourceGroupName = 'myresourcegroup'
Name = 'myacr'
ResourceProviderName = 'Microsoft.ContainerRegistry'
ResourceType = 'registries'
ApiVersion = '2019-12-01-preview'
Payload = '{ "properties": {
"publicNetworkAccess": "Disabled"
} }'
Method = 'PATCH'
}
Invoke-AzRestMethod @patchParams
Vlastnost Payload
je řetězec JSON, který zobrazuje cestu k vlastnosti, kterou chcete upravit.
Všechny parametry tohoto rozhraní API jsou popsány v souboru specifikace rest-api přidruženém k tomuto rozhraní API.
Konkrétní definici parametru publicNetworkAccess najdete v souboru JSON registru kontejneru pro verzi rozhraní API 2019-12-01-preview
.
Pokud chcete povolit přístup k registru jenom z konkrétní IP adresy, je potřeba datovou část upravit, jak je znázorněno v následujícím příkladu:
$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
Porovnání s get-AzResource, New-AzResource a Remove-AzResource
Rutiny *-AzResource
umožňují přizpůsobit volání rozhraní REST API do Azure zadáním typu prostředku, verze rozhraní API a vlastností, které se mají aktualizovat. Vlastnosti však musí být nejprve vytvořeny jako PSObject
. Tento proces přidává další úroveň složitosti a může se stát komplikovaným.
Invoke-AzRestMethod
nabízí způsob správy prostředků Azure. Jak je znázorněno v předchozím příkladu, můžete vytvořit řetězec JSON a použít ho k přizpůsobení volání rozhraní REST API bez nutnosti předem vytvářet jakékoli PSObjects
.
Pokud už znáte cmdlety *-AzResource
, můžete je dál používat. Nemáme v úmyslu je přestat podporovat. K Invoke-AzRestMethod
jsme do vaší sady nástrojů přidali nový cmdlet.
Viz také
Azure PowerShell