Skip to main content
Die deutsche Sprachversion wurde als Serviceleistung für Sie durch maschinelle Übersetzung erstellt. Bei eventuellen Unstimmigkeiten hat die englische Sprachversion Vorrang.

Automatisieren Sie NetApp Backup und Recovery mit REST-APIs

Beitragende netapp-mwallis
Änderungen vorschlagen

Die NetApp Backup and Recovery REST API kann zur Automatisierung der in der Web-UI verfügbaren Backup- und Wiederherstellungsaufgaben verwendet werden.

NetApp Backup and Recovery definiert zehn Endpunktkategorien:

  • backup - verwaltet Sicherungsvorgänge für Cloud- und lokale Ressourcen und ruft Details zu Sicherungsdaten ab

  • catalog - verwaltet die Suche nach Dateien im indizierten Katalog anhand einer Abfrage (Suchen & Wiederherstellen)

  • cloud- ruft Informationen zu verschiedenen Cloud-Anbieter-Ressourcen von der NetApp Console ab

  • job - verwaltet Auftragsdetailseinträge in der NetApp Console Datenbank

  • license - Ruft den Systemlizenzstatus von der NetApp Console ab.

  • ransomware scan- initiiert einen Ransomware-Scan für eine bestimmte Sicherungsdatei

  • restore- ermöglicht Ihnen die Durchführung von Wiederherstellungsvorgängen auf Volume-, Datei- und Ordnerebene

  • sfr- Ruft Dateien aus einer Sicherungsdatei für Wiederherstellungsvorgänge auf einzelner Dateiebene ab (Durchsuchen und Wiederherstellen)

  • storagegrid - Ruft Details zu einem StorageGRID Server ab und ermöglicht die Erkennung eines StorageGRID Servers

  • system - verwaltet Datensicherungsstrategien und konfiguriert den zugehörigen Objektspeicher, der einem System zugeordnet ist

API-Referenz

Dokumentation für jede NetApp Backup and Recovery -API ist verfügbar unter "NetApp Console Automatisierung für NetApp Backup and Recovery" .

Erste Schritte

Um mit den NetApp Backup and Recovery APIs zu beginnen, sind ein Benutzertoken, Ihre NetApp Console Account-ID und die Console Agent-ID erforderlich.

Bei API-Aufrufen ist das Benutzertoken im `Authorization`Header und die Console-Agenten-ID im `x-agent-id`Header anzugeben. Die NetApp Console-Konto-ID ist in API-Anfragen einzuschließen.

Hinweis Wenn Sie ein Dienstkonto verwenden, sollte das Dienstzugriffstoken anstelle eines Benutzertokens verwendet werden. Der Wert für client_id (Mu0V1ywgYteI6w1MbD15fKfVIUrNXGWC) ist fest und kann nicht geändert werden. In diesem Fall finden sich die Anweisungen hier: "Erstellen eines Dienstzugriffstokens".
Schritte
  1. Ein Benutzertoken von der NetApp Console-Website erhalten.

    Das Aktualisierungstoken wird über den folgenden Link generiert: https://services.cloud.netapp.com/refresh-token/. Das Aktualisierungstoken ist eine alphanumerische Zeichenfolge, die zur Generierung eines Benutzertokens verwendet wird.

    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"
    }'
    Hinweis Das Benutzertoken der NetApp Console-Website läuft ab. Die API-Antwort enthält ein expires_in Feld, das angibt, wann das Token abläuft. Das Token kann durch erneutes Aufrufen dieser API aktualisiert werden.
  2. Besorgen Sie sich Ihre NetApp Console Konto-ID.

    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

    Diese API gibt eine Antwort wie die folgende zurück. Die Konto-ID ist aus [0].[accountPublicId] zu entnehmen.

    {
      "accountPublicId": "account-i6vJXvZW",
      "accountName": "rashidn",
      "isSaas": true,
      "isGov": false,
      "isPrivatePreviewEnabled": false,
      "is3rdPartyServicesEnabled": false,
      "accountSerial": "96064469711530003565",
      "userRole": "Role-1"
    }
  3. Den `x-agent-id`Header-Wert abrufen, der die Console agent ID enthält.

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

    Die Agenten-ID wird aus der Antwort ermittelt, indem occm.[0].[agent].[agentId] geparst wird.

Beispiel für die Verwendung der APIs

Das folgende Beispiel zeigt einen API-Aufruf, der NetApp Backup and Recovery auf einem System mit einer neuen Richtlinie aktiviert. Die Richtlinie hat tägliche, stündliche und wöchentliche Kennzeichnungen und archiviert nach 180 Tagen in der Azure-Region East US 2. Diese Anfrage aktiviert die Sicherung auf dem System, sichert jedoch keine Volumes.

API-Anforderung

Sie werden sehen, dass wir die NetApp Console Konto-ID verwenden account-DpTFcxN3 , Konsolenagent-ID iZwFFeVCZjWnzGlw8RgD0QQNANZvpP7Iclients und Benutzertoken Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik5rSXlPVFUzUWpZek1E…y6nyhBjwkeMwHc4ValobjUmju2x0xUH48g in diesem Befehl.

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"
    }
  }
Die Antwort enthält eine Job-ID, die überwacht werden kann:
{
 "job-id": "1b34b6f6-8f43-40fb-9a52-485b0dfe893a"
}
Auftragsstatus überwachen:
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'
Antwort:
{
  "job": [
    {
      "id": "1b34b6f6-8f43-40fb-9a52-485b0dfe893a",
      "type": "backup-working-environment",
      "status": "PENDING",
      "error": "",
      "time": 1651852160000
    }
  ]
}
Überwachen, bis <code>der Status</code> <code>ABGESCHLOSSEN</code> ist:
{
  "job": [
    {
      "id": "1b34b6f6-8f43-40fb-9a52-485b0dfe893a",
      "type": "backup-working-environment",
      "status": "COMPLETED",
      "error": "",
      "time": 1651852160000
    }
  ]
}