Automatisieren Sie mit NetApp Backup und Recovery REST APIs
Die über die Web-Benutzeroberfläche verfügbaren NetApp Backup and Recovery -Funktionen sind auch über die Backup- und Recovery-REST-API verfügbar.
In NetApp Backup and Recovery sind zehn Endpunktkategorien definiert:
-
backup
- verwaltet Sicherungsvorgänge von Cloud- und lokalen Ressourcen und ruft Details der Sicherungsdaten ab -
catalog
- verwaltet die indizierte Katalogsuche nach Dateien basierend auf einer Abfrage (Suchen und Wiederherstellen) -
cloud
- ruft Informationen zu verschiedenen Cloud-Anbieter-Ressourcen von der NetApp Console ab -
job
- verwaltet Jobdetaileinträge in der NetApp Console Datenbank -
license
- ruft die Lizenzgültigkeit der Systeme 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 Ihnen, einen StorageGRID -Server zu erkennen -
system
- verwaltet die Sicherungsrichtlinien und konfiguriert den Zielobjektspeicher, der einem System zugeordnet ist
API-Referenz
Dokumentation für jede NetApp Backup- und Recovery-API ist verfügbar unter "NetApp Console-Automatisierung für NetApp Backup und Recovery" .
Erste Schritte
Um mit den NetApp Backup- und Recovery-APIs zu beginnen, benötigen Sie ein Benutzertoken, Ihre NetApp Konsolenkonto-ID und die Konsolenagent-ID.
Wenn Sie API-Aufrufe tätigen, fügen Sie das Benutzertoken im Autorisierungsheader und die Konsolenagent-ID im x-agent-id-Header hinzu. Sie sollten die NetApp Konsolenkonto-ID in den APIs verwenden.
|
Wenn Sie ein Dienstkonto verwenden, sollten Sie anstelle eines Benutzertokens das Dienstzugriffstoken verwenden. Der Wert für „client_id“ („Mu0V1ywgYteI6w1MbD15fKfVIUrNXGWC“) ist ein fester Wert und kann nicht geändert werden. Befolgen Sie in diesem Fall die Anweisungen hier: "Erstellen eines Dienstzugriffstokens" . |
-
Besorgen Sie sich ein Benutzertoken von der NetApp - Konsolen-Website.
Stellen Sie sicher, dass Sie das Aktualisierungstoken über den folgenden Link generieren: https://services.cloud.netapp.com/refresh-token/. Das Aktualisierungstoken ist eine alphanumerische Zeichenfolge, die Sie zum Generieren eines Benutzertokens verwenden.
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 von der NetApp -Konsolenwebsite hat ein Ablaufdatum. Die API-Antwort enthält ein Feld „expires_in“, das angibt, wann das Token abläuft. Um das Token zu aktualisieren, müssen Sie diese API erneut aufrufen. -
Besorgen Sie sich Ihre NetApp Konsolen-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. Sie können die Konto-ID abrufen, indem Sie die Ausgabe von [0].[ accountPublicId] analysieren.
{ "accountPublicId": "account-i6vJXvZW", "accountName": "rashidn", "isSaas": true, "isGov": false, "isPrivatePreviewEnabled": false, "is3rdPartyServicesEnabled": false, "accountSerial": "96064469711530003565", "userRole": "Role-1" }
-
Rufen Sie die X-Agent-ID ab, die die Konsolen-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…………
Sie können die Agenten-ID aus der Antwort abrufen, indem Sie die Ausgabe von occm.[0].[agent].[agentId] analysieren.
Beispiel für die Verwendung der APIs
Das folgende Beispiel zeigt einen API-Aufruf zum Aktivieren von NetApp Backup and Recovery auf einem System mit einer neuen Richtlinie, in der tägliche, stündliche und wöchentliche Beschriftungen festgelegt sind und die Archivierung nach 180 Tagen in der Region „East-US-2“ in der Azure-Cloud erfolgt. Beachten Sie, dass hierdurch nur die Sicherung auf dem System aktiviert wird, jedoch keine Volumes gesichert werden.
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
}
]
}