Použití rozhraní Azure REST API s Azure CLI
Rozhraní REST (Representational State Transfer) API jsou koncové body služby, které podporují různé sady operací HTTP (nebo metod). Tyto metody HTTP umožňují provádět různé akce pro prostředky vaší služby. Tento az rest
příkaz by se měl použít jenom v případě, že není dostupný existující příkaz Azure CLI.
Tento článek ukazuje požadavky PUT, PATCH, GET, POST a DELETE HTTP pro správu prostředků služby Azure Container Registry. Azure Container Registry je spravovaná služba registru, která umožňuje vytvářet a udržovat registry kontejnerů Azure, které ukládají image kontejnerů a související artefakty.
Požadavky
Použijte prostředí Bash v Azure Cloud Shellu. Další informace najdete v tématu Rychlý start pro Bash v Azure Cloud Shellu.
Pokud dáváte přednost místnímu spouštění referenčních příkazů rozhraní příkazového řádku, nainstalujte Azure CLI. Pokud používáte Windows nebo macOS, zvažte spuštění Azure CLI v kontejneru Docker. Další informace najdete v tématu Jak spustit Azure CLI v kontejneru Dockeru.
Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí příkazu az login. Pokud chcete dokončit proces ověřování, postupujte podle kroků zobrazených na terminálu. Další možnosti přihlášení najdete v tématu Přihlášení pomocí Azure CLI.
Po zobrazení výzvy nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Využití rozšíření v Azure CLI.
Spuštěním příkazu az version zjistěte verzi a závislé knihovny, které jsou nainstalované. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.
Tipy pro použití az rest
Tady je několik užitečných informací při práci s az rest:
- Příkaz
az rest
se automaticky ověřuje pomocí přihlašovacích údajů přihlášených. - Pokud autorizační hlavička není nastavená, připojí hlavičku
Authorization: Bearer <token>
, kde<token>
se načte z ID Microsoft Entra. - Cílový prostředek tokenu bude odvozen z parametru
--url
, když--url
parametr začíná koncovým bodem z výstupuaz cloud show --query endpoints
příkazu. Parametr--url
je povinný. --resource
Použijte parametr pro vlastní prostředek.- Pokud hlavička Content-Type není nastavená a
--body
je platným řetězcem JSON, hlavička Content-Type se ve výchozím nastavení nastaví na application/json. - Při použití
--uri-parameters
pro požadavky ve formě OData nezapomeňte utéct$
v různých prostředích: vBash
, escape$
as\$
a inPowerShell
, escape$
as`$
.
Použití PUT k vytvoření služby Azure Container Registry
Pomocí metody PUT HTTP vytvořte novou službu 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>'}}"
Tady je příklad s dokončenými parametry:
# 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'}}"
Výstup JSON pro Bash i 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"
}
Použití funkce PATCH k aktualizaci služby Azure Container Registry
Aktualizujte službu Azure Container Registry pomocí požadavku PATCH HTTP. --body
Upravte parametr s vlastnostmi, které chcete aktualizovat. Tento příklad používá proměnné nastavené v předchozí části a aktualizuje název skladové položky ($skuName="Premium") služby 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'}}"
Následující výstup slovníku JSON obsahuje pole pro stručnost:
{
"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"
}
Načtení služby Azure Container Registry pomocí příkazu GET
Pomocí požadavku GET HTTP zobrazte výsledky aktualizace z požadavku PATCH. V tomto příkladu se používají proměnné nastavené v předchozí části.
az rest --method get \
--url https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.ContainerRegistry/registries/$containerRegistryName?api-version=2023-01-01-preview
Výstup metody GET je stejný jako výstup zobrazený pro PUT.
Použití příkazu POST k opětovnému vygenerování přihlašovacích údajů služby Azure Container Registry
Pomocí požadavku POST HTTP znovu vygenerujte jedno z přihlašovacích údajů pro službu Azure Container Registry vytvořenou v tomto článku.
# 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'}"
Následující výstup slovníku JSON obsahuje pole pro stručnost:
{
"passwords": [
{
"name": "password",
"value": "<passwordValue>"
},
{
"name": "password2",
"value": "<passwordValue2>"
}
],
"username": "<containerRegistryName>"
}
Po dokončení požadavku se zadané přihlašovací údaje služby Azure Container Registry znovu vygenerují s novým heslem spolu s vaším stávajícím heslem (heslo2).
Použití delete k odstranění služby Azure Container Registry
Pomocí požadavku DELETE HTTP odstraňte existující službu 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
Další az rest
příklad pro Microsoft Graph
Někdy to pomůže zobrazit příklad pro jiný scénář, takže tady je příklad, který používá rozhraní Microsoft Graph API. Pokud chcete aktualizovat identifikátory URI přesměrování pro aplikaci, zavolejte rozhraní REST API pro aktualizaci aplikace , jak je znázorněno v tomto kódu:
# 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"]}}'
Vyčištění prostředků
Po dokončení práce s prostředky vytvořenými v tomto článku můžete odstranit skupinu prostředků. Když odstraníte skupinu prostředků, odstraní se všechny prostředky v této skupině prostředků.
az group delete --resource-group <resourceGroupName>