Exemplo 2: criação de um grupo de AS
Cenários
Esta seção descreve como criar um grupo de AS chamando APIs. Para mais detalhes, consulte Chamada das API..
Um grupo de AS consiste em um conjunto de instâncias que se aplicam ao mesmo cenário. É a base para habilitar ou desabilitar as políticas de AS e realizar ações de dimensionamento. Um grupo de AS especifica parâmetros, tais como o número máximo de instâncias, número de instâncias esperado, número mínimo de instâncias, VPC, sub-rede e balanceamento de carga.
Restrições
- Até 10 grupos de AS por conta podem ser criados por padrão.
- Se o ELB estiver configurado, o AS vincula ou desvincula automaticamente um balanceador de carga para ou de uma instância quando a instância é adicionada ou removida do grupo de AS.
- Se um grupo de AS usar a verificação de integridade do ELB, as portas de escuta nos balanceadores de carga deverão ser habilitadas para as instâncias no grupo de AS. Habilite as portas de escuta nos grupos de segurança.
APIs envolvidas
Para criar um grupo de AS, você precisa executar várias operações, como consultar um token de usuário, grupos de segurança e configurações de AS. As seguintes APIs são necessárias:
- 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 das configurações do AS: determine a configuração de AS do grupo de AS.
- Consulta de AZs: determine a AZ onde está localizado o grupo de AS a ser criado.
- Criação de um grupo de AS: crie um grupo de AS usando a configuração de VPC e AS especificada.
- Consulta de um grupo de AS: verifique a criação do grupo de AS.
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 a VPC.
- Veja as VPCs.
- Selecione uma VPC com base nos requisitos do site e registre o ID da VPC.
- Determine o grupo de segurança.
- Visualize grupos de segurança.
- Selecione um grupo de segurança com base nos requisitos do site e registre o ID do grupo de segurança.
- Determine a sub-rede.
- Visualize sub-redes na VPC especificada com base no ID da VPC.
- Selecione uma sub-rede com base nos requisitos do site e registre o ID da sub-rede.
- Determine a configuração de AS.
- Visualize configurações de AS.
- API
Formato de URI: GET /autoscaling-api/v1/{project_id}/scaling_configuration
Para obter detalhes sobre os parâmetros de solicitação da API, consulte Consulta de configurações de AS.
- Exemplo de solicitação
GET: https://{Endpoint}/autoscaling-api/v1/0605767c2e80d5762fd0c0146a10aaf2/scaling_configuration?start_number=0&limit=10
- Exemplo de resposta
{ "limit": 20, "total_number": 2, "start_number": 0, "scaling_configurations": [ { "tenant": "ce061903a53545dcaddb300093b477d2", "scaling_configuration_id": "6afe46f9-7d3d-4046-8748-3b2a1085ad86", "scaling_configuration_name": " config_name_1", "instance_config": { "disk": [ { "size": 40, "volume_type": "SATA", "disk_type": "SYS" }, { "size": 100, "volume_type": "SATA", "disk_type": "DATA" } ], "personality": null, "instance_name": null, "instance_id": null, "flavorRef": "103", "imageRef": "37ca2b35-6fc7-47ab-93c7-900324809c5c", "key_name": "keypair01", "public_ip": null, "user_data": null, "metadate": {}, "security_groups": [{ "id": "6c22a6c0-b5d2-4a84-ac56-51090dcc33be" }], }, "create_time": "2015-07-23T01:04:07Z" } ] }
- Selecione uma configuração de AS com base nos requisitos do site e registre o ID de configuração de AS.
- Visualize configurações de AS.
- Determine a AZ.
- Visualize as AZs.
- Selecione uma AZ conforme necessário e registre o nome da AZ.
- Crie um grupo de AS usando a configuração de VPC e AS que você especificar.
- API
Formato de URI: POST /autoscaling-api/v1/{project_id}/scaling_group
Para obter detalhes sobre os parâmetros de solicitação da API, consulte Criação de um grupo de AS.
- Exemplo de solicitação
POST: https://{Endpoint}/autoscaling-api/v1/0605767c2e80d5762fd0c0146a10aaf2/scaling_group
Corpo:
{ "scaling_group_name": "GroupNameTest", "scaling_configuration_id": "47683a91-93ee-462a-a7d7-484c006f4440", "desire_instance_number": 0, "min_instance_number": 0, "max_instance_number": 10, "health_periodic_audit_method": "NOVA_AUDIT", "vpc_id": "a8327883-6b07-4497-9c61-68d03ee193a", "available_zones": ["XXXa","XXXb"], "networks": [ { "id": "3cd35bca-5a10-416f-8994-f79169559870" } ], "enterprise_project_id": "c92b1a5d-6f20-43f2-b1b7-7ce35e58e413", "multi_az_priority_policy": "PICK_FIRST" }
- Exemplo de resposta
{ "scaling_group_id": "a8327883-6b07-4497-9c61-68d03ee193a1" }
- API
- Verifique a criação do grupo de AS.
- API
Formato de URI: GET /autoscaling-api/v1/{project_id}/scaling_group/{scaling_group_id}
Para obter detalhes sobre os parâmetros de solicitação de API, consulte Consulta de um grupo de AS.
- Exemplo de solicitação
GET: https://{Endpoint}/autoscaling-api/v1/0605767c2e80d5762fd0c0146a10aaf2/scaling_group/a8327883-6b07-4497-9c61-68d03ee193a1
onde
a8327883-6b07-4497-9c61-68d03ee193a1 é o UUID da configuração de AS criada.
- Exemplo de resposta
{ "scaling_group": { "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": "api_gateway_modify", "scaling_group_id": "d4e50321-3777-4135-97f8-9f5e9714a4b0", "scaling_group_status": "INSERVICE", "scaling_configuration_id": "53579851-3841-418d-a97b-9cecdb663a90", "scaling_configuration_name": "press", "current_instance_number": 7, "desire_instance_number": 8, "min_instance_number": 0, "max_instance_number": 100, "cool_down_time": 900, "lb_listener_id": null, "security_groups": [ { "id": "23b7b999-0a30-4b48-ae8f-ee201a88a6ab" } ], "create_time": "2015-09-01T08:36:10Z", "vpc_id": "3e22f934-800d-4bb4-a588-0b9a76108190", "health_periodic_audit_method": "NOVA_AUDIT", "health_periodic_audit_time": 5, "health_periodic_audit_grace_period": 600, "instance_terminate_policy": "OLD_CONFIG_OLD_INSTANCE", "is_scaling": true, "delete_publicip": false, "notifications": null, "enterprise_project_id": "c92b1a5d-6f20-43f2-b1b7-7ce35e58e413", "activity_type": "MODIFY_ELB", "multi_az_priority_policy": "PICK_FIRST" } }
- API