Menggunakan Azure REST API dengan Azure CLI
API Transfer Status Representasional (REST) adalah titik akhir layanan yang mendukung serangkaian operasi HTTP (atau metode) yang berbeda. Metode HTTP ini memungkinkan Anda melakukan tindakan yang berbeda untuk sumber daya layanan Anda. az rest
Perintah hanya boleh digunakan saat perintah Azure CLI yang ada tidak tersedia.
Setelah menyelesaikan artikel ini, Anda akan tahu cara menggunakan permintaan HTTP PUT, PATCH, GET, POST, dan DELETE untuk mengelola sumber daya Azure Container Registry. Azure Container Registry adalah layanan registri terkelola yang memungkinkan Anda membuat dan memelihara registri kontainer Azure yang menyimpan gambar kontainer dan artefak terkait.
Prasyarat
Gunakan lingkungan Bash di Azure Cloud Shell. Untuk informasi selengkapnya, lihat Mulai Cepat untuk Bash di Azure Cloud Shell.
Jika Anda lebih suka menjalankan perintah referensi CLI secara lokal, instal Azure CLI. Jika Anda menjalankan Windows atau macOS, pertimbangkan untuk menjalankan Azure CLI dalam kontainer Docker. Untuk informasi lebih lanjut, lihat Cara menjalankan Azure CLI di kontainer Docker.
Jika Anda menggunakan instalasi lokal, masuk ke Azure CLI dengan menggunakan perintah login az. Untuk menyelesaikan proses autentikasi, ikuti langkah-langkah yang ditampilkan di terminal Anda. Untuk opsi masuk lainnya, lihat Masuk dengan Azure CLI.
Saat Anda diminta, instal ekstensi Azure CLI pada penggunaan pertama. Untuk informasi selengkapnya tentang ekstensi, lihat Menggunakan ekstensi dengan Azure CLI.
Jalankan versi az untuk menemukan versi dan pustaka dependen yang diinstal. Untuk meningkatkan ke versi terbaru, jalankan peningkatan az.
Siapkan permintaan Azure REST API kustom Anda:
Untuk memanggil permintaan Azure REST API kustom dengan Azure CLI, gunakan az rest
perintah , diikuti oleh --url
parameter . Parameter --url
menentukan URL sumber daya yang diminta, dan merupakan satu-satunya parameter yang diperlukan.
Catatan
- Perintah
az rest
secara otomatis mengautentikasi menggunakan kredensial yang masuk. Jika header Otorisasi tidak diatur, header melampirkan headerAuthorization: Bearer <token>
, tempat<token>
diambil dari ID Microsoft Entra. Sumber daya target token akan berasal dari--url
parameter ketika--url
parameter dimulai dengan titik akhir dari outputaz cloud show --query endpoints
perintah.--resource
Gunakan parameter untuk sumber daya kustom. - Jika header Content-Type tidak diatur dan
--body
merupakan string JSON yang valid, header Content-Type akan default ke "application/json".
Menggunakan PUT untuk membuat Azure Container Registry
Gunakan metode PUT HTTP untuk membuat Azure Container Registry baru.
# Command format example
az rest --method put \
--url https://management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.ContainerRegistry/registries/<containerRegistryName>?api-version=2023-01-01-preview \
--body "{'location': '<locationName>', 'sku': {'name': '<skuName>'}, 'properties': {'adminUserEnabled': '<propertyValue>'}}"
Berikut adalah contoh dengan parameter lengkap:
# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
subscriptionId="00000000-0000-0000-0000-000000000000"
resourceGroup="msdocs-app-rg$randomIdentifier"
containerRegistryName="msdocscr$randomIdentifier"
locationName="westus"
skuName="Standard"
propertyValue="true"
# Create resource group
az group create --name $resourceGroup --location $locationName --output json
# Invoke request
az rest --method put \
--url https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.ContainerRegistry/registries/$containerRegistryName?api-version=2023-01-01-preview \
--body "{'location': '$locationName', 'sku': {'name': '$skuName'}, 'properties': {'adminUserEnabled': '$propertyValue'}}"
Output JSON untuk Bash dan Powershell:
{
"id": "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.ContainerRegistry/registries/<containerRegistryName>",
"location": "<location>",
"name": "<containerRegistryName>",
"properties": {
"adminUserEnabled": true,
"anonymousPullEnabled": false,
"creationDate": "2024-01-03T18:38:36.7089583Z",
"dataEndpointEnabled": false,
"dataEndpointHostNames": [],
"encryption": {
"status": "disabled"
},
"loginServer": "<containerRegistryName>.azurecr.io",
"networkRuleBypassOptions": "AzureServices",
"policies": {
"azureADAuthenticationAsArmPolicy": {
"status": "enabled"
},
"exportPolicy": {
"status": "enabled"
},
"quarantinePolicy": {
"status": "disabled"
},
"retentionPolicy": {
"days": 7,
"lastUpdatedTime": "2024-01-03T19:44:53.9770581+00:00",
"status": "disabled"
},
"softDeletePolicy": {
"lastUpdatedTime": "2024-01-03T19:44:53.9771117+00:00",
"retentionDays": 7,
"status": "disabled"
},
"trustPolicy": {
"status": "disabled",
"type": "Notary"
}
},
"privateEndpointConnections": [],
"provisioningState": "Succeeded",
"publicNetworkAccess": "Enabled",
"zoneRedundancy": "Disabled"
},
"sku": {
"name": "Standard",
"tier": "Standard"
},
"systemData": {
"createdAt": "2024-01-03T18:38:36.7089583+00:00",
"createdBy": "<username>@microsoft.com",
"createdByType": "User",
"lastModifiedAt": "2024-01-03T19:44:53.684342+00:00",
"lastModifiedBy": "<username>@microsoft.com",
"lastModifiedByType": "User"
},
"tags":{},
"type": "Microsoft.ContainerRegistry/registries"
}
Anda sekarang telah berhasil membuat Azure Container Registry baru Anda menggunakan az rest
!
Menggunakan PATCH untuk memperbarui Azure Container Registry Anda
Perbarui Azure Container Registry Anda dengan menggunakan permintaan HTTP PATCH. --body
Edit parameter dengan properti yang ingin Anda perbarui. Contoh ini menggunakan variabel yang ditetapkan di bagian sebelumnya, dan memperbarui nama SKU ($skuName="Premium") dari Azure Container Registry.
#Variable Block
$skuName="Premium"
az rest --method patch \
--url https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.ContainerRegistry/registries/$containerRegistryName?api-version=2023-01-01-preview \
--body "{'location': '$locationName', 'sku': {'name': '$skuName'}, 'properties': {'adminUserEnabled': '$propertyValue'}}"
Output kamus JSON berikut memiliki bidang yang dihilangkan untuk brevity:
{
"id": "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.ContainerRegistry/registries/<containerRegistryName>",
"location": "westus",
"name": "<containerRegistryName>",
"properties": {...},
"sku": {
"name": "Premium",
"tier": "Premium"
},
"systemData": {...},
"type": "Microsoft.ContainerRegistry/registries"
}
Menggunakan GET untuk mengambil Azure Container Registry Anda
Gunakan permintaan HTTP GET lihat hasil pembaruan dari permintaan PATCH. Contoh ini menggunakan variabel yang ditetapkan di bagian sebelumnya.
az rest --method get \
--url https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.ContainerRegistry/registries/$containerRegistryName?api-version=2023-01-01-preview
Output untuk metode GET sama dengan yang ditunjukkan untuk PUT.
Menggunakan POST untuk meregenerasi kredensial Azure Container Registry Anda
Gunakan permintaan HTTP POST untuk meregenerasi salah satu kredensial masuk untuk Azure Container Registry yang dibuat dalam artikel ini.
# Variable block
$passwordValue="password"
az rest --method post \
--url https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.ContainerRegistry/registries/$containerRegistryName/regenerateCredential?api-version=2023-01-01-preview \
--body "{'name': '$passwordValue'}"
Output kamus JSON berikut memiliki bidang yang dihilangkan untuk brevity:
{
"passwords": [
{
"name": "password",
"value": "<passwordValue>"
},
{
"name": "password2",
"value": "<passwordValue2>"
}
],
"username": "<containerRegistryName>"
}
Setelah permintaan selesai, kredensial Azure Container Registry yang Anda tentukan akan diregenerasi dengan kata sandi baru bersama dengan kata sandi yang ada (kata sandi2).
Menggunakan DELETE untuk menghapus Azure Container Registry Anda
Gunakan permintaan HAPUS HTTP untuk menghapus Azure Container Registry yang sudah ada.
az rest --method delete \
--url https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.ContainerRegistry/registries/$containerRegistryName?api-version=2023-01-01-preview
Membersihkan sumber daya
Setelah selesai dengan sumber daya yang dibuat dalam artikel ini, Anda dapat menghapus grup sumber daya. Saat Anda menghapus grup sumber daya, semua sumber daya dalam grup sumber daya tersebut akan dihapus.
az group delete --resource-group <resourceGroupName>