Azure CLI ile Azure REST API'sini kullanma

Temsili Durum Aktarımı (REST) API'leri , farklı HTTP işlemleri (veya yöntemleri) kümelerini destekleyen hizmet uç noktalarıdır. Bu HTTP yöntemleri, hizmetinizin kaynakları için farklı eylemler gerçekleştirmenizi sağlar. Komutun az rest yalnızca mevcut bir Azure CLI komutu kullanılamadığında kullanılması gerekir.

Bu makalede Azure Container Registry kaynaklarını yönetmek için PUT, PATCH, GET, POST ve DELETE HTTP istekleri gösterilmektedir. Azure Container Registry, kapsayıcı görüntülerini ve ilgili yapıtları depolayan Azure kapsayıcı kayıt defterleri oluşturmanıza ve korumanıza olanak tanıyan yönetilen bir kayıt defteri hizmetidir.

Önkoşullar

  • Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz . Azure Cloud Shell'de Bash için hızlı başlangıç.

  • CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yı yükleyin . Windows veya macOS üzerinde çalışıyorsanız Azure CLI’yi bir Docker kapsayıcısında çalıştırmayı değerlendirin. Daha fazla bilgi için bkz . Docker kapsayıcısında Azure CLI'yi çalıştırma.

    • Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Diğer oturum açma seçenekleri için bkz . Azure CLI ile oturum açma.

    • İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.

    • Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.

Kullanma ipuçları az rest

az rest ile çalışırken bazı yararlı bilgiler aşağıdadır:

  • Komut, az rest oturum açma kimlik bilgilerini kullanarak otomatik olarak kimlik doğrulaması yapar.
  • Yetkilendirme üst bilgisi ayarlanmadıysa, üst bilgisini Authorization: Bearer <token>ekler; burada <token> Microsoft Entra Id'den alınır.
  • Parametre komutun çıkışından --url--urlaz cloud show --query endpoints bir uç noktayla başladığında belirtecin hedef kaynağı parametresinden türetilir. Gerekli --url parametre.
  • Özel bir kaynak için parametresini --resource kullanın.
  • content-Type üst bilgisi ayarlanmadıysa ve --body geçerli bir JSON dizesiyse, content-Type üst bilgisi varsayılan olarak "application/json" olarak ayarlanır.
  • İstekler için OData biçiminde kullanırken--uri-parameters, farklı ortamlarda kaçış $ yaptığınızdan emin olun: içindeBash, $ olarak \$ ve içinde PowerShellkaçış olarak `$.$

Azure Container Registry oluşturmak için PUT kullanma

Yeni bir Azure Container Registry oluşturmak için PUT HTTP yöntemini kullanın.

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

Aşağıda tamamlanmış parametreler içeren bir örnek verilmiştir:

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

Hem Bash hem de PowerShell için JSON çıkışı:

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

PATCH kullanarak Azure Container Registry'nizi güncelleştirme

PATCH HTTP isteğini kullanarak Azure Container Registry'nizi güncelleştirin. parametresini --body güncelleştirmek istediğiniz özelliklerle düzenleyin. Bu örnek, önceki bölümde ayarlanan değişkenleri kullanır ve Azure Container Registry'nin SKU adını ($skuName="Premium") güncelleştirir.

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

Aşağıdaki JSON sözlüğü çıkışında kısa süre için atlanmış alanlar var:

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

Azure Container Registry'nizi almak için GET kullanma

GET HTTP isteğini kullanarak PATCH isteğindeki güncelleştirme sonuçlarına bakın. Bu örnek, önceki bölümde ayarlanan değişkenleri kullanır.

az rest --method get \
    --url https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.ContainerRegistry/registries/$containerRegistryName?api-version=2023-01-01-preview 

GET yönteminin çıktısı PUT için gösterilen çıkışla aynıdır.

Azure Container Registry kimlik bilgilerinizi yeniden oluşturmak için POST kullanma

Bu makalede oluşturulan Azure Container Registry için oturum açma kimlik bilgilerinden birini yeniden oluşturmak için POST HTTP isteğini kullanın.

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

Aşağıdaki JSON sözlüğü çıkışında kısa süre için atlanmış alanlar var:

{
  "passwords": [
    {
      "name": "password",
      "value": "<passwordValue>"
    },
    {
      "name": "password2",
      "value": "<passwordValue2>"
    }
  ],
  "username": "<containerRegistryName>"
}

İstek tamamlandıktan sonra, belirtilen Azure Container Registry kimlik bilgileriniz mevcut parolanızla (parola2) birlikte yeni bir parolayla yeniden oluşturulur.

Azure Container Registry'nizi silmek için DELETE kullanma

Var olan bir Azure Container Registry'yi silmek için DELETE HTTP isteğini kullanın.

az rest --method delete \
    --url https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.ContainerRegistry/registries/$containerRegistryName?api-version=2023-01-01-preview

Microsoft Graph için ek az rest örnek

Bazen farklı bir senaryonun örneğini görmenize yardımcı olur, bu nedenle Microsoft Graph API'sini kullanan bir örnek aşağıda verilmiştir. Bir Uygulamanın yeniden yönlendirme URI'lerini güncelleştirmek için, bu kodda olduğu gibi Uygulamayı güncelleştir REST API'sini çağırın:

# 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"]}}'

Kaynakları temizleme

Bu makalede oluşturulan kaynakları tamamladığınızda kaynak grubunu silebilirsiniz. Kaynak grubunu sildiğinizde, bu kaynak grubundaki tüm kaynaklar silinir.

az group delete --resource-group <resourceGroupName>

Ayrıca bkz.