AWS SDK またはコマンドラインツールDescribeAutoScalingInstancesで を使用する - AWS SDK コード例

Doc AWS SDK Examples リポジトリには、他にも SDK の例があります。 AWS GitHub

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS SDK またはコマンドラインツールDescribeAutoScalingInstancesで を使用する

以下のコード例は、DescribeAutoScalingInstances の使用方法を示しています。

アクション例は、より大きなプログラムからのコードの抜粋であり、コンテキスト内で実行する必要があります。次のコード例で、このアクションのコンテキストを確認できます。

.NET
AWS SDK for .NET
注記

の詳細については、「」を参照してください GitHub。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>(); groups!.ForEach(group => { if (group.AutoScalingGroupName == groupName) { group.Instances.ForEach(instance => { instanceIds.Add(instance.InstanceId); }); } }); var scalingGroupsRequest = new DescribeAutoScalingInstancesRequest { MaxRecords = 10, InstanceIds = instanceIds, }; var response = await _amazonAutoScaling.DescribeAutoScalingInstancesAsync(scalingGroupsRequest); var instanceDetails = response.AutoScalingInstances; return instanceDetails; }
  • API の詳細については、「 API リファレンスDescribeAutoScalingInstances」の「」を参照してください。 AWS SDK for .NET

C++
SDK for C++
注記

の詳細については、「」を参照してください GitHub。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; }
  • API の詳細については、「 API リファレンスDescribeAutoScalingInstances」の「」を参照してください。 AWS SDK for C++

CLI
AWS CLI

例 1: 1 つまたは複数のインスタンスを記述するには

この例は、指定されたインスタンスを記述します。

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

出力:

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

例 2: 1 つまたは複数のインスタンスを記述するには

この例では、--max-items オプションを使用して、この呼び出しで返されるインスタンスの数を指定します。

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

出力に NextToken フィールドが含まれている場合は、さらに多くのインスタンスがあることを示しています。追加のインスタンスを取得するには、次のように、以降の呼び出しで --starting-token オプションを使用してこのフィールドの値を使用します。

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

出力例については、例 1 を参照してください。

例 3: 起動設定を使用するインスタンスを記述するには

この例では、 --queryオプションを使用して、起動設定を使用するインスタンスを記述します。

aws autoscaling describe-auto-scaling-instances \ --query 'AutoScalingInstances[?LaunchConfigurationName!=`null`]'

出力:

[ { "InstanceId": "i-088c57934a6449037", "InstanceType": "t2.micro", "AutoScalingGroupName": "my-asg", "AvailabilityZone": "us-west-2c", "LifecycleState": "InService", "HealthStatus": "HEALTHY", "LaunchConfigurationName": "my-lc", "ProtectedFromScaleIn": false } ]

詳細については、「 コマンドラインインターフェイスユーザーガイド」のAWS 「CLI 出力のフィルタリング」を参照してください。 AWS

  • API の詳細については、「 コマンドリファレンスDescribeAutoScalingInstances」の「」を参照してください。 AWS CLI

Java
SDK for Java 2.x
注記

の詳細については、「」を参照してください GitHub。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); } }
  • API の詳細については、「 API リファレンスDescribeAutoScalingInstances」の「」を参照してください。 AWS SDK for Java 2.x

Kotlin
SDK for Kotlin
注記

の詳細については、「」を参照してください GitHub。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}") } } }
  • API の詳細については、DescribeAutoScalingInstancesAWS 「 SDK for Kotlin API リファレンス」の「」を参照してください。

PHP
SDK for PHP
注記

の詳細については、「」を参照してください GitHub。AWS コード例リポジトリ で全く同じ例を見つけて、設定と実行の方法を確認してください。

public function describeAutoScalingInstances($instanceIds) { return $this->autoScalingClient->describeAutoScalingInstances([ 'InstanceIds' => $instanceIds ]); }
  • API の詳細については、「 API リファレンスDescribeAutoScalingInstances」の「」を参照してください。 AWS SDK for PHP

PowerShell
のツール PowerShell

例 1: この例では、Auto Scaling インスタンスの IDs を一覧表示します。

Get-ASAutoScalingInstance | format-table -property InstanceId

出力:

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

例 2: この例では、指定された Auto Scaling インスタンスについて説明します。

Get-ASAutoScalingInstance -InstanceId i-12345678

出力:

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

例 3: この例では、指定された 2 つの Auto Scaling インスタンスについて説明します。

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

例 4: この例では、指定した Auto Scaling グループの Auto Scaling インスタンスについて説明します。

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

例 5: この例では、すべての Auto Scaling インスタンスについて説明します。

Get-ASAutoScalingInstance

例 6: この例では、すべての Auto Scaling インスタンスを 10 のバッチで記述します。

$nextToken = $null do { Get-ASAutoScalingInstance -NextToken $nextToken -MaxRecord 10 $nextToken = $AWSHistory.LastServiceResponse.NextToken } while ($nextToken -ne $null)
  • API の詳細については、AWS Tools for PowerShell 「 コマンドレットリファレンスDescribeAutoScalingInstances」の「」を参照してください。

Python
SDK for Python (Boto3)
注記

の詳細については、「」を参照してください GitHub。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): """ Gets information about instances. :param instance_ids: A list of instance IDs to look up. :return: Information about instances, or an empty list if none are found. """ try: response = self.autoscaling_client.describe_auto_scaling_instances( InstanceIds=instance_ids ) except ClientError as err: logger.error( "Couldn't describe instances %s. Here's why: %s: %s", instance_ids, err.response["Error"]["Code"], err.response["Error"]["Message"], ) raise else: return response["AutoScalingInstances"]
  • API の詳細については、DescribeAutoScalingInstancesAWS 「 SDK for Python (Boto3) API リファレンス」の「」を参照してください。

Rust
SDK for Rust
注記

の詳細については、「」を参照してください GitHub。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)) }
  • API の詳細については、DescribeAutoScalingInstancesAWS 「 SDK for Rust API リファレンス」の「」を参照してください。