2017-12-07 4 views
0

を返す私はので、私は大きなアプリケーションでそれを使用することができます動作するように取得しようとしている非常にシンプルなサンドボックスがあります。Boto3のEC2のdescribe_instancesは常に空

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} 
} 

しかし問題は、私はReservationsこれを実行する回数に関係なく常に空:(である。

AWSのconsonleで私はCLEARLLYインを見ることができますタンスは、私は私が実行していたインスタンスを再起動し、複数のインスタンスを起動しようとした...

running ec2 instance

を実行しています。私は最初のスクリプトをループに入れて繰り返して実行しましたが、これは実際にデータを持つ予約配列の兆候を探していました。

awess ACCESS_KEYとSECRET_KEYの両方が正しいことと、正しいアカウントを指していることを再度確認しました。彼らです。

私はこれがなぜか分からない。それはとてもシンプルで働いているはずです。私はAWSの初心者ですので、どんな助けもありがとうございます。

+0

についての詳細を読むことができますが、あなたは右のリージョンを照会していますか? – kichik

+0

私は_specific_領域を照会しているのか分かりませんでした。特定の地域を指定する方法を知っていますか? – raykrow

+0

ドキュメントを確認しました。https://boto3.readthedocs.io/en/latest/reference/services/ec2.html#EC2.Client.describe_instances。特定の地域のクエリについては何も言及していません。あなたは多分私の場所を使っていると思いますか? – raykrow

答えて

0

問題は何とかboto3が私のインスタンスがで実行されていなかった地域を使用していたソリューションは、クライアントの初期化時に地域を指定することだったです。

ec2_client = boto3.client(
    'ec2', 
    region_name='us-east-2', 
    aws_access_key_id=ACCESS_KEY, 
    aws_secret_access_key=SECRET_KEY) 

すべての信用をどこ私に告げるため@kichikします見る!

3

地域を追加するのを忘れてしまったようです。

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

関連する問題