Använda Azure REST API med Azure CLI
REST-API:er (Representational State Transfer) är tjänstslutpunkter som stöder olika uppsättningar av HTTP-åtgärder (eller metoder). Med dessa HTTP-metoder kan du utföra olika åtgärder för tjänstens resurser. Kommandot az rest
bör endast användas när ett befintligt Azure CLI-kommando inte är tillgängligt.
När du har slutfört den här artikeln vet du hur du använder HTTP-begäranden för PUT, PATCH, GET, POST och DELETE för att hantera Azure Container Registry-resurser. Azure Container Registry är en hanterad registertjänst som gör att du kan skapa och underhålla Azure-containerregister som lagrar containeravbildningar och relaterade artefakter.
Förutsättningar
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Snabbstart för Bash i Azure Cloud Shell.
Om du föredrar att köra CLI-referenskommandon lokalt installerar du Azure CLI. Om du kör i Windows eller macOS kan du köra Azure CLI i en Docker-container. Mer information finns i Så här kör du Azure CLI i en Docker-container.
Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Andra inloggningsalternativ finns i Logga in med Azure CLI.
När du uppmanas att installera Azure CLI-tillägget vid första användningen. Mer information om tillägg finns i Använda tillägg med Azure CLI.
Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
Konfigurera din anpassade Azure REST API-begäran:
Om du vill anropa en anpassad Azure REST API-begäran med Azure CLI använder du az rest
kommandot följt av parametern --url
. Parametern --url
definierar URL:en för den begärda resursen och är den enda obligatoriska parametern.
Kommentar
- Kommandot
az rest
autentiserar automatiskt med hjälp av loggade autentiseringsuppgifter. Om auktoriseringsrubriken inte har angetts bifogas rubrikenAuthorization: Bearer <token>
, där<token>
hämtas från Microsoft Entra-ID. Målresursen för token härleds från parametern--url
när parametern--url
börjar med en slutpunkt från kommandotsaz cloud show --query endpoints
utdata. Använd parametern--resource
för en anpassad resurs. - Om innehållstypsrubriken inte har angetts och
--body
är en giltig JSON-sträng, kommer innehållstypsrubriken som standard att vara "application/json".
Använda PUT för att skapa ett Azure Container Registry
Använd METODEN PUT HTTP för att skapa ett nytt 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>'}}"
Här är ett exempel med slutförda parametrar:
# 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-utdata för både Bash och 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"
}
Nu har du skapat ditt nya Azure Container Registry med !az rest
Använda PATCH för att uppdatera Azure Container Registry
Uppdatera Azure Container Registry med hjälp av PATCH HTTP-begäran. Redigera parametern --body
med de egenskaper som du vill uppdatera. I det här exemplet används variablerna som angavs i föregående avsnitt och SKU-namnet ($skuName="Premium") för Azure Container Registry uppdateras.
#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'}}"
Följande JSON-ordlisteutdata innehåller fält som utelämnats för korthet:
{
"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"
}
Använda GET för att hämta ditt Azure Container Registry
Använd GET HTTP-begäran och se uppdateringsresultaten från PATCH-begäran. I det här exemplet används variablerna som angavs i föregående avsnitt.
az rest --method get \
--url https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.ContainerRegistry/registries/$containerRegistryName?api-version=2023-01-01-preview
Utdata för GET-metoden är desamma som de som visas för PUT.
Använd POST för att återskapa dina autentiseringsuppgifter för Azure Container Registry
Använd POST HTTP-begäran för att återskapa en av inloggningsuppgifterna för Azure Container Registry som skapades i den här artikeln.
# 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'}"
Följande JSON-ordlisteutdata innehåller fält som utelämnats för korthet:
{
"passwords": [
{
"name": "password",
"value": "<passwordValue>"
},
{
"name": "password2",
"value": "<passwordValue2>"
}
],
"username": "<containerRegistryName>"
}
När begäran är klar återskapas dina angivna autentiseringsuppgifter för Azure Container Registry med ett nytt lösenord tillsammans med ditt befintliga lösenord (lösenord2).
Använd DELETE för att ta bort ditt Azure Container Registry
Använd HTTP-begäran DELETE för att ta bort ett befintligt 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
Rensa resurser
När du är klar med resurserna som skapats i den här artikeln kan du ta bort resursgruppen. När du tar bort resursgruppen tas alla resurser i resursgruppen bort.
az group delete --resource-group <resourceGroupName>