There are more AWS SDK examples available in the AWS Doc SDK Examples
Use DescribeAutoScalingInstances with an AWS SDK or CLI
The following code examples show how to use DescribeAutoScalingInstances.
Action examples are code excerpts from larger programs and must be run in context. You can see this action in context in the following code example:
- .NET
-
- SDK for .NET (v4)
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the 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; }-
For API details, see DescribeAutoScalingInstances in AWS SDK for .NET API Reference.
-
- C++
-
- SDK for C++
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the 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::DescribeAutoScalingInstancesRequest request; request.SetInstanceIds(instanceIDs); Aws::AutoScaling::Model::DescribeAutoScalingInstancesOutcome outcome = client.DescribeAutoScalingInstances(request); if (outcome.IsSuccess()) { const Aws::Vector<Aws::AutoScaling::Model::AutoScalingInstanceDetails> &instancesDetails = outcome.GetResult().GetAutoScalingInstances(); } else { std::cerr << "Error with AutoScaling::DescribeAutoScalingInstances. " << outcome.GetError().GetMessage() << std::endl; return false; }-
For API details, see DescribeAutoScalingInstances in AWS SDK for C++ API Reference.
-
- CLI
-
- AWS CLI
-
Example 1: To describe one or more instances
This example describes the specified instance.
aws autoscaling describe-auto-scaling-instances \ --instance-idsi-06905f55584de02daOutput:
{ "AutoScalingInstances": [ { "InstanceId": "i-06905f55584de02da", "InstanceType": "t2.micro", "AutoScalingGroupName": "my-asg", "AvailabilityZone": "us-west-2b", "LifecycleState": "InService", "HealthStatus": "HEALTHY", "ProtectedFromScaleIn": false, "LaunchTemplate": { "LaunchTemplateId": "lt-1234567890abcde12", "LaunchTemplateName": "my-launch-template", "Version": "1" } } ] }Example 2: To describe one or more instances
This example uses the
--max-itemsoption to specify how many instances to return with this call.aws autoscaling describe-auto-scaling-instances \ --max-items1If the output includes a
NextTokenfield, there are more instances. To get the additional instances, use the value of this field with the--starting-tokenoption in a subsequent call as follows.aws autoscaling describe-auto-scaling-instances \ --starting-tokenZ3M3LMPEXAMPLESee example 1 for sample output.
Example 3: To describe instances that use launch configurations
This example uses the
--queryoption to describe instances that use launch configurations.aws autoscaling describe-auto-scaling-instances \ --query 'AutoScalingInstances[?LaunchConfigurationName!=`null`]'Output:
[ { "InstanceId": "i-088c57934a6449037", "InstanceType": "t2.micro", "AutoScalingGroupName": "my-asg", "AvailabilityZone": "us-west-2c", "LifecycleState": "InService", "HealthStatus": "HEALTHY", "LaunchConfigurationName": "my-lc", "ProtectedFromScaleIn": false } ]For more information, see Filter AWS CLI output in the AWS Command Line Interface User Guide.
-
For API details, see DescribeAutoScalingInstances
in AWS CLI Command Reference.
-
- Java
-
- SDK for Java 2.x
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. public static void describeAutoScalingInstance(AutoScalingClient autoScalingClient, String id) { try { DescribeAutoScalingInstancesRequest describeAutoScalingInstancesRequest = DescribeAutoScalingInstancesRequest .builder() .instanceIds(id) .build(); DescribeAutoScalingInstancesResponse response = autoScalingClient .describeAutoScalingInstances(describeAutoScalingInstancesRequest); List<AutoScalingInstanceDetails> instances = response.autoScalingInstances(); for (AutoScalingInstanceDetails instance : instances) { System.out.println("The instance lifecycle state is: " + instance.lifecycleState()); } } catch (AutoScalingException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }-
For API details, see DescribeAutoScalingInstances in AWS SDK for Java 2.x API Reference.
-
- Kotlin
-
- SDK for Kotlin
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. suspend fun describeAutoScalingInstance(id: String) { val describeAutoScalingInstancesRequest = DescribeAutoScalingInstancesRequest { instanceIds = listOf(id) } AutoScalingClient { region = "us-east-1" }.use { autoScalingClient -> val response = autoScalingClient.describeAutoScalingInstances(describeAutoScalingInstancesRequest) response.autoScalingInstances?.forEach { group -> println("The instance lifecycle state is: ${group.lifecycleState}") } } }-
For API details, see DescribeAutoScalingInstances
in AWS SDK for Kotlin API reference.
-
- PHP
-
- SDK for PHP
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. public function describeAutoScalingInstances($instanceIds) { return $this->autoScalingClient->describeAutoScalingInstances([ 'InstanceIds' => $instanceIds ]); }-
For API details, see DescribeAutoScalingInstances in AWS SDK for PHP API Reference.
-
- PowerShell
-
- Tools for PowerShell V4
-
Example 1: This example lists the IDs of your Auto Scaling instances.
Get-ASAutoScalingInstance | format-table -property InstanceIdOutput:
InstanceId ---------- i-12345678 i-87654321 i-abcd1234Example 2: This example describes the specified Auto Scaling instance.
Get-ASAutoScalingInstance -InstanceId i-12345678Output:
AutoScalingGroupName : my-asg AvailabilityZone : us-west-2b HealthStatus : HEALTHY InstanceId : i-12345678 LaunchConfigurationName : my-lc LifecycleState : InServiceExample 3: This example describes the specified two Auto Scaling instances.
Get-ASAutoScalingInstance -InstanceId @("i-12345678", "i-87654321")Example 4: This example describes the Auto Scaling instances for the specified Auto Scaling group.
(Get-ASAutoScalingGroup -AutoScalingGroupName my-asg).Instances | Get-ASAutoScalingInstanceExample 5: This example describes all your Auto Scaling instances.
Get-ASAutoScalingInstance-
For API details, see DescribeAutoScalingInstances in AWS Tools for PowerShell Cmdlet Reference (V4).
-
- Tools for PowerShell V5
-
Example 1: This example lists the IDs of your Auto Scaling instances.
Get-ASAutoScalingInstance | format-table -property InstanceIdOutput:
InstanceId ---------- i-12345678 i-87654321 i-abcd1234Example 2: This example describes the specified Auto Scaling instance.
Get-ASAutoScalingInstance -InstanceId i-12345678Output:
AutoScalingGroupName : my-asg AvailabilityZone : us-west-2b HealthStatus : HEALTHY InstanceId : i-12345678 LaunchConfigurationName : my-lc LifecycleState : InServiceExample 3: This example describes the specified two Auto Scaling instances.
Get-ASAutoScalingInstance -InstanceId @("i-12345678", "i-87654321")Example 4: This example describes the Auto Scaling instances for the specified Auto Scaling group.
(Get-ASAutoScalingGroup -AutoScalingGroupName my-asg).Instances | Get-ASAutoScalingInstanceExample 5: This example describes all your Auto Scaling instances.
Get-ASAutoScalingInstance-
For API details, see DescribeAutoScalingInstances in AWS Tools for PowerShell Cmdlet Reference (V5).
-
- Python
-
- SDK for Python (Boto3)
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the 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_instances(self, instance_ids: List[str]) -> List[Dict[str, Any]]: """ Gets information about instances. :param instance_ids: A list of instance IDs to look up. :return: A list of dictionaries with information about each instance, or an empty list if none are found. :raises ClientError: If there is an error describing the instances. """ try: paginator = self.autoscaling_client.get_paginator( "describe_auto_scaling_instances" ) response_iterator = paginator.paginate(InstanceIds=instance_ids) instances = [] for response in response_iterator: instances.extend(response.get("AutoScalingInstances", [])) logger.info(f"Successfully described instances: {instance_ids}") except ClientError as err: error_code = err.response["Error"]["Code"] logger.error( f"Couldn't describe instances {instance_ids}. Error code: {error_code}, Message: {err.response['Error']['Message']}" ) raise else: return instances-
For API details, see DescribeAutoScalingInstances in AWS SDK for Python (Boto3) API Reference.
-
- Rust
-
- SDK for Rust
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. pub async fn list_instances(&self) -> Result<Vec<String>, ScenarioError> { // The direct way to list instances is by using DescribeAutoScalingGroup's instances property. However, this returns a Vec<Instance>, as opposed to a Vec<AutoScalingInstanceDetails>. // Ok(self.get_group().await?.instances.unwrap_or_default().map(|i| i.instance_id.clone().unwrap_or_default()).filter(|id| !id.is_empty()).collect()) // Alternatively, and for the sake of example, DescribeAutoScalingInstances returns a list that can be filtered by the client. self.autoscaling .describe_auto_scaling_instances() .into_paginator() .items() .send() .try_collect() .await .map(|items| { items .into_iter() .filter(|i| { i.auto_scaling_group_name.as_deref() == Some(self.auto_scaling_group_name.as_str()) }) .map(|i| i.instance_id.unwrap_or_default()) .filter(|id| !id.is_empty()) .collect::<Vec<String>>() }) .map_err(|err| ScenarioError::new("Failed to get list of auto scaling instances", &err)) }-
For API details, see DescribeAutoScalingInstances
in AWS SDK for Rust API reference.
-