Utilizzare DescribeAutoScalingInstances con un SDK AWS o una CLI - Esempi di codice per SDK AWS

Sono disponibili altri esempi per SDK AWS nel repository GitHub della documentazione degli esempi per SDK AWS.

Utilizzare DescribeAutoScalingInstances con un SDK AWS o una CLI

Gli esempi di codice seguenti mostrano come utilizzare DescribeAutoScalingInstances.

Gli esempi di operazioni sono estratti di codice da programmi più grandi e devono essere eseguiti nel contesto. Puoi vedere questa azione nel contesto nel seguente esempio di codice:

.NET
SDK per .NET (v4)
Nota

Ulteriori informazioni su GitHub. Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel Repository di esempi di codice AWS.

/// <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; }
  • Per informazioni dettagliate sull’API, consulta DescribeAutoScalingInstances nella documentazione di riferimento dell’API AWS SDK per .NET.

C++
SDK per C++
Nota

Ulteriori informazioni su GitHub. Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel Repository di esempi di codice 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::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; }
  • Per informazioni dettagliate sull’API, consulta DescribeAutoScalingInstances nella documentazione di riferimento dell’API AWS SDK per C++.

CLI
AWS CLI

Esempio 1: come descrivere una o più istanze.

Questo esempio descrive l’istanza specificata.

aws autoscaling describe-auto-scaling-instances \ --instance-ids i-06905f55584de02da

Output:

{ "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" } } ] }

Esempio 2: come descrivere una o più istanze.

Questo esempio utilizza l’opzione --max-items per specificare il numero di istanze da restituire con questa chiamata.

aws autoscaling describe-auto-scaling-instances \ --max-items 1

Se l’output include un campo NextToken, significa che sono presenti più istanze. Per ottenere le istanze aggiuntive, utilizza il valore di questo campo con l’opzione --starting-token in una chiamata successiva come descritto di seguito.

aws autoscaling describe-auto-scaling-instances \ --starting-token Z3M3LMPEXAMPLE

Vedi l’esempio 1 per un output di esempio.

Esempio 3: come descrivere le istanze che utilizzano le configurazioni di avvio.

Questo esempio utilizza l’opzione --query per descrivere le istanze che utilizzano configurazioni di avvio.

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 } ]

Per ulteriori informazioni, consulta Filtrare l’output dell’interfaccia della riga di comando AWS nella Guida per l’utente dell’Interfaccia della linea di comando AWS.

Java
SDK per Java 2.x
Nota

Ulteriori informazioni su GitHub. Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel Repository di esempi di codice AWS.

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); } }
  • Per informazioni dettagliate sull’API, consulta DescribeAutoScalingInstances nella documentazione di riferimento dell’API AWS SDK for Java 2.x.

Kotlin
SDK per Kotlin
Nota

Ulteriori informazioni su GitHub. Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel Repository di esempi di codice AWS.

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}") } } }
  • Per informazioni dettagliate sull’API, consulta DescribeAutoScalingInstances nella documentazione di riferimento dell’API AWS SDK per Kotlin.

PHP
SDK per PHP
Nota

Ulteriori informazioni su GitHub. Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel Repository di esempi di codice AWS.

public function describeAutoScalingInstances($instanceIds) { return $this->autoScalingClient->describeAutoScalingInstances([ 'InstanceIds' => $instanceIds ]); }
  • Per informazioni dettagliate sull’API, consulta DescribeAutoScalingInstances nella documentazione di riferimento dell’API AWS SDK per PHP.

PowerShell
Strumenti per PowerShell V4

Esempio 1: questo esempio elenca gli ID delle istanze Auto Scaling.

Get-ASAutoScalingInstance | format-table -property InstanceId

Output:

InstanceId ---------- i-12345678 i-87654321 i-abcd1234

Esempio 2: questo esempio descrive l’istanza Auto Scaling specificata.

Get-ASAutoScalingInstance -InstanceId i-12345678

Output:

AutoScalingGroupName : my-asg AvailabilityZone : us-west-2b HealthStatus : HEALTHY InstanceId : i-12345678 LaunchConfigurationName : my-lc LifecycleState : InService

Esempio 3: questo esempio descrive le due istanze Auto Scaling specificate.

Get-ASAutoScalingInstance -InstanceId @("i-12345678", "i-87654321")

Esempio 4: questo esempio descrive le istanze Auto Scaling per il gruppo Auto Scaling specificato.

(Get-ASAutoScalingGroup -AutoScalingGroupName my-asg).Instances | Get-ASAutoScalingInstance

Esempio 5: questo esempio descrive tutte le istanze Auto Scaling.

Get-ASAutoScalingInstance
  • Per informazioni dettagliate sull’API, consulta DescribeAutoScalingInstances nella documentazione di riferimento dei cmdlet di AWS Strumenti per PowerShell (V4).

Strumenti per PowerShell V5

Esempio 1: questo esempio elenca gli ID delle istanze Auto Scaling.

Get-ASAutoScalingInstance | format-table -property InstanceId

Output:

InstanceId ---------- i-12345678 i-87654321 i-abcd1234

Esempio 2: questo esempio descrive l’istanza Auto Scaling specificata.

Get-ASAutoScalingInstance -InstanceId i-12345678

Output:

AutoScalingGroupName : my-asg AvailabilityZone : us-west-2b HealthStatus : HEALTHY InstanceId : i-12345678 LaunchConfigurationName : my-lc LifecycleState : InService

Esempio 3: questo esempio descrive le due istanze Auto Scaling specificate.

Get-ASAutoScalingInstance -InstanceId @("i-12345678", "i-87654321")

Esempio 4: questo esempio descrive le istanze Auto Scaling per il gruppo Auto Scaling specificato.

(Get-ASAutoScalingGroup -AutoScalingGroupName my-asg).Instances | Get-ASAutoScalingInstance

Esempio 5: questo esempio descrive tutte le istanze Auto Scaling.

Get-ASAutoScalingInstance
  • Per informazioni dettagliate sull’API, consulta DescribeAutoScalingInstances nella documentazione di riferimento dei cmdlet di AWS Strumenti per PowerShell (V5).

Python
SDK per Python (Boto3)
Nota

Ulteriori informazioni su GitHub. Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel Repository di esempi di codice 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 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
  • Per informazioni dettagliate sull’API, consulta DescribeAutoScalingInstances nella documentazione di riferimento dell’API AWS SDK per Python (Boto3).

Rust
SDK per Rust
Nota

Ulteriori informazioni su GitHub. Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel Repository di esempi di codice AWS.

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)) }
  • Per informazioni dettagliate sull’API, consulta DescribeAutoScalingInstances nella documentazione di riferimento dell’API SDK AWS per Rust.