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

San*_*idi 5 aws-cli

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

   aws ec2 describe-instance-status --instance-ids xxxxxx yyyyyyyy zzzzzzzz
Run Code Online (Sandbox Code Playgroud)

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

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

Kar*_*mar 9

有不同的方法可以检查instance-state.

\n

使用:

\n

描述实例状态。

\n
\n

您可以使用describe-instance-statusdescribe-instance-statusAWS 命令​​行界面 (CLI) 的命令用于检索一个或多个 Amazon Elastic Compute Cloud (EC2) 实例的状态。默认情况下,它返回正在运行的实例的状态。要在返回的状态信息中包含已停止的实例,您可以使用该--include-all-instances选项。

\n
\n

以下是如何使用此选项的示例:

\n
$ aws ec2 describe-instance-status --include-all-instances\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n

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

\n
$aws ec2 describe-instance-status --filters "Name=instance-state-code,Values=80"\n
Run Code Online (Sandbox Code Playgroud)\n

注意:这里是实例和实例80的代码。下面将为您提供有关实例的信息。stopped16runningstopped

\n
$ aws ec2 describe-instance-status --include-all-instances --filters Name=instance-state-name,Values='stopped'\n
Run Code Online (Sandbox Code Playgroud)\n
\n

您可以同时获取running以下示例中使用的stooped instance-state选项 ...--include-all-instances

\n
\n
$ 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\n\n\n------------------------------------\n|      DescribeInstanceStatus      |\n+----------------------+-----------+\n|      InstanceId      |   State   |\n+----------------------+-----------+\n|  i-0a4209dkc6549a2ea |  running  |\n|  i-09379cj420ed015f2 |  running  |\n|  i-0c9e1100de0105ed6 |  stopped  |\n|  i-0f57b147ea9124344 |  running  |\n|  i-02e4cbcbe10cb5e79 |  stopped  |\n+----------------------+-----------+\n
Run Code Online (Sandbox Code Playgroud)\n

描述实例。

\n
\n

在使用 with 时,您可以检查实例instance-state-name 的情况。state(pending | running | shutting-down | terminated | stopping | stopped )describe-instances

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

但是,您可以使用和state获取实例的具体信息,例如,如果您只查找一个实例,那么您可以使用如下所示...--filers--querystopped

\n
\n
$ 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\n----------------------------------------------------\n|                 DescribeInstances                |\n+----------------------+----------------+----------+\n|      InstanceId      | InstanceType   |  State   |\n+----------------------+----------------+----------+\n|  i-0c9e1100de0105ed6 |  m5.xlarge     |  stopped |\n|  i-02e4cbcbe10cb5e79 |  t1.micro      |  stopped |\n+----------------------+----------------+----------+\n
Run Code Online (Sandbox Code Playgroud)\n

以类似的方式,您可以仅检查running实例 \xe2\x80\xa6

\n
$ 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\n----------------------------------------------------\n|                 DescribeInstances                |\n+----------------------+----------------+----------+\n|      InstanceId      | InstanceType   |  State   |\n+----------------------+----------------+----------+\n|  i-0a4209dkc6549a2ea |  t3.xlarge     |  running |\n|  i-09379cj420ed015f2 |  t2.small      |  running |\n+----------------------+----------------+----------+\n
Run Code Online (Sandbox Code Playgroud)\n

笔记:

\n

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

\n


Dan*_*iel 0

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

来自关于describe-instance-status命令的AWS文档:

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

当 true 时,包括所有实例的运行状况。如果为 false,则仅包含正在运行的实例的运行状况。

默认值:假