使用 REST API 自动执行 NetApp Backup and Recovery
使用 NetApp Backup and Recovery REST API 自动执行 Web UI 中可用的备份和还原任务。
NetApp Backup and Recovery 定义了十个端点类别:
-
backup- 管理云和本地资源的备份操作,并检索备份数据详细信息 -
catalog- 根据查询管理对文件的索引目录搜索(搜索和还原) -
cloud- 从NetApp Console检索有关各种云提供商资源的信息 -
job- 管理 NetApp Console 数据库中的作业详细信息条目 -
license- 从 NetApp Console 检索系统许可证状态 -
ransomware scan- 对特定备份文件启动勒索软件扫描 -
restore- 使您能够执行卷、文件和文件夹级别的还原操作 -
sfr- 从备份文件中检索文件以进行单文件级恢复操作(浏览和恢复) -
storagegrid- 检索有关 StorageGRID 服务器的详细信息,并使您能够发现 StorageGRID 服务器 -
system- 管理备份策略并配置与系统关联的目标对象存储
API 参考
每个NetApp Backup and RecoveryAPI 的文档均可从以下位置获取 "NetApp Console自动化,用于NetApp Backup and Recovery"。
入门
要开始使用 NetApp Backup and Recovery API,请获取用户令牌、NetApp Console 帐户 ID 和 Console 代理 ID。
进行 API 调用时,请在 Authorization 标头中包含用户令牌,并在 x-agent-id 标头中包含 Console 代理 ID。在 API 请求中包含 NetApp Console 帐户 ID。
|
|
如果使用服务帐户,请使用服务访问令牌而不是用户令牌。( client_id (Mu0V1ywgYteI6w1MbD15fKfVIUrNXGWC)的值是固定的,无法更改。在此情况下,请按照以下说明操作: "创建服务访问令牌"。
|
-
从 NetApp Console 网站获取用户令牌。
通过以下链接生成刷新令牌:https://services.cloud.netapp.com/refresh-token/。刷新令牌是用于生成用户令牌的字母数字字符串。
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" }'NetApp Console 网站的用户令牌过期。API 响应包括一个 `expires_in`字段,用于指示令牌何时过期。要刷新令牌,请再次调用此 API。 -
获取您的NetApp Console帐户 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此 API 返回如下所示的响应。从 [0].[accountPublicId] 检索帐户 ID。
{ "accountPublicId": "account-i6vJXvZW", "accountName": "rashidn", "isSaas": true, "isGov": false, "isPrivatePreviewEnabled": false, "is3rdPartyServicesEnabled": false, "accountSerial": "96064469711530003565", "userRole": "Role-1" } -
获取 `x-agent-id`标头值,其中包含 Console 代理 ID。
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…………通过解析 occm.[0].[agent].[agentId] 从响应中检索代理 ID。
使用 API 的示例
以下示例显示了使用新策略在系统上激活 NetApp Backup and Recovery 的 API 调用。该策略在 East US 2 Azure 区域具有每日、每小时和每周标签,并在 180 天后进行归档。此请求在系统上启用备份,但不会备份任何卷。
您会看到我们使用NetApp Console帐户 ID account-DpTFcxN3 、控制台代理 ID `iZwFFeVCZjWnzGlw8RgD0QQNANZvpP7Iclients`和用户令牌 `Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik5rSXlPVFUzUWpZek1E…y6nyhBjwkeMwHc4ValobjUmju2x0xUH48g`在此命令中。
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
}
]
}