Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’API REST pour le service Azure NetApp Files définit des opérations HTTP sur des ressources telles que le compte NetApp, le pool de capacités, les volumes et les instantanés. Cet article vous aide à commencer à utiliser l’API REST Azure NetApp Files.
Spécification de l’API REST Azure NetApp Files
La spécification de l’API REST pour Azure NetApp Files est publiée via GitHub :
https://github.com/Azure/azure-rest-api-specs/tree/main/specification/netapp/resource-manager
Considérations
Lorsque la limite d’API a été dépassée, le code de réponse HTTP est 429. Par exemple:
"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\"}Ce code de réponse peut provenir de la limitation ou d’une condition temporaire. Pour plus d’informations, consultez le code de réponse HTTP 429 HTTP 429 .
Accéder à l’API REST Azure NetApp Files
Installez Azure CLI si vous ne l’avez pas déjà fait.
Créez un principal de service dans votre ID Microsoft Entra :
Vérifiez que vous disposez des autorisations suffisantes.
Entrez la commande suivante dans Azure CLI :
az ad sp create-for-rbac --name $YOURSPNAMEGOESHERE --role Contributor --scopes /subscriptions/{subscription-id}La sortie de commande est similaire à l’exemple suivant :
{ "appId": "appIDgoeshere", "displayName": "APPNAME", "name": "http://APPNAME", "password": "supersecretpassword", "tenant": "tenantIDgoeshere" }Conservez la sortie de la commande. Vous aurez besoin des valeurs,
passwordettenantdesappIdvaleurs.
Demandez un jeton d’accès OAuth :
Les exemples de cet article utilisent cURL. Vous pouvez également utiliser différents outils d’API tels que Postman, Insomnie et Paw.
Remplacez les variables de l’exemple suivant par la sortie de commande de l’étape 2 ci-dessus.
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/tokenLa sortie fournit un jeton d’accès similaire à l’exemple suivant :
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Im5iQ3dXMTF3M1hrQi14VWFYd0tSU0xqTUhHUSIsImtpZCI6Im5iQ3dXMTF3M1hrQi14VWFYd0tSU0xqTUhHUSJ9Le jeton affiché est valide pendant 3600 secondes. Après cela, vous devez demander un nouveau jeton. Enregistrez le jeton dans un éditeur de texte. Vous en aurez besoin pour l’étape suivante.
Envoyez un appel de test et incluez le jeton pour valider votre accès à l’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
Exemples utilisant l’API
Cet article utilise l’URL suivante pour la base de référence des requêtes. Cette URL pointe vers la racine de l’espace de noms Azure NetApp Files.
https://management.azure.com/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.NetApp/netAppAccounts?api-version=2022-05-01
Vous devez remplacer les valeurs et RESOURCEGROUPGOESHERE les SUBIDGOESHERE valeurs dans les exemples suivants par vos propres valeurs.
Exemples de requêtes GET
Vous utilisez une requête GET pour interroger des objets d’Azure NetApp Files dans un abonnement, comme le montrent les exemples suivants :
#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
Exemples de requêtes PUT
Vous utilisez une demande PUT pour créer des objets dans Azure NetApp Files, comme le montrent les exemples suivants. Le corps de la requête PUT peut inclure les données au format JSON pour les modifications. Elle doit être incluse dans la commande curl sous forme de texte ou de références en tant que fichier. Pour référencer le corps en tant que fichier, enregistrez l’exemple json dans un fichier et ajoutez -d @<filename> à la commande 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
Exemples JSON
L’exemple suivant montre comment créer un compte NetApp :
{
"name": "MYNETAPPACCOUNT",
"type": "Microsoft.NetApp/netAppAccounts",
"location": "westus2",
"properties": {
"name": "MYNETAPPACCOUNT"
}
}
L’exemple suivant montre comment créer un pool de capacités :
{
"name": "MYNETAPPACCOUNT/POOLNAME",
"type": "Microsoft.NetApp/netAppAccounts/capacityPools",
"location": "westus2",
"properties": {
"name": "POOLNAME",
"size": "4398046511104",
"serviceLevel": "Premium"
}
}
L’exemple suivant montre comment créer un volume. (Le protocole par défaut pour le volume est 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"
}
}
L’exemple suivant montre comment créer un instantané d’un volume :
{
"name": "apitest2/apiPool01/apiVol01/snap02",
"type": "Microsoft.NetApp/netAppAccounts/capacityPools/Volumes/Snapshots",
"location": "westus2",
"properties": {
"name": "snap02",
"fileSystemId": "0168704a-bbec-da81-2c29-503825fe7420"
}
}
Note
Vous devez spécifier fileSystemId la création d’un instantané. Vous pouvez obtenir la fileSystemId valeur avec une requête GET vers un volume.