Bagikan melalui


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.

Artikel ini menunjukkan 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

Tips untuk menggunakan az rest

Berikut adalah beberapa informasi bermanfaat saat bekerja dengan az rest:

  • Perintah az rest secara otomatis mengautentikasi menggunakan kredensial yang masuk.
  • Jika header Otorisasi belum diatur, maka header Authorization: Bearer <token> akan ditambahkan dan <token> akan diambil dari ID Microsoft Entra.
  • Sumber daya target dari token akan diambil dari parameter --url ketika parameter --url dimulai dengan titik akhir dari output perintah az cloud show --query endpoints. Parameter --url diperlukan.
  • Gunakan parameter --resource 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".
  • Saat menggunakan --uri-parameters untuk permintaan dalam bentuk OData, pastikan untuk menghindari $ di lingkungan yang berbeda: di Bash, ubah $ menjadi \$ dan di PowerShell, ubah $ menjadi `$.

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"
}

Menggunakan PATCH untuk memperbarui Azure Container Registry Anda

Perbarui Azure Container Registry Anda dengan menggunakan permintaan HTTP PATCH. Edit parameter --body 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

Contoh tambahan az rest untuk Microsoft Graph

Terkadang ini membantu melihat contoh untuk skenario yang berbeda, jadi berikut adalah contoh yang menggunakan Microsoft Graph API. Untuk memperbarui URI pengalihan untuk Aplikasi, panggil REST API aplikasi Pembaruan , seperti dalam kode ini:

# Get the application
az rest --method GET \
    --uri 'https://graph.microsoft.com/v1.0/applications/b4e4d2ab-e2cb-45d5-a31a-98eb3f364001'

# Update `redirectUris` for `web` property
az rest --method PATCH \
    --uri 'https://graph.microsoft.com/v1.0/applications/b4e4d2ab-e2cb-45d5-a31a-98eb3f364001' \
    --body '{"web":{"redirectUris":["https://myapp.com"]}}'

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>

Lihat juga