gpt4 book ai didi

python - Boto3 ec2 describe_instances 始终返回空

转载 作者:行者123 更新时间:2023-11-30 22:24:55 25 4
gpt4 key购买 nike

我有一个非常简单的沙箱,我正在尝试开始工作,以便可以在更大的应用程序中使用它:

ec2_client = boto3.client(
'ec2',
aws_access_key_id=ACCESS_KEY,
aws_secret_access_key=SECRET_KEY)

response = ec2_client.describe_instances()
print(response)

结果是......

{
'Reservations': [],
'ResponseMetadata': {
'RequestId': '2c28e8aa-da6d-4ca4-8ea7-f672518cac9f',
'HTTPStatusCode': 200,
'HTTPHeaders': {
'content-type': 'text/xml;charset=UTF-8',
'transfer-encoding': 'chunked',
'vary': 'Accept-Encoding',
'date': 'Thu, 07 Dec 2017 16:44:30 GMT',
'server': 'AmazonEC2'
},
'RetryAttempts': 0}
}

但是问题是,无论我运行此预订多少次,它始终是空的:(。

在 AWS 控制台中,我可以清楚地看到实例正在运行...

running ec2 instance

我尝试启动更多实例,重新启动我正在运行的实例。我将初始脚本放入循环中并重复运行它,同时查找 Reservations 数组实际具有数据的任何迹象。

我仔细检查了我的 aws ACCESS_KEY 和 SECRET_KEY 是否正确并且指向正确的帐户。他们是。

我不知道这是为什么。它是如此简单并且应该可以工作。我是 AWS 新手,因此非常感谢您的帮助。

最佳答案

您似乎忘记添加区域。

创建客户端时设置区域

ec2_client = boto3.client(
'ec2',
aws_access_key_id=ACCESS_KEY,
aws_secret_access_key=SECRET_KEY,
region_name=REGION_NAME
)

response = ec2_client.describe_instances()
print(response)

如果您的 EC2 实例位于俄勒冈州,您可以执行 region_name='us-west-2'

不建议对凭据进行硬编码。您可以使用 awscli 配置您的配置文件,然后在代码中引用它。

session = boto3.Session(profile_name='dev')
# Any clients created from this session will use credentials
# from the [dev] section of ~/.aws/credentials.
ec2_client = session.client('ec2')

您可以阅读有关 Boto3 凭证的更多信息 Boto3 Credentials

关于python - Boto3 ec2 describe_instances 始终返回空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47700089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com