使用 SDK 方法,您可以获取从 DescribeAutoScalingInstances 调用返回的响应/结果数据中嵌入的一组实例 ID,并将它们传递给 EC2 的 DescribeInstances 调用(再次使用 new-object 来获取 EC2 客户端和请求对象)。这将为您提供一组 Amazon.EC2.Model.Reservation 对象(同样在响应/结果数据中),每个预留中的 RunningInstance 集合将从这些对象中获取 EC2 实例的 IP 地址。
然而,像这样使用适用于 Windows PowerShell 的 AWS 工具要简单得多:
Get-ASAutoScalingInstance | select -expandproperty InstanceId | Get-EC2Instance | select -expandproperty RunningInstance | ft InstanceId, IpAddress
Get-ASAutoScalingInstance 映射到您问题中的请求;这会产生一组 EC2 实例,我们通过选择从中提取每个实例的 id。然后,我们使用 Get-EC2Instance 请求实例的详细信息;如上所述,这会产生一个 Amazon.EC2.Model.Reservation 对象,其中包含实例的详细信息(在 RunningInstance 集合中)。我们将其展平以提取表的实例 ID 和关联的 IP 地址。
上面的示例管道假定您已使用 Set-AWSCredentials 和 Set-DefaultAWSRegion 设置了要在 shell 中使用的凭证和区域。
适用于 Windows PowerShell 的 AWS 工具包含在 SDK 和 Visual Studio 工具包的下载 msi 中,可从http://aws.amazon.com/net/获得。
希望这可以帮助。