Partager via


Développer pour Azure NetApp Files avec l’API REST

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

  1. Installez Azure CLI si vous ne l’avez pas déjà fait.

  2. Créez un principal de service dans votre ID Microsoft Entra :

    1. Vérifiez que vous disposez des autorisations suffisantes.

    2. 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, passwordet tenant des appIdvaleurs.

  3. 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/token
    

    La sortie fournit un jeton d’accès similaire à l’exemple suivant :

    eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Im5iQ3dXMTF3M1hrQi14VWFYd0tSU0xqTUhHUSIsImtpZCI6Im5iQ3dXMTF3M1hrQi14VWFYd0tSU0xqTUhHUSJ9

    Le 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.

  4. 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.

Étapes suivantes