Sdílet prostřednictvím


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

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ýstupu az 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: v Bash, escape $ as \$ a in PowerShell, 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>

Viz také