Há mais exemplos do AWS SDK disponíveis no repositório do GitHub Documento de Exemplos do AWS SDK
Usar DescribeAutoScalingGroups com o AWS SDK ou a CLI
Os exemplos de código a seguir mostram como usar o DescribeAutoScalingGroups.
Exemplos de ações são trechos de código de programas maiores e devem ser executados em contexto. É possível ver essa ação em contexto nos seguintes exemplos de código:
- .NET
-
- SDK para .NET (v4)
-
nota
Há mais no GitHub. Encontre o exemplo completo e veja como configurar e executar no AWS Code Examples Repository
. /// <summary> /// Get data about the instances in an Amazon EC2 Auto Scaling group. /// </summary> /// <param name="groupName">The name of the Amazon EC2 Auto Scaling group.</param> /// <returns>A list of Amazon EC2 Auto Scaling details.</returns> public async Task<List<AutoScalingInstanceDetails>> DescribeAutoScalingInstancesAsync( string groupName) { var groups = await DescribeAutoScalingGroupsAsync(groupName); var instanceIds = new List<string>(); var instanceDetails = new List<AutoScalingInstanceDetails>(); if (groups != null) { groups.ForEach(group => { if (group.AutoScalingGroupName == groupName && group.Instances != null) { group.Instances.ForEach(instance => { instanceIds.Add(instance.InstanceId); }); } }); var scalingGroupsRequest = new DescribeAutoScalingInstancesRequest { MaxRecords = 10, InstanceIds = instanceIds, }; var response = await _amazonAutoScaling.DescribeAutoScalingInstancesAsync( scalingGroupsRequest); if (response.AutoScalingInstances != null) { instanceDetails = response.AutoScalingInstances; } } return instanceDetails; }-
Consulte detalhes da API em DescribeAutoScalingGroups na Referência da API AWS SDK para .NET.
-
- C++
-
- SDK para C++
-
nota
Há mais no GitHub. Encontre o exemplo completo e veja como configurar e executar no AWS Code Examples Repository
. 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::DescribeAutoScalingGroupsRequest request; Aws::Vector<Aws::String> groupNames; groupNames.push_back(groupName); request.SetAutoScalingGroupNames(groupNames); Aws::AutoScaling::Model::DescribeAutoScalingGroupsOutcome outcome = client.DescribeAutoScalingGroups(request); if (outcome.IsSuccess()) { autoScalingGroup = outcome.GetResult().GetAutoScalingGroups(); } else { std::cerr << "Error with AutoScaling::DescribeAutoScalingGroups. " << outcome.GetError().GetMessage() << std::endl; }-
Consulte detalhes da API em DescribeAutoScalingGroups na Referência da API AWS SDK para C++.
-
- CLI
-
- AWS CLI
-
Exemplo 1: como descrever o grupo do Auto Scaling especificado
Este exemplo descreve o grupo do Auto Scaling especificado.
aws autoscaling describe-auto-scaling-groups \ --auto-scaling-group-namesmy-asgSaída:
{ "AutoScalingGroups": [ { "AutoScalingGroupName": "my-asg", "AutoScalingGroupARN": "arn:aws:autoscaling:us-west-2:123456789012:autoScalingGroup:930d940e-891e-4781-a11a-7b0acd480f03:autoScalingGroupName/my-asg", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-1234567890abcde12" }, "MinSize": 0, "MaxSize": 1, "DesiredCapacity": 1, "DefaultCooldown": 300, "AvailabilityZones": [ "us-west-2a", "us-west-2b", "us-west-2c" ], "LoadBalancerNames": [], "TargetGroupARNs": [], "HealthCheckType": "EC2", "HealthCheckGracePeriod": 0, "Instances": [ { "InstanceId": "i-06905f55584de02da", "InstanceType": "t2.micro", "AvailabilityZone": "us-west-2a", "HealthStatus": "Healthy", "LifecycleState": "InService", "ProtectedFromScaleIn": false, "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-1234567890abcde12" } } ], "CreatedTime": "2023-10-28T02:39:22.152Z", "SuspendedProcesses": [], "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782", "EnabledMetrics": [], "Tags": [], "TerminationPolicies": [ "Default" ], "NewInstancesProtectedFromScaleIn": false, "ServiceLinkedRoleARN":"arn", "TrafficSources": [] } ] }Exemplo 2: como descrever os primeiros 100 grupos do Auto Scaling especificados
Este exemplo descreve os grupos do Auto Scaling especificados. Ele permite especificar até cem nomes de grupos.
aws autoscaling describe-auto-scaling-groups \ --max-items100\ --auto-scaling-group-names"group1""group2""group3""group4"Consulte uma amostra de saída no exemplo 1.
Exemplo 3: como descrever um grupo do Auto Scaling na região especificada
Este exemplo descreve até 75 grupos do Auto Scaling na região especificada.
aws autoscaling describe-auto-scaling-groups \ --max-items75\ --regionus-east-1Consulte uma amostra de saída no exemplo 1.
Exemplo 4: como descrever o número especificado do grupo do Auto Scaling
Use a opção
--max-itemspara retornar um número específico de grupos do Auto Scaling.aws autoscaling describe-auto-scaling-groups \ --max-items1Consulte uma amostra de saída no exemplo 1.
Se a saída incluir um campo
NextToken, há mais grupos. Para obter os grupos adicionais, use o valor desse campo com a opção--starting-tokenem uma chamada subsequente da seguinte maneira.aws autoscaling describe-auto-scaling-groups \ --starting-tokenZ3M3LMPEXAMPLEConsulte uma amostra de saída no exemplo 1.
Exemplo 5: descrever grupos do Auto Scaling que usam configurações de execução
Este exemplo usa a opção
--querypara descrever os grupos do Auto Scaling que usam configurações de execução.aws autoscaling describe-auto-scaling-groups \ --query 'AutoScalingGroups[?LaunchConfigurationName!=`null`]'Saída:
[ { "AutoScalingGroupName": "my-asg", "AutoScalingGroupARN": "arn:aws:autoscaling:us-west-2:123456789012:autoScalingGroup:930d940e-891e-4781-a11a-7b0acd480f03:autoScalingGroupName/my-asg", "LaunchConfigurationName": "my-lc", "MinSize": 0, "MaxSize": 1, "DesiredCapacity": 1, "DefaultCooldown": 300, "AvailabilityZones": [ "us-west-2a", "us-west-2b", "us-west-2c" ], "LoadBalancerNames": [], "TargetGroupARNs": [], "HealthCheckType": "EC2", "HealthCheckGracePeriod": 0, "Instances": [ { "InstanceId": "i-088c57934a6449037", "InstanceType": "t2.micro", "AvailabilityZone": "us-west-2c", "HealthStatus": "Healthy", "LifecycleState": "InService", "LaunchConfigurationName": "my-lc", "ProtectedFromScaleIn": false } ], "CreatedTime": "2023-10-28T02:39:22.152Z", "SuspendedProcesses": [], "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782", "EnabledMetrics": [], "Tags": [], "TerminationPolicies": [ "Default" ], "NewInstancesProtectedFromScaleIn": false, "ServiceLinkedRoleARN":"arn", "TrafficSources": [] } ]Para obter mais informações, consulte Filtrar a saída da AWS CLI no Guia do usuário da AWS Command Line Interface.
-
Consulte detalhes da API em DescribeAutoScalingGroups
na Referência de comandos AWS CLI.
-
- Java
-
- SDK para Java 2.x
-
nota
Há mais no GitHub. Encontre o exemplo completo e veja como configurar e executar no AWS Code Examples Repository
. 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.AutoScalingGroup; import software.amazon.awssdk.services.autoscaling.model.DescribeAutoScalingGroupsResponse; import software.amazon.awssdk.services.autoscaling.model.DescribeAutoScalingGroupsRequest; import software.amazon.awssdk.services.autoscaling.model.Instance; import java.util.List; /** * 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 DescribeAutoScalingInstances { public static void main(String[] args) { final String usage = """ Usage: <groupName> Where: groupName - The name of the Auto Scaling group. """; if (args.length != 1) { System.out.println(usage); System.exit(1); } String groupName = args[0]; AutoScalingClient autoScalingClient = AutoScalingClient.builder() .region(Region.US_EAST_1) .build(); String instanceId = getAutoScaling(autoScalingClient, groupName); System.out.println(instanceId); autoScalingClient.close(); } public static String getAutoScaling(AutoScalingClient autoScalingClient, String groupName) { try { String instanceId = ""; DescribeAutoScalingGroupsRequest scalingGroupsRequest = DescribeAutoScalingGroupsRequest.builder() .autoScalingGroupNames(groupName) .build(); DescribeAutoScalingGroupsResponse response = autoScalingClient .describeAutoScalingGroups(scalingGroupsRequest); List<AutoScalingGroup> groups = response.autoScalingGroups(); for (AutoScalingGroup group : groups) { System.out.println("The group name is " + group.autoScalingGroupName()); System.out.println("The group ARN is " + group.autoScalingGroupARN()); List<Instance> instances = group.instances(); for (Instance instance : instances) { instanceId = instance.instanceId(); } } return instanceId; } catch (AutoScalingException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; } }-
Consulte detalhes da API em DescribeAutoScalingGroups na Referência da API AWS SDK for Java 2.x.
-
- Kotlin
-
- SDK para Kotlin
-
nota
Há mais no GitHub. Encontre o exemplo completo e veja como configurar e executar no AWS Code Examples Repository
. suspend fun getAutoScalingGroups(groupName: String) { val scalingGroupsRequest = DescribeAutoScalingGroupsRequest { autoScalingGroupNames = listOf(groupName) } AutoScalingClient { region = "us-east-1" }.use { autoScalingClient -> val response = autoScalingClient.describeAutoScalingGroups(scalingGroupsRequest) response.autoScalingGroups?.forEach { group -> println("The group name is ${group.autoScalingGroupName}") println("The group ARN is ${group.autoScalingGroupArn}") group.instances?.forEach { instance -> println("The instance id is ${instance.instanceId}") println("The lifecycle state is " + instance.lifecycleState) } } } }-
Consulte detalhes da API em DescribeAutoScalingGroups
na Referência da API AWS SDK para Kotlin.
-
- PHP
-
- SDK para PHP
-
nota
Há mais no GitHub. Encontre o exemplo completo e veja como configurar e executar no AWS Code Examples Repository
. public function describeAutoScalingGroups($autoScalingGroupNames) { return $this->autoScalingClient->describeAutoScalingGroups([ 'AutoScalingGroupNames' => $autoScalingGroupNames ]); }-
Consulte detalhes da API em DescribeAutoScalingGroups na Referência da API AWS SDK para PHP.
-
- PowerShell
-
- Ferramentas para PowerShell V4
-
Exemplo 1: Este exemplo lista os nomes de seus grupos do Auto Scaling.
Get-ASAutoScalingGroup | format-table -property AutoScalingGroupNameSaída:
AutoScalingGroupName -------------------- my-asg-1 my-asg-2 my-asg-3 my-asg-4 my-asg-5 my-asg-6Exemplo 2: Este exemplo descreve o grupo do Auto Scaling especificado.
Get-ASAutoScalingGroup -AutoScalingGroupName my-asg-1Saída:
AutoScalingGroupARN : arn:aws:autoscaling:us-west-2:123456789012:autoScalingGroup:930d940e-891e-4781-a11a-7b0acd480 f03:autoScalingGroupName/my-asg-1 AutoScalingGroupName : my-asg-1 AvailabilityZones : {us-west-2b, us-west-2a} CreatedTime : 3/1/2015 9:05:31 AM DefaultCooldown : 300 DesiredCapacity : 2 EnabledMetrics : {} HealthCheckGracePeriod : 300 HealthCheckType : EC2 Instances : {my-lc} LaunchConfigurationName : my-lc LoadBalancerNames : {} MaxSize : 0 MinSize : 0 PlacementGroup : Status : SuspendedProcesses : {} Tags : {} TerminationPolicies : {Default} VPCZoneIdentifier : subnet-e4f33493,subnet-5264e837Exemplo 3: Este exemplo descreve os grupos do Auto Scaling especificados.
Get-ASAutoScalingGroup -AutoScalingGroupName @("my-asg-1", "my-asg-2")Exemplo 4: Este exemplo descreve as instâncias do Auto Scaling do grupo do Auto Scaling especificado.
(Get-ASAutoScalingGroup -AutoScalingGroupName my-asg-1).InstancesExemplo 5: Este exemplo descreve todos os seus grupos do Auto Scaling.
Get-ASAutoScalingGroupExemplo 6: Este exemplo descreve o LaunchTemplate para o grupo Auto Scaling especificado. Este exemplo pressupõe que as “Opções de compra de instância” estejam definidas como “Aderir ao modelo de lançamento”. Caso essa opção esteja definida como “Combinar opções de compra e tipos de instância”, o LaunchTemplate pode ser acessado usando a propriedade “MixedInstancesPolicy.LaunchTemplate”.
(Get-ASAutoScalingGroup -AutoScalingGroupName my-ag-1).LaunchTemplateSaída:
LaunchTemplateId LaunchTemplateName Version ---------------- ------------------ ------- lt-06095fd619cb40371 test-launch-template $Default-
Consulte detalhes da API em DescribeAutoScalingGroups na Referência de cmdlet do Ferramentas da AWS para PowerShell (V4).
-
- Ferramentas para PowerShell V5
-
Exemplo 1: Este exemplo lista os nomes de seus grupos do Auto Scaling.
Get-ASAutoScalingGroup | format-table -property AutoScalingGroupNameSaída:
AutoScalingGroupName -------------------- my-asg-1 my-asg-2 my-asg-3 my-asg-4 my-asg-5 my-asg-6Exemplo 2: Este exemplo descreve o grupo do Auto Scaling especificado.
Get-ASAutoScalingGroup -AutoScalingGroupName my-asg-1Saída:
AutoScalingGroupARN : arn:aws:autoscaling:us-west-2:123456789012:autoScalingGroup:930d940e-891e-4781-a11a-7b0acd480 f03:autoScalingGroupName/my-asg-1 AutoScalingGroupName : my-asg-1 AvailabilityZones : {us-west-2b, us-west-2a} CreatedTime : 3/1/2015 9:05:31 AM DefaultCooldown : 300 DesiredCapacity : 2 EnabledMetrics : {} HealthCheckGracePeriod : 300 HealthCheckType : EC2 Instances : {my-lc} LaunchConfigurationName : my-lc LoadBalancerNames : {} MaxSize : 0 MinSize : 0 PlacementGroup : Status : SuspendedProcesses : {} Tags : {} TerminationPolicies : {Default} VPCZoneIdentifier : subnet-e4f33493,subnet-5264e837Exemplo 3: Este exemplo descreve os grupos do Auto Scaling especificados.
Get-ASAutoScalingGroup -AutoScalingGroupName @("my-asg-1", "my-asg-2")Exemplo 4: Este exemplo descreve as instâncias do Auto Scaling do grupo do Auto Scaling especificado.
(Get-ASAutoScalingGroup -AutoScalingGroupName my-asg-1).InstancesExemplo 5: Este exemplo descreve todos os seus grupos do Auto Scaling.
Get-ASAutoScalingGroupExemplo 6: Este exemplo descreve o LaunchTemplate para o grupo Auto Scaling especificado. Este exemplo pressupõe que as “Opções de compra de instância” estejam definidas como “Aderir ao modelo de lançamento”. Caso essa opção esteja definida como “Combinar opções de compra e tipos de instância”, o LaunchTemplate pode ser acessado usando a propriedade “MixedInstancesPolicy.LaunchTemplate”.
(Get-ASAutoScalingGroup -AutoScalingGroupName my-ag-1).LaunchTemplateSaída:
LaunchTemplateId LaunchTemplateName Version ---------------- ------------------ ------- lt-06095fd619cb40371 test-launch-template $Default-
Consulte detalhes da API em DescribeAutoScalingGroups na Referência de cmdlet do Ferramentas da AWS para PowerShell (V5).
-
- Python
-
- SDK para Python (Boto3).
-
nota
Há mais no GitHub. Encontre o exemplo completo e veja como configurar e executar no AWS Code Examples Repository
. 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 describe_group(self, group_name: str) -> Optional[Dict[str, Any]]: """ Gets information about an Auto Scaling group. :param group_name: The name of the group to look up. :return: A dictionary with information about the group if found, otherwise None. :raises ClientError: If there is an error describing the Auto Scaling group. """ try: paginator = self.autoscaling_client.get_paginator( "describe_auto_scaling_groups" ) response_iterator = paginator.paginate(AutoScalingGroupNames=[group_name]) groups = [] for response in response_iterator: groups.extend(response.get("AutoScalingGroups", [])) logger.info( f"Successfully retrieved information for Auto Scaling group {group_name}." ) except ClientError as err: error_code = err.response["Error"]["Code"] logger.error(f"Failed to describe Auto Scaling group {group_name}.") if error_code == "ResourceContentionFault": logger.error( "There is a conflict with another operation that is modifying the " f"Auto Scaling group '{group_name}' Please try again later." ) logger.error(f"Full error:\n\t{err}") raise else: return groups[0] if len(groups) > 0 else None-
Consulte detalhes da API em DescribeAutoScalingGroups na Referência da API AWS SDK para Python (Boto3).
-
- Rust
-
- SDK para Rust
-
nota
Há mais no GitHub. Encontre o exemplo completo e veja como configurar e executar no AWS Code Examples Repository
. async fn list_groups(client: &Client) -> Result<(), Error> { let resp = client.describe_auto_scaling_groups().send().await?; println!("Groups:"); let groups = resp.auto_scaling_groups(); for group in groups { println!( "Name: {}", group.auto_scaling_group_name().unwrap_or("Unknown") ); println!( "Arn: {}", group.auto_scaling_group_arn().unwrap_or("unknown"), ); println!("Zones: {:?}", group.availability_zones(),); println!(); } println!("Found {} group(s)", groups.len()); Ok(()) }-
Consulte detalhes da API em DescribeAutoScalingGroups
na Referência da API AWS SDK para Rust.
-