Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
API передачи репрезентативного состояния (REST) — это конечные точки службы, поддерживающие различные наборы операций HTTP (или методов). Эти методы HTTP позволяют выполнять различные действия для ресурсов службы. Команда az rest должна использоваться только в том случае, если существующая команда Azure CLI недоступна.
В этой статье показаны запросы PUT, PATCH, GET, POST и DELETE HTTP для управления ресурсами реестра контейнеров Azure. реестр контейнеров Azure — это управляемая служба реестра, которая позволяет создавать и поддерживать реестры контейнеров Azure, которые хранят образы контейнеров и связанные артефакты.
Предпосылки
Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см. в статье "Начало работы с Azure Cloud Shell".
Если вы предпочитаете запускать справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, подумайте о запуске Azure CLI в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.
Если вы используете локальную установку, войдите в Azure CLI с помощью команды az login . Чтобы завершить процесс аутентификации, следуйте шагам, отображаемым в вашем терминале. Сведения о других параметрах входа см. в статье "Проверка подлинности в Azure с помощью Azure CLI".
Когда вас попросят, установите расширение Azure CLI при первом использовании. Дополнительные сведения о расширениях см. в статье Использование расширений и управление ими с помощью Azure CLI.
Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
Советы по использованию az rest
Ниже приведены полезные сведения при работе с az rest:
- Команда
az restавтоматически проходит проверку подлинности с использованием учетных данных, которые использовались для входа в систему. - Если заголовок авторизации не задан, он присоединяет заголовок
Authorization: Bearer <token>, где<token>извлекается из идентификатора Microsoft Entra. - Целевой ресурс маркера будет определяться из параметра
--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>