Megosztás a következőn keresztül:


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-AzRestMethodhozzáadtunk egy új parancsmagot az eszközkészlethez.

Kapcsolódó információk