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.
Na voltooiing van dit artikel weet u hoe u HTTP-aanvragen voor het beheren van Azure Container Registry-resources kunt gebruiken, PATCH, GET, POST en DELETE. Azure Container Registry is een beheerde registerservice waarmee u Azure-containerregisters kunt maken en onderhouden waarin containerinstallatiekopieën en gerelateerde artefacten worden opgeslagen.
Vereisten
Gebruik de Bash-omgeving in Azure Cloud Shell. Zie quickstart voor Bash in Azure Cloud Shell voor meer informatie.
Installeer de Azure CLI, indien gewenst, om CLI-referentieopdrachten uit te voeren. Als u in Windows of macOS werkt, kunt u Azure CLI uitvoeren in een Docker-container. Zie De Azure CLI uitvoeren in een Docker-container voor meer informatie.
Als u een lokale installatie gebruikt, meldt u zich aan bij Azure CLI met behulp van de opdracht az login. Volg de stappen die worden weergegeven in de terminal, om het verificatieproces te voltooien. Raadpleeg Aanmelden bij Azure CLI voor aanvullende aanmeldingsopties.
Installeer de Azure CLI-extensie bij het eerste gebruik, wanneer u hierom wordt gevraagd. Raadpleeg Extensies gebruiken met Azure CLI voor meer informatie over extensies.
Voer az version uit om de geïnstalleerde versie en afhankelijke bibliotheken te vinden. Voer az upgrade uit om te upgraden naar de nieuwste versie.
Stel uw aangepaste Azure REST API-aanvraag in:
Als u een aangepaste Azure REST API-aanvraag wilt aanroepen met Azure CLI, gebruikt u de az rest
opdracht, gevolgd door de --url
parameter. De --url
parameter definieert de URL van de aangevraagde resource en is de enige vereiste parameter.
Notitie
- De
az rest
opdracht wordt automatisch geverifieerd met behulp van de aanmeldingsreferentie. Als de autorisatie-header niet is ingesteld, wordt de headerAuthorization: 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 deaz cloud show --query endpoints
opdracht. 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'.
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"
}
U hebt nu uw nieuwe Azure Container Registry gemaakt met behulp van az rest
!
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
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>