Azure-erőforrások kezelése az Invoke-AzRestMethod használatával
Az Invoke-AzRestMethod egy olyan Azure PowerShell-parancsmag, amely az Az PowerShell-modul 4.4.0-s verziójában lett bevezetve. Lehetővé teszi egyéni HTTP-kérések küldését az Azure Resource Manager (ARM) végpontra az Az-környezet használatával.
Ez a parancsmag akkor hasznos, ha az Azure-szolgáltatások olyan funkcióit szeretné felügyelni, amelyek még nem érhetők el az Az PowerShell-modulban.
Az Invoke-AzRestMethod használata
Például engedélyezheti az Azure Container Registry (ACR) szolgáltatáshoz való hozzáférést megadott hálózatok számára, vagy letilthatja a nyilvános hozzáférést. Az Az PowerShell-modul 4.5.0-s verziójában ez a funkció még nem érhető el az Az.ContainerRegistry PowerShell-modulban. Azonban ideiglenesen az Invoke-AzRestMethod
használatával is felügyelhető.
Az Invoke-AzRestMethod használata GET műveletekkel
Az alábbi példa azt mutatja be, hogyan használható az Invoke-AzRestMethod
parancsmag egy GET művelettel:
$getParams = @{
ResourceGroupName = 'myresourcegroup'
ResourceProviderName = 'Microsoft.ContainerRegistry'
ResourceType = 'registries'
Name = 'myacr'
ApiVersion = '2019-12-01-preview'
Method = 'GET'
}
Invoke-AzRestMethod @getParams
A minél nagyobb rugalmasság érdekében az Invoke-AzRestMethod
legtöbb paraméterének megadása nem kötelező.
Ha azonban erőforráscsoporton belül kezeli az erőforrásokat, meg kell adnia az erőforrás teljes azonosítóját vagy olyan paramétereket, mint az erőforráscsoport, az erőforrás-szolgáltató és az erőforrástípus.
A ResourceType
és a Name
paraméterek több értéket is felvehetnek, ha a célként kijelölt erőforrások egynél több nevet igényelnek. A Log Analytics-munkaterület mentett keresésének módosításához az alábbi példához hasonlóan kell megadni a paramétereket: -ResourceType @('workspaces', 'savedsearches') -Name @('my-la', 'my-search')
.
A parancsmag egy tömbpozíción alapuló leképzés használatával a következő erőforrást hozza létre: Id:'/workspaces/my-la/savedsearches/my-search'
.
Az APIVersion
paraméter lehetővé teszi egy adott API-verzió használatát, beleértve az előzetes verziókat is. Az Azure-beli erőforrás-szolgáltatók által elérhető, támogatott API-verziókat az azure-rest-api-specs GitHub-adattár tartalmazza.
Az ACR API-verzió definícióját a 2019-12-01-preview
következő helyen találja: azure-rest-api-specs/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/.
Az Invoke-AzRestMethod használata PATCH műveletekkel
Az Invoke-AzRestMethod
parancsmaggal letilthatja a myresourcegroup
erőforráscsoport myacr
elnevezésű, már létező ACR-hez való nyilvános hozzáférést.
A nyilvános hálózati hozzáférés letiltásához az alábbi példában látható módon egy olyan API felé irányulóPATCH hívást kell létrehoznia, amely módosítja a publicNetwokAccess
paraméter értékét:
$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
tulajdonság egy olyan JSON-karakterlánc, amely megjeleníti a módosítani kívánt tulajdonság elérési útját.
Az API összes paraméterének leírását a hozzá tartozó rest-api-spec fájl tartalmazza.
A publicNetworkAccess paraméter konkrét definíciója az API-verzióhoz tartozó 2019-12-01-preview
tárolóregisztrációs adatbázis JSON-fájljában található.
Ha a beállításjegyzékhez való hozzáférést csak egy adott IP-cím számára szeretné engedélyezni, akkor a hasznos adatokat az alábbi példa szerint kell módosítani:
$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
Összehasonlítás a Get-AzResource, New-AzResource és Remove-AzResource parancsmagokkal
Az *-AzResource
-parancsmagok lehetővé teszik az Azure-hoz intézett REST API-hívás testreszabását az erőforrástípus, az API-verzió és a frissítendő tulajdonságok megadásával. A tulajdonságokat azonban először PSObject
objektumként kell létrehozni. Ez a folyamat további összetettségi szintet ad hozzá, és bonyolulttá válhat.
Invoke-AzRestMethod
Lehetőséget kínál az Azure-erőforrások kezelésére. Ahogy az előző példában is látható, létrehozhat egy JSON-sztringet, és használatával testre szabhatja a REST API-hívást anélkül, hogy előre létre kellene hoznia.PSObjects
Ha már van tapasztalata az *-AzResource
-parancsmagok használatával kapcsolatban, továbbra is használhatja őket. Nem tervezzük, hogy nem támogatjuk őket. Ezzel Invoke-AzRestMethod
hozzáadtunk egy új parancsmagot az eszközkészlethez.