Azure-bestandsshares herstellen met behulp van REST API
In dit artikel wordt uitgelegd hoe u een volledige bestandsshare of specifieke bestanden herstelt vanaf een herstelpunt dat is gemaakt door Azure Backup met behulp van de REST API.
Aan het einde van dit artikel leert u hoe u de volgende bewerkingen uitvoert met behulp van REST API:
- Herstelpunten weergeven voor een back-up van een Azure-bestandsshare.
- Een volledige Azure-bestandsshare herstellen.
- Afzonderlijke bestanden of mappen herstellen.
Vereisten
We gaan ervan uit dat u al een back-up van de bestandsshare hebt die u wilt herstellen. Als u dat niet doet, schakelt u Back-up maken van Azure-bestandsshare met behulp van REST API in voor meer informatie over het maken van een azure-bestandsshare.
Voor dit artikel gebruiken we de volgende resources:
- RecoveryServicesVault: azurefilesvault
- Resourcegroep: azurefiles
- Opslagaccount: afsaccount
- Bestandsshare: azurefiles
ContainerName en ProtectedItemName ophalen
Voor de meeste aan herstel gerelateerde API-aanroepen moet u waarden doorgeven voor de URI-parameters {containerName} en {protectedItemName}. Gebruik het kenmerk ID in de antwoordtekst van de bewerking GET backupprotectableitems om waarden voor deze parameters op te halen. In ons voorbeeld is de id van de bestandsshare die we willen beveiligen:
"/Subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupFabrics/Azure/protectionContainers/storagecontainer;storage;azurefiles;afsaccount/protectableItems/azurefileshare;azurefiles
De waarden worden dus als volgt omgezet:
- {containername} - storagecontainer;storage;azurefiles;afsaccount
- {protectedItemName} - azurefileshare;azurefiles
Herstelpunten ophalen voor een back-up van een Azure-bestandsshare
Als u een back-up van een bestandsshare of bestanden wilt herstellen, selecteert u eerst een herstelpunt om de herstelbewerking uit te voeren. De beschikbare herstelpunten van een item waarvan een back-up is gemaakt, kunnen worden weergegeven met behulp van de REST API-aanroep herstelpuntlijst . Het is een GET-bewerking met alle relevante waarden.
GET https://management.azure.com/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/recoveryPoints?api-version=2019-05-13&$filter={$filter}
Stel de URI-waarden als volgt in:
- {fabricName}: Azure
- {vaultName}: azurefilesvault
- {containername}: storagecontainer;storage;azurefiles;afsaccount
- {protectedItemName}: azurefileshare;azurefiles
- {ResourceGroupName}: azurefiles
De GET-URI heeft alle vereiste parameters. Er is geen andere aanvraagbody nodig.
GET https://management.azure.com/Subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupFabrics/Azure/protectionContainers/StorageContainer;storage;azurefiles;afsaccount/protectedItems/AzureFileShare;azurefiles/recoveryPoints?api-version=2019-05-13
Voorbeeldantwoord voor het ophalen van herstelpunten
Zodra de GET-URI is verzonden, wordt een 200-antwoord geretourneerd:
HTTP/1.1" 200 None
'Cache-Control': 'no-cache'
'Pragma': 'no-cache'
'Transfer-Encoding': 'chunked'
'Content-Type': 'application/json'
'Content-Encoding': 'gzip'
'Expires': '-1'
'Vary': 'Accept-Encoding'
'X-Content-Type-Options': 'nosniff'
'x-ms-request-id': 'd68d7951-7d97-4c49-9a2d-7fbaab55233a'
'x-ms-client-request-id': '4edb5a58-47ea-11ea-a27a-0a580af41908, 4edb5a58-47ea-11ea-a27a-0a580af41908'
'Strict-Transport-Security': 'max-age=31536000; includeSubDomains'
'Server': 'Microsoft-IIS/10.0'
'X-Powered-By': 'ASP.NET'
'x-ms-ratelimit-remaining-subscription-reads': '11998'
'x-ms-correlation-request-id': 'd68d7951-7d97-4c49-9a2d-7fbaab55233a'
'x-ms-routing-request-id': 'WESTEUROPE:20200205T073708Z:d68d7951-7d97-4c49-9a2d-7fbaab55233a'
'Date': 'Wed, 05 Feb 2020 07:37:08 GMT'
{
“value”:[
{
"eTag": null,
"id": "/Subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupFabrics/Azure/protectionContainers/StorageContainer;storage;azurefiles;afsaccount/protectedItems/AzureFileShare;azurefiles/recoveryPoints/932881138555802864",
"location": null,
"name": "932881138555802864",
"properties": {
"fileShareSnapshotUri": "https://afsaccount.file.core.windows.net/azurefiles?sharesnapshot=2020-02-04T08:01:35.0000000Z",
"objectType": "AzureFileShareRecoveryPoint",
"recoveryPointSizeInGb": 1,
"recoveryPointTime": "2020-02-04T08:01:35+00:00",
"recoveryPointType": "FileSystemConsistent"
},
"resourceGroup": "azurefiles",
"tags": null,
"type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints"
},
{
"eTag": null,
"id": "/Subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupFabrics/Azure/protectionContainers/StorageContainer;storage;azurefiles;afsaccount/protectedItems/AzureFileShare;azurefiles/recoveryPoints/932878582606969225",
"location": null,
"name": "932878582606969225",
"properties": {
"fileShareSnapshotUri": "https://afsaccount.file.core.windows.net/azurefiles?sharesnapshot=2020-02-03T08:05:30.0000000Z",
"objectType": "AzureFileShareRecoveryPoint",
"recoveryPointSizeInGb": 1,
"recoveryPointTime": "2020-02-03T08:05:30+00:00",
"recoveryPointType": "FileSystemConsistent"
},
"resourceGroup": "azurefiles",
"tags": null,
"type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints"
},
{
"eTag": null,
"id": "/Subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupFabrics/Azure/protectionContainers/StorageContainer;storage;azurefiles;afsaccount/protectedItems/AzureFileShare;azurefiles/recoveryPoints/932890167574511261",
"location": null,
"name": "932890167574511261",
"properties": {
"fileShareSnapshotUri": "https://afsaccount.file.core.windows.net/azurefiles?sharesnapshot=2020-02-02T08:03:50.0000000Z",
"objectType": "AzureFileShareRecoveryPoint",
"recoveryPointSizeInGb": 1,
"recoveryPointTime": "2020-02-02T08:03:50+00:00",
"recoveryPointType": "FileSystemConsistent"
},
"resourceGroup": "azurefiles",
"tags": null,
"type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints"
},
Het herstelpunt wordt geïdentificeerd met het veld {name} in het bovenstaande antwoord.
Volledig shareherstel met behulp van REST API
Gebruik deze hersteloptie om de volledige bestandsshare te herstellen op de oorspronkelijke of een alternatieve locatie. Het activeren van herstel is een POST-aanvraag en u kunt deze bewerking uitvoeren met behulp van de REST API voor triggerherstel .
POST https://management.azure.com/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/recoveryPoints/{recoveryPointId}/restore?api-version=2019-05-13
De waarden {containerName} en {protectedItemName} zijn zoals hier ingesteld en recoveryPointID is het veld {name} van het hierboven genoemde herstelpunt.
POST https://management.azure.com/Subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupFabrics/Azure/protectionContainers/StorageContainer;storage;azurefiles;afsaccount/protectedItems/AzureFileShare%3Bazurefiles/recoveryPoints/932886657837421071/restore?api-version=2019-05-13'
Aanvraagbody maken
Als u een herstelbewerking voor een Azure-bestandsshare wilt activeren, zijn de volgende onderdelen van de aanvraagbody:
Naam | Type | Description |
---|---|---|
Eigenschappen | AzureFileShareRestoreRequest | RestoreRequestResource-eigenschappen |
Raadpleeg het document trigger REST API herstellen voor de volledige lijst met definities van de aanvraagbody en andere details.
Herstellen naar oorspronkelijke locatie
Voorbeeld van aanvraagbody voor herstel naar oorspronkelijke locatie
De volgende aanvraagbody definieert eigenschappen die vereist zijn om een herstel van een Azure-bestandsshare te activeren:
{
"properties":{
"objectType":"AzureFileShareRestoreRequest",
"recoveryType":"OriginalLocation",
"sourceResourceId":"/subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/AzureFiles/providers/Microsoft.Storage/storageAccounts/afsaccount",
"copyOptions":"Overwrite",
"restoreRequestType":"FullShareRestore"
}
}
Herstellen naar alternatieve locatie
Geef de volgende parameters op voor herstel van alternatieve locatie:
- targetResourceId: het opslagaccount waarnaar de inhoud waarvan een back-up is gemaakt, wordt hersteld. Het doelopslagaccount moet zich op dezelfde locatie bevinden als de kluis.
- naam: de bestandsshare in het doelopslagaccount waarnaar de inhoud waarvan een back-up is gemaakt, wordt hersteld.
- targetFolderPath: de map onder de bestandsshare waarnaar de gegevens worden hersteld.
Voorbeeld van aanvraagbody voor herstel naar alternatieve locatie
De volgende aanvraagbody herstelt de azurefiles-bestandsshare in het afsaccount-opslagaccount naar de bestandsshare azurefiles1 in het afaccount1-opslagaccount .
{
"properties":{
"objectType":"AzureFileShareRestoreRequest",
"recoveryType":"AlternateLocation",
"sourceResourceId":"/subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/AzureFiles/providers/Microsoft.Storage/storageAccounts/afsaccount",
"copyOptions":"Overwrite",
"restoreRequestType":"FullShareRestore",
"restoreFileSpecs":[
{
"targetFolderPath":"restoredata"
}
],
"targetDetails":{
"name":"azurefiles1",
"targetResourceId":"/subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/AzureFiles/providers/Microsoft.Storage/storageAccounts/afaccount1"
}
}
}
Antwoord
Het activeren van een herstelbewerking is een asynchrone bewerking. Met deze bewerking maakt u een andere bewerking die afzonderlijk moet worden bijgehouden. Er worden twee antwoorden geretourneerd: 202 (geaccepteerd) wanneer een andere bewerking wordt gemaakt en 200 (OK) wanneer die bewerking is voltooid.
Voorbeeld van antwoord
Nadat u de POST-URI hebt ingediend voor het activeren van een herstelbewerking, is het eerste antwoord 202 (geaccepteerd) met een locatieheader of Azure-async-header.
HTTP/1.1" 202
'Cache-Control': 'no-cache'
'Pragma': 'no-cache'
'Expires': '-1'
'Location': 'https://management.azure.com/Subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupFabrics/Azure/protectionContainers/StorageContainer;storage;azurefiles;afsaccount/protectedItems/AzureFileShare;azurefiles/operationResults/68ccfbc1-a64f-4b29-b955-314b5790cfa9?api-version=2019-05-13'
'Retry-After': '60'
'Azure-AsyncOperation': 'https://management.azure.com/Subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupFabrics/Azure/protectionContainers/StorageContainer;storage;azurefiles;afsaccount/protectedItems/AzureFileShare;azurefiles/operationsStatus/68ccfbc1-a64f-4b29-b955-314b5790cfa9?api-version=2019-05-13'
'X-Content-Type-Options': 'nosniff'
'x-ms-request-id': '2426777d-c5ec-44b6-a324-384f8947460c'
'x-ms-client-request-id': '3c743096-47eb-11ea-ae90-0a580af41908, 3c743096-47eb-11ea-ae90-0a580af41908'
'Strict-Transport-Security': 'max-age=31536000; includeSubDomains'
'X-Powered-By': 'ASP.NET'
'x-ms-ratelimit-remaining-subscription-writes': '1198'
'x-ms-correlation-request-id': '2426777d-c5ec-44b6-a324-384f8947460c'
'x-ms-routing-request-id': 'WESTEUROPE:20200205T074347Z:2426777d-c5ec-44b6-a324-384f8947460c'
'Date': 'Wed, 05 Feb 2020 07:43:47 GMT'
Volg vervolgens de resulterende bewerking met behulp van de locatieheader of de Azure-AsyncOperation-header met een GET-opdracht.
GET https://management.azure.com/Subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupOperations/68ccfbc1-a64f-4b29-b955-314b5790cfa9?api-version=2016-12-01
Zodra de bewerking is voltooid, wordt 200 (OK) geretourneerd met de id van de resulterende hersteltaak in de antwoordtekst.
HTTP/1.1" 200
'Cache-Control': 'no-cache'
'Pragma': 'no-cache'
'Transfer-Encoding': 'chunked'
'Content-Type': 'application/json'
'Content-Encoding': 'gzip'
'Expires': '-1'
'Vary': 'Accept-Encoding'
'X-Content-Type-Options': 'nosniff'
'x-ms-request-id': '41ee89b2-3be4-40d8-8ff6-f5592c2571e3'
'x-ms-client-request-id': '3c743096-47eb-11ea-ae90-0a580af41908, 3c743096-47eb-11ea-ae90-0a580af41908'
'Strict-Transport-Security': 'max-age=31536000; includeSubDomains'
'Server': 'Microsoft-IIS/10.0'
'X-Powered-By': 'ASP.NET'
'x-ms-ratelimit-remaining-subscription-reads': '11998'
'x-ms-correlation-request-id': '41ee89b2-3be4-40d8-8ff6-f5592c2571e3'
'x-ms-routing-request-id': 'WESTEUROPE:20200205T074348Z:41ee89b2-3be4-40d8-8ff6-f5592c2571e3'
'Date': 'Wed, 05 Feb 2020 07:43:47 GMT'
{
"id": "/Subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupJobs/a7e97e42-4e54-4d4b-b449-26fcf946f42c",
"location": null,
"name": "a7e97e42-4e54-4d4b-b449-26fcf946f42c",
"properties": {
"actionsInfo": [
"Cancellable"
],
"activityId": "3c743096-47eb-11ea-ae90-0a580af41908",
"backupManagementType": "AzureStorage",
"duration": "0:00:01.863098",
"endTime": null,
"entityFriendlyName": "azurefiles",
"errorDetails": null,
"extendedInfo": {
"dynamicErrorMessage": null,
"propertyBag": {},
"tasksList": []
},
"jobType": "AzureStorageJob",
"operation": "Restore",
"startTime": "2020-02-05T07:43:47.144961+00:00",
"status": "InProgress",
"storageAccountName": "afsaccount",
"storageAccountVersion": "Storage"
},
"resourceGroup": "azurefiles",
"tags": null,
"type": "Microsoft.RecoveryServices/vaults/backupJobs"
}
Voor herstel op een alternatieve locatie ziet de hoofdtekst van het antwoord er als volgt uit:
{
"id": "/Subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupJobs/7e0ee41e-6e31-4728-a25c-98ff6b777641",
"location": null,
"name": "7e0ee41e-6e31-4728-a25c-98ff6b777641",
"properties": {
"actionsInfo": [
"Cancellable"
],
"activityId": "6077be6e-483a-11ea-a915-0a580af4ad72",
"backupManagementType": "AzureStorage",
"duration": "0:00:02.171965",
"endTime": null,
"entityFriendlyName": "azurefiles",
"errorDetails": null,
"extendedInfo": {
"dynamicErrorMessage": null,
"propertyBag": {
"Data Transferred (in MB)": "0",
"Job Type": "Recover to an alternate file share",
"Number Of Failed Files": "0",
"Number Of Restored Files": "0",
"Number Of Skipped Files": "0",
"RestoreDestination": "afaccount1/azurefiles1/restoredata",
"Source File Share Name": "azurefiles",
"Source Storage Account Name": "afsaccount",
"Target File Share Name": "azurefiles1",
"Target Storage Account Name": "afaccount1"
},
"tasksList": []
},
"jobType": "AzureStorageJob",
"operation": "Restore",
"startTime": "2020-02-05T17:10:18.106532+00:00",
"status": "InProgress",
"storageAccountName": "afsaccount",
"storageAccountVersion": "ClassicCompute"
},
"resourceGroup": "azurefiles",
"tags": null,
"type": "Microsoft.RecoveryServices/vaults/backupJobs"
}
Omdat de back-uptaak een langdurige bewerking is, moet deze worden bijgehouden zoals uitgelegd in het document Bewakingstaken met behulp van REST API.
Herstel op itemniveau met rest API
U kunt deze hersteloptie gebruiken om afzonderlijke bestanden of mappen op de oorspronkelijke of een alternatieve locatie te herstellen.
POST https://management.azure.com/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/recoveryPoints/{recoveryPointId}/restore?api-version=2019-05-13
De waarden {containerName} en {protectedItemName} zijn zoals hier ingesteld en recoveryPointID is het veld {name} van het hierboven genoemde herstelpunt.
POST https://management.azure.com/Subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupFabrics/Azure/protectionContainers/StorageContainer;storage;azurefiles;afsaccount/protectedItems/AzureFileShare%3Bazurefiles/recoveryPoints/932886657837421071/restore?api-version=2019-05-13'
Aanvraagbody maken voor herstel op itemniveau met behulp van REST API
Als u een herstelbewerking voor een Azure-bestandsshare wilt activeren, zijn de volgende onderdelen van de aanvraagbody:
Naam | Type | Description |
---|---|---|
Eigenschappen | AzureFileShareRestoreRequest | RestoreRequestResource-eigenschappen |
Raadpleeg het document trigger REST API herstellen voor de volledige lijst met definities van de aanvraagbody en andere details.
Herstellen naar de oorspronkelijke locatie voor herstel op itemniveau met behulp van REST API
De volgende aanvraagbody is het herstellen van hetRestoretest.txt-bestand in de azurefiles-bestandsshare in het afsaccount-opslagaccount .
Aanvraagtekst maken
{
"properties":{
"objectType":"AzureFileShareRestoreRequest",
"copyOptions":"Overwrite",
"recoveryType":"OriginalLocation",
"restoreFileSpecs":[
{
"fileSpecType":"File",
"path":"RestoreTest.txt",
"targetFolderPath":null
}
],
"restoreRequestType":"ItemLevelRestore",
"sourceResourceId":"/subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/azurefiles/providers/Microsoft.storage/storageAccounts/afsaccount",
"targetDetails":null
}
}
Herstellen naar alternatieve locatie voor herstel op itemniveau met behulp van REST API
De volgende aanvraagbody is het herstellen van hetRestoretest.txt-bestand in de bestandsshare azurefiles in het afsaccount-opslagaccount naar de map restoredata van de bestandsshare azurefiles1 in het opslagaccount afaccount1 .
Aanvraagbody maken
{
"properties":{
"objectType":"AzureFileShareRestoreRequest",
"recoveryType":"AlternateLocation",
"sourceResourceId":"/subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/AzureFiles/providers/Microsoft.Storage/storageAccounts/afsaccount",
"copyOptions":"Overwrite",
"restoreRequestType":"ItemLevelRestore",
"restoreFileSpecs":[
{
"path":"Restore/RestoreTest.txt",
"fileSpecType":"File",
"targetFolderPath":"restoredata"
}
],
"targetDetails":{
"name":"azurefiles1",
"targetResourceId":"/subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/AzureFiles/providers/Microsoft.Storage/storageAccounts/afaccount1"
}
}
}
Het antwoord moet op dezelfde manier worden verwerkt als hierboven is beschreven voor volledige share-herstelbewerkingen.
Volgende stappen
- Meer informatie over het beheren van back-ups van Azure-bestandsshares met behulp van REST API.