Exemplo 5: execução de operações em instâncias em lotes
Cenários
Esta seção descreve como executar operações em instâncias em lotes chamando APIs. Para mais detalhes, consulte Chamada das API.
Uma instância é um ECS em um grupo de AS. O AS permite adicionar ou remover instâncias de ou para um grupo de AS em lotes, configurar a proteção de instâncias ou cancelar a configuração para as instâncias em um grupo de AS em lotes e definir o modo de espera ou cancelar a configuração para as instâncias em um grupo de AS em lotes.
Restrições
- Depois que as instâncias são removidas de um grupo de AS, o número de instâncias no grupo de AS não pode ser menor que o número mínimo de instâncias.
- Depois que as instâncias são adicionadas a um grupo de AS, o número de instâncias no grupo de AS não pode ser maior que o número máximo de instâncias.
- As instâncias podem ser adicionadas a um grupo de AS somente quando o grupo de AS estiver no estado INSERVICE e não tiver nenhuma ação de dimensionamento em andamento.
- As instâncias podem ser removidas de um grupo de AS somente quando nenhuma ação de dimensionamento está em andamento. Somente instâncias no estado INSERVICE podem ser removidas de um grupo de AS.
- Para adicionar instâncias a um grupo de AS, verifique se a AZ das instâncias deve estar dentro da do grupo de AS e se as instâncias estão na mesma VPC que o grupo de AS.
APIs envolvidas
- Obtenção de um token de usuário: determine o token do usuário que pode ser usado para autenticar a chamada de outras APIs.
- Consulta de grupos de AS: determine o grupo de AS no qual as instâncias serão operadas em lotes.
- Consulta de instâncias em um grupo de AS: determine as instâncias a serem operadas em lotes no grupo de AS especificado.
- Execução de operações em instâncias em lotes: remova as instâncias do grupo de AS em um lote.
Procedimento
- Determine o token do usuário que pode ser usado para autenticar a chamada de outras APIs.
- Visualize o token do usuário. Para obter detalhes, consulte Obtenção de um token de usuário.
- Obtenha o valor de X-Subject-Token no cabeçalho de resposta.
- Determine o grupo de AS.
- Visualize grupos de AS.
- API
Formato de URI: GET /autoscaling-api/v1/{project_id}/scaling_group
Para mais detalhes, consulte Consulta de grupos de AS.
- Exemplo de solicitação
GET: https://{Endpoint}/autoscaling-api/v1/0605767c2e80d5762fd0c0146a10aaf2/scaling_group
- Exemplo de resposta
{ "limit": 20, "scaling_groups": [ { "networks": [ { "id": "a8327883-6b07-4497-9c61-68d03ee193a", "ipv6_enable": true, "ipv6_bandwidth": { "id": "076ee2ff-f23e-4338-b8ac-1bc7278532d5" } } ], "available_zones": [ "XXXa", "XXXb" ], "detail": null, "scaling_group_name": "as-group-test", "scaling_group_id": "77a7a397-7d2f-4e79-9da9-6a35e2709150", "scaling_group_status": "INSERVICE", "scaling_configuration_id": "1d281494-6085-4579-b817-c1f813be835f", "scaling_configuration_name": "healthCheck", "current_instance_number": 0, "desire_instance_number": 1, "min_instance_number": 0, "max_instance_number": 500, "cool_down_time": 300, "lb_listener_id": "f06c0112570743b51c0e8fbe1f235bab", "security_groups": [ { "id": "8a4b1d5b-0054-419f-84b1-5c8a59ebc829" } ], "create_time": "2015-07-23T02:46:29Z", "vpc_id": "863ccae2-ee85-4d27-bc5b-3ba2a198a9e2", "health_periodic_audit_method": "ELB_AUDIT", "health_periodic_audit_time": 5, "health_periodic_audit_grace_period": 600, "instance_terminate_policy": "OLD_CONFIG_OLD_INSTANCE", "is_scaling": false, "delete_publicip": false, "enterprise_project_id": "c92b1a5d-6f20-43f2-b1b7-7ce35e58e413", "multi_az_priority_policy": "PICK_FIRST" } ], "total_number": 1, "start_number": 0 }
- API
- Selecione um grupo de AS e registre o ID do grupo de AS.
- Visualize grupos de AS.
- Determine as instâncias.
- Visualize as instâncias no grupo de AS especificado.
- API
Formato de URI: GET /autoscaling-api/v1/{project_id}/scaling_group_instance/{scaling_group_id}/list
Para mais detalhes, consulte Consulta de instâncias em um grupo de AS.
- Exemplo de solicitação
Este exemplo mostra como consultar instâncias íntegras e ativadas no grupo de AS com ID e5d27f5c-dd76-4a61-b4bc-a67c5686719a.
GET: https://{Endpoint}/autoscaling-api/v1/0605767c2e80d5762fd0c0146a10aaf2/scaling_group_instance/e5d27f5c-dd76-4a61-b4bc-a67c5686719a/list?life_cycle_state=INSERVICE&health_status=NORMAL
- Exemplo de resposta
{ "limit": 10, "total_number": 1, "start_number": 0, "scaling_group_instances": [ { "instance_id": "b25c1589-c96c-465b-9fef-d06540d1945c", "scaling_group_id": "e5d27f5c-dd76-4a61-b4bc-a67c5686719a", "scaling_group_name": "discuz", "life_cycle_state": "INSERVICE", "health_status": "NORMAL", "scaling_configuration_name": "discuz", "scaling_configuration_id": "ca3dcd84-d197-4c4f-af2a-cf8ba39696ac", "create_time": "2015-07-23T06:47:33Z", "instance_name": "discuz_3D210808", "protect_from_scaling_down": false } ] }
- API
- Selecione instâncias e registre seus IDs.
- Visualize as instâncias no grupo de AS especificado.
- Remova as instâncias do grupo de AS em um lote.
- API
Formato de URI: POST /autoscaling-api/v1/{project_id}/scaling_group_instance/{scaling_group_id}/action
Para mais detalhes, consulte Gerenciamento de instâncias em lote.
- Exemplo de solicitação
Este exemplo mostra como remover e excluir instâncias com os IDs instance_id_1 e instance_id_2 do grupo de AS com o ID e5d27f5c-dd76-4a61-b4bc-a67c5686719a em um lote.
POST: https://{Endpoint}/autoscaling-api/v1/0605767c2e80d5762fd0c0146a10aaf2/scaling_group_instance/e5d27f5c-dd76-4a61-b4bc-a67c5686719a/action
Corpo:
{ "action": "REMOVE", "instances_id": [ "instance_id_1", "instance_id_2" ], "instance_delete": "yes" }
- API