Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
APIs REST (Representational State Transfer) são pontos de extremidade de serviço que oferecem suporte a diferentes conjuntos de operações (ou métodos) HTTP. Esses métodos HTTP permitem que você execute diferentes ações para os recursos do seu serviço. O comando az rest
só deve ser usado quando um comando existente da CLI do Azure não estiver disponível.
Este artigo demonstra as solicitações HTTP PUT, PATCH, GET, POST e DELETE para gerenciar recursos do Registro de Contêiner do Azure. O Registo de Contentores do Azure é um serviço de registo gerido que permite criar e manter registos de contentores do Azure que armazenam imagens de contentores e artefactos relacionados.
Pré-requisitos
Utilize o ambiente Bash no Azure Cloud Shell. Para mais informações, veja Get started with Azure Cloud Shell.
Se preferir executar comandos de referência da CLI localmente, instale o CLI do Azure. Se estiver a usar Windows ou macOS, considere executar o Azure CLI num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.
Se você estiver usando uma instalação local, entre na CLI do Azure usando o comando az login . Para concluir o processo de autenticação, siga os passos exibidos no seu terminal. Para outras opções de entrada, consulte Autenticar no Azure usando a CLI do Azure.
Quando solicitado, instale a extensão do Azure CLI na primeira utilização. Para obter mais informações sobre extensões, consulte Usar e gerenciar extensões com a CLI do Azure.
Execute az version para descobrir a versão e as bibliotecas dependentes que estão instaladas. Para atualizar para a versão mais recente, execute az upgrade.
Dicas para usar az rest
Aqui estão algumas informações úteis ao trabalhar com az rest:
- O comando
az rest
autentica automaticamente usando a credencial conectada. - Se o cabeçalho Authorization não estiver definido, ele anexará o cabeçalho
Authorization: Bearer <token>
, onde<token>
será recuperado do ID do Microsoft Entra. - O recurso de destino do token será derivado do parâmetro
--url
quando o parâmetro--url
começar com um endpoint da saída do comandoaz cloud show --query endpoints
. O parâmetro--url
é necessário. - Use o parâmetro
--resource
para um recurso personalizado. - Se o cabeçalho Content-Type não estiver definido e
--body
for uma cadeia de caracteres JSON válida, o cabeçalho Content-Type assumirá como padrão "application/json". - Ao usar
--uri-parameters
para solicitações na forma de OData, certifique-se de escapar$
em ambientes diferentes: emBash
, escapar$
como\$
e emPowerShell
, escapar$
como`$
.
Usar PUT para criar um Registro de Contêiner do Azure
Use o método HTTP PUT para criar um novo Registro de Contêiner do 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>'}}"
Aqui está um exemplo com parâmetros concluídos:
# 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'}}"
Saída JSON para Bash e 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"
}
Use PATCH para atualizar seu Registro de Contêiner do Azure
Atualize seu Registro de Contêiner do Azure usando a solicitação HTTP PATCH. Edite o parâmetro --body
com as propriedades que você deseja atualizar. Este exemplo usa as variáveis definidas na seção anterior e atualiza o nome da SKU ($skuName="Premium") do Registro de Contêiner do 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'}}"
A saída do dicionário JSON a seguir tem campos omitidos para brevidade:
{
"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"
}
Use GET para recuperar seu Registro de Contêiner do Azure
Utilize a solicitação HTTP GET para ver os resultados da atualização da solicitação PATCH. Este exemplo usa as variáveis definidas na seção anterior.
az rest --method get \
--url https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.ContainerRegistry/registries/$containerRegistryName?api-version=2023-01-01-preview
A saída para o método GET é a mesma mostrada para PUT.
Use o POST para regenerar suas credenciais do Registro de Contêiner do Azure
Use a solicitação HTTP POST para regenerar uma das credenciais de logon para o Registro de Contêiner do Azure criado neste artigo.
# 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'}"
A saída do dicionário JSON a seguir tem campos omitidos para brevidade:
{
"passwords": [
{
"name": "password",
"value": "<passwordValue>"
},
{
"name": "password2",
"value": "<passwordValue2>"
}
],
"username": "<containerRegistryName>"
}
Depois que a solicitação for concluída, suas credenciais especificadas do Registro de Contêiner do Azure serão regeneradas com uma nova senha junto com sua senha existente (senha2).
Use DELETE para excluir seu Registro de Contêiner do Azure
Use a solicitação HTTP DELETE para excluir um Registro de Contêiner do Azure existente.
az rest --method delete \
--url https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.ContainerRegistry/registries/$containerRegistryName?api-version=2023-01-01-preview
Exemplo de az rest
adicional para o Microsoft Graph
Às vezes, é útil ver um exemplo para um cenário diferente, então aqui está um exemplo que usa o Microsoft Graph API. Para atualizar URIs de redirecionamento para uma Aplicação , chame a API REST de Atualização de Aplicação, como neste código:
# 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"]}}'
Limpeza de recursos
Quando terminar os recursos criados neste artigo, você poderá excluir o grupo de recursos. Quando você exclui o grupo de recursos, todos os recursos desse grupo de recursos são excluídos.
az group delete --resource-group <resourceGroupName>