PythonとBoto3を使用してEC2インスタンスのプラットフォーム名を取得しようとしていました。しかし、スクリプトを実行すると、Windowsインスタンスのプラットフォーム名のみが「Windows」と表示されますが、Linuxプラットフォーム(Amazon Linux、Ubuntu、CentOSなど)で実行されているすべてのインスタンスは「なし」と表示されます。これが私のスクリプトです:
import boto3
ec2 = boto3.resource('ec2')
filters = [{'Name':'instance-state-name','Values':['running']}]
instances = ec2.instances.filter(Filters=filters).all()
for inst in instances:
print inst.id + "-" + str(inst.platform)
そして出力:
i-00dddfd5011ab2993-None
i-0ff7a32debff120de-None
i-018cd715318fc5b2d-None
i-06a84fa0421b7918c-windows
Linuxインスタンスのプラットフォーム属性を取得する方法はありますか?
LinuxカーネルベースのOSのLinuxの正確なバージョンまたはnull以外のものを一覧表示することは、AWSSDKまたはCLIでは不可能です。問題を解決する方法があります:
すべてのLinuxインスタンスにタグを追加してから、それらのタグ名を使用してフィルターで除外できます。
実際、AWS SDKとCLIは、ハイパーバイザーレベルで利用可能な情報を提供しますが、使用されているLinuxイメージのこれらの詳細は、ハイパーバイザーレベルではなくVMレベル内にあります。
それが役立つことを願っています!
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加