Använda Azure REST API med Azure CLI

REST-API:er (Representational State Transfer) är tjänstslutpunkter som stöder olika uppsättningar av HTTP-åtgärder (eller metoder). Med dessa HTTP-metoder kan du utföra olika åtgärder för tjänstens resurser. Kommandot az rest bör endast användas när ett befintligt Azure CLI-kommando inte är tillgängligt.

När du har slutfört den här artikeln vet du hur du använder HTTP-begäranden för PUT, PATCH, GET, POST och DELETE för att hantera Azure Container Registry-resurser. Azure Container Registry är en hanterad registertjänst som gör att du kan skapa och underhålla Azure-containerregister som lagrar containeravbildningar och relaterade artefakter.

Förutsättningar

Konfigurera din anpassade Azure REST API-begäran:

Om du vill anropa en anpassad Azure REST API-begäran med Azure CLI använder du az rest kommandot följt av parametern --url . Parametern --url definierar URL:en för den begärda resursen och är den enda obligatoriska parametern.

Kommentar

  • Kommandot az rest autentiserar automatiskt med hjälp av loggade autentiseringsuppgifter. Om auktoriseringsrubriken inte har angetts bifogas rubriken Authorization: Bearer <token>, där <token> hämtas från Microsoft Entra-ID. Målresursen för token härleds från parametern --url när parametern --url börjar med en slutpunkt från kommandots az cloud show --query endpoints utdata. Använd parametern --resource för en anpassad resurs.
  • Om innehållstypsrubriken inte har angetts och --body är en giltig JSON-sträng, kommer innehållstypsrubriken som standard att vara "application/json".

Använda PUT för att skapa ett Azure Container Registry

Använd METODEN PUT HTTP för att skapa ett nytt Azure Container Registry.

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

Här är ett exempel med slutförda parametrar:

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

JSON-utdata för både Bash och 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"
}

Nu har du skapat ditt nya Azure Container Registry med !az rest

Använda PATCH för att uppdatera Azure Container Registry

Uppdatera Azure Container Registry med hjälp av PATCH HTTP-begäran. Redigera parametern --body med de egenskaper som du vill uppdatera. I det här exemplet används variablerna som angavs i föregående avsnitt och SKU-namnet ($skuName="Premium") för Azure Container Registry uppdateras.

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

Följande JSON-ordlisteutdata innehåller fält som utelämnats för korthet:

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

Använda GET för att hämta ditt Azure Container Registry

Använd GET HTTP-begäran och se uppdateringsresultaten från PATCH-begäran. I det här exemplet används variablerna som angavs i föregående avsnitt.

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

Utdata för GET-metoden är desamma som de som visas för PUT.

Använd POST för att återskapa dina autentiseringsuppgifter för Azure Container Registry

Använd POST HTTP-begäran för att återskapa en av inloggningsuppgifterna för Azure Container Registry som skapades i den här artikeln.

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

Följande JSON-ordlisteutdata innehåller fält som utelämnats för korthet:

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

När begäran är klar återskapas dina angivna autentiseringsuppgifter för Azure Container Registry med ett nytt lösenord tillsammans med ditt befintliga lösenord (lösenord2).

Använd DELETE för att ta bort ditt Azure Container Registry

Använd HTTP-begäran DELETE för att ta bort ett befintligt Azure Container Registry.

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

Rensa resurser

När du är klar med resurserna som skapats i den här artikeln kan du ta bort resursgruppen. När du tar bort resursgruppen tas alla resurser i resursgruppen bort.

az group delete --resource-group <resourceGroupName>