Jika saya hanya ingin mendapatkan instans EC2 yang nilai tag envnya adalah dev , bagaimana cara mengubah kode berdasarkan skrip ini?

[Skrip ini memungkinkan saya mendapatkan semua contoh]

Bagaimana saya bisa menggunakan kamus Python Pengelompokan AWS contoh berdasarkan nama tag?

Ketika saya menjalankan skrip di tautan ini:

#!/usr/bin/env python
# -*- encoding: utf8 -*-

import boto.ec2
conn = boto.ec2.connect_to_region('us-west-1')
reservations = conn.get_all_instances()
InstanceMap={}
for reservation in reservations:
    for instance in reservation.instances:
        if 'Name' in instance.tags:
            tag_name = instance.tags['Name']
            if tag_name in InstanceMap:
                InstanceMap[tag_name].append(instance.id)
            else:
                InstanceMap[tag_name] = [instance.id,]

Saya mendapatkan semua ID Instans EC2 dan nama tag Instans.

Hasilnya adalah

{'ap1-dev': ['i-04ebd1403d93bef01'],

 'ap1-prod': ['i-08f0c8a3f495bad71', 'i-0508a3800cd0ec331'],

 'ap1-stage': ['i-0716b2fd4089c7471', 'i-025002d2da8396171'],

 'ap2-dev': ['i-08ffb39676b7b1c81'],

 'ap2-prod': ['i-019dbf70c2f061521', 'i-0d2d482cb85419131'],

 'ap2-stage': ['i-04d71424b7257b4b1', 'i-02c0046baae635d31']}

Nilai nama tag instance adalah ap1-dev , nilai env tagnya adalah dev

Nilai nama tag instacne adalah ap1-prod, nilai env tagnya adalah prod

Sekarang pertanyaan saya adalah:

Jika saya hanya ingin mendapatkan instance EC2 yang nilai tag envnya adalah "dev" . Hasil yang ingin saya dapatkan adalah ini:

{'ap1-dev': ['i-04ebd1403d93bef01'],

 'ap2-dev': ['i-08ffb39676b7b1c81']}

Bagaimana cara saya mengubah kode berdasarkan skrip ini?


person Andrew    schedule 02.01.2018    source sumber


Jawaban (1)


Anda ingin mempertimbangkan tag yang diakhiri dengan -dev.

Ubah baris ini:

if 'Name' in instance.tags:

to:

if 'Name' in instance.tags and instance.tags['Name'].endswith('-dev'):

Anda juga dapat menjadikan ini sebagai metode dan meneruskan "lingkungan" Anda seperti dev, prod, stage alih-alih mengubah kode setiap saat.

person helloV    schedule 02.01.2018
comment
Terima kasih banyak ! Saya menggunakan baris ini: if 'Name' in instance.tags dan 'env' in instance.tags and instance.tags['env'] == 'stage' berhasil. - person Andrew; 02.01.2018