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.
Den här artikeln visar PUT-, PATCH-, GET-, POST- och DELETE HTTP-begäranden 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.
Tips för att använda az rest
Här är användbar information när du arbetar med az rest:
- Kommandot
az rest
autentiserar automatiskt med hjälp av loggade autentiseringsuppgifter. - Om auktoriseringsrubriken inte har angetts bifogas rubriken
Authorization: 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. Den--url
parameter som krävs. - 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". - När du använder
--uri-parameters
för begäranden i form av OData, se till att fly$
i olika miljöer: iBash
, escape$
as\$
och inPowerShell
, escape$
as`$
.
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"
}
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
Ytterligare az rest
exempel för Microsoft Graph
Ibland hjälper det att se ett exempel för ett annat scenario, så här är ett exempel som använder Microsoft Graph API. Om du vill uppdatera omdirigerings-URI:er för ett program anropar du REST-API:et för uppdateringsprogrammet , som i den här koden:
# 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"]}}'
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>
Se även
- Azure REST API-referens
- az resource command