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 PSObjects
sebelumnya .
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
Azure PowerShell
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk