Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
API передачи репрезентативного состояния (REST) — это конечные точки службы, поддерживающие различные наборы операций HTTP (или методов). Эти методы HTTP позволяют выполнять различные действия для ресурсов службы. Команда az rest
должна использоваться только в том случае, если существующая команда Azure CLI недоступна.
В этой статье показаны запросы PUT, PATCH, GET, POST и DELETE HTTP для управления ресурсами реестра контейнеров Azure. реестр контейнеров Azure — это управляемая служба реестра, которая позволяет создавать и поддерживать реестры контейнеров Azure, которые хранят образы контейнеров и связанные артефакты.
Предпосылки
Используйте среду Bash в Azure Cloud Shell. Для получения дополнительной информации см. краткое руководство по Bash в Azure Cloud Shell.
Если вы предпочитаете запускать справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, попробуйте запустить Azure CLI в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.
Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы завершить процесс проверки подлинности, выполните действия, отображаемые в терминале. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.
Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.
Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
Советы по использованию az rest
Ниже приведены полезные сведения при работе с az rest:
- Команда
az rest
автоматически проходит проверку подлинности с использованием учетных данных, которые использовались для входа в систему. - Если заголовок авторизации не задан, добавляется заголовок
Authorization: Bearer <token>
, где<token>
извлекается из Microsoft Entra ID. - Целевой ресурс маркера будет определяться из параметра
--url
, когда параметр--url
начинается с конечной точки выходных данных командыaz cloud show --query endpoints
. Параметр--url
обязателен. - Используйте параметр
--resource
для пользовательского ресурса. - Если заголовок Content-Type не задан и
--body
является допустимой строкой JSON, заголовок Content-Type по умолчанию будет иметь значение application/json. - При использовании
--uri-parameters
для запросов в формате OData обязательно используйте экранирование$
в разных средах: вBash
экранируйте$
как\$
, а вPowerShell
экранируйте$
как`$
.
Создание реестра контейнеров Azure с помощью PUT
Используйте метод PUT HTTP для создания нового реестра контейнеров Azure.
# 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>'}}"
Ниже приведен пример с завершенными параметрами:
# 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 для Bash и 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"
}
Обновление реестра контейнеров Azure с помощью PATCH
Обновите реестр контейнеров Azure с помощью HTTP-запроса PATCH. Измените параметр --body
, указав свойства, которые вы хотите обновить. В этом примере используются переменные, заданные в предыдущем разделе, и обновляется имя SKU ($skuName="Премиум") реестра контейнеров Azure.
#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'}}"
Следующие выходные данные словаря JSON содержат поля, которые опущены для краткости:
{
"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"
}
Получение реестра контейнеров Azure с помощью GET
Используйте HTTP-запрос GET, чтобы просмотреть результаты обновления из запроса PATCH. В этом примере используются переменные, заданные в предыдущем разделе.
az rest --method get \
--url https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.ContainerRegistry/registries/$containerRegistryName?api-version=2023-01-01-preview
Выходные данные метода GET совпадают с результатом, показанным для PUT.
Использование POST для повторного создания учетных данных реестра контейнеров Azure
Используйте HTTP-запрос POST для повторного создания одного из учетных данных входа для реестра контейнеров Azure, созданного в этой статье.
# 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'}"
Следующие выходные данные словаря JSON содержат поля, которые опущены для краткости:
{
"passwords": [
{
"name": "password",
"value": "<passwordValue>"
},
{
"name": "password2",
"value": "<passwordValue2>"
}
],
"username": "<containerRegistryName>"
}
После завершения запроса указанные учетные данные реестра контейнеров Azure будут повторно созданы с новым паролем вместе с существующим паролем (password2).
Удаление реестра контейнеров Azure с помощью DELETE
Используйте HTTP-запрос DELETE для удаления существующего реестра контейнеров Azure.
az rest --method delete \
--url https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.ContainerRegistry/registries/$containerRegistryName?api-version=2023-01-01-preview
Дополнительный пример az rest
для Microsoft Graph
Иногда это помогает просмотреть пример для другого сценария, поэтому ниже приведен пример использования API Microsoft Graph. Чтобы обновить URI перенаправления для приложения, вызовите REST API обновления приложения, как показано в следующем коде.
# 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"]}}'
Очистка ресурсов
После завершения работы с ресурсами, созданными в этой статье, можно удалить группу ресурсов. При удалении группы ресурсов все ресурсы в этой группе ресурсов удаляются.
az group delete --resource-group <resourceGroupName>