이 문서에서는 REST API를 통해 스토리지 계정에서 Blob의 백업을 구성하는 방법을 설명합니다. Blob 백업은 스토리지 계정 수준에서 구성됩니다.
Azure Backup을 사용하면 스토리지 계정의 블록 Blob을 보호하기 위한 백업을 쉽게 구성할 수 있습니다. Azure Backup을 사용하여 스토리지 계정의 블록 Blob을 보호하기 위해 운영 및 자격 증명 모음 백업을 수행할 수 있습니다.
Azure Blob 지역 가용성, 지원되는 시나리오 및 제한 사항에 대해 알아봅니 다.
필수 조건
REST API를 사용하여 스토리지 계정에 Blob을 백업하기 전에 다음을 확인합니다.
백업 구성
자격 증명 모음 및 정책을 만든 후에는 스토리지 계정 내의 모든 Azure Blob을 보호하기 위해 두 가지 중요한 사항을 고려해야 합니다.
- 주요 엔터티
- 사용 권한
주요 엔터티
백업 구성의 경우 관련된 다음 주요 엔터티를 검토합니다.
보호할 Blob이 포함된 스토리지 계정: 보호할 Blob이 포함된 스토리지 계정의 Azure Resource Manager ID를 가져옵니다. 스토리지 계정의 식별자로 사용됩니다.
예를 들어 RG-BlobBackup, 다른 구독 및 미국 서부 리소스 그룹에 있는 msblobbackup이라는 스토리지 계정을 사용합니다.
"/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/RG-BlobBackup/providers/Microsoft.Storage/storageAccounts/msblobbackup"
백업 자격 증명 모음: 스토리지 계정 내에 있는 Blob에서 백업을 사용하려면 백업 자격 증명 모음에는 스토리지 계정에 대한 권한이 있어야 합니다. 자격 증명 모음의 시스템이 할당한 관리 ID는 권한을 할당하는 데 사용됩니다.
예를 들어 TestBkpVaultRG 리소스 그룹 아래의 미국 서부 지역에서 testBkpVault라는 백업 자격 증명 모음을 사용합니다.
권한 할당
Azure RBAC(Azure 역할 기반 액세스 제어)를 통해 만든 자격 증명 모음(자격 증명 모음 관리 서비스 ID로 표시) 및 관련 스토리지 계정에 몇 가지 권한을 할당합니다. Azure Portal, PowerShell 또는 REST API를 통해 권한을 할당할 수 있습니다. 모든 관련 권한에 관해 자세히 알아봅니다.
Blob 백업 구성 요청 준비
자격 증명 모음 및 스토리지 계정에 대한 관련 권한이 설정되고 자격 증명 모음 및 정책 구성이 완료되면 백업 구성 요청을 준비합니다.
다음은 스토리지 계정 내의 모든 Blob에 대해 백업을 구성하기 위한 요청 본문입니다. 스토리지 계정의 ARM ID(Azure Resource Manager ID)와 해당 세부 정보는 섹션에 datasourceinfo
설명되어 있으며 정책 정보는 섹션에 policyinfo
있습니다.
{
"backupInstance": {
"dataSourceInfo": {
"datasourceType": "Microsoft.Storage/storageAccounts/blobServices",
"objectType": "Datasource",
"resourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/RG-BlobBackup/providers/Microsoft.Storage/storageAccounts/msblobbackup",
"resourceLocation": "westUS",
"resourceName": "msblobbackup",
"resourceType": "Microsoft.Storage/storageAccounts",
"resourceUri": ""
},
"policyInfo": {
"policyId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupPolicies/BlobBackup-Policy"
},
"objectType": "BackupInstance"
}
}
자격 증명 모음 백업을 사용하도록 설정하여 백업을 구성하려면 아래 요청 본문을 참조하세요.
{backupInstanceDataSourceType is Microsoft.Storage/storageAccounts/blobServices
backupInstanceResourceType is Microsoft.Storage/storageAccounts
{
"id": null,
"name": "{{backupInstanceName}}",
"type": "Microsoft.DataProtection/backupvaults/backupInstances",
"properties": {
"objectType": "BackupInstance",
"dataSourceInfo": {
"objectType": "Datasource",
"resourceID": "/subscriptions/{{backupInstanceSubscriptionId}}/resourceGroups/{{backupInstanceresourcegroup}}/providers/{{backupInstanceResourceType}}/{{backupInstanceName}}",
"resourceName": "{{backupInstanceName}}",
"resourceType": "{{backupInstanceResourceType}}",
"resourceUri": "/subscriptions/{{backupInstanceSubscriptionId}}/resourceGroups/{{backupInstanceRG}}/providers/{{backupInstanceResourceType}}/{{backupInstanceName}}",
"resourceLocation": "{{___location}}",
"datasourceType": "{{backupInstanceDataSourceType}}"
},
"policyInfo": {
"policyId": "/subscriptions/{{subscription}}/resourceGroups/{{resourceGroup}}/providers/{{backupVaultRP}}/{{vaultName}}/backupPolicies/{{policyName}}",
"name": "{{policyName}}",
"policyVersion": "3.2",
"policyParameters": {
"dataStoreParametersList": [
],
"backupDatasourceParametersList" : [
{
"objectType": "BlobBackupDatasourceParameters",
"containersList": ["container1", "container2", "container3", "container4", "container5"]
}
]
}
}
}
}
백업을 구성하기 위한 요청의 유효성 검사
백업 구성 요청이 성공하는지 확인하려면 백업 API에 대한 유효성 검사를 사용합니다. 응답을 사용하여 필수 구성 요소를 수행한 후 백업 요청에 대한 구성을 제출할 수 있습니다.
백업 요청의 유효성 검사는 *POST 작업이며 URI에는 {subscriptionId}
, {vaultName}
, {vaultresourceGroupName}
매개 변수가 있습니다.
POST https://management.azure.com/Subscriptions/{subscriptionId}/resourceGroups/{vaultresourceGroupname}/providers/Microsoft.DataProtection/backupVaults/{backupVaultName}/validateForBackup?api-version=2021-01-01
예를 들어 이렇게 하면 다음으로 변환됩니다.
POST https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/validateForBackup?api-version=2021-01-01
앞에서 준비한 요청 본문은 보호할 스토리지 계정의 세부 정보를 제공하는 데 사용됩니다.
요청 본문 예제
{
"backupInstance": {
"dataSourceInfo": {
"datasourceType": "Microsoft.Storage/storageAccounts/blobServices",
"objectType": "Datasource",
"resourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/RG-BlobBackup/providers/Microsoft.Storage/storageAccounts/msblobbackup",
"resourceLocation": "westUS",
"resourceName": "msblobbackup",
"resourceType": "Microsoft.Storage/storageAccounts",
"resourceUri": ""
},
"policyInfo": {
"policyId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupPolicies/BlobBackup-Policy"
},
"objectType": "BackupInstance"
}
}
자격 증명 모음 백업에 대한 요청 본문 예
{
"objectType": "ValidateForBackupRequest",
"backupInstance": {
"objectType": "BackupInstance",
"dataSourceInfo": {
"objectType": "Datasource",
"resourceID": "/subscriptions/{{backupInstanceSubscriptionId}}/resourceGroups/{{backupInstanceRG}}/providers/{{backupInstanceResourceType}}/{{backupInstanceName}}",
"resourceName": "{{backupInstanceName}}",
"resourceType": "{{backupInstanceResourceType}}",
"resourceUri": "/subscriptions/{{backupInstanceSubscriptionId}}/resourceGroups/{{backupInstanceRG}}/providers/{{backupInstanceResourceType}}/{{backupInstanceName}}",
"resourceLocation": "{{___location}}",
"datasourceType": "{{backupInstanceDataSourceType}}"
},
"policyInfo": {
"policyId": "/subscriptions/{{subscription}}/resourceGroups/{{resourceGroup}}/providers/{{backupVaultRP}}/{{vaultName}}/backupPolicies/{{policyName}}",
"name": "{{policyName}}",
"policyVersion": "3.2",
"policyParameters": {
"dataStoreParametersList": [
] ,
"backupDatasourceParametersList" : [
{
"objectType": "BlobBackupDatasourceParameters",
"containersList": ["container1", "container2", "container3", "container4", "container5"]
}
]
}
}
}
}
백업 요청 유효성 검사의 응답
백업 요청의 유효성 검사는 비동기 작업입니다. 이 작업을 수행하면 별도로 추적해야 하는 다른 작업이 생성됩니다.
다른 작업을 만들 때 202(수락됨)라는 두 개의 응답을 반환합니다. 해당 작업이 완료되면 200(확인)입니다.
속성 | 형식 | 설명 |
---|---|---|
202 수락됨 | 작업이 비동기적으로 완료됩니다. | |
200 확인 | OperationJobExtendedInfo | 수락됨 |
기타 상태 코드 | CloudError | 작업이 실패한 이유를 설명하는 오류 응답 |
백업 요청 유효성 검사의 예제 응답
오류 응답
지정된 스토리지 계정이 이미 보호된 경우 응답은 HTTP 400(잘못된 요청)이며 지정된 스토리지 계정이 세부 정보와 함께 백업 자격 증명 모음에 대해 보호된다는 것을 분명히 명시합니다.
HTTP/1.1 400 BadRequest
Content-Length: 999
Content-Type: application/json
Expires: -1
Pragma: no-cache
X-Content-Type-Options: nosniff
x-ms-request-id:
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-writes: 1199
x-ms-correlation-request-id: f36eb67a-8932-42a8-8aba-c5ee2443aa2e
x-ms-routing-request-id: WESTUS:20210707T124745Z:bcd23af5-fa17-4cd0-9929-a55f141e33ce
Cache-Control: no-cache
Date: Wed, 07 Jul 2021 12:47:45 GMT
X-Powered-By: ASP.NET
{
"error": {
"additionalInfo": [
{
"type": "UserFacingError",
"info": {
"message": "Datasource is already protected under the Backup vault /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault.",
"recommendedAction": [
"Delete the backup instance msblobbackuptemp from the Backup vault /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault to re-protect the datasource in any other vault."
],
"details": null,
"code": "UserErrorDppDatasourceAlreadyProtected",
"target": "",
"innerError": null,
"isRetryable": false,
"isUserError": false,
"properties": {
"ActivityId": "f36eb67a-8932-42a8-8aba-c5ee2443aa2e"
}
}
}
],
"code": "UserErrorDppDatasourceAlreadyProtected",
"message": "Datasource is already protected under the Backup vault /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault.",
"target": null
}
}
응답 추적
데이터 원본이 보호되지 않는 경우 API는 추가 유효성 검사를 위해 진행하고 추적 작업을 만듭니다.
HTTP/1.1 202 Accepted
Content-Length: 0
Expires: -1
Pragma: no-cache
Retry-After: 10
Azure-AsyncOperation: https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzM2NDdhZDNjLTFiNGEtNDU4YS05MGJkLTQ4NThiYjRhMWFkYg==?api-version=2021-01-01
X-Content-Type-Options: nosniff
x-ms-request-id:
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-writes: 1197
x-ms-correlation-request-id: 3e7cacb3-65cd-4b3c-8145-71fe90d57327
x-ms-routing-request-id: CENTRALUSEUAP:20210707T124850Z:105f2105-6db1-44bf-8a34-45972a8ba861
Cache-Control: no-cache
Date: Wed, 07 Jul 2021 12:48:50 GMT
Location: https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationResults/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzM2NDdhZDNjLTFiNGEtNDU4YS05MGJkLTQ4NThiYjRhMWFkYg==?api-version=2021-01-01
X-Powered-By: ASP.NET
간단한 GET 명령과 함께 Azure-AsyncOperation 헤더를 사용하여 결과 작업을 추적합니다.
GET https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzM2NDdhZDNjLTFiNGEtNDU4YS05MGJkLTQ4NThiYjRhMWFkYg==?api-version=2021-01-01
{
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzM2NDdhZDNjLTFiNGEtNDU4YS05MGJkLTQ4NThiYjRhMWFkYg==",
"name": "ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzM2NDdhZDNjLTFiNGEtNDU4YS05MGJkLTQ4NThiYjRhMWFkYg==",
"status": "Inprogress",
"startTime": "2021-07-07T12:48:50.3432229Z",
"endTime": "0001-01-01T00:00:00"
}
유효성 검사가 완료되면 200(OK)이 반환되며 응답 본문은 권한과 같이 충족해야 하는 추가 요구 사항을 나열합니다.
GET https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzM2NDdhZDNjLTFiNGEtNDU4YS05MGJkLTQ4NThiYjRhMWFkYg==?api-version=2021-01-01
{
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzM2NDdhZDNjLTFiNGEtNDU4YS05MGJkLTQ4NThiYjRhMWFkYg==",
"name": "ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzM2NDdhZDNjLTFiNGEtNDU4YS05MGJkLTQ4NThiYjRhMWFkYg==",
"status": "Failed",
"error": {
"additionalInfo": [
{
"type": "UserFacingError",
"info": {
"message": "Appropriate permissions to perform the operation is missing.",
"recommendedAction": [
"Grant appropriate permissions to perform this operation as mentioned at https://aka.ms/UserErrorMissingRequiredPermissions and retry the operation."
],
"code": "UserErrorMissingRequiredPermissions",
"target": "",
"innerError": {
"code": "UserErrorMissingRequiredPermissions",
"additionalInfo": {
"DetailedNonLocalisedMessage": "Validate for Protection failed. Exception Message: The client '00001111-aaaa-2222-bbbb-3333cccc4444' with object id 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb' does not have authorization to perform action 'Microsoft.Authorization/roleAssignments/read' over scope '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/RG-BlobBackup/providers/Microsoft.Storage/storageAccounts/msblobbackup/providers/Microsoft.Authorization' or the scope is invalid. If access was recently granted, please refresh your credentials."
}
},
"isRetryable": false,
"isUserError": false,
"properties": {
"ActivityId": "3e7cacb3-65cd-4b3c-8145-71fe90d57327"
}
}
}
],
"code": "UserErrorMissingRequiredPermissions",
"message": "Appropriate permissions to perform the operation is missing."
},
"startTime": "2021-07-07T12:48:50.3432229Z",
"endTime": "2021-07-07T12:49:22Z"
}
모든 권한이 부여된 경우 유효성 검사 요청 작업을 다시 제출하고 결과 작업을 추적합니다. 모든 조건이 충족되면 성공한 것으로 200(OK)을 반환합니다.
GET https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzlhMjk2YWM2LWRjNDMtNGRjZS1iZTU2LTRkZDNiMDhjZDlkOA==?api-version=2021-01-01
{
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzlhMjk2YWM2LWRjNDMtNGRjZS1iZTU2LTRkZDNiMDhjZDlkOA==",
"name": "ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzlhMjk2YWM2LWRjNDMtNGRjZS1iZTU2LTRkZDNiMDhjZDlkOA==",
"status": "Succeeded",
"startTime": "2021-07-07T13:03:54.8627251Z",
"endTime": "2021-07-07T13:04:06Z"
}
백업 요청 구성
요청의 유효성 검사가 완료되면 백업 인스턴스 만들기 API에 동일한 항목을 제출할 수 있습니다. 백업 인스턴스는 백업 자격 증명 모음 내에서 Azure Backup의 데이터 보호 서비스로 보호되는 항목을 나타냅니다. 이 경우 스토리지 계정은 백업 인스턴스이며 사소한 추가 항목과 함께 위에서 유효성을 검사한 동일한 요청 본문을 사용할 수 있습니다.
백업 인스턴스에 고유한 이름을 사용합니다. 따라서 리소스 이름과 고유 식별자를 조합하여 사용하는 것이 좋습니다. 이 예제에서는 여기서 msblobbackup-f2df34eb-5628-4570-87b2-0331d797c67d를 사용하여 백업 인스턴스 이름으로 표시합니다.
백업 인스턴스를 만들거나 업데이트하려면 다음 PUT 작업을 사용합니다.
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/{BkpvaultName}/backupInstances/{UniqueBackupInstanceName}?api-version=2021-01-01
예를 들어, 이렇게 하면 다음으로 변환됩니다.
PUT https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupInstances/msblobbackup-f2df34eb-5628-4570-87b2-0331d797c67d?api-version=2021-01-01
백업 구성을 위한 요청 만들기
백업 인스턴스를 만들기 위한 요청 본문의 구성 요소는 다음과 같습니다.
속성 | 형식 | 설명 |
---|---|---|
속성 | BackupInstance | BackupInstanceResource 속성 |
백업 구성을 위한 예제 요청
위에서 설명한 대로 고유한 이름으로 백업 요청의 유효성을 검사하는 데 사용한 것과 동일한 요청 본문을 사용합니다.
{
"name": "msblobbackup-f2df34eb-5628-4570-87b2-0331d797c67d",
"type": "Microsoft.DataProtection/backupvaults/backupInstances",
"properties": {
"objectType": "BackupInstance",
"datasourceinfo": {
"datasourceType": "Microsoft.Storage/storageAccounts/blobServices",
"objectType": "Datasource",
"resourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/RG-BlobBackup/providers/Microsoft.Storage/storageAccounts/msblobbackup",
"resourceLocation": "westus",
"resourceName": "msblobbackup",
"resourceType": "Microsoft.Storage/storageAccounts",
"resourceUri": ""
},
"policyInfo": {
"policyId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupPolicies/BlobBackup-Policy"
}
}
}
백업 요청 구성에 대한 응답
백업 인스턴스 요청 만들기는 비동기 작업입니다. 이 작업을 수행하면 별도로 추적해야 하는 다른 작업이 생성됩니다.
백업 인스턴스가 생성되고 보호가 구성될 때 201(생성됨)이라는 두 개의 응답이 반환됩니다. 구성이 완료되면 200(확인)입니다.
속성 | 형식 | 설명 |
---|---|---|
201 만들어짐 | 백업 인스턴스 | 백업 인스턴스가 생성되고 보호가 구성되고 있음 |
200 확인 | 백업 인스턴스 | 보호가 구성됨 |
기타 상태 코드 | CloudError | 작업이 실패한 이유를 설명하는 오류 응답 |
백업 요청 구성에 대한 예제 응답
PUT 요청을 제출하여 백업 인스턴스를 만든 후 초기 응답은 Azure-asyncOperation 헤더를 포함하는 201(생성됨)입니다.
참고 항목
요청 본문에는 모든 백업 인스턴스 속성이 포함되어 있습니다.
HTTP/1.1 201 Created
Content-Length: 1149
Content-Type: application/json
Expires: -1
Pragma: no-cache
Retry-After: 15
Azure-AsyncOperation: https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzI1NWUwNmFlLTI5MjUtNDBkNy1iMjMxLTM0ZWZlMDA3NjdkYQ==?api-version=2021-01-01
X-Content-Type-Options: nosniff
x-ms-request-id:
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-writes: 1199
x-ms-correlation-request-id: 5d9ccf1b-7ac1-456d-8ae3-36c93c0d2427
x-ms-routing-request-id: CENTRALUSEUAP:20210707T170219Z:9e897266-5d86-4d13-b298-6561c60cf043
Cache-Control: no-cache
Date: Wed, 07 Jul 2021 17:02:18 GMT
Server: Microsoft-IIS/10.0
X-Powered-By: ASP.NET
{
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupInstances/msblobbackup-f2df34eb-5628-4570-87b2-0331d797c67d",
"name": "msblobbackup-f2df34eb-5628-4570-87b2-0331d797c67d",
"type": "Microsoft.DataProtection/backupVaults/backupInstances",
"properties": {
"friendlyName": "msblobbackup",
"dataSourceInfo": {
"resourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/RG-BlobBackup/providers/Microsoft.Storage/storageAccounts/msblobbackup",
"resourceUri": "",
"datasourceType": "Microsoft.Storage/storageAccounts/blobServices",
"resourceName": "msblobbackup",
"resourceType": "Microsoft.Storage/storageAccounts",
"resourceLocation": "westus",
"objectType": "Datasource"
},
"policyInfo": {
"policyId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupPolicies/BlobBackup-Policy"
},
"protectionStatus": {
"status": "ConfiguringProtection"
},
"currentProtectionState": "ConfiguringProtection",
"provisioningState": "Provisioning",
"objectType": "BackupInstance"
}
}
그런 다음, 간단한 GET 명령과 함께 Azure-AsyncOperation 헤더를 사용하여 결과 작업을 추적합니다.
GET https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzI1NWUwNmFlLTI5MjUtNDBkNy1iMjMxLTM0ZWZlMDA3NjdkYQ==?api-version=2021-01-01
작업이 완료되면 응답 본문에서 성공 메시지와 함께 200(정상)이 반환됩니다.
{
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzI1NWUwNmFlLTI5MjUtNDBkNy1iMjMxLTM0ZWZlMDA3NjdkYQ==",
"name": "ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzI1NWUwNmFlLTI5MjUtNDBkNy1iMjMxLTM0ZWZlMDA3NjdkYQ==",
"status": "Succeeded",
"startTime": "2021-07-07T17:02:19.0611871Z",
"endTime": "2021-07-07T17:02:20Z"
}
중요합니다
스토리지 계정이 Blob 백업용으로 구성되면 변경 피드 및 삭제 잠금과 몇 가지 기능이 영향을 받습니다. 자세히 알아보기.
보호 중지 및 데이터 삭제
스토리지 계정에 대한 보호를 제거하고 백업 데이터도 삭제하려면 삭제 작업 프로세스을 따릅니다.
보호 중지 및 데이터 삭제는 DELETE 작업입니다.
DELETE https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}?api-version=2021-01-01
예를 들어 이렇게 하면 다음으로 변환됩니다.
DELETE "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupInstances/msblobbackup-f2df34eb-5628-4570-87b2-0331d797c67d?api-version=2021-01-01"
삭제 방지에 대한 응답
보호 DELETE 작업은 비동기 작업입니다. 이 작업을 수행하면 별도로 추적해야 하는 다른 작업이 생성됩니다.
다른 작업을 만들 때 202(수락됨)라는 두 개의 응답을 반환합니다. 해당 작업이 완료되면 200(확인)입니다.
속성 | 형식 | 설명 |
---|---|---|
200 확인 | 삭제 요청의 상태 | |
202 수락됨 | 수락됨 |
삭제 방지에 대한 예제 응답
DELETE 요청을 제출한 후 초기 응답은 Azure-asyncOperation 헤더와 함께 202 수락됨이 됩니다.
HTTP/1.1 202 Accepted
Content-Length: 0
Expires: -1
Pragma: no-cache
Retry-After: 30
Azure-AsyncOperation: https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzE1ZjM4YjQ5LWZhMGQtNDMxOC1iYjQ5LTExMDJjNjUzNjM5Zg==?api-version=2021-01-01
X-Content-Type-Options: nosniff
x-ms-request-id:
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-deletes: 14999
x-ms-correlation-request-id: fee7a361-b1b3-496d-b398-60fed030d5a7
x-ms-routing-request-id: CENTRALUSEUAP:20210708T071330Z:5c3a9f3e-53aa-4d5d-bf9a-20de5601b090
Cache-Control: no-cache
Date: Thu, 08 Jul 2021 07:13:29 GMT
Location: https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationResults/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzE1ZjM4YjQ5LWZhMGQtNDMxOC1iYjQ5LTExMDJjNjUzNjM5Zg==?api-version=2021-01-01
X-Powered-By: ASP.NET
간단한 GET 요청으로 Azure-AsyncOperation 헤더를 추적합니다. 요청이 성공하면 성공 상태 응답과 함께 200 OK가 반환됩니다.
GET "https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzE1ZjM4YjQ5LWZhMGQtNDMxOC1iYjQ5LTExMDJjNjUzNjM5Zg==?api-version=2021-01-01"
{
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzE1ZjM4YjQ5LWZhMGQtNDMxOC1iYjQ5LTExMDJjNjUzNjM5Zg==",
"name": "ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzE1ZjM4YjQ5LWZhMGQtNDMxOC1iYjQ5LTExMDJjNjUzNjM5Zg==",
"status": "Succeeded",
"startTime": "2021-07-08T07:13:30.23815Z",
"endTime": "2021-07-08T07:13:46Z"
}
다음 단계
Azure Backup REST API에 대한 자세한 내용은 다음 문서를 참조하세요.
관련 콘텐츠
Azure Portal, Azure PowerShell, Azure CLI를 사용하여 Azure Backup으로 Azure Blob을 복원합니다.