Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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 fazer referência ao corpo como um arquivo, salve o exemplo json em um arquivo 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.