Skip to main content
NetApp Backup and Recovery
La versione in lingua italiana fornita proviene da una traduzione automatica. Per eventuali incoerenze, fare riferimento alla versione in lingua inglese.

Automatizza NetApp Backup and Recovery con le API REST

Collaboratori netapp-mwallis

Usa la NetApp Backup and Recovery REST API per automatizzare le attività di backup e ripristino disponibili nell'interfaccia utente web.

NetApp Backup e ripristino definisce dieci categorie di endpoint:

  • backup - gestisce le operazioni di backup per le risorse cloud e on-premises e recupera i dettagli dei dati di backup

  • catalog - Gestisce le ricerche di file nel catalogo indicizzato in base a una query (Ricerca e ripristino)

  • cloud- recupera informazioni sulle varie risorse del provider cloud dalla NetApp Console

  • job - gestisce le voci dei dettagli del lavoro nel database NetApp Console

  • license - recupera lo stato della licenza di sistema dalla NetApp Console

  • ransomware scan- avvia una scansione ransomware su uno specifico file di backup

  • restore- consente di eseguire operazioni di ripristino a livello di volume, file e cartella

  • sfr- recupera i file da un file di backup per operazioni di ripristino a livello di singolo file (Sfoglia e ripristina)

  • storagegrid - recupera i dettagli su un server StorageGRID e ti consente di scoprire un server StorageGRID

  • system - gestisce le policy di backup e configura la destinazione archivio di oggetti associata a un sistema

Riferimento API

La documentazione per ciascuna API NetApp Backup and Recovery è disponibile da "Automazione NetApp Console per NetApp Backup and Recovery" .

Iniziare

Per iniziare a utilizzare le API di NetApp Backup and Recovery, ottieni un token utente, il tuo ID account NetApp Console e l'ID dell'agente Console.

Quando effettui chiamate API, includi il token utente nell'intestazione Authorization e l'ID agente della Console nell'intestazione x-agent-id. Includi l'ID account della NetApp Console nelle richieste API.

Nota Se usi un account di servizio, usa il token di accesso al servizio invece di un token utente. Il valore per client_id (Mu0V1ywgYteI6w1MbD15fKfVIUrNXGWC) è fisso e non può essere modificato. In questo caso, segui le istruzioni qui: "Crea un token di accesso al servizio".
Passi
  1. Ottieni un token utente dal sito web della NetApp Console.

    Genera il refresh token dal seguente link: https://services.cloud.netapp.com/refresh-token/. Il refresh token è una stringa alfanumerica che utilizzi per generare un token utente.

    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"
    }'
    Nota Il token utente dal sito web della NetApp Console scade. La risposta dell'API include un campo expires_in che indica quando il token scade. Per aggiornare il token, richiama di nuovo questa API.
  2. Ottieni l'ID del tuo account 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

    Questa API restituisce una risposta simile alla seguente. Recupera l'ID dell'account da [0].[accountPublicId].

    {
      "accountPublicId": "account-i6vJXvZW",
      "accountName": "rashidn",
      "isSaas": true,
      "isGov": false,
      "isPrivatePreviewEnabled": false,
      "is3rdPartyServicesEnabled": false,
      "accountSerial": "96064469711530003565",
      "userRole": "Role-1"
    }
  3. Ottieni il `x-agent-id`valore dell'intestazione, che contiene l'ID dell'agente della Console.

    GET '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…………

    Recupera l'ID dell'agente dalla risposta analizzando occm.[0].[agent].[agentId].

Esempio utilizzando le API

L'esempio seguente mostra una chiamata API che attiva NetApp Backup and Recovery su un sistema con una nuova policy. La policy prevede etichette giornaliere, orarie e settimanali e archivia dopo 180 giorni nella regione East US 2 di Azure. Questa richiesta abilita il backup sul sistema, ma non esegue il backup di alcun volume.

Richiesta API

Vedrai che utilizziamo l'ID account NetApp Console account-DpTFcxN3 , ID agente console iZwFFeVCZjWnzGlw8RgD0QQNANZvpP7Iclients e token utente Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik5rSXlPVFUzUWpZek1E…y6nyhBjwkeMwHc4ValobjUmju2x0xUH48g in questo comando.

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 risposta include un job ID che puoi monitorare:
{
 "job-id": "1b34b6f6-8f43-40fb-9a52-485b0dfe893a"
}
Monitora lo stato del job:
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'
Risposta:
{
  "job": [
    {
      "id": "1b34b6f6-8f43-40fb-9a52-485b0dfe893a",
      "type": "backup-working-environment",
      "status": "PENDING",
      "error": "",
      "time": 1651852160000
    }
  ]
}
Monitora fino a quando lo <code>stato</code> è <code>COMPLETATO</code>:
{
  "job": [
    {
      "id": "1b34b6f6-8f43-40fb-9a52-485b0dfe893a",
      "type": "backup-working-environment",
      "status": "COMPLETED",
      "error": "",
      "time": 1651852160000
    }
  ]
}