Compartilhar via


Fazer backup de compartilhamento de arquivo do Azure usando o Backup do Azure por meio da API REST

Este artigo descreve como fazer backup de um compartilhamento de arquivo do Azure usando o Backup do Azure por meio da API REST.

O artigo pressupõe que você já criou um cofre dos Serviços de Recuperação e uma política para configurar o backup do compartilhamento de arquivo. Caso contrário, veja os tutoriais criar cofre e criar política da API REST para criar cofres e políticas.

Neste artigo, usaremos os seguintes recursos:

  • RecoveryServicesVault: azurefilesvault

  • Política: schedule1

  • Grupo de recursos: azurefiles

  • Conta de Armazenamento: testvault2

  • Compartilhamento de Arquivo: testshare

Configurar o backup de um compartilhamento de arquivo do Azure desprotegido usando a API REST

Descobrir contas de armazenamento com compartilhamentos de arquivo do Azure desprotegidos

O cofre precisa descobrir todas as contas de armazenamento do Azure na assinatura com compartilhamentos de arquivo cujo backup pode ser feito no cofre dos Serviços de Recuperação. Isso é disparado usando a operação de atualização. Trata-se de uma operação POST assíncrona que garante que o cofre obtenha a lista mais recente dos compartilhamentos de arquivos do Azure desprotegidos na assinatura atual e as “armazena em cache”. Depois que o compartilhamento de arquivo é "armazenado em cache", os serviços de recuperação podem acessar o compartilhamento de arquivo e protegê-lo.

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

O URI POST tem os parâmetros {subscriptionId}, {vaultName}, {vaultresourceGroupName} e {fabricName}. Em nosso exemplo, o valor dos diferentes parâmetros é o seguinte:

  • {fabricName} é Azure

  • {vaultName} é azurefilesvault

  • {vaultresourceGroupName} é azurefiles

  • $filter=backupManagementType eq 'AzureStorage'

Como todos os parâmetros necessários são fornecidos no URI, não é necessário ter o corpo da solicitação separado.

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'

Respostas à operação de atualização

A operação “atualizar” é uma operação assíncrona. Isso significa que essa operação cria outra operação que precisa ser rastreada separadamente.

Ela retorna duas respostas: 202 (Aceito) quando outra operação é criada e 200 (OK) quando a operação é concluída.

Exemplos de respostas à operação de atualização

Após a solicitação POST ser enviada, uma resposta 202 (Aceito) será retornada.

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'

Rastreie a operação resultante usando o cabeçalho de “Localização” com um comando GET simples

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

Depois que todas as contas do Armazenamento do Azure são descobertas, o comando GET retorna uma resposta 204 (Nenhum Conteúdo). O cofre agora pode descobrir qualquer conta de armazenamento com compartilhamentos de arquivo cujo backup pode ser feito na assinatura.

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

Obter lista de contas de armazenamento com compartilhamentos de arquivo cujo backup pode ser feito com o cofre dos Serviços de Recuperação

Para confirmar se o "armazenamento em cache" está concluído, liste todas as contas de armazenamento na assinatura com compartilhamentos de arquivo cujo backup pode ser feito com o cofre dos Serviços de Recuperação. Depois localize a conta de armazenamento desejada na resposta. Isso é feito usando a operação 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'

O URI GET tem todos os parâmetros necessários. Nenhum corpo da solicitação adicional é necessário.

Exemplo de corpo da resposta:

{

  "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"

​      }

​    }

  ]

}

Como podemos localizar a conta de armazenamento testvault2 no corpo da resposta com o nome amigável, a operação de atualização executada acima foi bem-sucedida. O cofre dos Serviços de Recuperação agora pode descobrir com êxito as contas de armazenamento com compartilhamentos de arquivos desprotegidos na mesma assinatura.

Registrar conta de armazenamento com o cofre dos Serviços de Recuperação

Esta etapa só é necessária se você não registrou a conta de armazenamento com o cofre anteriormente. Você pode registrar o cofre por meio da operação 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

Defina as variáveis do URI da seguinte maneira:

  • {resourceGroupName} – azurefiles
  • {fabricName} – Azure
  • {vaultName} – azurefilesvault
  • {containerName} – É o atributo de nome no corpo da resposta da operação GET ProtectableContainers. Em nosso exemplo, é StorageContainer;Storage;AzureFiles;testvault2

Observação

Sempre use o atributo de nome da resposta e preencha-o nesta solicitação. Não integre em código nem crie o formato de nome de contêiner. Se você criar ou integrar em código, a chamada à API falhará se o formato do nome do contêiner for alterado no futuro.


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

O corpo da solicitação de criação é o seguinte:

{

 "properties": {


  "containerType": "StorageContainer",


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


  "resourceGroup": "AzureFiles",


  "friendlyName": "testvault2",


  "backupManagementType": "AzureStorage"

 }
}

Para obter uma lista de definições de corpo da solicitação e outros detalhes, confira ProtectionContainers-Register.

Essa é uma operação assíncrona e retorna duas respostas: "202 aceito" quando a operação é aceita e "200 OK" quando a operação é concluída. Para acompanhar o status da operação, use o cabeçalho de localização para obter o status mais recente.

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

Exemplo do corpo da resposta quando a operação é concluída:

{
    "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"
    }
}

Você pode verificar se o registro foi bem-sucedido com o valor do parâmetro registrationstatus no corpo da resposta. Em nosso caso, ele mostra o status de testvault2 como registrado, portanto, a operação de registro foi bem-sucedida.

Consultar todos os compartilhamentos de arquivos desprotegidos em uma conta de armazenamento

Você pode consultar os itens que podem ser protegidos em uma conta de armazenamento usando a operação Protection Containers-Inquire. É uma operação assíncrona, e os resultados devem ser controlados usando o cabeçalho de localização.

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

Defina as variáveis do URI acima da seguinte maneira:

  • {vaultName} – azurefilesvault
  • {fabricName} – Azure
  • {containerName} – Faça referência ao atributo de nome no corpo da resposta da operação GET ProtectableContainers. No nosso exemplo, é StorageContainer;Storage;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

Quando é bem-sucedida, a solicitação retorna o código de status "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

Selecione o compartilhamento de arquivo para backup

Você pode listar todos os itens que podem ser protegidos na assinatura e localizar o compartilhamento de arquivo desejado para backup usando a operação GET backupprotectableItems.

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

Crie o URI da seguinte maneira:

  • {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

Exemplo de resposta:

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"
            }
        }
    ]
}

A resposta contém a lista de todos os compartilhamentos de arquivo desprotegidos e todas as informações necessárias para que o Serviço de Recuperação do Azure configure o backup.

Habilitar o backup do compartilhamento de arquivo

Depois que o compartilhamento de arquivo relevante for "identificado" com o nome amigável, selecione a política de proteção. Para saber mais sobre as políticas no cofre, veja a Lista de políticas de API. Em seguida, selecione a política relevante referindo-se ao nome da política. Para criar políticas, veja o tutorial de criação de políticas.

A habilitação da proteção é uma operação PUT assíncrona que cria um "item protegido".

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

Defina as variáveis containername e protecteditemname usando o atributo de ID no corpo da resposta da operação GET backupprotectableitems.

Em nosso exemplo, a ID do compartilhamento de arquivo que desejamos proteger é:

"/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;storage;azurefiles;testvault2
  • {protectedItemName} – azurefileshare;testshare

Ou você pode fazer referência ao atributo name do contêiner de proteção e as respostas de itens que podem ser protegidos.

Observação

Sempre use o atributo de nome da resposta e preencha-o nesta solicitação. Não integre em código nem crie o formato de nome de contêiner ou o formato de nome de item protegido. Se você criar ou integrar em código, a chamada à API falhará se o formato do nome do contêiner ou o formato do nome de item protegido for alterado no futuro.


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

Crie o corpo da solicitação:

O corpo da solicitação a seguir define as propriedades necessárias para criar um item protegido.

{
  "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 é o parentcontainerFabricID em resposta a GET backupprotectableItems.

Exemplo de Resposta

A criação de um item protegido é uma operação assíncrona, sendo outra operação que precisa ser acompanhada. Ela retorna duas respostas: 202 (Aceito) quando outra operação é criada e 200 (OK) quando a operação é concluída.

Depois que você envia a solicitação PUT para criação ou atualização do item protegido, a resposta inicial é 202 (Aceito) com um cabeçalho de localização.

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

Em seguida, acompanhe a operação resultante usando o cabeçalho de localização ou o cabeçalho Azure-AsyncOperation com um comando 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

Depois que a operação for concluída, ele retornará 200 (OK) com o conteúdo do item protegido no corpo da resposta.

Exemplo de corpo de resposta:

{
    "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"
    }
}

Isto confirma que a proteção está habilitada para o compartilhamento de arquivo e o primeiro backup será disparado conforme a agenda da política.

Disparar um backup sob demanda para compartilhamento de arquivo

Após um compartilhamento de arquivo do Azure ser configurado para backup, os backups são realizados de acordo com a agenda da política. Você pode esperar pelo primeiro backup agendado ou disparar um backup sob demanda a qualquer momento.

Disparar um backup sob demanda é uma operação 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

{containerName} e {protectedItemName} são da maneira criada acima ao habilitar o backup. Para nosso exemplo, isso é traduzido como:

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

Criar o corpo da solicitação

Para disparar um backup sob demanda, a seguir estão os componentes do corpo da solicitação.

Nome Tipo Descrição
Propriedades AzurefilesharebackupReques Propriedades de BackupRequestResource

Para obter uma lista de definições de corpo da solicitação e outros detalhes, veja o documento sobre como disparar backups de itens protegidos da API REST.

Exemplo de corpo da solicitação

{

  "properties":{

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

}

Respostas à operação de backup sob demanda

Disparar um backup sob demanda é uma operação assíncrona. Isso significa que essa operação cria outra operação que precisa ser rastreada separadamente.

Ela retorna duas respostas: 202 (Aceito) quando outra operação é criada e 200 (OK) quando a operação é concluída.

Exemplos de respostas à operação de backup sob demanda

Depois de enviar a solicitação POST para um backup sob demanda, a resposta inicial é 202 (Aceito) com um cabeçalho de localização ou cabeçalho assíncrono do Azure.

'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'

Em seguida, acompanhe a operação resultante usando o cabeçalho de localização ou o cabeçalho Azure-AsyncOperation com um comando 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

Depois que a operação for concluída, ela retornará 200 (OK) com a ID da tarefa de backup resultante no corpo da resposta.

Corpo da resposta de exemplo

{
    "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"
    }
}

Como a tarefa de backup é uma operação longa, ela precisa ser rastreada conforme explicado no documento sobre monitoramento de trabalhos usando a API REST.

Próximas etapas