Delen via


De Azure REST API gebruiken met Azure CLI

REST-API's (Representational State Transfer) zijn service-eindpunten die ondersteuning bieden voor verschillende sets HTTP-bewerkingen (of methoden). Met deze HTTP-methoden kunt u verschillende acties uitvoeren voor de resources van uw service. De az rest opdracht mag alleen worden gebruikt wanneer een bestaande Azure CLI-opdracht niet beschikbaar is.

In dit artikel worden de HTTP-aanvragen PUT, PATCH, GET, POST en DELETE beschreven voor het beheren van Azure Container Registry-resources. Azure Container Registry is een beheerde registerservice waarmee u Azure-containerregisters kunt maken en onderhouden waarin containerinstallatiekopieën en gerelateerde artefacten worden opgeslagen.

Vereisten

Tips voor het gebruik van az rest

Hier volgen enkele nuttige informatie bij het werken met az rest:

  • De az rest opdracht wordt automatisch geverifieerd met behulp van de aanmeldingsreferentie.
  • Als de autorisatie-header niet is ingesteld, wordt de header Authorization: Bearer <token>gekoppeld, waar <token> deze wordt opgehaald uit De Microsoft Entra-id.
  • De doelresource van het token wordt afgeleid van de --url parameter wanneer de --url parameter begint met een eindpunt uit de uitvoer van de az cloud show --query endpoints opdracht. De --url vereiste parameter.
  • Gebruik de --resource parameter voor een aangepaste resource.
  • Als de header Content-Type niet is ingesteld en --body een geldige JSON-tekenreeks is, wordt de inhoudstype-header standaard ingesteld op 'application/json'.
  • Wanneer u --uri-parameters voor aanvragen in de vorm van OData gebruikt, moet u ervoor zorgen dat u in verschillende omgevingen escapet$: in Bash, escape as \$ en in PowerShell, escape $$ as `$.

PUT gebruiken om een Azure Container Registry te maken

Gebruik de PUT HTTP-methode om een nieuwe Azure Container Registry te maken.

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

Hier volgt een voorbeeld met voltooide parameters:

# 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-uitvoer voor zowel Bash als 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"
}

PATCH gebruiken om uw Azure Container Registry bij te werken

Werk uw Azure Container Registry bij met behulp van de PATCH HTTP-aanvraag. Bewerk de --body parameter met de eigenschappen die u wilt bijwerken. In dit voorbeeld worden de variabelen gebruikt die zijn ingesteld in de vorige sectie en wordt de SKU-naam ($skuName="Premium") van Azure Container Registry bijgewerkt.

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

De volgende JSON-woordenlijstuitvoer bevat velden die zijn weggelaten om kort te zijn:

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

GET gebruiken om uw Azure Container Registry op te halen

Gebruik de GET HTTP-aanvraag om de updateresultaten van de PATCH-aanvraag te bekijken. In dit voorbeeld worden de variabelen gebruikt die zijn ingesteld in de vorige sectie.

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

De uitvoer voor de GET-methode is hetzelfde als de uitvoer voor PUT.

POST gebruiken om uw Azure Container Registry-referenties opnieuw te genereren

Gebruik de POST HTTP-aanvraag om een van de aanmeldingsreferenties opnieuw te genereren voor de Azure Container Registry die in dit artikel is gemaakt.

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

De volgende JSON-woordenlijstuitvoer bevat velden die zijn weggelaten om kort te zijn:

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

Nadat de aanvraag is voltooid, worden uw opgegeven Azure Container Registry-referenties opnieuw gegenereerd met een nieuw wachtwoord, samen met uw bestaande wachtwoord (wachtwoord2).

Delete gebruiken om uw Azure Container Registry te verwijderen

Gebruik de HTTP-aanvraag DELETE om een bestaand Azure Container Registry te verwijderen.

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

Aanvullend az rest voorbeeld voor Microsoft Graph

Soms helpt het om een voorbeeld voor een ander scenario te zien, dus hier volgt een voorbeeld waarin de Microsoft Graph API wordt gebruikt. Als u omleidings-URI's voor een toepassing wilt bijwerken, roept u de REST API van de updatetoepassing aan, zoals in deze code:

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

Resources opschonen

Wanneer u klaar bent met de resources die in dit artikel zijn gemaakt, kunt u de resourcegroep verwijderen. Wanneer u de resourcegroep verwijdert, worden alle resources in die resourcegroep verwijderd.

az group delete --resource-group <resourceGroupName>

Zie ook