NetApp Backup and Recovery를 REST API로 자동화합니다
NetApp Backup and Recovery REST API를 사용하여 웹 UI에서 사용할 수 있는 백업 및 복원 작업을 자동화할 수 있습니다.
NetApp Backup and Recovery는 10가지 엔드포인트 범주를 정의합니다.
-
backup- 클라우드 및 온프레미스 리소스에 대한 백업 작업을 관리하고 백업 데이터 세부 정보를 검색합니다. -
catalog- 쿼리를 기반으로 파일에 대한 색인화된 카탈로그 검색을 관리합니다(검색 및 복원). -
cloud- NetApp Console 에서 다양한 클라우드 공급자 리소스에 대한 정보를 검색합니다. -
job- NetApp Console 데이터베이스의 작업 세부 정보 항목을 관리합니다 -
license- NetApp Console에서 시스템 라이선스 상태를 검색합니다. -
ransomware scan- 특정 백업 파일에 대한 랜섬웨어 검사를 시작합니다. -
restore- 볼륨, 파일 및 폴더 수준 복원 작업을 수행할 수 있습니다. -
sfr- 단일 파일 수준 복원 작업(찾아보기 및 복원)을 위해 백업 파일에서 파일을 검색합니다. -
storagegrid- StorageGRID 서버에 대한 세부 정보를 검색하고 StorageGRID 서버를 찾을 수 있도록 합니다. -
system- 백업 정책을 관리하고 시스템과 연결된 대상 오브젝트 저장소를 구성합니다.
API 참조
각 NetApp Backup and Recovery API에 대한 설명서는 다음에서 제공됩니다. "NetApp Backup and Recovery 위한 NetApp Console 자동화" .
시작하기
NetApp Backup and Recovery API를 시작하려면 사용자 토큰, NetApp Console 계정 ID 및 Console 에이전트 ID를 받아야 합니다.
API 호출 시 사용자 토큰을 Authorization 헤더에 포함하고 Console 에이전트 ID를 x-agent-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 호출을 보여줍니다. 이 정책에는 일별, 시간별, 주별 레이블이 있으며, 미국 동부 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
}
]
}