Mengelola sumber daya Azure dengan Invoke-AzRestMethod

Invoke-AzRestMethod adalah cmdlet Azure PowerShell yang diperkenalkan di modul Az PowerShell versi 4.4.0. Ini memungkinkan Anda membuat permintaan HTTP kustom ke titik akhir Azure Resource Manager (ARM) menggunakan konteks Az.

Cmdlet ini berguna saat Anda ingin mengelola layanan Azure untuk fitur yang belum tersedia di modul Az PowerShell.

Cara menggunakan Invoke-AzRestMethod

Misalnya, Anda dapat mengizinkan akses ke Azure Container Registry (ACR) hanya untuk jaringan tertentu atau menolak akses publik. Sejak modul Az PowerShell versi 4.5.0, fitur tersebut belum tersedia di modul Az.ContainerRegistry Powershell. Namun, fitur tersebut dapat dikelola untuk sementara dengan Invoke-AzRestMethod.

Menggunakan Invoke-AzRestMethod dengan operasi GET

Contoh berikut menunjukkan cara menggunakan cmdlet Invoke-AzRestMethod dengan operasi GET:

$getParams = @{
  ResourceGroupName = 'myresourcegroup'
  ResourceProviderName = 'Microsoft.ContainerRegistry'
  ResourceType = 'registries'
  Name = 'myacr'
  ApiVersion = '2019-12-01-preview'
  Method = 'GET'
}
Invoke-AzRestMethod @getParams

Untuk fleksibilitas maksimum, sebagian besar parameter Invoke-AzRestMethod bersifat opsional. Namun, saat mengelola sumber daya dalam grup sumber daya, Anda harus memberikan ID lengkap ke sumber daya atau parameter seperti grup sumber daya, penyedia sumber daya, dan jenis sumber daya.

Parameter ResourceType dan Name dapat mengambil beberapa nilai saat menargetkan sumber daya yang memerlukan lebih dari satu nama. Misalnya, untuk memanipulasi pencarian yang tersimpan di ruang kerja Log Analytics, parameternya terlihat seperti contoh berikut: -ResourceType @('workspaces', 'savedsearches') -Name @('my-la', 'my-search').

Menggunakan pemetaan berdasarkan posisi dalam array, cmdlet membangun sumber daya berikut: Id:'/workspaces/my-la/savedsearches/my-search'.

Parameter APIVersion memungkinkan Anda untuk menggunakan versi API tertentu, termasuk versi pratinjau. Versi API yang didukung untuk penyedia Azure Resource dapat ditemukan di repositori GitHub azure-rest-api-specs.

Anda dapat menemukan definisi untuk 2019-12-01-preview versi ACR API di lokasi berikut: azure-rest-api-specs/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/.

Menggunakan Invoke-AzRestMethod dengan operasi PATCH

Anda dapat menonaktifkan akses publik ke ACR yang ada yang bernama myacr dalam grup sumber daya myresourcegroup menggunakan cmdlet Invoke-AzRestMethod.

Untuk menonaktifkan akses jaringan publik, Anda perlu melakukan panggilan PATCH ke API yang mengubah nilai parameter publicNetwokAccess seperti yang ditunjukkan pada contoh berikut:

$patchParams = @{
  ResourceGroupName = 'myresourcegroup'
  Name = 'myacr'
  ResourceProviderName = 'Microsoft.ContainerRegistry'
  ResourceType = 'registries'
  ApiVersion = '2019-12-01-preview'
  Payload = '{ "properties": {
     "publicNetworkAccess": "Disabled"
     } }'
  Method = 'PATCH'
}
Invoke-AzRestMethod @patchParams

Properti Payload adalah string JSON yang menunjukkan jalur properti yang akan dimodifikasi.

Semua parameter untuk API ini dijelaskan dalam file rest-api-spec yang terkait dengan API ini. Definisi khusus untuk parameter publicNetworkAccess dapat ditemukan dalam file JSON registri kontainer untuk 2019-12-01-preview versi API.

Untuk mengizinkan akses ke registri dari alamat IP tertentu saja, payload perlu dimodifikasi seperti dalam contoh berikut:

$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

Perbandingan antara Get-AzResource, New-AzResource, dan Remove-AzResource

Cmdlet *-AzResource memungkinkan Anda untuk menyesuaikan panggilan REST API ke Azure dengan menentukan jenis sumber daya, versi API, dan properti yang akan diperbarui. Namun, properti harus dibuat terlebih dahulu sebagai PSObject. Proses ini menambahkan tingkat kompleksitas tambahan dan dapat menjadi rumit.

Invoke-AzRestMethod menawarkan cara untuk mengelola sumber daya Azure. Seperti yang ditunjukkan pada contoh sebelumnya, Anda dapat membangun string JSON dan menggunakannya untuk menyesuaikan panggilan REST API tanpa harus membuat PSObjectssebelumnya .

Jika Anda sudah memahami cmdlet *-AzResource, Anda dapat terus menggunakannya. Kami tidak punya rencana untuk berhenti mendukung mereka. Dengan Invoke-AzRestMethod, kami telah menambahkan cmdlet baru ke toolkit Anda.

Lihat Juga