aws cli: EC2:获取实例列表的状态



我正在尝试使用AWS CLI获取几个EC2实例的状态

aws ec2 describe-instance-status --instance-ids xxxxxx yyyyyyyy zzzzzzzz

但是在输出中,它只列出正在运行的实例,而不列出已停止的实例。

如何查看实例状态,即使它们正在运行或停止

检查instance-state有不同的方法。

使用

:

describe-instance-status。

可以使用describe-instance-status:在AWS命令行中,describe-instance-status命令用于检索一个或多个Amazon EC2实例的状态。默认情况下,它返回运行实例的状态。要在返回的状态信息中包含已停止的实例,可以使用--include-all-instances选项。

下面是一个如何使用该选项的示例:

$ aws ec2 describe-instance-status --include-all-instances

上述命令将返回正在运行和已停止实例的状态信息。

注意,您还可以使用--filters选项过滤返回的结果。例如,您可以使用以下命令仅检索已停止实例的状态:

$aws ec2 describe-instance-status --filters "Name=instance-state-code,Values=80"

注意:这里80stopped实例的代码,16running实例的代码。下面一个将给你关于stopped实例的信息。

$ aws ec2 describe-instance-status --include-all-instances --filters Name=instance-state-name,Values='stopped'

您可以同时获得running以及stoopedinstance-state,同时包括以下给定示例中使用的选项--include-all-instances

$ aws ec2 describe-instance-status --include-all-instances --filters Name=instance-state-name,Values='*' --query 'InstanceStatuses[*].{InstanceId: InstanceId, State: InstanceState.Name}' --profile lab--output table

------------------------------------
|      DescribeInstanceStatus      |
+----------------------+-----------+
|      InstanceId      |   State   |
+----------------------+-----------+
|  i-0a4209dkc6549a2ea |  running  |
|  i-09379cj420ed015f2 |  running  |
|  i-0c9e1100de0105ed6 |  stopped  |
|  i-0f57b147ea9124344 |  running  |
|  i-02e4cbcbe10cb5e79 |  stopped  |
+----------------------+-----------+

举例描述。

在使用describe-instances时,可以检查instance-state-name而不管(pending | running | shutting-down | terminated | stopping | stopped )state

$ aws ec2 describe-instances --query 'Reservations[].Instances[*].{InstanceType: InstanceType, InstanceId: InstanceId, State: State.Name}' --profile lab --output table
----------------------------------------------------
|                 DescribeInstances                |
+----------------------+----------------+----------+
|      InstanceId      | InstanceType   |  State   |
+----------------------+----------------+----------+
|  i-0a4209dkc6549a2ea |  t3.xlarge     |  running |
|  i-09379cj420ed015f2 |  t2.small      |  running |
|  i-0c9e1100de0105ed6 |  m5.xlarge     |  stopped |
|  i-0f57b147ea9124344 |  c6i.xlarge    |  running |
|  i-02e4cbcbe10cb5e79 |  t1.micro      |  stopped |
+----------------------+----------------+----------+

然而,您可以使用--filers--query获得实例的特定state,例如,如果您正在寻找stopped实例,那么您可以使用如下…

$ aws ec2 describe-instances --filters Name=instance-state-name,Values=stopped  --query 'Reservations[].Instances[*].{InstanceType: InstanceType, InstanceId: InstanceId, State: State.Name}' --profile lab --output table
----------------------------------------------------
|                 DescribeInstances                |
+----------------------+----------------+----------+
|      InstanceId      | InstanceType   |  State   |
+----------------------+----------------+----------+
|  i-0c9e1100de0105ed6 |  m5.xlarge     |  stopped |
|  i-02e4cbcbe10cb5e79 |  t1.micro      |  stopped |
+----------------------+----------------+----------+

以类似的方式,您可以只检查running实例…

$ aws ec2 describe-instances --filters Name=instance-state-name,Values=running  --query 'Reservations[].Instances[*].{InstanceType: InstanceType, InstanceId: InstanceId, State: State.Name}' --profile lab --output table
----------------------------------------------------
|                 DescribeInstances                |
+----------------------+----------------+----------+
|      InstanceId      | InstanceType   |  State   |
+----------------------+----------------+----------+
|  i-0a4209dkc6549a2ea |  t3.xlarge     |  running |
|  i-09379cj420ed015f2 |  t2.small      |  running |
+----------------------+----------------+----------+

注意:

此外,我个人喜欢字典格式和表格输出(--output table),同时使用AWS CLI以漂亮的表格形式获取值,这便于可读性,因此这里以哈希形式(即字典或关联数组)获取instance-state的值也是如此,你我已经将其与--query结合起来以获得更好的可读输出。

是的,如果您将--include-all-instances选项传递给命令,它也将显示已停止的实例

来自AWS文档中关于description -instance-status命令的说明:

--include-all-instances | --no-include-all-instances (boolean)

当为true时,包括所有实例的健康状态。当为false时,仅包括运行实例的健康状态。

默认值:假

相关内容

  • 没有找到相关文章

最新更新