Automatisieren Sie NetApp Backup und Recovery mit REST-APIs
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.
|
|
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".
|
-
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" }'Das Benutzertoken der NetApp Console-Website läuft ab. Die API-Antwort enthält ein expires_inFeld, das angibt, wann das Token abläuft. Das Token kann durch erneutes Aufrufen dieser API aktualisiert werden. -
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 eyJhbGciOiJSUzI1NiIsInRDiese 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" } -
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.
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"
}
}
{
"job-id": "1b34b6f6-8f43-40fb-9a52-485b0dfe893a"
}
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'
{
"job": [
{
"id": "1b34b6f6-8f43-40fb-9a52-485b0dfe893a",
"type": "backup-working-environment",
"status": "PENDING",
"error": "",
"time": 1651852160000
}
]
}
{
"job": [
{
"id": "1b34b6f6-8f43-40fb-9a52-485b0dfe893a",
"type": "backup-working-environment",
"status": "COMPLETED",
"error": "",
"time": 1651852160000
}
]
}