cari
Rumahpembangunan bahagian belakangTutorial PythonCara Mendapatkan Maklumat ECnstance Menggunakan Python dan Boto3

How to Retrieve ECnstances Information Using Python and Boto3

Jika anda bekerja dengan AWS (Perkhidmatan Web Amazon), kemungkinan besar anda perlu berinteraksi dengan kejadian EC2 (Elastic Compute Cloud) anda dengan kerap. Sama ada anda menguruskan kumpulan besar mesin maya atau mengautomasikan beberapa tugas infrastruktur anda, mendapatkan semula butiran tika EC2 secara pengaturcaraan boleh menjimatkan banyak masa anda.

Dalam artikel ini, kami akan membincangkan cara menggunakan Python dengan Boto3 SDK untuk mendapatkan dan mencetak butiran kejadian EC2 anda di rantau AWS tertentu. Boto3 ialah SDK AWS untuk Python, dan ia menyediakan API yang mudah digunakan untuk berinteraksi dengan perkhidmatan AWS.

Prasyarat

Sebelum kita menyelami kod, berikut adalah beberapa perkara yang anda perlukan:

  1. Akaun AWS: Anda memerlukan akaun AWS aktif dan kejadian EC2 yang dijalankan di rantau tertentu.
  2. AWS CLI atau SDK Dikonfigurasikan: Anda harus menyediakan bukti kelayakan AWS anda. Anda boleh menggunakan AWS CLI untuk mengkonfigurasi bukti kelayakan ini atau tetapkannya secara langsung dalam kod anda (tidak disyorkan untuk persekitaran pengeluaran).
  3. Perpustakaan Boto3: Anda perlu memasang Boto3 dalam persekitaran Python anda. Pasangnya dengan arahan berikut jika anda belum memilikinya:
   pip install boto3

Panduan Kod

Coretan kod di bawah menunjukkan cara untuk mendapatkan dan memaparkan butiran tentang tika EC2 di rantau us-east-1 menggunakan Python dan Boto3.

import boto3

def get_ec2_instances():
    # Create EC2 client for us-east-1 region
    ec2_client = boto3.client('ec2', region_name='us-east-1')

    try:
        # Get all instances
        response = ec2_client.describe_instances()

        # List to store instance details
        instance_details = []

        # Iterate through reservations and instances
        for reservation in response['Reservations']:
            for instance in reservation['Instances']:
                # Get instance type
                instance_type = instance['InstanceType']

                # Get instance name from tags if it exists
                instance_name = 'N/A'
                if 'Tags' in instance:
                    for tag in instance['Tags']:
                        if tag['Key'] == 'Name':
                            instance_name = tag['Value']
                            break

                # Get instance ID
                instance_id = instance['InstanceId']

                # Get instance state
                instance_state = instance['State']['Name']

                # Add instance details to list
                instance_details.append({
                    'Instance ID': instance_id,
                    'Name': instance_name,
                    'Type': instance_type,
                    'State': instance_state
                })

        # Print instance details
        if instance_details:
            print("\nEC2 Instances in us-east-1:")
            print("-" * 80)
            for instance in instance_details:
                print(f"Instance ID: {instance['Instance ID']}")
                print(f"Name: {instance['Name']}")
                print(f"Type: {instance['Type']}")
                print(f"State: {instance['State']}")
                print("-" * 80)
        else:
            print("No EC2 instances found in us-east-1 region")

    except Exception as e:
        print(f"Error retrieving EC2 instances: {str(e)}")

if __name__ == "__main__":
    get_ec2_instances()

Penjelasan Kod

  1. Mencipta Pelanggan EC2:
   ec2_client = boto3.client('ec2', region_name='us-east-1')

Langkah pertama ialah mencipta klien Boto3 EC2. Di sini kami menentukan wilayah us-east-1, tetapi anda boleh menukarnya kepada mana-mana rantau AWS tempat kejadian EC2 anda dijalankan.

  1. Mendapatkan Contoh EC2:
   response = ec2_client.describe_instances()

Kaedah describe_instances() mendapatkan semula maklumat tentang semua tika EC2 di rantau yang ditentukan. Respons mengandungi maklumat terperinci tentang kejadian, termasuk ID, jenis, keadaan dan tegnya.

  1. Mengekstrak Butiran Contoh: Respons yang dikembalikan mengandungi senarai "tempahan," setiap satunya mengandungi "contoh." Untuk setiap contoh, kami mengeluarkan maklumat yang berguna:
    • ID Contoh: Pengecam unik contoh.
    • Nama: Tanda nama instance (jika ada).
    • Jenis: Jenis tika EC2 (cth., t2.micro, m5.large).
    • Keadaan: Keadaan semasa kejadian (cth., berjalan, berhenti).

Kami kemudian menyimpan butiran ini dalam senarai yang dipanggil instance_details.

  1. Mengendalikan Teg:
   pip install boto3

Kejadian EC2 boleh mempunyai teg, termasuk tag Nama yang sering digunakan untuk mengenal pasti tika. Jika tag Nama wujud, kami mengekstrak nilainya. Jika tidak, kami menetapkan nama contoh kepada 'T/A'.

  1. Memaparkan Keputusan:
    Selepas mengumpulkan semua butiran kejadian, kod mencetaknya dalam format yang boleh dibaca. Jika tiada kejadian ditemui, ia akan mencetak mesej yang menunjukkan bahawa.

  2. Pengendalian Ralat:
    Keseluruhan proses dibungkus dalam blok cuba-kecuali untuk mengendalikan sebarang pengecualian yang mungkin berlaku, seperti isu rangkaian atau kebenaran yang tidak mencukupi.

Menjalankan Skrip

Untuk menjalankan skrip, hanya laksanakan dalam persekitaran Python anda. Jika semuanya disediakan dengan betul, anda akan melihat senarai kejadian EC2 di wilayah us-east-1, menunjukkan ID, nama, jenis dan keadaannya.

Contoh Output:

import boto3

def get_ec2_instances():
    # Create EC2 client for us-east-1 region
    ec2_client = boto3.client('ec2', region_name='us-east-1')

    try:
        # Get all instances
        response = ec2_client.describe_instances()

        # List to store instance details
        instance_details = []

        # Iterate through reservations and instances
        for reservation in response['Reservations']:
            for instance in reservation['Instances']:
                # Get instance type
                instance_type = instance['InstanceType']

                # Get instance name from tags if it exists
                instance_name = 'N/A'
                if 'Tags' in instance:
                    for tag in instance['Tags']:
                        if tag['Key'] == 'Name':
                            instance_name = tag['Value']
                            break

                # Get instance ID
                instance_id = instance['InstanceId']

                # Get instance state
                instance_state = instance['State']['Name']

                # Add instance details to list
                instance_details.append({
                    'Instance ID': instance_id,
                    'Name': instance_name,
                    'Type': instance_type,
                    'State': instance_state
                })

        # Print instance details
        if instance_details:
            print("\nEC2 Instances in us-east-1:")
            print("-" * 80)
            for instance in instance_details:
                print(f"Instance ID: {instance['Instance ID']}")
                print(f"Name: {instance['Name']}")
                print(f"Type: {instance['Type']}")
                print(f"State: {instance['State']}")
                print("-" * 80)
        else:
            print("No EC2 instances found in us-east-1 region")

    except Exception as e:
        print(f"Error retrieving EC2 instances: {str(e)}")

if __name__ == "__main__":
    get_ec2_instances()

Kesimpulan

Skrip mudah ini merupakan titik permulaan yang sangat baik untuk berinteraksi dengan kejadian AWS EC2 menggunakan Python dan Boto3. Dengan hanya beberapa baris kod, anda boleh mendapatkan maklumat penting tentang kejadian EC2 anda, mengautomasikan tugas pemantauan atau bahkan menyepadukan fungsi ini ke dalam alatan pengurusan infrastruktur yang lebih besar.

Anda boleh melanjutkan skrip ini kepada:

  • Tapis tika berdasarkan teg atau keadaan tertentu.
  • Mulakan, hentikan atau tamatkan kejadian secara pengaturcaraan.
  • Kumpulkan butiran tambahan seperti alamat IP awam, kumpulan keselamatan dan banyak lagi.

Kuasa Boto3 dan Python membolehkan anda mengautomasikan pelbagai tugas AWS dengan cekap.

Atas ialah kandungan terperinci Cara Mendapatkan Maklumat ECnstance Menggunakan Python dan Boto3. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Python: pengkompil atau penterjemah?Python: pengkompil atau penterjemah?May 13, 2025 am 12:10 AM

Python adalah bahasa yang ditafsirkan, tetapi ia juga termasuk proses penyusunan. 1) Kod python pertama kali disusun ke dalam bytecode. 2) Bytecode ditafsirkan dan dilaksanakan oleh mesin maya Python. 3) Mekanisme hibrid ini menjadikan python fleksibel dan cekap, tetapi tidak secepat bahasa yang disusun sepenuhnya.

Python untuk gelung vs semasa gelung: Bila menggunakan yang mana?Python untuk gelung vs semasa gelung: Bila menggunakan yang mana?May 13, 2025 am 12:07 AM

UseAforLoopWheniteratingOvereForforpecificNumbimes; Useaphileloopwhencontinuinguntilaconditionismet.forloopsareidealforknownownsequences, sementara yang tidak digunakan.

Gelung Python: Kesalahan yang paling biasaGelung Python: Kesalahan yang paling biasaMay 13, 2025 am 12:07 AM

Pythonloopscanleadtoerrorslikeinfiniteloops, pengubahsuaianListsduringiteration, off-by-oneerrors, sifar-indexingissues, andnestedloopinefficies.toavoidthese: 1) use'i

Untuk gelung dan semasa gelung di Python: Apakah kelebihan masing -masing?Untuk gelung dan semasa gelung di Python: Apakah kelebihan masing -masing?May 13, 2025 am 12:01 AM

Forloopsareadvantageousforknowniterationsationship, menawarkanMenghentianmentability, whileopsareidealfordynamicconditionsandunknowniterations, providingcontrolovertermination.1) forloopsareperfectfectfectfectfectfectfectoVeratingOverlists, tuples, orstrings, secara langsung

Python: menyelam mendalam ke dalam kompilasi dan tafsiranPython: menyelam mendalam ke dalam kompilasi dan tafsiranMay 12, 2025 am 12:14 AM

Pythonusesahybridmodelofcompilationandinterpretation: 1) thepythoninterpretercompilessourcodcecodeintoplatform-independentbytecode.2) thepythonvirtualmachine (PVM) thenexecutesthisbytecode, BalantingeaseOfusoWithperformance.

Adakah Python diterjemahkan atau bahasa yang disusun, dan mengapa ia penting?Adakah Python diterjemahkan atau bahasa yang disusun, dan mengapa ia penting?May 12, 2025 am 12:09 AM

Pythonisbothinterpretedandandcompiled.1) it'scompiledtobytecodeforporabilityAcrossplatforms.2) theBytecodeistheninterpreted, membolehkanfordynamictypingandrapiddevelopment, walaupunItmayBeslowerLowerWanLelyCiledlanguages.

Untuk gelung vs semasa gelung di python: perbezaan utama dijelaskanUntuk gelung vs semasa gelung di python: perbezaan utama dijelaskanMay 12, 2025 am 12:08 AM

ForloopsareidealwhenyonesshenumberofiterationsationseSinadvance, whilewhileloopsarebetterforsituationshipheryouneedtoloopuntilaconditionismet.forloopsaremoreeficientablyandable, yang sesuai, manakala whileloopsoffermorecontrolandareusefereficeficeficeficeficient,

Untuk dan semasa gelung: panduan praktikalUntuk dan semasa gelung: panduan praktikalMay 12, 2025 am 12:07 AM

Forloopsareusedwhenthenumberofiterationsisknowninadvance, whilewhileloopsareusedwhenTheiterationsdependonacondition.1) forloopsareidealforiteratingoversequencesLikeListsorArrays.2)

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa

SecLists

SecLists

SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma