Hay más ejemplos de AWS SDK disponibles en el GitHub repositorio de ejemplos de AWS Doc SDK
Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Úselo CreateAutoScalingGroup
con un AWS SDK o CLI
En los siguientes ejemplos de código, se muestra cómo utilizar CreateAutoScalingGroup
.
Los ejemplos de acciones son extractos de código de programas más grandes y deben ejecutarse en contexto. Puede ver esta acción en contexto en los siguientes ejemplos de código:
- .NET
-
- AWS SDK for .NET
-
nota
Hay más en marcha GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS
. /// <summary> /// Create a new Amazon EC2 Auto Scaling group. /// </summary> /// <param name="groupName">The name to use for the new Auto Scaling /// group.</param> /// <param name="launchTemplateName">The name of the Amazon EC2 Auto Scaling /// launch template to use to create instances in the group.</param> /// <returns>A Boolean value indicating the success of the action.</returns> public async Task<bool> CreateAutoScalingGroupAsync( string groupName, string launchTemplateName, string availabilityZone) { var templateSpecification = new LaunchTemplateSpecification { LaunchTemplateName = launchTemplateName, }; var zoneList = new List<string> { availabilityZone, }; var request = new CreateAutoScalingGroupRequest { AutoScalingGroupName = groupName, AvailabilityZones = zoneList, LaunchTemplate = templateSpecification, MaxSize = 6, MinSize = 1 }; var response = await _amazonAutoScaling.CreateAutoScalingGroupAsync(request); Console.WriteLine($"{groupName} Auto Scaling Group created"); return response.HttpStatusCode == System.Net.HttpStatusCode.OK; }
-
Para obtener más información sobre la API, consulta CreateAutoScalingGroupla Referencia AWS SDK for .NET de la API.
-
- C++
-
- SDK para C++
-
nota
Hay más información al respecto GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS
. Aws::Client::ClientConfiguration clientConfig; // Optional: Set to the AWS Region (overrides config file). // clientConfig.region = "us-east-1"; Aws::AutoScaling::AutoScalingClient autoScalingClient(clientConfig); Aws::AutoScaling::Model::CreateAutoScalingGroupRequest request; request.SetAutoScalingGroupName(groupName); Aws::Vector<Aws::String> availabilityGroupZones; availabilityGroupZones.push_back( availabilityZones[availabilityZoneChoice - 1].GetZoneName()); request.SetAvailabilityZones(availabilityGroupZones); request.SetMaxSize(1); request.SetMinSize(1); Aws::AutoScaling::Model::LaunchTemplateSpecification launchTemplateSpecification; launchTemplateSpecification.SetLaunchTemplateName(templateName); request.SetLaunchTemplate(launchTemplateSpecification); Aws::AutoScaling::Model::CreateAutoScalingGroupOutcome outcome = autoScalingClient.CreateAutoScalingGroup(request); if (outcome.IsSuccess()) { std::cout << "Created Auto Scaling group '" << groupName << "'..." << std::endl; } else if (outcome.GetError().GetErrorType() == Aws::AutoScaling::AutoScalingErrors::ALREADY_EXISTS_FAULT) { std::cout << "Auto Scaling group '" << groupName << "' already exists." << std::endl; } else { std::cerr << "Error with AutoScaling::CreateAutoScalingGroup. " << outcome.GetError().GetMessage() << std::endl; }
-
Para obtener más información sobre la API, consulta CreateAutoScalingGroupla Referencia AWS SDK for C++ de la API.
-
- CLI
-
- AWS CLI
-
Ejemplo 1: crear un grupo de escalado automático
En el siguiente ejemplo
create-auto-scaling-group
se crea un grupo de escalado automático en subredes de varias zonas de disponibilidad dentro de una región. Las instancias se lanzan con la versión predeterminada de la plantilla de lanzamiento especificada. Tenga en cuenta que se utilizan valores predeterminados para la mayoría de las demás configuraciones, como las políticas de terminación y la configuración de las comprobaciones de estado.aws autoscaling create-auto-scaling-group \ --auto-scaling-group-name
my-asg
\ --launch-templateLaunchTemplateId=lt-1234567890abcde12
\ --min-size1
\ --max-size5
\ --vpc-zone-identifier"subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782"
Este comando no genera ninguna salida.
Para obtener más información, consulte los grupos de Auto Scaling en la Guía del usuario de Amazon EC2 Auto Scaling.
Ejemplo 2: asociar un equilibrador de carga de aplicación, un equilibrador de carga de red o un equilibrador de carga de puerta de enlace
En este ejemplo, se especifica el ARN de un grupo de destino para un equilibrador de carga que admite el tráfico esperado. El tipo de comprobación de estado especifica
ELB
para que, cuando Elastic Load Balancing informa de una instancia como en mal estado, el grupo de escalado automático reemplaza la instancia. El comando también define un período de gracia de600
segundos para la comprobación de estado. El período de gracia ayuda a evitar la finalización prematura de las instancias recién lanzadas.aws autoscaling create-auto-scaling-group \ --auto-scaling-group-name
my-asg
\ --launch-templateLaunchTemplateId=lt-1234567890abcde12
\ --target-group-arnsarn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/943f017f100becff
\ --health-check-typeELB
\ --health-check-grace-period600
\ --min-size1
\ --max-size5
\ --vpc-zone-identifier"subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782"
Este comando no genera ninguna salida.
Para obtener más información, consulte Elastic Load Balancing y Amazon EC2 Auto Scaling en la Guía del usuario de Amazon EC2 Auto Scaling.
Ejemplo 3: especificación de un grupo con ubicación y utilizar la versión más reciente de la plantilla de lanzamiento
En este ejemplo, se lanzan instancias a un grupo con ubicación en una única zona de disponibilidad. Esto puede resultar útil para grupos de baja latencia con cargas de trabajo de HPC. En este ejemplo, también se especifican el tamaño mínimo, el tamaño máximo y la capacidad deseada del grupo.
aws autoscaling create-auto-scaling-group \ --auto-scaling-group-name
my-asg
\ --launch-template LaunchTemplateId=lt-1
2345
67890abcde12,Version='$Latest' \ --min-size 1 \ --max-size 5 \ --desired-capacity3
\ --placement-groupmy-placement-group
\ --vpc-zone-identifier"subnet-6194ea3b"
Este comando no genera ninguna salida.
Para obtener más información, consulte Grupos de ubicación en la Guía del EC2 usuario de Amazon para instancias de Linux.
Ejemplo 4: especificación de un grupo de escalado automático de una sola instancia y utilizar una versión específica de la plantilla de lanzamiento
En este ejemplo, se crea un grupo de escalado automático con una capacidad mínima y máxima establecida en
1
para garantizar que se ejecute una instancia. El comando también especifica la v1 de una plantilla de lanzamiento en la que se especifica el ID de un ENI existente. Cuando utilice una plantilla de lanzamiento que especifique un ENI existente para eth0, debe especificar una zona de disponibilidad para el grupo de escalado automático que coincida con la interfaz de red, sin especificar también un ID de subred en la solicitud.aws autoscaling create-auto-scaling-group \ --auto-scaling-group-name
my-asg-single-instance
\ --launch-template LaunchTemplateName=my-template-for-auto-scaling,Version='1
' \ --min-size1
\ --max-size 1 \ --availability-zonesus-west-2a
Este comando no genera ninguna salida.
Para obtener más información, consulte los grupos de Auto Scaling en la Guía del usuario de Amazon EC2 Auto Scaling.
Ejemplo 5: especificación de una política de terminación diferente
En este ejemplo, se crea un grupo de escalado automático mediante una configuración de lanzamiento y se establece la política de terminación para terminar primero las instancias más antiguas. El comando también aplica una etiqueta al grupo y a sus instancias, con una clave de
Role
y un valor deWebServer
.aws autoscaling create-auto-scaling-group \ --auto-scaling-group-name
my-asg
\ --launch-configuration-namemy-lc
\ --min-size1
\ --max-size5
\ --termination-policies"OldestInstance"
\ --tags"ResourceId=my-asg,ResourceType=auto-scaling-group,Key=Role,Value=WebServer,PropagateAtLaunch=true"
\ --vpc-zone-identifier"subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782"
Este comando no genera ninguna salida.
Para obtener más información, consulte Cómo trabajar con las políticas de rescisión de Amazon EC2 Auto Scaling en la Guía del usuario de Amazon EC2 Auto Scaling.
Ejemplo 6: especificación de un enlace de ciclo de vida de lanzamiento
En este ejemplo, se crea un grupo de escalado automático con un enlace de ciclo de vida que admite una acción personalizada cuando se lanza una instancia.
aws autoscaling create-auto-scaling-group \ --cli-input-json
file://~/config.json
Contenido del archivo
config.json
:{ "AutoScalingGroupName": "my-asg", "LaunchTemplate": { "LaunchTemplateId": "lt-1234567890abcde12" }, "LifecycleHookSpecificationList": [{ "LifecycleHookName": "my-launch-hook", "LifecycleTransition": "autoscaling:EC2_INSTANCE_LAUNCHING", "NotificationTargetARN": "arn:aws:sqs:us-west-2:123456789012:my-sqs-queue", "RoleARN": "arn:aws:iam::123456789012:role/my-notification-role", "NotificationMetadata": "SQS message metadata", "HeartbeatTimeout": 4800, "DefaultResult": "ABANDON" }], "MinSize": 1, "MaxSize": 5, "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782", "Tags": [{ "ResourceType": "auto-scaling-group", "ResourceId": "my-asg", "PropagateAtLaunch": true, "Value": "test", "Key": "environment" }] }
Este comando no genera ninguna salida.
Para obtener más información, consulte los enlaces del ciclo de vida de Amazon EC2 Auto Scaling en la Guía del usuario de Amazon EC2 Auto Scaling.
Ejemplo 7: especificación de un enlace de ciclo de vida de terminación
En este ejemplo, se crea un grupo de escalado automático con un enlace de ciclo de vida que admite una acción personalizada en la terminación de una instancia.
aws autoscaling create-auto-scaling-group \ --cli-input-json
file://~/config.json
Contenido de
config.json
:{ "AutoScalingGroupName": "my-asg", "LaunchTemplate": { "LaunchTemplateId": "lt-1234567890abcde12" }, "LifecycleHookSpecificationList": [{ "LifecycleHookName": "my-termination-hook", "LifecycleTransition": "autoscaling:EC2_INSTANCE_TERMINATING", "HeartbeatTimeout": 120, "DefaultResult": "CONTINUE" }], "MinSize": 1, "MaxSize": 5, "TargetGroupARNs": [ "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067" ], "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" }
Este comando no genera ninguna salida.
Para obtener más información, consulte los enlaces del ciclo de vida de Amazon EC2 Auto Scaling en la Guía del usuario de Amazon EC2 Auto Scaling.
Ejemplo 8: especificación de una política de terminación personalizada
En este ejemplo, se crea un grupo de Auto Scaling que especifica una política de terminación de funciones de Lambda personalizada que indica a Amazon EC2 Auto Scaling qué instancias son seguras de terminar al escalarlas.
aws autoscaling create-auto-scaling-group \ --auto-scaling-group-name
my-asg-single-instance
\ --launch-templateLaunchTemplateName=my-template-for-auto-scaling
\ --min-size1
\ --max-size5
\ --termination-policies"arn:aws:lambda:us-west-2:123456789012:function:HelloFunction:prod"
\ --vpc-zone-identifier"subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782"
Este comando no genera ninguna salida.
Para obtener más información, consulte Creación de una política de rescisión personalizada con Lambda en la Guía del usuario de Amazon EC2 Auto Scaling.
-
Para obtener más información sobre la API, consulte CreateAutoScalingGroup
la Referencia de AWS CLI comandos.
-
- Java
-
- SDK para Java 2.x
-
nota
Hay más información al respecto GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS
. import software.amazon.awssdk.core.waiters.WaiterResponse; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.autoscaling.AutoScalingClient; import software.amazon.awssdk.services.autoscaling.model.AutoScalingException; import software.amazon.awssdk.services.autoscaling.model.CreateAutoScalingGroupRequest; import software.amazon.awssdk.services.autoscaling.model.DescribeAutoScalingGroupsRequest; import software.amazon.awssdk.services.autoscaling.model.DescribeAutoScalingGroupsResponse; import software.amazon.awssdk.services.autoscaling.model.LaunchTemplateSpecification; import software.amazon.awssdk.services.autoscaling.waiters.AutoScalingWaiter; /** * Before running this SDK for Java (v2) code example, set up your development * environment, including your credentials. * * For more information, see the following documentation: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html */ public class CreateAutoScalingGroup { public static void main(String[] args) { final String usage = """ Usage: <groupName> <launchTemplateName> <serviceLinkedRoleARN> <vpcZoneId> Where: groupName - The name of the Auto Scaling group. launchTemplateName - The name of the launch template.\s vpcZoneId - A subnet Id for a virtual private cloud (VPC) where instances in the Auto Scaling group can be created. """; if (args.length != 3) { System.out.println(usage); System.exit(1); } String groupName = args[0]; String launchTemplateName = args[1]; String vpcZoneId = args[2]; AutoScalingClient autoScalingClient = AutoScalingClient.builder() .region(Region.US_EAST_1) .build(); createAutoScalingGroup(autoScalingClient, groupName, launchTemplateName, vpcZoneId); autoScalingClient.close(); } public static void createAutoScalingGroup(AutoScalingClient autoScalingClient, String groupName, String launchTemplateName, String vpcZoneId) { try { AutoScalingWaiter waiter = autoScalingClient.waiter(); LaunchTemplateSpecification templateSpecification = LaunchTemplateSpecification.builder() .launchTemplateName(launchTemplateName) .build(); CreateAutoScalingGroupRequest request = CreateAutoScalingGroupRequest.builder() .autoScalingGroupName(groupName) .availabilityZones("us-east-1a") .launchTemplate(templateSpecification) .maxSize(1) .minSize(1) .vpcZoneIdentifier(vpcZoneId) .build(); autoScalingClient.createAutoScalingGroup(request); DescribeAutoScalingGroupsRequest groupsRequest = DescribeAutoScalingGroupsRequest.builder() .autoScalingGroupNames(groupName) .build(); WaiterResponse<DescribeAutoScalingGroupsResponse> waiterResponse = waiter .waitUntilGroupExists(groupsRequest); waiterResponse.matched().response().ifPresent(System.out::println); System.out.println("Auto Scaling Group created"); } catch (AutoScalingException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } }
-
Para obtener más información sobre la API, consulta CreateAutoScalingGroupla Referencia AWS SDK for Java 2.x de la API.
-
- Kotlin
-
- SDK para Kotlin
-
nota
Hay más información al respecto GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS
. suspend fun createAutoScalingGroup( groupName: String, launchTemplateNameVal: String, serviceLinkedRoleARNVal: String, vpcZoneIdVal: String, ) { val templateSpecification = LaunchTemplateSpecification { launchTemplateName = launchTemplateNameVal } val request = CreateAutoScalingGroupRequest { autoScalingGroupName = groupName availabilityZones = listOf("us-east-1a") launchTemplate = templateSpecification maxSize = 1 minSize = 1 vpcZoneIdentifier = vpcZoneIdVal serviceLinkedRoleArn = serviceLinkedRoleARNVal } // This object is required for the waiter call. val groupsRequestWaiter = DescribeAutoScalingGroupsRequest { autoScalingGroupNames = listOf(groupName) } AutoScalingClient { region = "us-east-1" }.use { autoScalingClient -> autoScalingClient.createAutoScalingGroup(request) autoScalingClient.waitUntilGroupExists(groupsRequestWaiter) println("$groupName was created!") } }
-
Para obtener más información sobre la API, consulta CreateAutoScalingGroup
la referencia sobre el AWS SDK para la API de Kotlin.
-
- PHP
-
- SDK para PHP
-
nota
Hay más información al respecto. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS
. public function createAutoScalingGroup( $autoScalingGroupName, $availabilityZones, $minSize, $maxSize, $launchTemplateId ) { return $this->autoScalingClient->createAutoScalingGroup([ 'AutoScalingGroupName' => $autoScalingGroupName, 'AvailabilityZones' => $availabilityZones, 'MinSize' => $minSize, 'MaxSize' => $maxSize, 'LaunchTemplate' => [ 'LaunchTemplateId' => $launchTemplateId, ], ]); }
-
Para obtener más información sobre la API, consulta CreateAutoScalingGroupla Referencia AWS SDK for PHP de la API.
-
- PowerShell
-
- Herramientas para PowerShell
-
Ejemplo 1: En este ejemplo se crea un grupo de escalado automático con el nombre y los atributos especificados. La capacidad deseada por defecto es el tamaño mínimo. Por lo tanto, este grupo de escalado automático inicializa dos instancias, una en cada una de las dos zonas de disponibilidad especificadas.
New-ASAutoScalingGroup -AutoScalingGroupName my-asg -LaunchConfigurationName my-lc -MinSize 2 -MaxSize 6 -AvailabilityZone @("us-west-2a", "us-west-2b")
-
Para obtener más información sobre la API, consulte CreateAutoScalingGroupla referencia de Herramientas de AWS para PowerShell cmdlets.
-
- Python
-
- SDK para Python (Boto3)
-
nota
Hay más información al respecto. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS
. class AutoScalingWrapper: """Encapsulates Amazon EC2 Auto Scaling actions.""" def __init__(self, autoscaling_client): """ :param autoscaling_client: A Boto3 Amazon EC2 Auto Scaling client. """ self.autoscaling_client = autoscaling_client def create_group( self, group_name: str, group_zones: List[str], launch_template_name: str, min_size: int, max_size: int, ) -> None: """ Creates an Auto Scaling group. :param group_name: The name to give to the group. :param group_zones: The Availability Zones in which instances can be created. :param launch_template_name: The name of an existing Amazon EC2 launch template. The launch template specifies the configuration of instances that are created by auto scaling activities. :param min_size: The minimum number of active instances in the group. :param max_size: The maximum number of active instances in the group. :return: None :raises ClientError: If there is an error creating the Auto Scaling group. """ try: self.autoscaling_client.create_auto_scaling_group( AutoScalingGroupName=group_name, AvailabilityZones=group_zones, LaunchTemplate={ "LaunchTemplateName": launch_template_name, "Version": "$Default", }, MinSize=min_size, MaxSize=max_size, ) # Wait for the group to exist. waiter = self.autoscaling_client.get_waiter("group_exists") waiter.wait(AutoScalingGroupNames=[group_name]) logger.info(f"Successfully created Auto Scaling group {group_name}.") except ClientError as err: error_code = err.response["Error"]["Code"] logger.error(f"Failed to create Auto Scaling group {group_name}.") if error_code == "AlreadyExistsFault": logger.error( f"An Auto Scaling group with the name '{group_name}' already exists. " "Please use a different name or update the existing group.", ) elif error_code == "LimitExceededFault": logger.error( "The request failed because you have reached the limit " "on the number of Auto Scaling groups or launch configurations. " "Consider deleting unused resources or request a limit increase. " "\nSee Auto Scaling Service Quota documentation here:" "\n\thttps://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-quotas.html" ) logger.error(f"Full error:\n\t{err}") raise
-
Para obtener más información sobre la API, consulta CreateAutoScalingGroupla AWS Referencia de API de SDK for Python (Boto3).
-
- Rust
-
- SDK para Rust
-
nota
Hay más información al respecto. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS
. async fn create_group(client: &Client, name: &str, id: &str) -> Result<(), Error> { client .create_auto_scaling_group() .auto_scaling_group_name(name) .instance_id(id) .min_size(1) .max_size(5) .send() .await?; println!("Created AutoScaling group"); Ok(()) }
-
Para obtener más información sobre la API, consulta CreateAutoScalingGroup
la referencia sobre la API de AWS SDK para Rust.
-