Skip to main content
NetApp Backup and Recovery
Tous les fournisseurs de cloud
  • Amazon Web Services
  • Google Cloud
  • Microsoft Azure
  • Tous les fournisseurs de cloud
La version française est une traduction automatique. La version anglaise prévaut sur la française en cas de divergence.

Automatisez avec les API REST de sauvegarde et de récupération NetApp

Contributeurs netapp-mwallis

Les fonctionnalités de sauvegarde et de récupération NetApp disponibles via l’interface utilisateur Web sont également disponibles via l’API RESTful.

Il existe dix catégories de points de terminaison définis dans NetApp Backup and Recovery :

  • sauvegarde - gère les opérations de sauvegarde des ressources cloud et sur site et récupère les détails des données de sauvegarde

  • catalogue - gère la recherche de fichiers dans le catalogue indexé en fonction d'une requête (Recherche et restauration)

  • cloud - récupère des informations sur diverses ressources de fournisseurs de cloud à partir de la console NetApp

  • tâche - gère les entrées de détails de la tâche dans la base de données de la console NetApp

  • licence - récupère la validité de la licence des systèmes à partir de la console NetApp

  • analyse de ransomware - lance une analyse de ransomware sur un fichier de sauvegarde spécifique

  • restaurer - vous permet d'effectuer des opérations de restauration au niveau du volume, du fichier et du dossier

  • sfr - récupère les fichiers d'un fichier de sauvegarde pour les opérations de restauration au niveau d'un fichier unique (Parcourir et restaurer)

  • storagegrid - récupère les détails d'un serveur StorageGRID et vous permet de découvrir un serveur StorageGRID

  • système - gère les politiques de sauvegarde et configure le magasin d'objets de destination associé à un système

Référence API

La documentation de chaque API de sauvegarde et de récupération NetApp est disponible à partir de "Automatisation de la console NetApp pour la sauvegarde et la récupération NetApp" .

Commencer

Pour commencer à utiliser les API de sauvegarde et de récupération NetApp , vous devez obtenir un jeton utilisateur, votre ID de compte de console NetApp et l'ID de l'agent de console.

Lors des appels d'API, vous ajouterez le jeton utilisateur dans l'en-tête d'autorisation et l'ID de l'agent de la console dans l'en-tête x-agent-id. Vous devez utiliser l’ID de compte de la console NetApp dans les API.

Remarque Si vous utilisez un compte de service, vous devez utiliser le jeton d’accès au service au lieu d’un jeton utilisateur. La valeur de « client_id » (« Mu0V1ywgYteI6w1MbD15fKfVIUrNXGWC ») est une valeur fixe et ne peut pas être modifiée. Dans ce cas, suivez les instructions ici : "Créer un jeton d'accès au service" .
Étapes
  1. Obtenez un jeton utilisateur à partir du site Web NetApp NetApp Console.

    Assurez-vous de générer le jeton d'actualisation à partir du lien suivant : https://services.cloud.netapp.com/refresh-token/. Le jeton d'actualisation est une chaîne alphanumérique que vous utiliserez pour générer un jeton utilisateur.

    curl --location --request POST 'https://netapp-cloud-account.auth0.com/oauth/token?=' \
    --header 'Content-Type: application/json' \
    -d '{
        "grant_type": "refresh_token",
        "refresh_token": "JxaVHn9cGkX92aPVCkhat3zxxxxxwsC9qMl_pLHkZtsVA",
        "client_id": "Mu0V1ywgYteI6w1MbD15fKfVIUrNXGWC"
    }'
    Remarque Le jeton utilisateur du site Web de la console NetApp a une date d’expiration. La réponse de l'API inclut un champ « expires_in » qui indique quand le jeton expire. Pour actualiser le jeton, vous devrez appeler à nouveau cette API.
  2. Obtenez votre ID de compte NetApp Console.

    GET 'https://api.bluexp.netapp.com/tenancy/account' -H 'authority: api.bluexp.netapp.com'
    Header:
    -H 'accept: application/json'
    -H 'accept-language: en-GB,en;q=0.9'
    -H 'authorization: Bearer eyJhbGciOiJSUzI1NiIsInR………

    Cette API renverra une réponse comme celle-ci. Vous pouvez récupérer l'ID de compte en analysant la sortie de [0].[ accountPublicId].

     [{"accountPublicId":"account-i6vJXvZW","accountName":"rashidn","isSaas":true,"isGov":false,"isPrivatePreviewEnabled":false,"is3rdPartyServicesEnabled":false,"accountSerial":"96064469711530003565","userRole":"Role-1"}………
    . Obtenez le x-agent-id qui contient l'ID de l'agent de la console.
    GET curl 'https://api.services.cloud.netapp.com/occm/list-occms/account-OOnAR4ZS?excludeStandalone=true&source=saas' \
    Header:
      -H 'authority: api.services.cloud.netapp.com' \
      -H 'accept: application/json' \
      -H 'accept-language: en-GB,en;q=0.9' \
      -H 'authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5…………

    Cette API renverra une réponse comme celle-ci. Vous pouvez récupérer l'ID de l'agent en analysant la sortie de occm.[0].[agent].[agentId].

    {"occms":[{"account":"account-OOnAR4ZS","accountName":"cbs","occm":"imEdsEW4HyYTFbt8ZcNKTKDF05jMIe6Z","agentId":"imEdsEW4HyYTFbt8ZcNKTKDF05jMIe6Z","status":"ready","occmName":"cbsgcpdevcntsg-asia","primaryCallbackUri":"http://34.93.197.21","manualOverrideUris":[],"automaticCallbackUris":["http://34.93.197.21","http://34.93.197.21/occmui","https://34.93.197.21","https://34.93.197.21/occmui","http://10.138.0.16","http://10.138.0.16/occmui","https://10.138.0.16","https://10.138.0.16/occmui","http://localhost","http://localhost/occmui","http://localhost:1337","http://localhost:1337/occmui","https://localhost","https://localhost/occmui","https://localhost:1337","https://localhost:1337/occmui"],"createDate":"1652120369286","agent":{"useDockerInfra":true,"network":"default","name":"cbsgcpdevcntsg-asia","agentId":"imEdsEW4HyYTFbt8ZcNKTKDF05jMIe6Zclients","provider":"gcp","systemId":"a3aa3578-bfee-4d16-9e10-

Exemple d'utilisation des API

L'exemple suivant montre un appel d'API pour activer NetApp Backup and Recovery sur un système avec une nouvelle stratégie qui a des étiquettes quotidiennes, horaires et hebdomadaires définies, l'archivage après les jours étant défini sur 180 jours, dans la région East-US-2 dans le cloud Azure. Notez que cela active uniquement la sauvegarde sur le système, mais aucun volume n'est sauvegardé.

Demande d'API

Vous verrez que nous utilisons l'ID de compte de la console NetApp account-DpTFcxN3 , ID de l'agent de la console iZwFFeVCZjWnzGlw8RgD0QQNANZvpP7Iclients , et le jeton utilisateur Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik5rSXlPVFUzUWpZek1E…y6nyhBjwkeMwHc4ValobjUmju2x0xUH48g dans cette commande.

curl --location --request POST 'https://api.bluexp.netapp.com/account/account-DpTFcxN3/providers/cloudmanager_cbs/api/v3/backup/working-environment/VsaWorkingEnvironment-99hPYEgk' \
--header 'x-agent-id: iZwFFeVCZjWnzGlw8RgD0QQNANZvpP7Iclients' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik5rSXlPVFUzUWpZek1E…y6nyhBjwkeMwHc4ValobjUmju2x0xUH48g' \
--data-raw '{
    "provider":"AZURE",
    "backup-policy": {
      "archive-after-days": 180,
      "rule": [
        {
          "label": "hourly",
          "retention": "2"
        },
        {
          "label": "daily",
          "retention": "30"
        },
        {
          "label": "weekly",
          "retention": "52"
        }
      ]
    },
    "ip-space": "Default",
    "region": "eastus2",
    "azure": {
      "resource-group": "rn-test-backup-rg",
      "subscription": "3beb4dd0-25d4-464f-9bb0-303d7cf5c0c2"
    }
  }'
La réponse est un identifiant de tâche que vous pouvez ensuite surveiller.
{
 "job-id": "1b34b6f6-8f43-40fb-9a52-485b0dfe893a"
}
Surveillez la réponse.
curl --location --request GET 'https://api.bluexp.netapp.com/account/account-DpTFcxN3/providers/cloudmanager_cbs/api/v1/job/1b34b6f6-8f43-40fb-9a52-485b0dfe893a' \
--header 'x-agent-id: iZwFFeVCZjWnzGlw8RgD0QQNANZvpP7Iclients' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik5rSXlPVFUzUWpZek1E…hE9ss2NubK6wZRHUdSaORI7JvcOorUhJ8srqdiUiW6MvuGIFAQIh668of2M3dLbhVDBe8BBMtsa939UGnJx7Qz6Eg'
Réponse.
{
    "job": [
        {
            "id": "1b34b6f6-8f43-40fb-9a52-485b0dfe893a",
            "type": "backup-working-environment",
            "status": "PENDING",
            "error": "",
            "time": 1651852160000
        }
    ]
}
Surveillez jusqu'à ce que le « statut » soit « TERMINÉ ».
{
    "job": [
        {
            "id": "1b34b6f6-8f43-40fb-9a52-485b0dfe893a",
            "type": "backup-working-environment",
            "status": "COMPLETED",
            "error": "",
            "time": 1651852160000
        }
    ]
}