Ejemplo 2: Creación de un grupo AS
Escenarios
Esta sección describe cómo crear un grupo AS llamando a las API. Para más detalles, consulte Llamada a APIs.
Un grupo AS consta de una colección de instancias que se aplican al mismo escenario. Es la base para habilitar o deshabilitar políticas de AS y realizar acciones de ajuste de capacidad. Un grupo AS especifica parámetros, como el número máximo de instancias, el número esperado de instancias, el número mínimo de instancias, la VPC, la subred y el equilibrio de carga.
Restricciones
- Se pueden crear hasta 10 grupos AS por cuenta de forma predeterminada.
- Si se configura ELB, AS enlaza o desvincula automáticamente un balanceador de carga a o desde una instancia cuando la instancia se agrega o elimina del grupo AS.
- Si un grupo AS utiliza la comprobación de estado ELB, los puertos de escucha en los balanceadores de carga deben estar habilitados para las instancias del grupo AS. Habilite los puertos de escucha en los grupos de seguridad. Para obtener más información, consulte Agregar una regla de grupo de seguridad.
APIs involucradas
Para crear un grupo AS, debe realizar varias operaciones, como consultar un token de usuario, grupos de seguridad y configuraciones AS. Se requieren las siguientes API:
- Obtención de un usuario Token: Determina el token de usuario que se puede usar para autenticar la llamada de otras API.
- Consulta de VPC: Determinar la VPC para los ECS del grupo AS que se va a crear.
- Consulta de grupos de seguridad: Determinar el grupo de seguridad al que se agregarán los ECS del grupo AS.
- Consulta de subredes: Determinar la subred de los ECS en el grupo AS.
- Consulta de configuraciones de AS: Determinar la configuración del AS del grupo AS.
- Consulta de AZ: Determinar el AZ donde se encuentra el grupo AS que se creará.
- Creación de un grupo de AS: Crear un grupo AS con la configuración de VPC y AS que especifique.
- Consulta de un grupo AS: Verificar la creación del grupo AS.
Procedimiento
- Determina el token de usuario que se puede usar para autenticar la llamada de otras API.
- Ver el token de usuario. Para obtener más información, consulte Obtención de un usuario Token.
- Obtenga el valor de X-Subject-Token en el encabezado de respuesta.
- Determinar la VPC.
- Ver VPCs. Para obtener más información, véase Consulta de VPC.
- Seleccione una VPC según los requisitos del sitio y registre el ID de VPC.
- Determinar el grupo de seguridad.
- Ver grupos de seguridad. Para obtener más información, consulte Consulta de grupos de seguridad.
- Seleccione un grupo de seguridad basado en los requisitos del sitio y registre el ID del grupo de seguridad.
- Determinar la subred.
- Ver subredes en la VPC especificada en función del ID de VPC. Para obtener más información, véase Consulta de subredes.
- Seleccione una subred según los requisitos del sitio y registre el ID de subred.
- Determinar la configuración AS.
- Ver configuraciones AS.
- API
URI format: GET /autoscaling-api/v1/{project_id}/scaling_configuration
Para obtener más información sobre los parámetros de solicitud de API, consulte Consulta de las configuraciones de AS.
- Ejemplo de la solicitud
GET: https://{Endpoint}/autoscaling-api/v1/0605767c2e80d5762fd0c0146a10aaf2/scaling_configuration?start_number=0&limit=10
Obtenga {endpoint} de Regiones y endpoint.
- Ejemplo de la respuesta
{ "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" } ] }
- Seleccione una configuración de AS basada en los requisitos del sitio y registre el ID de configuración de AS.
- Ver configuraciones AS.
- Determinar el AZ.
- Ver AZs. Para obtener más información, consulte Consulta de AZ.
- Seleccione una AZ según sea necesario y registre el nombre de AZ.
- Cree un grupo de AS con la configuración de VPC y AS que especifique.
- API
URI format: POST /autoscaling-api/v1/{project_id}/scaling_group
Para obtener más información sobre los parámetros de solicitud de API, consulte Creación de un grupo AS.
- Ejemplo de la solicitud
POST: https://{Endpoint}/autoscaling-api/v1/0605767c2e80d5762fd0c0146a10aaf2/scaling_group
Obtenga {endpoint} de Regiones y endpoint.
Cuerpo:
{ "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" }
- Ejemplo de la respuesta
{ "scaling_group_id": "a8327883-6b07-4497-9c61-68d03ee193a1" }
- API
- Verifique la creación del grupo AS.
- API
URI format: GET /autoscaling-api/v1/{project_id}/scaling_group/{scaling_group_id}
Para obtener más información sobre los parámetros de solicitud de API, consulte Consulta de un grupo AS.
- Ejemplo de la solicitud
GET: https://{Endpoint}/autoscaling-api/v1/0605767c2e80d5762fd0c0146a10aaf2/scaling_group/a8327883-6b07-4497-9c61-68d03ee193a1
where
a8327883-6b07-4497-9c61-68d03ee193a1 es el UUID de la configuración AS creada.
Obtenga {endpoint} de Regiones y endpoint.
- Ejemplo de la respuesta
{ "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