Udostępnij za pośrednictwem


Używanie interfejsu API REST platformy Azure z interfejsem wiersza polecenia platformy Azure

Interfejsy API usługi Representational State Transfer (REST) to punkty końcowe usługi, które obsługują różne zestawy operacji HTTP (lub metod). Te metody HTTP umożliwiają wykonywanie różnych akcji dla zasobów usługi. Polecenie az rest powinno być używane tylko wtedy, gdy istniejące polecenie interfejsu wiersza polecenia platformy Azure nie jest dostępne.

W tym artykule przedstawiono żądania HTTP PUT, PATCH, GET, POST i DELETE w celu zarządzania zasobami usługi Azure Container Registry. Usługa Azure Container Registry to zarządzana usługa rejestru, która umożliwia tworzenie i konserwację rejestrów kontenerów platformy Azure, które przechowują obrazy kontenerów i powiązane artefakty.

Wymagania wstępne

Porady dotyczące używania az rest

Oto kilka przydatnych informacji podczas pracy z poleceniem az rest:

  • Polecenie az rest automatycznie uwierzytelnia się przy użyciu poświadczeń zalogowanych.
  • Jeśli nagłówek autoryzacji nie jest ustawiony, dołącza nagłówek Authorization: Bearer <token>, gdzie <token> jest pobierany z identyfikatora Entra firmy Microsoft.
  • Zasób docelowy tokenu będzie pochodzić z parametru --url , gdy --url parametr rozpoczyna się od punktu końcowego z danych wyjściowych az cloud show --query endpoints polecenia. Wymagany --url parametr.
  • Użyj parametru --resource dla zasobu niestandardowego.
  • Jeśli nagłówek Content-Type nie jest ustawiony i --body jest prawidłowym ciągiem JSON, nagłówek Content-Type będzie domyślnie "application/json".
  • W przypadku używania --uri-parameters funkcji dla żądań w postaci protokołu OData upewnij się, że w różnych środowiskach ucieczka$: w Bashpliku , ucieczka $ jako \$ i w PowerShellelemecie ucieczka jako `$.$

Tworzenie usługi Azure Container Registry przy użyciu funkcji PUT

Użyj metody PUT HTTP, aby utworzyć nową usługę 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>'}}"

Oto przykład z ukończonymi parametrami:

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

Dane wyjściowe JSON dla powłoki Bash i programu 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"
}

Aktualizowanie usługi Azure Container Registry przy użyciu poprawki PATCH

Zaktualizuj usługę Azure Container Registry przy użyciu żądania HTTP PATCH. Edytuj parametr za --body pomocą właściwości, które chcesz zaktualizować. W tym przykładzie użyto zmiennych ustawionych w poprzedniej sekcji i zaktualizowano nazwę jednostki SKU ($skuName="Premium") usługi Azure Container Registry.

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

Następujące dane wyjściowe słownika JSON zawierają pola pominięte dla zwięzłości:

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

Pobieranie usługi Azure Container Registry przy użyciu polecenia GET

Użyj żądania HTTP GET, aby wyświetlić wyniki aktualizacji z żądania PATCH. W tym przykładzie użyto zmiennych ustawionych w poprzedniej sekcji.

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

Dane wyjściowe metody GET są takie same jak w przypadku metody PUT.

Ponowne generowanie poświadczeń usługi Azure Container Registry przy użyciu funkcji POST

Użyj żądania HTTP POST, aby ponownie wygenerować jedno z poświadczeń logowania dla usługi Azure Container Registry utworzonej w tym artykule.

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

Następujące dane wyjściowe słownika JSON zawierają pola pominięte dla zwięzłości:

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

Po zakończeniu żądania określone poświadczenia usługi Azure Container Registry zostaną ponownie wygenerowane przy użyciu nowego hasła wraz z istniejącym hasłem (hasło2).

Usuwanie usługi Azure Container Registry przy użyciu funkcji DELETE

Użyj żądania HTTP DELETE, aby usunąć istniejącą usługę 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

Dodatkowy az rest przykład dla programu Microsoft Graph

Czasami pomaga to zobaczyć przykład dla innego scenariusza, więc oto przykład, który korzysta z interfejsu API programu Microsoft Graph. Aby zaktualizować identyfikatory URI przekierowania dla aplikacji, wywołaj interfejs API REST aktualizacji aplikacji, jak w tym kodzie:

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

Czyszczenie zasobów

Po zakończeniu pracy z zasobami utworzonymi w tym artykule możesz usunąć grupę zasobów. Po usunięciu grupy zasobów wszystkie zasoby w tej grupie zasobów zostaną usunięte.

az group delete --resource-group <resourceGroupName>

Zobacz też