Como implementar a recuperação de desastre usando o backup de serviço e restaurar no Gerenciamento de API no Azure
Artigo
APLICA-SE A: Desenvolvedor | Básico | Standard | Premium
Ao publicar e gerenciar suas APIs através do Gerenciamento de API do Azure, você está tirando proveito de muitos recursos de tolerância e infraestrutura que você precisaria criar, implementar e gerenciar manualmente. A plataforma Azure atenua grande parte das falhas potenciais a uma fração do custo.
Para se recuperar de problemas de disponibilidade que afetam o seu serviço de Gerenciamento de API, esteja pronto para reconstituir o seu serviço em outra região a qualquer momento. Dependendo do objetivo do tempo de recuperação, talvez você queira manter um serviço em espera em uma ou mais regiões. Também é possível tentar manter a configuração e o conteúdo em sincronia com o serviço ativo de acordo com o objetivo do ponto de recuperação. As funcionalidades de backup e de restauração de gerenciamento de API fornecem os blocos de construção necessários para implementar uma estratégia de recuperação de desastre.
As operações de backup e restauração também podem ser usadas para replicar a configuração do serviço de Gerenciamento de API entre ambientes operacionais, por exemplo, desenvolvimento e preparo. Lembre-se de que os dados de runtime, como usuários e assinaturas, também serão copiados, o que talvez nem sempre seja desejável.
Cada backup expira após 30 dias. Se você tentar restaurar um backup após o período de expiração de 30 dias, a restauração falhará com uma mensagem Cannot restore: backup expired.
Importante
A operação de restauração não altera a configuração de nome de host personalizado do serviço de destino. É recomendável usar o mesmo nome de host e TLS personalizados para serviços ativos e em espera, de modo que, após a conclusão da operação de restauração, o tráfego possa ser redirecionado para a instância em espera por uma alteração simples de CNAME de DNS.
Crie um contêiner para armazenar os dados de backup na conta de armazenamento.
A versão mais recente do Azure PowerShell, se você planeja usar cmdlets do Azure PowerShell. Instale o Azure PowerShell, caso ainda não tenha feito isso.
Configurar o acesso à conta de armazenamento
Ao executar uma operação de backup ou restauração, você precisa configurar o acesso à conta de armazenamento. O Gerenciamento de API dá suporte a dois mecanismos de acesso de armazenamento: uma chave de acesso do Armazenamento do Microsoft Azure ou uma identidade gerenciada do Gerenciamento de API.
Configurar a chave de acesso da conta de armazenamento
O Azure gera duas chaves de acesso à conta de armazenamento de 512 bits para cada conta de armazenamento. Essas chaves podem ser usadas para autorizar o acesso à sua conta de armazenamento por meio de autorização de Chave Compartilhada. Para exibir, recuperar e gerenciar as chaves, confira Gerenciar chaves de acesso da conta de armazenamento.
Configurar a identidade gerenciada do Gerenciamento de API
Observação
Usar uma identidade gerenciada do Gerenciamento de API para operações de armazenamento durante o backup e a restauração tem suporte na API REST do Gerenciamento de API na versão 2021-04-01-preview ou superiores.
Se você habilitar uma identidade gerenciada atribuída ao usuário, anote a ID do Cliente da identidade.
Se você for fazer backup e restaurar para diferentes instâncias do Gerenciamento de API, habilite uma identidade gerenciada nas instâncias de origem e destino.
Atribua à identidade a função Colaborador de dados de blob de armazenamento , com escopo para a conta de armazenamento usada para backup e restauração. Para atribuir a função, use o portal do Azure ou outras ferramentas do Azure.
Fazer backup de um serviço de Gerenciamento de API
Uma instância de Gerenciamento de API chamada myapim está no grupo de recursos apimresourcegroup.
Uma conta de armazenamento chamada backupstorageaccount está no grupo de recursos storageresourcegroup. A conta de armazenamento tem um contêiner chamado backups.
Um blob de backup será criado com o nome ContosoBackup.apimbackup.
Para configurar uma identidade gerenciada na sua instância de Gerenciamento de API para acessar a conta de armazenamento, confira Configurar uma identidade gerenciada, anteriormente neste artigo.
Acesso usando a identidade gerenciada atribuída pelo sistema
O backup é uma operação de longa execução que pode levar vários minutos para ser concluída. Durante esse tempo, o gateway de API continua a lidar com solicitações, mas o estado do serviço é Atualizar.
Uma instância de Gerenciamento de API chamada myapim está no grupo de recursos apimresourcegroup.
Uma conta de armazenamento chamada backupstorageaccount está no grupo de recursos storageresourcegroup. A conta de armazenamento tem um contêiner chamado backups.
Um blob de backup será criado com o nome ContosoBackup.apimbackup.
O backup é uma operação de longa execução que pode levar vários minutos para ser concluída. Durante esse tempo, o gateway de API continua a lidar com solicitações, mas o estado do serviço é Atualizar.
Para fazer backup de um serviço de Gerenciamento de API, execute a seguinte solicitação HTTP:
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/backup?api-version={api-version}
em que:
subscriptionId – ID da assinatura que contém o serviço de Gerenciamento de API do qual você está tentando fazer backup
resourceGroupName -nome do grupo de recursos do seu serviço de Gerenciamento de API do Azure
serviceName - o nome do serviço de Gerenciamento de API que você está fazendo um backup em específico, no momento de sua criação
api-version – uma versão válida da API REST, como 2021-08-01 ou 2021-04-01-preview.
No corpo da solicitação, especifique o nome da conta de armazenamento de destino, o nome do contêiner de blob, o nome do backup e o tipo de acesso ao armazenamento. Se o contêiner de armazenamento não existir, a operação de backup o criará.
Acesso usando a chave de acesso de armazenamento
{
"storageAccount": "{storage account name for the backup}",
"containerName": "{backup container name}",
"backupName": "{backup blob name}",
"accessKey": "{access key for the account}"
}
Acesso usando a identidade gerenciada
Observação
Usar uma API Management gerenciada para operações de armazenamento durante o backup e a restauração requer a API REST do Gerenciamento de API versão 2021-04-01-preview ou superior.
Acesso usando a identidade gerenciada atribuída pelo sistema
{
"storageAccount": "{storage account name for the backup}",
"containerName": "{backup container name}",
"backupName": "{backup blob name}",
"accessType": "SystemAssignedManagedIdentity"
}
Acesso usando a identidade gerenciada atribuída pelo usuário
{
"storageAccount": "{storage account name for the backup}",
"containerName": "{backup container name}",
"backupName": "{backup blob name}",
"accessType": "UserAssignedManagedIdentity",
"clientId": "{client ID of user-assigned identity}"
}
Defina o valor do cabeçalho de solicitação Content-Type para application/json.
O backup é uma operação de longa execução que pode levar vários minutos para ser concluída. Se a solicitação foi bem-sucedida e o processo de backup foi iniciado, você receberá uma 202 Accepted resposta com um cabeçalho Location. Faça solicitações GET para a URL no cabeçalho do Location para descobrir o status da operação. Enquanto o backup está em andamento, você continua recebendo um código de status 202 Accepted. Durante esse tempo, o gateway de API continua a lidar com solicitações, mas o estado do serviço é Atualizar. Um Código de resposta 200 OK indica a conclusão bem-sucedida da operação de backup.
Restaurar um serviço de Gerenciamento de API
Cuidado
Evite alterações na configuração do serviço (por exemplo, APIs, políticas, aparência do portal do desenvolvedor) enquanto uma operação de restauração está em andamento. As alterações podem ser substituídas.
Uma instância de Gerenciamento de API chamada myapim é restaurada do blob de backup chamado ContosoBackup.apimbackup na conta de armazenamento backupstorageaccount.
O blob de backup está em um contêiner chamado backups.
Para configurar uma identidade gerenciada na sua instância de Gerenciamento de API para acessar a conta de armazenamento, confira Configurar uma identidade gerenciada, anteriormente neste artigo.
Acesso usando a identidade gerenciada atribuída pelo sistema
A restauração é uma operação de execução longa que pode levar até 45 minutos ou mais para ser concluída.
Nos seguintes exemplos,
Uma instância de Gerenciamento de API chamada myapim é restaurada do blob de backup chamado ContosoBackup.apimbackup na conta de armazenamento backupstorageaccount.
O blob de backup está em um contêiner chamado backups.
A restauração é uma operação de execução longa que pode levar até 45 minutos ou mais para ser concluída.
Para restaurar um serviço de Gerenciamento de API de um backup criado anteriormente, faça a seguinte solicitação HTTP:
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/restore?api-version={api-version}
em que:
subscriptionId - ID da assinatura que contém o serviço de Gerenciamento de API que você está restaurando um backup em
resourceGroupName – nome do grupo de recursos que contém o serviço de Gerenciamento de API do Azure em que você está restaurando um backup
serviceName - o nome do serviço de Gerenciamento de API para o qual está sendo realizada a restauração especificada no momento de sua criação
api-version – uma versão válida da API REST, como 2021-08-01 ou 2021-04-01-preview
No corpo da solicitação, especifique o nome da conta de armazenamento existente, o nome do contêiner de blob, o nome do backup e o tipo de acesso ao armazenamento.
Acesso usando a chave de acesso de armazenamento
{
"storageAccount": "{storage account name for the backup}",
"containerName": "{backup container name}",
"backupName": "{backup blob name}",
"accessKey": "{access key for the account}"
}
Acesso usando a identidade gerenciada
Observação
Usar uma API Management gerenciada para operações de armazenamento durante o backup e a restauração requer a API REST do Gerenciamento de API versão 2021-04-01-preview ou superior.
Acesso usando a identidade gerenciada atribuída pelo sistema
{
"storageAccount": "{storage account name for the backup}",
"containerName": "{backup container name}",
"backupName": "{backup blob name}",
"accessType": "SystemAssignedManagedIdentity"
}
Acesso usando a identidade gerenciada atribuída pelo usuário
{
"storageAccount": "{storage account name for the backup}",
"containerName": "{backup container name}",
"backupName": "{backup blob name}",
"accessType": "UserAssignedManagedIdentity",
"clientId": "{client ID of user-assigned identity}"
}
Defina o valor do cabeçalho de solicitação Content-Type para application/json.
Restaure uma operação longa de execução que pode levar até 30 minutos ou mais para concluir. Se a solicitação foi bem-sucedida e o processo de restauração foi iniciado, você receberá uma 202 Accepted resposta com um cabeçalho Location. Faça solicitações GET para a URL no cabeçalho do Location para descobrir o status da operação. Enquanto a restauração está em andamento, você continua recebendo um código de status 202 Accepted. Um código de resposta 200 OK indica a conclusão bem-sucedida da operação de restauração.
Restrições
A restauração de um backup é garantida somente por 30 dias desde o momento de sua criação.
Enquanto o backup estiver em andamento, evite fazer alterações de gerenciamento no serviço, como upgrade do tipo de preço ou fazer downgrade, alterar o nome de domínio e outros.
As alterações feitas na configuração do serviço (por exemplo, APIs, políticas, aparência do portal do desenvolvedor) enquanto uma operação de backup está em andamento podem não ser incluídas no backup e, portanto, serão perdidas.
O backup não captura dados de log previamente agregados usados em relatórios mostrados na janela Análise no portal do Azure.
O tipo de preço do serviço que está sendo restaurado precisa corresponder ao tipo de preço do serviço copiado em backup que está sendo restaurado.
Restrições de rede de armazenamento
Se a conta de armazenamento estiver habilitada para firewall, é recomendável usar a identidade gerenciada atribuída pelo sistema da instância de Gerenciamento de API para acessar a conta. Verifique se a conta de armazenamento concede acesso a serviços confiáveis do Azure.
O que não é submetido a backup
Os Dados de uso utilizados para a criação de relatórios de análise não estão incluídos no backup. Use o API REST de Gerenciamento de API do Azure para recuperar periodicamente os relatórios analíticos por questões de segurança.
A frequência com que você executa backups de serviço afeta o seu objetivo de ponto de recuperação. Para minimizar, aconselhamos a implementação de backups regulares e realizar backups sob demanda depois de fazer as mudanças ao seu serviço de Gerenciamento de API.
Próximas etapas
Confira os seguintes recursos relacionados para o processo de backup/restauração:
O nível Premium do Gerenciamento de API também oferece suporte a redundância de zona, que oferece resiliência e alta disponibilidade para uma instância de serviço em uma região específica do Azure (local).
Administrar uma infraestrutura de banco de dados do SQL Server para bancos de dados relacionais de nuvem, locais e híbridos usando as ofertas de banco de dados relacional do Microsoft PaaS.
Saiba como implantar uma instância de Gerenciamento de API do Azure de camada Premium em várias regiões do Azure para melhorar a disponibilidade do gateway de API.
Saiba mais sobre recursos, incluindo zonas de disponibilidade e implantações multirregionais, para tornar sua instância do Azure Gerenciamento de API resiliente a falhas na nuvem.
Este artigo descreve como configurar regras para controlar o comportamento de dimensionamento automático em uma instância do Gerenciamento de API do Azure.