2016-10-17 11 views
0

インスタンスのタグキーAutoScalingGroupNameの値を取得しようとしています。 Python boto3スクリプトが構文エラーで失敗します。Python boto3スクリプトがインスタンスタグ値を取得できません

ここに私のサンプルスクリプトがあります。

#!/bin/python3.4 
import requests 
import boto3 
import botocore.session 
import urllib.request 

ec2 = boto3.client('ec2', region_name='us-west-1', aws_access_key_id='****************', aws_secret_access_key='****************************') 
liid = urllib.request.urlopen('http://169.254.169.254/latest/meta-data/instance-id').read().decode() 
autoinstinfo = ec2.describe_instances(InstanceIds=[liid], Filters=[{'Name':'tag:AutoScalingGroupName', 'Values':['%s']} % ['AutoScalingGroupName']).get('Reservations', []) 
print(autoinstinfo) 

このエラーメッセージで失敗します。

python3.4 ./test.py

File "./test.py", line 9 autoinstinfo = ec2.describe_instances(InstanceIds=[liid], Filters=[{'Name':'tag:AutoScalingGroupName', 'Values':['%s']} % (AutoScalingGroupName)).get('Reservations', []) ^ SyntaxError: invalid syntax

答えて

1

タグ名を知っているときに、なぜ文字列形式を使用したいのですか?なぜ次のことができないのですか?

ec2.describe_tags(Filters=[{'Name':'resource-id', 'Values':[liid]}, {'Name':'key', 'Values':['AutoScalingGroupName']}])['Tags'][0]['Value'] 
+0

私は空のdictを取得していますか? '[]' – bobby

+0

'#python3.4 ./test.py [] – bobby

+0

私はどんなエラーにも気付きませんでしたが、私はこの実行中のすべての情報を得ました。 「AutoScalingGroupName」値のみが必要です。私は印刷の声明に欠けているものがありますか? – bobby

1
`import boto3 

ec2 = boto3.resource('ec2') 
client = boto3.client('ec2') 

response = client.describe_instances() 

for r in response['Reservations']: 
    for instance in r['Instances']: 
     Tags = instance['Tags'][0]['Key'] 
     print(Tags)` 

上記のスクリプトは、あなたのAWSアカウント内のすべてのインスタンスのタグ・キーを提供します。

+0

上記のスクリプトはあなたのawsアカウントのすべてのインスタンスのタグキーを提供します –

関連する問題