Dela via


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.

Den här artikeln visar PUT-, PATCH-, GET-, POST- och DELETE HTTP-begäranden 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

Tips för att använda az rest

Här är användbar information när du arbetar med az rest:

  • 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. Den --url parameter som krävs.
  • 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".
  • När du använder --uri-parameters för begäranden i form av OData, se till att fly $ i olika miljöer: i Bash, escape $ as \$ och in PowerShell, escape $ as `$.

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

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

Ytterligare az rest exempel för Microsoft Graph

Ibland hjälper det att se ett exempel för ett annat scenario, så här är ett exempel som använder Microsoft Graph API. Om du vill uppdatera omdirigerings-URI:er för ett program anropar du REST-API:et för uppdateringsprogrammet , som i den här koden:

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

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>

Se även