Exemplo 1: Criação de um backup do ECS
Cenários
Você pode fazer backup de recursos, incluindo servidores de nuvem e discos. Esta seção usa um ECS como exemplo para descrever como criar um backup de servidor em nuvem chamando APIs. Para obter detalhes sobre como chamar as API, consulte Chamada das APIs.
Restrições
O cofre criado usando essa API está no modo de cobrança de pagamento por uso.
As APIs envolvidas
Para criar um backup do servidor em nuvem, é necessário criar um cofre para armazenar backups, associar o servidor de destino ao cofre e, em seguida, fazer backup do servidor. As seguintes API são necessárias:
- Criação de um cofre: criar um container para armazenar backups.
- Associação de recursos: determinar o servidor em nuvem ou o disco a ser copiado.
- Criação de um ponto de restauração: criar um backup.
- Consulta de um ponto de restauração: confirmar se um backup foi criado.
Procedimento
- Crie um cofre.
- Crie um cofre com configurações simples.
- API
Formato URI: POST /v3/{project_id}/vaults
Para obter detalhes, consulte Criação de um cofre.
- Exemplo de solicitação
POST: https://{endpoint}/v3/{project_id}/vaults
Obtenha o valor de {endpoint} de Regiões e pontos de extremidade.
Corpo:
{ "vault": { "billing": { "cloud_type": "public", "consistent_level": "crash_consistent", "object_type": "server", "protect_type": "backup", "size": 200 }, "name": "my_vault", "resources": [] } }
- Exemplo de resposta
{ "vault": { "id": "ea7b8717-2543-478a-a92d-3ca7ee448f67", "name": "my_vault", "description": null, "resources": [], "provider_id": "0daac4c5-6707-4851-97ba-169e36266b66", "created_at": "2020-08-17T03:51:24.678916", "project_id": "0605767b5780d5762fc5c0118072a564", "enterprise_project_id": "0", "auto_bind": false, "bind_rules": {}, "user_id": "aa2999fa5ae640f28926f8fd79188934", "billing": { "allocated": 0, "cloud_type": "public", "consistent_level": "crash_consistent", "frozen_scene": null, "charging_mode": "post_paid", "order_id": null, "product_id": null, "protect_type": "backup", "object_type": "server", "spec_code": "vault.backup.server.normal", "used": 0, "storage_unit": null, "status": "available", "size": 200 }, "tags": [] } }
- API
- Crie um cofre pré-pago e associe-o a um servidor.
- API
Formato URI: POST /v3/{project_id}/vaults
A API utilizada é a mesma que a fornecida em 1.a.
- Exemplo de solicitação
POST: https://{endpoint}/v3/{project_id}/vaults
Obtenha o valor de {endpoint} de Regiões e pontos de extremidade.
Corpo:
{ "vault": { "billing": { "cloud_type": "public", "consistent_level": "crash_consistent", "object_type": "server", "protect_type": "backup", "size": 100, "charging_mode": "pre_paid", "period_type": "month", "period_num": 1, "is_auto_renew": false, "is_auto_pay": false }, "description": "vault_description", "name": "vault_name", "resources": [{ "id": "97595625-198e-4e4d-879b-9d53f68ba551", "type": "OS::Nova::Server" }] } }
- API
- Registre o ID do cofre no corpo da resposta.
- Crie um cofre com configurações simples.
- Associe um servidor ou disco ao cofre.
- Associe recursos.
- API
Formato URI: POST /v3/{project_id}/vaults/{vault_id}/addresources
Para obter detalhes, consulte Associação de recursos.
- Exemplo de solicitação
POST: https://{endpoint}/v3/0605767b5780d5762fc5c0118072a564 /vaults/ea7b8717-2543-478a-a92d-3ca7ee448f67/addresources
Obtenha o valor de {endpoint} de Regiões e pontos de extremidade.
Corpo:
{ "resources": [{ "id": "e8cc6bfd-d324-4b88-9109-9fb0ba70676f", "type": "OS::Nova::Server", "name": "server-4690-0002" }] }
- Exemplo de resposta
{ "add_resource_ids": [ "e8cc6bfd-d324-4b88-9109-9fb0ba70676f" ] }
- API
- No corpo da solicitação, selecione o ID de um ECS que esteja no estado Running e não tenha sido associado a um cofre.
- Associe recursos.
- Crie um ponto de restauração.
- Crie um ponto de restauração.
- API
Formato URI: POST /v3/{project_id}/checkpoints
Para obter detalhes, consulte Criação de um ponto de restauração.
- Exemplo de solicitação
POST: https://{endpoint}/v3/0605767b5780d5762fc5c0118072a564/checkpoints
Obtenha o valor de {endpoint} de Regiões e pontos de extremidade.
Corpo:
{ "checkpoint": { "parameters": { "auto_trigger": false, "description": "backupauto", "incremental": true, "name": "backup_auto", "resources": ["e8cc6bfd-d324-4b88-9109-9fb0ba70676f"] }, "vault_id": "ea7b8717-2543-478a-a92d-3ca7ee448f67" } }
- Exemplo de resposta
{ "checkpoint": { "id": "d9ce6924-d753-4132-bd16-a9f8838ea7d2", "project_id": "0605767b5780d5762fc5c0118072a564", "status": "protecting", "vault": { "id": "ea7b8717-2543-478a-a92d-3ca7ee448f67", "name": "my_vault", "resources": [ { "id": "e8cc6bfd-d324-4b88-9109-9fb0ba70676f", "type": "OS::Nova::Server", "name": "ecs-9f93-0002", "extra_info": "{}", "resource_size": "40", "backup_size": "0", "backup_count": "0", "protect_status": "available" } ], "skipped_resources": [] }, "created_at": "2020-08-17T06:49:06.307378", "extra_info": { "name": "backup_auto", "description": "backupauto", "retention_duration": -1 } } }
- API
- Registre o ID do ponto de restauração no corpo da mensagem de resposta.
- Crie um ponto de restauração.
- Verifique se o backup do servidor foi realizado com êxito.
- API
Formato URI: GET /v3/{project_id}/checkpoints/{checkpoint_id}
Para obter detalhes, consulte Consulta de um ponto de restauração.
Obtenha o valor de {endpoint} de Regiões e pontos de extremidade.
- Exemplo de solicitação
GET: https://{endpoint}/v3/0605767b5780d5762fc5c0118072a564/checkpoints/d9ce6924-d753-4132-bd16-a9f8838ea7d2
- Exemplo de resposta
{ "checkpoint": { "id": "d9ce6924-d753-4132-bd16-a9f8838ea7d2", "project_id": "0605767b5780d5762fc5c0118072a564", "status": "available", "vault": null, "created_at": "2020-08-17T06:49:06.260790", "extra_info": null } }
- API