Jalankan otomatisasi berdasarkan peristiwa - AWS Systems Manager

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Jalankan otomatisasi berdasarkan peristiwa

Anda dapat memulai otomatisasi dengan menentukan runbook sebagai target acara Amazon EventBridge. Anda dapat memulai otomatisasi sesuai dengan jadwal, atau saat peristiwa AWS sistem tertentu terjadi. Misalnya, katakanlah Anda membuat runbook bernama BootStrapInstancesyang menginstal perangkat lunak pada sebuah instance ketika sebuah instance dimulai. Untuk menentukan BootStrapInstancesrunbook (dan otomatisasi terkait) sebagai target EventBridge acara, pertama-tama Anda membuat EventBridge aturan baru. (Berikut ini adalah contoh aturan: Nama layanan: EC2, Jenis Peristiwa: Notifikasi Perubahan status Instans EC2, Keadaan spesifik: berjalan, Instans apa pun.) Kemudian Anda menggunakan prosedur berikut untuk menentukan BootStrapInstancesrunbook sebagai target acara menggunakan EventBridge konsol dan AWS Command Line Interface (AWS CLI). Ketika instans baru dimulai, sistem menjalankan otomatisasi dan menginstal perangkat lunak.

Untuk informasi tentang membuat peran, lihat Membuat runbook Anda sendiri.

Membuat EventBridge acara yang menggunakan runbook (konsol)

Gunakan prosedur berikut untuk mengonfigurasi runbook sebagai target EventBridge acara.

Untuk mengonfigurasi runbook sebagai target aturan EventBridge acara
  1. Buka EventBridge konsol Amazon di https://console.aws.amazon.com/events/.

  2. Di panel navigasi, pilih Aturan.

  3. Pilih Buat aturan.

  4. Masukkan nama dan deskripsi untuk aturan.

    Aturan tidak boleh memiliki nama yang sama dengan aturan lain di Wilayah yang sama dan di bus kejadian yang sama.

  5. Untuk bus acara, pilih bus acara yang ingin Anda kaitkan dengan aturan ini. Jika Anda ingin aturan ini merespons peristiwa pencocokan yang berasal dari Anda sendiri Akun AWS, pilih default. Ketika Layanan AWS di akun Anda memancarkan acara, itu selalu masuk ke bus acara default akun Anda.

  6. Pilih bagaimana aturan dipicu.

    Untuk membuat aturan berdasarkan... Lakukan ini...

    Peristiwa

    1. Untuk Tipe aturan, pilih Aturan dengan pola peristiwa.

    2. Pilih Selanjutnya.

    3. Untuk sumber Acara, pilih AWS acara atau acara EventBridge mitra.

    4. Di bagian Pola acara, lakukan salah satu hal berikut:

      • Untuk menggunakan templat untuk membuat pola acara Anda, pilih Formulir pola acara dan pilih Sumber acara, AWS layanan, dan jenis Acara. Jika Anda memilih Semua Acara sebagai jenis acara, semua peristiwa yang dipancarkan oleh Layanan AWS akan cocok dengan aturan.

        Untuk menyesuaikan template, pilih Pola kustom (editor JSON) dan buat perubahan Anda.

      • Untuk menggunakan pola acara khusus, pilih Pola kustom (editor JSON) dan buat pola acara Anda.

    Jadwal
    1. Untuk jenis Aturan, pilih Jadwal.

    2. Pilih Berikutnya.

    3. Untuk pola Jadwal, lakukan salah satu hal berikut:

      • Untuk menggunakan ekspresi cron untuk menentukan jadwal, pilih Jadwal berbutir halus yang berjalan pada waktu tertentu, seperti pukul 8:00 pagi. PST pada hari Senin pertama setiap bulan dan masukkan ekspresi cron.

      • Untuk menggunakan ekspresi laju untuk menentukan jadwal, pilih Jadwal yang berjalan pada tingkat reguler, seperti setiap 10 menit dan masukkan ekspresi laju.

  7. Pilih Berikutnya.

  8. Untuk Jenis Target, pilih Layanan AWS .

  9. Untuk Pilih target, pilih Systems Manager Automation.

  10. Untuk Dokumen, pilih runbook untuk digunakan ketika target anda dijalankan.

  11. Di bagian Konfigurasi parameter otomatisasi, pertahankan nilai parameter default (jika tersedia) atau masukkan nilai Anda sendiri.

    catatan

    Untuk membuat target, Anda harus menentukan nilai untuk setiap parameter yang diperlukan. Jika tidak, sistem membuat aturan, tetapi aturan tidak akan berjalan.

  12. Untuk banyak jenis target, EventBridge perlu izin untuk mengirim acara ke target. Dalam kasus ini, EventBridge dapat membuat peran IAM yang diperlukan agar aturan Anda berjalan. Lakukan salah satu dari langkah berikut ini:

    • Untuk membuat IAM role secara otomatis, pilih Buat peran baru untuk sumber daya khusus ini.

    • Untuk menggunakan peran IAM yang Anda buat sebelumnya, pilih Gunakan peran yang ada dan pilih peran yang ada dari menu tarik-turun. Perhatikan bahwa Anda mungkin perlu memperbarui kebijakan kepercayaan untuk peran IAM Anda untuk disertakan EventBridge. Berikut ini adalah contohnya:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "events.amazonaws.com", "ssm.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  13. Pilih Berikutnya.

  14. (Opsional) Masukkan satu atau lebih tanda untuk aturan. Untuk informasi selengkapnya, lihat Menandai EventBridge Sumber Daya Amazon Anda di Panduan EventBridge Pengguna Amazon.

  15. Pilih Berikutnya.

  16. Tinjau detail aturan dan pilih Buat aturan.

Buat EventBridge acara yang menggunakan runbook (baris perintah)

Prosedur berikut menjelaskan cara menggunakan AWS CLI (di Linux atau Windows) atau AWS Tools for PowerShell untuk membuat aturan EventBridge acara dan mengkonfigurasi runbook sebagai target.

Untuk mengonfigurasi runbook sebagai target aturan EventBridge acara
  1. Instal dan konfigurasikan AWS CLI atau AWS Tools for PowerShell, jika Anda belum melakukannya.

    Untuk selengkapnya, lihat Menginstal atau memperbarui versi terbaru AWS CLI dan Menginstal AWS Tools for PowerShell.

  2. Buat perintah untuk menentukan aturan EventBridge acara baru. Ganti setiap placeholder sumber daya contoh dengan informasi Anda sendiri.

    Pemicu berdasarkan jadwal

    Linux & macOS
    aws events put-rule \ --name "rule name" \ --schedule-expression "cron or rate expression"
    Windows
    aws events put-rule ^ --name "rule name" ^ --schedule-expression "cron or rate expression"
    PowerShell
    Write-CWERule ` -Name "rule name" ` -ScheduleExpression "cron or rate expression"

    Contoh berikut membuat aturan EventBridge acara yang dimulai setiap hari pada pukul 9:00 pagi (UTC).

    Linux & macOS
    aws events put-rule \ --name "DailyAutomationRule" \ --schedule-expression "cron(0 9 * * ? *)"
    Windows
    aws events put-rule ^ --name "DailyAutomationRule" ^ --schedule-expression "cron(0 9 * * ? *)"
    PowerShell
    Write-CWERule ` -Name "DailyAutomationRule" ` -ScheduleExpression "cron(0 9 * * ? *)"

    Pemicu berdasarkan suatu peristiwa

    Linux & macOS
    aws events put-rule \ --name "rule name" \ --event-pattern "{\"source\":[\"aws.service\"],\"detail-type\":[\"service event detail type\"]}"
    Windows
    aws events put-rule ^ --name "rule name" ^ --event-pattern "{\"source\":[\"aws.service\"],\"detail-type\":[\"service event detail type\"]}"
    PowerShell
    Write-CWERule ` -Name "rule name" ` -EventPattern '{"source":["aws.service"],"detail-type":["service event detail type"]}'

    Contoh berikut membuat aturan EventBridge acara yang dimulai ketika setiap instans EC2 di Region berubah status.

    Linux & macOS
    aws events put-rule \ --name "EC2InstanceStateChanges" \ --event-pattern "{\"source\":[\"aws.ec2\"],\"detail-type\":[\"EC2 Instance State-change Notification\"]}"
    Windows
    aws events put-rule ^ --name "EC2InstanceStateChanges" ^ --event-pattern "{\"source\":[\"aws.ec2\"],\"detail-type\":[\"EC2 Instance State-change Notification\"]}"
    PowerShell
    Write-CWERule ` -Name "EC2InstanceStateChanges" ` -EventPattern '{"source":["aws.ec2"],"detail-type":["EC2 Instance State-change Notification"]}'

    Perintah mengembalikan rincian untuk EventBridge aturan baru yang mirip dengan berikut ini.

    Linux & macOS
    {
    "RuleArn": "arn:aws:events:us-east-1:123456789012:rule/automationrule"
    }
    Windows
    {
    "RuleArn": "arn:aws:events:us-east-1:123456789012:rule/automationrule"
    }
    PowerShell
    arn:aws:events:us-east-1:123456789012:rule/EC2InstanceStateChanges
  3. Buat perintah untuk menentukan runbook sebagai target aturan EventBridge acara yang Anda buat di langkah 2. Ganti setiap placeholder sumber daya contoh dengan informasi Anda sendiri.

    Linux & macOS
    aws events put-targets \ --rule rule name \ --targets '{"Arn": "arn:aws:ssm:region:account ID:automation-definition/runbook name","Input":"{\"input parameter\":[\"value\"],\"AutomationAssumeRole\":[\"arn:aws:iam::123456789012:role/AutomationServiceRole\"]}","Id": "target ID","RoleArn": "arn:aws:iam::123456789012:role/service-role/EventBridge service role"}'
    Windows
    aws events put-targets ^ --rule rule name ^ --targets '{"Arn": "arn:aws:ssm:region:account ID:automation-definition/runbook name","Input":"{\"input parameter\":[\"value\"],\"AutomationAssumeRole\":[\"arn:aws:iam::123456789012:role/AutomationServiceRole\"]}","Id": "target ID","RoleArn": "arn:aws:iam::123456789012:role/service-role/EventBridge service role"}'
    PowerShell
    $Target = New-Object Amazon.CloudWatchEvents.Model.Target $Target.Id = "target ID" $Target.Arn = "arn:aws:ssm:region:account ID:automation-definition/runbook name" $Target.RoleArn = "arn:aws:iam::123456789012:role/service-role/EventBridge service role" $Target.Input = '{"input parameter":["value"],"AutomationAssumeRole":["arn:aws:iam::123456789012:role/AutomationServiceRole"]}' Write-CWETarget ` -Rule "rule name" ` -Target $Target

    Contoh berikut membuat target EventBridge acara yang memulai ID instance tertentu menggunakan runbookAWS-StartEC2Instance.

    Linux & macOS
    aws events put-targets \ --rule DailyAutomationRule \ --targets '{"Arn": "arn:aws:ssm:region:*:automation-definition/AWS-StartEC2Instance","Input":"{\"InstanceId\":[\"i-02573cafcfEXAMPLE\"],\"AutomationAssumeRole\":[\"arn:aws:iam::123456789012:role/AutomationServiceRole\"]}","Id": "Target1","RoleArn": "arn:aws:iam::123456789012:role/service-role/AWS_Events_Invoke_Start_Automation_Execution_1213609520"}'
    Windows
    aws events put-targets ^ --rule DailyAutomationRule ^ --targets '{"Arn": "arn:aws:ssm:region:*:automation-definition/AWS-StartEC2Instance","Input":"{\"InstanceId\":[\"i-02573cafcfEXAMPLE\"],\"AutomationAssumeRole\":[\"arn:aws:iam::123456789012:role/AutomationServiceRole\"]}","Id": "Target1","RoleArn": "arn:aws:iam::123456789012:role/service-role/AWS_Events_Invoke_Start_Automation_Execution_1213609520"}'
    PowerShell
    $Target = New-Object Amazon.CloudWatchEvents.Model.Target $Target.Id = "Target1" $Target.Arn = "arn:aws:ssm:region:*:automation-definition/AWS-StartEC2Instance" $Target.RoleArn = "arn:aws:iam::123456789012:role/service-role/AWS_Events_Invoke_Start_Automation_Execution_1213609520" $Target.Input = '{"InstanceId":["i-02573cafcfEXAMPLE"],"AutomationAssumeRole":["arn:aws:iam::123456789012:role/AutomationServiceRole"]}' Write-CWETarget ` -Rule "DailyAutomationRule" ` -Target $Target

    Sistem mengembalikan informasi seperti berikut.

    Linux & macOS
    {
    "FailedEntries": [],
    "FailedEntryCount": 0
    }
    Windows
    {
    "FailedEntries": [],
    "FailedEntryCount": 0
    }
    PowerShell

    Tidak ada output jika perintah berhasil. PowerShell