【发布时间】:2021-08-07 19:57:44
【问题描述】:
在 shell 脚本或 Python 中,我如何知道有多少 EC2 实例正在运行以及每个 AWS 区域中的实例数?
【问题讨论】:
标签: python shell amazon-web-services amazon-ec2
在 shell 脚本或 Python 中,我如何知道有多少 EC2 实例正在运行以及每个 AWS 区域中的实例数?
【问题讨论】:
标签: python shell amazon-web-services amazon-ec2
aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId]' --output text | wc -l
如果您希望对非默认区域执行此操作:
aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId]' --region ap-southeast-2 --output text | wc -l
【讨论】:
我建议您先安装 AWS CLI。然后查看https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html,它将向您展示如何获取正在运行的实例列表。您可以编写一个调用此 describe-instances 命令并使用可用过滤器的 bash 脚本。
【讨论】:
aws ec2 describe-regions | jq --raw-output '.Regions[] | .RegionName' ;做回声“*** $i ***”; aws ec2 描述实例 --region "$i" | jq --raw-output ".Reservations[].Instances[] | .InstanceType" ;完成获取区域中的实例列表我使用了上述命令我如何修改它以获取实例数
您也可以按如下方式使用配置服务:
% aws configservice get-discovered-resource-counts --region eu-west-1 --profile MyProfile
{
"totalDiscoveredResources": 828,
"resourceCounts": [
...ommitted for brevity's sake....
{
"resourceType": "AWS::EC2::SecurityGroup",
"count": 94
},
{
"resourceType": "AWS::EC2::NetworkInterface",
"count": 60
},
{
"resourceType": "AWS::IAM::Role",
"count": 56
},
{
"resourceType": "AWS::EC2::Volume",
"count": 55
},
{
"resourceType": "AWS::EC2::Instance",
"count": 44
},
...ommitted for brevity's sake....
https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configservice/index.html
【讨论】: