Aracılığıyla paylaş


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

Kullanma ipuçları az rest

az rest ile çalışırken bazı yararlı bilgiler:

  • Komut, az rest oturum açma kimlik bilgilerini kullanarak otomatik olarak kimlik doğrulaması yapar.
  • Yetkilendirme üst bilgisi ayarlı değilse, üst bilgisini Authorization: Bearer <token>ekler; burada <token>Microsoft Entra Id'den alınır.
  • Belirtecin hedef kaynağı, --url parametresi, --url komutunun çıkışından bir uç noktasıyla başladığında, az cloud show --query endpoints parametresinden türetilir. Parametre --url gereklidir.
  • Ö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 OData biçimindeyken --uri-parameters'ü kullanırken, farklı ortamlarda $ karakterini kaçırdığınızdan emin olun: Bash'de, $ karakterini \$ ile ve PowerShell'de, $ karakterini `$ ile kaçırın.

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. --body parametreyi 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ı temizle

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 bakınız