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.
Po ukończeniu tego artykułu dowiesz się, jak zarządzać zasobami usługi Azure Container Registry przy użyciu żądań PUT, PATCH, GET, POST i DELETE HTTP. 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.
Skonfiguruj niestandardowe żądanie interfejsu API REST platformy Azure:
Aby wywołać niestandardowe żądanie interfejsu API REST platformy Azure za pomocą interfejsu wiersza polecenia platformy Azure, użyj az rest
polecenia , a następnie parametru --url
. Parametr --url
definiuje adres URL żądanego zasobu i jest jedynym wymaganym parametrem.
Uwaga
- Polecenie
az rest
automatycznie uwierzytelnia się przy użyciu poświadczeń zalogowanych. Jeśli nagłówek autoryzacji nie jest ustawiony, dołącza nagłówekAuthorization: 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. 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".
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"
}
Udało Ci się pomyślnie utworzyć nową usługę Azure Container Registry przy użyciu programu az rest
!
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
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>