Udostępnij za pośrednictwem


Tworzenie kopii zapasowej udziału plików platformy Azure przy użyciu usługi Azure Backup za pośrednictwem interfejsu API REST

W tym artykule opisano sposób tworzenia kopii zapasowej udziału plików platformy Azure przy użyciu usługi Azure Backup za pośrednictwem interfejsu API REST.

W tym artykule założono, że utworzono już magazyn usługi Recovery Services i zasady konfigurowania kopii zapasowej dla udziału plików. Jeśli nie, zapoznaj się z samouczkami tworzenia magazynu i tworzenia interfejsu API REST zasad na potrzeby tworzenia nowych magazynów i zasad.

W tym artykule użyjemy następujących zasobów:

  • RecoveryServicesVault: azurefilesvault

  • Polityka: schedule1

  • Grupa zasobów: azurefiles

  • Konto magazynu: testvault2

  • Udział plików: testshare

Konfigurowanie kopii zapasowej dla niechronionego udziału plików platformy Azure przy użyciu interfejsu API REST

Odnajdywanie kont magazynu z niechronionymi udziałami plików platformy Azure

Magazyn musi odnaleźć wszystkie konta usługi Azure Storage w subskrypcji z udziałami plików, których kopię zapasową można utworzyć w magazynie usługi Recovery Services. Jest to wyzwalane przy użyciu operacji odświeżania. Jest to asynchroniczna operacja POST , która zapewnia, że magazyn pobiera najnowszą listę wszystkich niechronionych udziałów plików platformy Azure w bieżącej subskrypcji i "pamięci podręczne". Po buforowanym udziale plików usługi Recovery Services mogą uzyskiwać dostęp do udziału plików i chronić go.

POST https://management.azure.com/Subscriptions/{subscriptionId}/resourceGroups/{vaultresourceGroupname}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/refreshContainers?api-version=2016-12-01&$filter={$filter}

Identyfikator URI POST ma {subscriptionId}parametry , {vaultName}, {vaultresourceGroupName}i {fabricName} . W naszym przykładzie wartość różnych parametrów będzie następująca:

  • {fabricName} jest platformą Azure

  • {vaultName} is azurefilesvault

  • {vaultresourceGroupName} to azurefiles

  • $filter=backupManagementType eq "AzureStorage"

Ponieważ wszystkie wymagane parametry są podane w identyfikatorze URI, nie ma potrzeby oddzielnej treści żądania.

POST https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupFabrics/Azure/refreshContainers?api-version=2016-12-01&$filter=backupManagementType eq 'AzureStorage'

Odpowiedzi na operację odświeżania

Operacja "refresh" jest operacją asynchroniczną. Oznacza to, że ta operacja tworzy inną operację, która musi być śledzona oddzielnie.

Zwraca ona dwie odpowiedzi: 202 (Zaakceptowane) podczas tworzenia innej operacji i 200 (OK) po zakończeniu tej operacji.

Przykładowe odpowiedzi na operację odświeżania

Po przesłaniu żądania POST zostanie zwrócona odpowiedź 202 (Zaakceptowana).

HTTP/1.1 202 Accepted
'Pragma': 'no-cache'
'Expires': '-1'
'Location': ‘https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/ResourceGroups
/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupFabrics/Azure/operationResults/
cca47745-12d2-42f9-b3a4-75335f18fdf6?api-version=2016-12-01’
'Retry-After': '60'
'X-Content-Type-Options': 'nosniff'
'x-ms-request-id': '6cc12ceb-90a2-430d-a1ec-9b6b6fdea92b'
'x-ms-client-request-id': ‘3da383a5-d66d-4b7c-982a-bc8d94798d61,3da383a5-d66d-4b7c-982a-bc8d94798d61’
'Strict-Transport-Security': 'max-age=31536000; includeSubDomains'
'X-Powered-By': 'ASP.NET'
'x-ms-ratelimit-remaining-subscription-reads': '11996'
'x-ms-correlation-request-id': '6cc12ceb-90a2-430d-a1ec-9b6b6fdea92b'
'x-ms-routing-request-id': CENTRALUSEUAP:20200203T091326Z:6cc12ceb-90a2-430d-a1ec-9b6b6fdea92b'
'Date': 'Mon, 03 Feb 2020 09:13:25 GMT'

Śledzenie wynikowej operacji przy użyciu nagłówka "Location" za pomocą prostego polecenia GET

GET https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupFabrics/Azure/operationResults/cca47745-12d2-42f9-b3a4-75335f18fdf6?api-version=2016-12-01

Po odnalezieniu wszystkich kont usługi Azure Storage polecenie GET zwraca odpowiedź 204 (brak zawartości). Magazyn jest teraz w stanie odnaleźć dowolne konto magazynu z udziałami plików, których kopię zapasową można utworzyć w ramach subskrypcji.

HTTP/1.1 200 NoContent
Cache-Control  : no-cache
Pragma   : no-cache
X-Content-Type-Options  : nosniff
x-ms-request-id    : d9bdb266-8349-4dbd-9688-de52f07648b2
x-ms-client-request-id  : 3da383a5-d66d-4b7c-982a-bc8d94798d61,3da383a5-d66d-4b7c-982a-bc8d94798d61
Strict-Transport-Security  : max-age=31536000; includeSubDomains
X-Powered-By    : ASP.NET
x-ms-ratelimit-remaining-subscription-reads: 11933
x-ms-correlation-request-id   : d9bdb266-8349-4dbd-9688-de52f07648b2
x-ms-routing-request-id  : CENTRALUSEUAP:20200127T105304Z:d9bdb266-8349-4dbd-9688-de52f07648b2
Date   : Mon, 27 Jan 2020 10:53:04 GMT

Pobieranie listy kont magazynu z udziałami plików, których kopię zapasową można utworzyć za pomocą magazynu usługi Recovery Services

Aby potwierdzić, że "buforowanie" jest wykonywane, wyświetl listę wszystkich kont magazynu w subskrypcji z udziałami plików, których kopię zapasową można utworzyć za pomocą magazynu usługi Recovery Services. Następnie znajdź odpowiednie konto magazynu w odpowiedzi. Odbywa się to przy użyciu operacji GET ProtectableContainers .

GET https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupFabrics/Azure/protectableContainers?api-version=2016-12-01&$filter=backupManagementType eq 'AzureStorage'

Identyfikator URI GET zawiera wszystkie wymagane parametry. Nie jest wymagana żadna dodatkowa treść żądania.

Przykład treści odpowiedzi:

{

  "value": [

​    {

​      "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurefiles/providers
 /Microsoft.RecoveryServices/vaults/azurefilesvault/backupFabrics/Azure/

protectableContainers/StorageContainer;Storage;AzureFiles;testvault2",

​      "name": "StorageContainer;Storage;AzureFiles;testvault2",

​      "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectableContainers",

​      "properties": {

​        "friendlyName": "testvault2",

​        "backupManagementType": "AzureStorage",

​        "protectableContainerType": "StorageContainer",

​        "healthStatus": "Healthy",

​        "containerId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/
 AzureFiles/providers/Microsoft.Storage/storageAccounts/testvault2"

​      }

​    }

  ]

}

Ponieważ możemy zlokalizować konto magazynu testvault2 w treści odpowiedzi o przyjaznej nazwie, operacja odświeżania wykonana powyżej zakończyła się pomyślnie. Magazyn usługi Recovery Services może teraz pomyślnie odnaleźć konta magazynu z niechronionymi udziałami plików w tej samej subskrypcji.

Rejestrowanie konta magazynu w magazynie usługi Recovery Services

Ten krok jest wymagany tylko wtedy, gdy wcześniej nie zarejestrowano konta magazynu w magazynie. Magazyn można zarejestrować za pomocą operacji ProtectionContainers-Register.

PUT https://management.azure.com/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}?api-version=2016-12-01

Ustaw zmienne dla identyfikatora URI w następujący sposób:

  • {resourceGroupName} — azurefiles
  • {fabricName} — Azure
  • {vaultName} — azurefilesvault
  • {containerName} — jest to atrybut name w treści odpowiedzi operacji GET ProtectableContainers. W naszym przykładzie jest to StorageContainer;Storage;AzureFiles;testvault2

Uwaga

Zawsze weź atrybut name odpowiedzi i wypełnij je w tym żądaniu. Nie należy pisać kodu ani tworzyć formatu nazwy kontenera. Jeśli zostanie utworzony lub zakodowany, wywołanie interfejsu API zakończy się niepowodzeniem, jeśli format nazwy kontenera zmieni się w przyszłości.


PUT https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzureFiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupFabrics/Azure/protectionContainers/StorageContainer;Storage;AzureFiles;testvault2?api-version=2016-12-01

Treść żądania tworzenia jest następująca:

{

 "properties": {


  "containerType": "StorageContainer",


  "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzureFiles/providers/Microsoft.Storage/storageAccounts/testvault2",


  "resourceGroup": "AzureFiles",


  "friendlyName": "testvault2",


  "backupManagementType": "AzureStorage"

 }
}

Aby uzyskać pełną listę definicji treści żądania i innych szczegółów, zobacz ProtectionContainers-Register.

Jest to operacja asynchroniczna i zwraca dwie odpowiedzi: "Zaakceptowano 202", gdy operacja jest akceptowana i "200 OK" po zakończeniu operacji. Aby śledzić stan operacji, użyj nagłówka lokalizacji, aby uzyskać najnowszy stan operacji.

GET https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzureFiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupFabrics/Azure/protectionContainers/StorageContainer;Storage;AzureFiles;testvault2/operationresults/1a3c8ee7-e0e5-43ed-b8b3-73cc992b6db9?api-version=2016-12-01

Przykład treści odpowiedzi po zakończeniu operacji:

{
    "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzureFiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupFabrics/Azure/
protectionContainers/StorageContainer;Storage;AzureFiles;testvault2",
    "name": "StorageContainer;Storage;AzureFiles;testvault2",
    "properties": {
        "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzureFiles/providers/Microsoft.Storage/storageAccounts/testvault2",
        "protectedItemCount": 0,
        "friendlyName": "testvault2",
        "backupManagementType": "AzureStorage",
        "registrationStatus": "Registered",
        "healthStatus": "Healthy",
        "containerType": "StorageContainer",
        "protectableObjectType": "StorageContainer"
    }
}

Możesz sprawdzić, czy rejestracja zakończyła się pomyślnie z wartości parametru registrationstatus w treści odpowiedzi. W naszym przypadku jest wyświetlany stan zarejestrowany dla testvault2elementu , więc operacja rejestracji zakończyła się pomyślnie.

Zapytaj wszystkie niechronione udziały plików w ramach konta magazynu

Możesz uzyskać informacje o elementach, które można chronić na koncie magazynu, korzystając z operacji Protection Containers-Inquire . Jest to operacja asynchroniczna, a wyniki powinny być śledzone przy użyciu nagłówka lokalizacji.

POST https://management.azure.com/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/inquire?api-version=2016-12-01

Ustaw zmienne dla powyższego identyfikatora URI w następujący sposób:

  • {vaultName} — azurefilesvault
  • {fabricName} — Azure
  • {containerName}— odwołaj się do atrybutu name w treści odpowiedzi operacji GET ProtectableContainers. W naszym przykładzie jest to StorageContainer; Składowanie; AzureFiles; testvault2
https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupFabrics/Azure/protectionContainers/StorageContainer;Storage;AzureFiles;testvault2/inquire?api-version=2016-12-01

Gdy żądanie zakończy się pomyślnie, zwraca kod stanu "OK"

Cache-Control : no-cache
Pragma   : no-cache
X-Content-Type-Options: nosniff
x-ms-request-id  : 68727f1e-b8cf-4bf1-bf92-8e03a9d96c46
x-ms-client-request-id  : 3da383a5-d66d-4b7c-982a-bc8d94798d61,3da383a5-d66d-4b7c-982a-bc8d94798d61
Strict-Transport-Security: max-age=31536000; includeSubDomains
Server  : Microsoft-IIS/10.0
X-Powered-B : ASP.NET
x-ms-ratelimit-remaining-subscription-reads: 11932
x-ms-correlation-request-id  : 68727f1e-b8cf-4bf1-bf92-8e03a9d96c46
x-ms-routing-request-id   : CENTRALUSEUAP:20200127T105305Z:68727f1e-b8cf-4bf1-bf92-8e03a9d96c46
Date  : Mon, 27 Jan 2020 10:53:05 GMT

Wybierz udział plików, dla którego chcesz utworzyć kopię zapasową

Możesz wyświetlić listę wszystkich elementów z możliwością ochrony w ramach subskrypcji i zlokalizować żądany udział plików do utworzenia kopii zapasowej przy użyciu operacji GET backupprotectableItems .

GET https://management.azure.com/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupProtectableItems?api-version=2016-12-01&$filter={$filter}

Skonstruuj identyfikator URI w następujący sposób:

  • {vaultName} — azurefilesvault
  • {$filter} — backupManagementType eq "AzureStorage"
GET https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupProtectableItems?$filter=backupManagementType eq 'AzureStorage'&api-version=2016-12-01

Przykładowa odpowiedź:

Status Code:200

{
    "value": [
        {
            "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupFabrics/Azure/protectionContainers/storagecontainer;storage;azurefiles;afaccount1/protectableItems/azurefileshare;azurefiles1",
            "name": "azurefileshare;azurefiles1",
            "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectableItems",
            "properties": {
                "parentContainerFabricId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzureFiles/providers/Microsoft.Storage/storageAccounts/afaccount1",
                "parentContainerFriendlyName": "afaccount1",
                "azureFileShareType": "XSMB",
                "backupManagementType": "AzureStorage",
                "workloadType": "AzureFileShare",
                "protectableItemType": "AzureFileShare",
                "friendlyName": "azurefiles1",
                "protectionState": "NotProtected"
            }
        },
        {
            "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupFabrics/Azure/protectionContainers/storagecontainer;storage;azurefiles;afsaccount/protectableItems/azurefileshare;afsresource",
            "name": "azurefileshare;afsresource",
            "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectableItems",
            "properties": {
                "parentContainerFabricId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzureFiles/providers/Microsoft.Storage/storageAccounts/afsaccount",
                "parentContainerFriendlyName": "afsaccount",
                "azureFileShareType": "XSMB",
                "backupManagementType": "AzureStorage",
                "workloadType": "AzureFileShare",
                "protectableItemType": "AzureFileShare",
                "friendlyName": "afsresource",
                "protectionState": "NotProtected"
            }
        },
        {
            "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupFabrics/Azure/protectionContainers/storagecontainer;storage;azurefiles;testvault2/protectableItems/azurefileshare;testshare",
            "name": "azurefileshare;testshare",
            "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectableItems",
            "properties": {
                "parentContainerFabricId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzureFiles/providers/Microsoft.Storage/storageAccounts/testvault2",
                "parentContainerFriendlyName": "testvault2",
                "azureFileShareType": "XSMB",
                "backupManagementType": "AzureStorage",
                "workloadType": "AzureFileShare",
                "protectableItemType": "AzureFileShare",
                "friendlyName": "testshare",
                "protectionState": "NotProtected"
            }
        }
    ]
}

Odpowiedź zawiera listę wszystkich niechronionych udziałów plików i zawiera wszystkie informacje wymagane przez usługę Azure Recovery Service do skonfigurowania kopii zapasowej.

Włączanie kopii zapasowej udziału plików

Po zidentyfikowaniu odpowiedniego udziału plików o przyjaznej nazwie wybierz zasady, które mają być chronione. Aby dowiedzieć się więcej na temat istniejących zasad w magazynie, zapoznaj się z listą Interfejs API zasad. Następnie wybierz odpowiednie zasady , odwołując się do nazwy zasad. Aby utworzyć zasady, zapoznaj się z samouczkiem dotyczącym tworzenia zasad.

Włączanie ochrony to asynchroniczna operacja PUT , która tworzy "chroniony element".

PUT https://management.azure.com/Subscriptions/{subscriptionId}/resourceGroups/{vaultresourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}?api-version=2019-05-13

Ustaw zmienne containername i protecteditemname przy użyciu atrybutu ID w treści odpowiedzi operacji GET backupprotectableitems.

W naszym przykładzie identyfikator udziału plików, który chcemy chronić, to:

"/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupFabrics/Azure/protectionContainers/storagecontainer;storage;azurefiles;testvault2/protectableItems/azurefileshare;testshare
  • {containername} — storagecontainer; składowanie; azurefiles; testvault2
  • {protectedItemName} — azurefileshare; testshare

Możesz też odwołać się do atrybutu name kontenera ochrony i odpowiedzi z możliwością ochrony elementu.

Uwaga

Zawsze weź atrybut name odpowiedzi i wypełnij je w tym żądaniu. Nie należy pisać kodu ani tworzyć formatu nazwy kontenera ani formatu nazwy chronionego elementu. Jeśli zostanie utworzony lub zakodowany, wywołanie interfejsu API zakończy się niepowodzeniem, jeśli format nazwy kontenera lub format nazwy chronionego elementu zmieni się w przyszłości.


PUT https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupFabrics/Azure/protectionContainers/StorageContainer;Storage;AzureFiles;testvault2/protectedItems/azurefileshare;testshare?api-version=2016-12-01

Utwórz treść żądania:

Następująca treść żądania definiuje właściwości wymagane do utworzenia chronionego elementu.

{
  "properties": {
    "protectedItemType": "AzureFileShareProtectedItem",
    "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzureFiles/providers/Microsoft.Storage/storageAccounts/testvault2",
    "policyId": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupPolicies/schedule1"
  }
}

SourceResourceId jest parentcontainerFabricID w odpowiedzi get backupprotectableItems.

Przykładowa odpowiedź

Tworzenie chronionego elementu jest operacją asynchroniczną, która tworzy inną operację, która musi być śledzona. Zwraca ona dwie odpowiedzi: 202 (Zaakceptowane), gdy zostanie utworzona inna operacja i 200 (OK) po zakończeniu tej operacji.

Po przesłaniu żądania PUT do utworzenia lub zaktualizowania chronionego elementu początkowa odpowiedź to 202 (Zaakceptowane) z nagłówkiem lokalizacji.

HTTP/1.1 202 Accepted
Cache-Control  : no-cache
Pragma  : no-cache
Location : https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupFabrics/Azure/protectionContainers/StorageContainer;Storage;AzureFiles;testvault2/protectedItems/azurefileshare;testshare/operationResults/c3a52d1d-0853-4211-8141-477c65740264?api-version=2016-12-01
Retry-Afte  : 60
Azure-AsyncOperation  : https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupFabrics/Azure/protectionContainers/StorageContainer;Storage;AzureFiles;testvault2/protectedItems/azurefileshare;testshare/operationResults/c3a52d1d-0853-4211-8141-477c65740264?api-version=2016-12-01
X-Content-Type-Options : nosniff
x-ms-request-id : b55527fa-f473-4f09-b169-9cc3a7a39065
x-ms-client-request-id: 3da383a5-d66d-4b7c-982a-bc8d94798d61,3da383a5-d66d-4b7c-982a-bc8d94798d61
Strict-Transport-Security : max-age=31536000; includeSubDomains
X-Powered-By  : ASP.NET
x-ms-ratelimit-remaining-subscription-writes: 1198
x-ms-correlation-request-id : b55527fa-f473-4f09-b169-9cc3a7a39065
x-ms-routing-request-id  : CENTRALUSEUAP:20200127T105412Z:b55527fa-f473-4f09-b169-9cc3a7a39065
Date : Mon, 27 Jan 2020 10:54:12 GMT

Następnie śledź wynikową operację przy użyciu nagłówka lokalizacji lub nagłówka Azure-AsyncOperation za pomocą polecenia GET .

GET https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupOperations/c3a52d1d-0853-4211-8141-477c65740264?api-version=2016-12-01

Po zakończeniu operacji zwraca ona 200 (OK) z zawartością chronionego elementu w treści odpowiedzi.

Przykładowa treść odpowiedzi:

{
    "id": "c3a52d1d-0853-4211-8141-477c65740264",
    "name": "c3a52d1d-0853-4211-8141-477c65740264",
    "status": "Succeeded",
    "startTime": "2020-02-03T18:10:48.296012Z",
    "endTime": "2020-02-03T18:10:48.296012Z",
    "properties": {
        "objectType": "OperationStatusJobExtendedInfo",
        "jobId": "e2ca2cf4-2eb9-4d4b-b16a-8e592d2a658b"
    }
}

Potwierdza to, że ochrona jest włączona dla udziału plików, a pierwsza kopia zapasowa zostanie wyzwolona zgodnie z harmonogramem zasad.

Wyzwalanie kopii zapasowej na żądanie dla udziału plików

Po skonfigurowaniu udziału plików platformy Azure na potrzeby tworzenia kopii zapasowych kopie zapasowe są uruchamiane zgodnie z harmonogramem zasad. Możesz poczekać na pierwszą zaplanowaną kopię zapasową lub wyzwolić kopię zapasową na żądanie w dowolnym momencie.

Wyzwalanie kopii zapasowej na żądanie jest operacją POST.

POST https://management.azure.com/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/backup?api-version=2016-12-01

Element {containerName} i {protectedItemName} są skonstruowane powyżej podczas włączania kopii zapasowej. W naszym przykładzie przekłada się to na:

POST https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupFabrics/Azure/protectionContainers/StorageContainer;storage;azurefiles;testvault2/protectedItems/AzureFileShare;testshare/backup?api-version=2017-07-01

Tworzenie treści żądania

Aby wyzwolić kopię zapasową na żądanie, poniżej przedstawiono składniki treści żądania.

Nazwisko Pisz Opis
Właściwości AzurefilesharebackupReques Właściwości kopii zapasowejRequestResource

Pełną listę definicji treści żądania i innych szczegółów można znaleźć w dokumencie wyzwalania kopii zapasowych elementów chronionych interfejsu API REST.

Przykład treści żądania

{

  "properties":{

   "objectType":"AzureFileShareBackupRequest",
    "recoveryPointExpiryTimeInUTC":"2020-03-07T18:29:59.000Z"
}

}

Odpowiedzi na operację tworzenia kopii zapasowej na żądanie

Wyzwalanie kopii zapasowej na żądanie jest operacją asynchroniczną. Oznacza to, że ta operacja tworzy inną operację, która musi być śledzona oddzielnie.

Zwraca ona dwie odpowiedzi: 202 (Zaakceptowane), gdy zostanie utworzona inna operacja i 200 (OK) po zakończeniu tej operacji.

Przykładowe odpowiedzi na operację tworzenia kopii zapasowej na żądanie

Po przesłaniu żądania POST dla kopii zapasowej na żądanie początkowa odpowiedź to 202 (Zaakceptowane) z nagłówkiem lokalizacji lub nagłówkiem azure-async-header.

'Cache-Control': 'no-cache'
'Pragma': 'no-cache'
'Expires': '-1'
'Location': https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupFabrics/Azure/protectionContainers/StorageContainer;storage;azurefiles;testvault2/protectedItems/AzureFileShare;testshare/operationResults/dc62d524-427a-4093-968d-e951c0a0726e?api-version=2017-07-01
'Retry-After': '60'
'Azure-AsyncOperation': https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupFabrics/Azure/protectionContainers/StorageContainer;storage;azurefiles;testvault2/protectedItems/AzureFileShare;testshare/operationsStatus/dc62d524-427a-4093-968d-e951c0a0726e?api-version=2017-07-01
'X-Content-Type-Options': 'nosniff'
'x-ms-request-id': '2e03b8d4-66b1-48cf-8094-aa8bff57e8fb'
'x-ms-client-request-id': 'a644712a-4895-11ea-ba57-0a580af42708, a644712a-4895-11ea-ba57-0a580af42708'
'Strict-Transport-Security': 'max-age=31536000; includeSubDomains'
'X-Powered-By': 'ASP.NET'
'x-ms-ratelimit-remaining-subscription-writes': '1199'
'x-ms-correlation-request-id': '2e03b8d4-66b1-48cf-8094-aa8bff57e8fb'
'x-ms-routing-request-id': 'WESTEUROPE:20200206T040339Z:2e03b8d4-66b1-48cf-8094-aa8bff57e8fb'
'Date': 'Thu, 06 Feb 2020 04:03:38 GMT'
'Content-Length': '0'

Następnie śledź wynikową operację przy użyciu nagłówka lokalizacji lub nagłówka Azure-AsyncOperation za pomocą polecenia GET .

GET https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupOperations/dc62d524-427a-4093-968d-e951c0a0726e?api-version=2016-12-01

Po zakończeniu operacji zwraca ona wartość 200 (OK) z identyfikatorem wynikowego zadania tworzenia kopii zapasowej w treści odpowiedzi.

Przykładowa treść odpowiedzi

{
    "id": "dc62d524-427a-4093-968d-e951c0a0726e",
    "name": "dc62d524-427a-4093-968d-e951c0a0726e",
    "status": "Succeeded",
    "startTime": "2020-02-06T11:06:02.1327954Z",
    "endTime": "2020-02-06T11:06:02.1327954Z",
    "properties": {
        "objectType": "OperationStatusJobExtendedInfo",
        "jobId": "39282261-cb52-43f5-9dd0-ffaf66beeaef"
    }
}

Ponieważ zadanie tworzenia kopii zapasowej jest długotrwałą operacją, należy ją śledzić zgodnie z opisem w dokumencie monitorowania zadań przy użyciu interfejsu API REST.

Następne kroki