簡體   English   中英

我可以獲得為我的每個賬戶運行的 AWS EC2 實例的列表嗎?

[英]Can I get a list of AWS EC2 instances running for each of my accounts?

我有一個帶有賬戶 ID 的 AWS 賬戶列表。 我想獲取在每個賬戶中運行的所有 EC2 實例的列表。 我可以使用 boto3 獲取該列表嗎?

首先,您可以通過創建 boto3 客戶端以編程方式訪問您的 AWS 賬戶。

import boto3
client = boto3.client(
    's3',
    aws_access_key_id=ACCESS_KEY,
    aws_secret_access_key=SECRET_KEY,
    aws_session_token=SESSION_TOKEN,
)

請參閱: https : //boto3.amazonaws.com/v1/documentation/api/latest/guide/configuration.html#method-parameters

使用您的憑據創建 boto3 客戶端后,您可以使用 boto3 的EC2.Client.describe_instances()

response = client.describe_instances(
    Filters=[
        {
            'Name': 'string',
            'Values': [
                'string',
            ]
        },
    ],
    InstanceIds=[
        'string',
    ],
    DryRun=True|False,
    MaxResults=123,
    NextToken='string'
)

Filters使用'instance-state-name' : 'running' ,例如:

{
    'Name': 'instance-state-name',
    'Values': [
        'running',
    ]
}

然后您可以獲取正在運行的 ec2 實例的信息。

要從 CLI/程序訪問 AWS 賬戶,您需要擁有“aws_access_key_id_value”和“aws_secret_access_key_value”。 獲得這些詳細信息后,您可以使用以下代碼列出您指定密鑰的 AWS 賬戶中的 EC2 實例。

使用以下代碼創建 config.properties。

aws_access_key_id_value='YOUR-ACCESS-KEY-OF-THE-AWS-ACCOUNT'
aws_secret_access_key_value='YOUR-SECRETE-KEY-OF-THE-AWS-ACCOUNT'

使用以下代碼創建 list-ec2-instances.py。

import boto3

def getVarFromFile(filename):
    import imp
    f = open(filename)
    global data
    data = imp.load_source('data', '', f)
    f.close()

getVarFromFile('config.properties')

ec2client = boto3.resource(

    'ec2',
    aws_access_key_id=data.aws_access_key_id_value,
    aws_secret_access_key=data.aws_secret_access_key_value
)

for instance in ec2client.instances.all():
     print(
         "Id: {0}\nPlatform: {1}\nType: {2}\nPublic IPv4: {3}\nAMI: {4}\nState: {5}\n".format(
         instance.id, instance.platform, instance.instance_type, instance.public_ip_address, instance.image.id, instance.state
         )
     )

執行以下命令。

python list-ec2-instances.py

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM