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.
A API REST para o serviço Azure NetApp Files define operações HTTP aplicadas a recursos como a conta NetApp, o pool de capacidade, os volumes e instantâneos. Este artigo ajuda você a começar a usar a API REST do Azure NetApp Files.
Especificação da API REST dos Arquivos NetApp do Azure
A especificação da API REST para Arquivos NetApp do Azure é publicada por meio do GitHub:
https://github.com/Azure/azure-rest-api-specs/tree/main/specification/netapp/resource-manager
Considerações
Quando o limite da API foi excedido, o código de resposta HTTP é 429. Por exemplo:
"Microsoft.Azure.ResourceProvider.Common.Exceptions.ResourceProviderException: Error getting Pool. Rate limit exceeded for this endpoint - try again later ---> CloudVolumes.Service.Client.Client.ApiException: Error calling V2DescribePool: {\"code\":429,\"message\":\"Rate limit exceeded for this endpoint - try again later\"}Esse código de resposta pode vir de limitação ou de uma condição temporária. Consulte Código de resposta HTTP 429 do Azure Resource Manager para obter mais informações.
Acessar a API REST dos Arquivos NetApp do Azure
Instale a CLI do Azure se ainda não tiver feito isso.
Crie um principal de serviço no seu Microsoft Entra ID.
Verifique se você tem permissões suficientes.
Insira o seguinte comando na CLI do Azure:
az ad sp create-for-rbac --name $YOURSPNAMEGOESHERE --role Contributor --scopes /subscriptions/{subscription-id}A saída do comando é semelhante ao exemplo a seguir:
{ "appId": "appIDgoeshere", "displayName": "APPNAME", "name": "http://APPNAME", "password": "supersecretpassword", "tenant": "tenantIDgoeshere" }Mantenha a saída do comando. Você vai precisar dos valores
appId,passwordetenant.
Solicite um token de acesso OAuth:
Os exemplos neste artigo usam cURL. Você também pode usar várias ferramentas de API, como Postman, Insomnia e Paw.
Substitua as variáveis no exemplo a seguir pela saída do comando da Etapa 2 acima.
curl -X POST -d 'grant_type=client_credentials&client_id=[APP_ID]&client_secret=[PASSWORD]&resource=https%3A%2F%2Fmanagement.azure.com%2F' https://login.microsoftonline.com/[TENANT_ID]/oauth2/tokenA saída fornece um token de acesso semelhante ao exemplo a seguir:
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Im5iQ3dXMTF3M1hrQi14VWFYd0tSU0xqTUhHUSIsImtpZCI6Im5iQ3dXMTF3M1hrQi14VWFYd0tSU0xqTUhHUSJ9O token exibido é válido por 3600 segundos. Depois disso, você precisa solicitar um novo token. Salve o token em um editor de texto. Você vai precisar dele para o próximo passo.
Envie uma chamada de teste e inclua o token para validar seu acesso à API REST:
curl -X GET -H "Authorization: Bearer [TOKEN]" -H "Content-Type: application/json" https://management.azure.com/subscriptions/[SUBSCRIPTION_ID]/providers/Microsoft.Web/sites?api-version=2022-05-01
Exemplos de uso da API
Este artigo usa a seguinte URL para a linha de base das solicitações. Esta URL aponta para a raiz do namespace de Arquivos NetApp do Azure.
https://management.azure.com/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.NetApp/netAppAccounts?api-version=2022-05-01
Você deve substituir os valores SUBIDGOESHERE e RESOURCEGROUPGOESHERE nos exemplos a seguir por seus próprios valores.
Exemplos de solicitação GET
Você usa uma solicitação GET para consultar objetos dos Arquivos NetApp do Azure em uma assinatura, como mostram os exemplos a seguir:
#get NetApp accounts
curl -X GET -H "Authorization: Bearer TOKENGOESHERE" -H "Content-Type: application/json" https://management.azure.com/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.NetApp/netAppAccounts?api-version=2022-05-01
#get capacity pools for NetApp account
curl -X GET -H "Authorization: Bearer TOKENGOESHERE" -H "Content-Type: application/json" https://management.azure.com/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.NetApp/netAppAccounts/NETAPPACCOUNTGOESHERE/capacityPools?api-version=2022-05-01
#get volumes in NetApp account & capacity pool
curl -X GET -H "Authorization: Bearer TOKENGOESHERE" -H "Content-Type: application/json" https://management.azure.com/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.NetApp/netAppAccounts/NETAPPACCOUNTGOESHERE/capacityPools/CAPACITYPOOLGOESHERE/volumes?api-version=2022-05-01
#get snapshots for a volume
curl -X GET -H "Authorization: Bearer TOKENGOESHERE" -H "Content-Type: application/json" https://management.azure.com/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.NetApp/netAppAccounts/NETAPPACCOUNTGOESHERE/capacityPools/CAPACITYPOOLGOESHERE/volumes/VOLUMEGOESHERE/snapshots?api-version=2022-05-01
Exemplos de solicitação PUT
Você usa uma solicitação PUT para criar novos objetos nos Arquivos NetApp do Azure, como mostram os exemplos a seguir. O corpo da solicitação PUT pode incluir os dados formatados em JSON para as alterações. Deve ser incluído no comando curl como texto ou referenciado como um ficheiro. Para referenciar o corpo como um ficheiro, guarde o exemplo JSON num ficheiro e adicione -d @<filename> ao comando curl.
#create a NetApp account
curl -d @<filename> -X PUT -H "Authorization: Bearer TOKENGOESHERE" -H "Content-Type: application/json" https://management.azure.com/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.NetApp/netAppAccounts/NETAPPACCOUNTGOESHERE?api-version=2022-05-01
#create a capacity pool
curl -d @<filename> -X PUT -H "Authorization: Bearer TOKENGOESHERE" -H "Content-Type: application/json" https://management.azure.com/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.NetApp/netAppAccounts/NETAPPACCOUNTGOESHERE/capacityPools/CAPACITYPOOLGOESHERE?api-version=2022-05-01
#create a volume
curl -d @<filename> -X PUT -H "Authorization: Bearer TOKENGOESHERE" -H "Content-Type: application/json" https://management.azure.com/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.NetApp/netAppAccounts/NETAPPACCOUNTGOESHERE/capacityPools/CAPACITYPOOLGOESHERE/volumes/MYNEWVOLUME?api-version=2022-05-01
#create a volume snapshot
curl -d @<filename> -X PUT -H "Authorization: Bearer TOKENGOESHERE" -H "Content-Type: application/json" https://management.azure.com/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.NetApp/netAppAccounts/NETAPPACCOUNTGOESHERE/capacityPools/CAPACITYPOOLGOESHERE/volumes/MYNEWVOLUME/Snapshots/SNAPNAME?api-version=2022-05-01
Exemplos de JSON
O exemplo a seguir mostra como criar uma conta NetApp:
{
"name": "MYNETAPPACCOUNT",
"type": "Microsoft.NetApp/netAppAccounts",
"location": "westus2",
"properties": {
"name": "MYNETAPPACCOUNT"
}
}
O exemplo a seguir mostra como criar um pool de capacidade:
{
"name": "MYNETAPPACCOUNT/POOLNAME",
"type": "Microsoft.NetApp/netAppAccounts/capacityPools",
"location": "westus2",
"properties": {
"name": "POOLNAME",
"size": "4398046511104",
"serviceLevel": "Premium"
}
}
O exemplo a seguir mostra como criar um novo volume. (O protocolo padrão para o volume é NFSV3.)
{
"name": "MYNEWVOLUME",
"type": "Microsoft.NetApp/netAppAccounts/capacityPools/volumes",
"location": "westus2",
"properties": {
"serviceLevel": "Premium",
"usageThreshold": "322122547200",
"creationToken": "MY-FILEPATH",
"snapshotId": "",
"subnetId": "/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.Network/virtualNetworks/VNETGOESHERE/subnets/MYDELEGATEDSUBNET.sn"
}
}
O exemplo a seguir mostra como criar um instantâneo de um volume:
{
"name": "apitest2/apiPool01/apiVol01/snap02",
"type": "Microsoft.NetApp/netAppAccounts/capacityPools/Volumes/Snapshots",
"location": "westus2",
"properties": {
"name": "snap02",
"fileSystemId": "0168704a-bbec-da81-2c29-503825fe7420"
}
}
Observação
Você precisa especificar fileSystemId para criar um instantâneo. Você pode obter o fileSystemId valor com uma solicitação GET para um volume.