Saya punya beberapa Permintaan Spot EC2 yang meluncurkan Instance EC2 ketika harganya tepat. Saya ingin contoh yang dihasilkan untuk ditandai dengan Name
dan Role
tag sehingga alat manajemen konfigurasi saya tahu jenis mesin itu.
PEMBARUAN :
Saya mengambil saran Hyper Anthony dan menerapkannya - karena polling akan cenderung rawan kesalahan dan intensif sumber daya, saya menambahkan skrip startup ke AMI saya yang memperbarui tag ketika sebuah instance diluncurkan, ini adalah langkah-langkah yang saya ambil:
Pastikan Boto diinstal pada AMI apa pun yang Anda gunakan
pip install boto
Tetapkan Peran IAM ke Mesin Virtual EC2
Contoh yang Anda luncurkan harus memiliki beberapa cara untuk mengakses informasi tentang permintaan tempat. Gunakan peran IAM atau buat kunci akses tersedia untuk instance Anda. Kebijakan yang saya lampirkan pada peran IAM yang saya gunakan adalah:
{
"Statement": [
{
"Action": [
"ec2:CreateTags",
"ec2:DescribeTags",
"ec2:DescribeInstances"
],
"Effect": "Allow",
"Resource": [
"*"
],
"Sid": "Stmt1432737176000"
}
],
"Version": "2012-10-17"
}
Jalankan skrip saat startup untuk memperbarui tag
def get_tags_from_spot_request():
instance_id = boto.utils.get_instance_identity()['document']['instanceId']
region = boto.utils.get_instance_identity()['document']['region']
conn = boto.ec2.connect_to_region(region)
inst = boto.ec2.instance.Instance(connection=conn)
inst.id = instance_id
inst.update()
spot_id = inst.spot_instance_request_id
tags = conn.get_all_tags(filters={'resource-type': 'spot-instances-request', 'resource-id': spot_id})
for tag in tags:
inst.add_tag(tag.name, tag.value)