![](/img/trans.png)
[英]With Boto3, how can I get volumes that are smaller than Y in a list of EC2 Instances?
[英]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.