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
Użyj środowiska powłoki Bash w usłudze Azure Cloud Shell. Aby uzyskać więcej informacji, zobacz Szybki start dotyczący powłoki Bash w usłudze Azure Cloud Shell.
Jeśli wolisz uruchamiać polecenia referencyjne interfejsu wiersza polecenia lokalnie, zainstaluj interfejs wiersza polecenia platformy Azure. Jeśli korzystasz z systemu Windows lub macOS, rozważ uruchomienie interfejsu wiersza polecenia platformy Azure w kontenerze Docker. Aby uzyskać więcej informacji, zobacz Jak uruchomić interfejs wiersza polecenia platformy Azure w kontenerze platformy Docker.
Jeśli korzystasz z instalacji lokalnej, zaloguj się do interfejsu wiersza polecenia platformy Azure za pomocą polecenia az login. Aby ukończyć proces uwierzytelniania, wykonaj kroki wyświetlane w terminalu. Aby uzyskać inne opcje logowania, zobacz Logowanie się przy użyciu interfejsu wiersza polecenia platformy Azure.
Po wyświetleniu monitu zainstaluj rozszerzenie interfejsu wiersza polecenia platformy Azure podczas pierwszego użycia. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Korzystanie z rozszerzeń w interfejsie wiersza polecenia platformy Azure.
Uruchom polecenie az version, aby znaleźć zainstalowane wersje i biblioteki zależne. Aby uaktualnić do najnowszej wersji, uruchom polecenie az upgrade.
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ściowychaz 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$
: wBash
pliku , ucieczka$
jako\$
i wPowerShell
elemecie 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>