Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Jalankan tugas AWS Systems Manager Automation secara sinkron dari AWS Step Functions
Elie El khoury, Amazon Web Services
Ringkasan
Pola ini menjelaskan cara berintegrasi AWS Step Functions dengan AWS Systems Manager. Ini menggunakan integrasi layanan AWS SDK untuk memanggil Systems Manager startAutomationExecutionAPI dengan token tugas dari alur kerja mesin status, dan berhenti sampai token kembali dengan panggilan sukses atau gagal. Untuk mendemonstrasikan integrasi, pola ini mengimplementasikan pembungkus dokumen Otomasi (runbook) di sekitar AWS-RunPowerShellScript
dokumen AWS-RunShellScript
atau, dan digunakan .waitForTaskToken
untuk memanggil atau secara sinkron. AWS-RunShellScript
AWS-RunPowerShellScript
Untuk informasi selengkapnya tentang integrasi layanan AWS SDK di Step Functions, lihat Panduan AWS Step Functions Pengembang.
Step Functions adalah layanan alur kerja visual dengan kode rendah yang dapat Anda gunakan untuk membangun aplikasi terdistribusi, mengotomatiskan proses TI dan bisnis, serta membangun jalur data dan pembelajaran mesin dengan menggunakan layanan. AWS Alur kerja mengelola kegagalan, percobaan ulang, paralelisasi, integrasi layanan, dan observabilitas sehingga Anda dapat fokus pada logika bisnis bernilai lebih tinggi.
Otomatisasi, kemampuan AWS Systems Manager, menyederhanakan tugas pemeliharaan, penyebaran, dan remediasi umum Layanan AWS seperti Amazon Elastic Compute Cloud (Amazon), Amazon Relational Database Service (Amazon RDS EC2), Amazon Redshift, dan Amazon Simple Storage Service (Amazon S3). Otomasi memberi Anda kontrol terperinci atas konkurensi otomatisasi Anda. Misalnya, Anda dapat menentukan berapa banyak sumber daya yang akan ditargetkan secara bersamaan, dan berapa banyak kesalahan yang dapat terjadi sebelum otomatisasi dihentikan.
Untuk detail implementasi, termasuk langkah runbook, parameter, dan contoh, lihat bagian Informasi tambahan.
Prasyarat dan batasan
Prasyarat
AWS Akun aktif
AWS Identity and Access Management Izin (IAM) untuk mengakses Step Functions dan Systems Manager
Sebuah EC2 instance dengan Systems Manager Agent (SSM Agent) diinstal pada instance
Profil instans IAM untuk Systems Manager yang dilampirkan ke instance tempat Anda berencana menjalankan runbook
Peran Step Functions yang memiliki izin IAM berikut (yang mengikuti prinsip hak istimewa terkecil):
{ "Effect": "Allow", "Action": "ssm:StartAutomationExecution", "Resource": "*" }
Versi produk
Skema dokumen SSM versi 0.3 atau yang lebih baru
Agen SSM versi 2.3.672.0 atau yang lebih baru
Arsitektur
Tumpukan teknologi target
AWS Step Functions
AWS Systems Manager Otomasi
Arsitektur target

Otomatisasi dan skala
Pola ini menyediakan AWS CloudFormation template yang dapat Anda gunakan untuk menyebarkan runbook pada beberapa instance. (Lihat GitHub Step Functions dan repositori implementasi Systems Manager
.)
Alat
Layanan AWS
AWS CloudFormationmembantu Anda menyiapkan AWS sumber daya, menyediakannya dengan cepat dan konsisten, dan mengelolanya sepanjang siklus hidupnya di seluruh Akun AWS dan Wilayah.
AWS Identity and Access Management (IAM) membantu Anda mengelola akses ke AWS sumber daya dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
AWS Step Functionsadalah layanan orkestrasi tanpa server yang membantu Anda menggabungkan AWS Lambda fungsi dan lainnya Layanan AWS untuk membangun aplikasi bisnis yang penting.
AWS Systems Managermembantu Anda mengelola aplikasi dan infrastruktur yang berjalan di AWS Cloud. Ini menyederhanakan aplikasi dan manajemen sumber daya, mempersingkat waktu untuk mendeteksi dan menyelesaikan masalah operasional, dan membantu Anda mengelola AWS sumber daya Anda dengan aman dalam skala besar.
Kode
Kode untuk pola ini tersedia di repositori implementasi GitHub Step Functions dan Systems Manager
Epik
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Unduh CloudFormation template. | Unduh | AWS DevOps |
Buat runbook. | Masuk ke AWS Management Console, buka AWS CloudFormation konsol CloudFormation Template menyebarkan tiga sumber daya:
| AWS DevOps |
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Buat mesin status uji. | Ikuti petunjuk di Panduan AWS Step Functions Pengembang untuk membuat dan menjalankan mesin status. Untuk definisi, gunakan kode berikut. Pastikan untuk memperbarui
Kode ini memanggil runbook untuk menjalankan dua perintah yang mendemonstrasikan Nilai Tugas menulis “Ini adalah pengujian yang menjalankan waitForTask Token otomatisasi” ke dalam Jika Anda ingin memanggil
| AWS DevOps |
Perbarui peran IAM untuk mesin status. | Langkah sebelumnya secara otomatis membuat peran IAM khusus untuk mesin status. Namun, itu tidak memberikan izin untuk memanggil runbook. Perbarui peran dengan menambahkan izin berikut:
| AWS DevOps |
Validasi panggilan sinkron. | Jalankan state machine untuk memvalidasi panggilan sinkron antara Step Functions dan Systems Manager Automation. Untuk keluaran sampel, lihat bagian Informasi tambahan. | AWS DevOps |
Sumber daya terkait
Memulai dengan AWS Step Functions (Panduan AWS Step Functions Pengembang)
Tunggu panggilan balik dengan token tugas (Panduan AWS Step Functions Pengembang, pola integrasi layanan)
panggilan API send_task_success dan send_task_failure
(dokumentasi Boto3) AWS Systems Manager Otomatisasi (Panduan AWS Systems Manager Pengguna)
Informasi tambahan
Detail implementasi
Pola ini menyediakan CloudFormation template yang menyebarkan dua runbook Systems Manager:
SfnRunCommandByInstanceIds
menjalankanAWS-RunPowerShellScript
perintahAWS-RunShellScript
or dengan menggunakan instance IDs.SfnRunCommandByTargets
menjalankanAWS-RunPowerShellScript
perintahAWS-RunShellScript
or dengan menggunakan target.
Setiap runbook mengimplementasikan empat langkah untuk mencapai panggilan sinkron saat menggunakan .waitForTaskToken
opsi di Step Functions.
Langkah | Tindakan | Deskripsi |
---|---|---|
1 |
| Memeriksa nilai |
2 |
| Mengambil beberapa input dan menjalankan |
3 |
| Berjalan saat langkah 2 dibatalkan atau dibatalkan. Ini memanggil Step Functions send_task_failure |
4 |
| Berjalan ketika langkah 2 berhasil. Ini memanggil Step Functions send_task_success |
Parameter buku runbook
SfnRunCommandByInstanceIds
buku runbook:
Nama parameter | Tipe | Opsional atau diperlukan | Deskripsi |
---|---|---|---|
| String | Wajib | Contoh shell untuk memutuskan apakah akan dijalankan |
| Bilangan Bulat | Opsional | Waktu, dalam hitungan detik, untuk menunggu perintah dikirim ke Agen SSM pada sebuah instance. Parameter ini memiliki nilai minimum 30 (0,5 menit) dan nilai maksimum 2592000 (720 jam). |
| String | Opsional | Waktu, dalam hitungan detik, untuk menyelesaikan perintah sebelum dianggap gagal. Nilai defaultnya adalah 3600 (1 jam). Nilai maksimum adalah 172800 (48 jam). |
| String | Opsional | Jalur direktori kerja pada instans Anda. |
| StringList | Wajib | Skrip shell atau perintah untuk dijalankan. |
| StringList | Wajib | IDs Contoh di mana Anda ingin menjalankan perintah. |
| String | Wajib | Token tugas yang akan digunakan untuk respons callback. |
SfnRunCommandByTargets
buku runbook:
Nama | Tipe | Opsional atau diperlukan | Deskripsi |
---|---|---|---|
| String | Wajib | Contoh shell untuk memutuskan apakah akan dijalankan |
| Bilangan Bulat | Opsional | Waktu, dalam hitungan detik, untuk menunggu perintah dikirim ke Agen SSM pada sebuah instance. Parameter ini memiliki nilai minimum 30 (0,5 menit) dan nilai maksimum 2592000 (720 jam). |
| Bilangan Bulat | Opsional | Waktu, dalam hitungan detik, untuk menyelesaikan perintah sebelum dianggap gagal. Nilai defaultnya adalah 3600 (1 jam). Nilai maksimum adalah 172800 (48 jam). |
| String | Opsional | Jalur direktori kerja pada instans Anda. |
| StringList | Wajib | Skrip shell atau perintah untuk dijalankan. |
| MapList | Wajib | Array kriteria pencarian yang mengidentifikasi instance dengan menggunakan pasangan kunci-nilai yang Anda tentukan. Misalnya: |
| String | Wajib | Token tugas yang akan digunakan untuk respons callback. |
Keluaran sampel
Tabel berikut memberikan output sampel dari fungsi langkah. Ini menunjukkan bahwa total waktu berjalan lebih dari 100 detik antara langkah 5 (TaskSubmitted
) dan langkah 6 (TaskSucceeded
). Ini menunjukkan bahwa fungsi langkah menunggu sleep 100
perintah selesai sebelum pindah ke tugas berikutnya dalam alur kerja.
ID | Tipe | Langkah | Sumber Daya | Waktu Berlalu (ms) | Stempel Waktu |
---|---|---|---|---|---|
1 |
| - | 0 | 11 Mar 2022 02:50:34.303 | |
2 |
|
| - | 40 | 11 Mar 2022 02:50:34.343 |
3 |
|
| - | 40 | 11 Mar 2022 02:50:34.343 |
4 |
|
| - | 154 | 11 Mar 2022 02:50:34.457 |
5 |
|
| - | 657 | 11 Mar 2022 02:50:34.960 |
6 |
|
| - | 103835 | 11 Mar 2022 02:52:18.138 |
7 |
|
| - | 103860 | 11 Mar 2022 02:52:18.163 |
8 |
| - | 103897 | 11 Mar 2022 02:52:18.200 |