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.
In dit artikel worden de HTTP-aanvragen PUT, PATCH, GET, POST en DELETE beschreven voor het beheren van Azure Container Registry-resources. 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.
Tips voor het gebruik van az rest
Hier volgen enkele nuttige informatie bij het werken met az rest:
- De
az rest
opdracht wordt automatisch geverifieerd met behulp van de aanmeldingsreferentie. - Als de autorisatie-header niet is ingesteld, wordt de header
Authorization: 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. De--url
vereiste parameter. - 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'. - Wanneer u
--uri-parameters
voor aanvragen in de vorm van OData gebruikt, moet u ervoor zorgen dat u in verschillende omgevingen escapet$
: inBash
, escape as\$
en inPowerShell
, escape$
$
as`$
.
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"
}
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
Aanvullend az rest
voorbeeld voor Microsoft Graph
Soms helpt het om een voorbeeld voor een ander scenario te zien, dus hier volgt een voorbeeld waarin de Microsoft Graph API wordt gebruikt. Als u omleidings-URI's voor een toepassing wilt bijwerken, roept u de REST API van de updatetoepassing aan, zoals in deze code:
# 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"]}}'
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>