

• AWS Systems Manager CloudWatch Dasbor tidak akan lagi tersedia setelah 30 April 2026. Pelanggan dapat terus menggunakan CloudWatch konsol Amazon untuk melihat, membuat, dan mengelola CloudWatch dasbor Amazon mereka, seperti yang mereka lakukan hari ini. Untuk informasi selengkapnya, lihat [dokumentasi CloudWatch Dasbor Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html). 

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

# AWS Systems Manager alat manajemen perubahan
<a name="systems-manager-actions-and-change"></a>

AWS Systems Manager menyediakan alat berikut untuk membuat perubahan pada AWS sumber daya Anda.

**Topics**
+ [AWS Systems Manager Otomatisasi](systems-manager-automation.md)
+ [AWS Systems Manager Change Calendar](systems-manager-change-calendar.md)
+ [AWS Systems Manager Change Manager](change-manager.md)
+ [AWS Systems Manager Dokumen](documents.md)
+ [AWS Systems Manager Maintenance Windows](maintenance-windows.md)
+ [AWS Systems Manager Quick Setup](systems-manager-quick-setup.md)

# AWS Systems Manager Otomatisasi
<a name="systems-manager-automation"></a>

Otomatisasi, alat dalam AWS Systems Manager, menyederhanakan tugas pemeliharaan, penyebaran, dan remediasi umum seperti Layanan AWS Amazon Elastic Compute Cloud (Amazon EC2), Amazon Relational Database Service (Amazon RDS), Amazon Redshift, Amazon Simple Storage Service (Amazon S3), dan banyak lagi. Untuk memulai dengan Automation, buka [konsol Systems Manager](https://console.aws.amazon.com/systems-manager/automation). Pada panel navigasi, pilih **Otomatisasi**. 

Otomasi membantu Anda membangun solusi otomatis untuk menerapkan, mengonfigurasi, dan mengelola AWS sumber daya dalam skala besar. Dengan Otomasi, Anda memiliki kontrol terperinci atas konkurensi otomatisasi Anda. Ini berarti Anda dapat menentukan berapa banyak sumber daya yang akan ditargetkan secara bersamaan, dan berapa banyak kesalahan yang dapat terjadi sebelum otomatisasi dihentikan. 

Untuk membantu Anda memulai Otomasi, AWS kembangkan dan pertahankan beberapa runbook yang telah ditentukan sebelumnya. Bergantung pada kasus penggunaan Anda, Anda dapat menggunakan runbook yang telah ditentukan sebelumnya yang melakukan berbagai tugas, atau membuat runbook kustom Anda sendiri yang mungkin lebih sesuai dengan kebutuhan Anda. Untuk memantau kemajuan dan status otomatisasi, Anda dapat menggunakan konsol Otomasi Systems Manager, atau alat baris perintah pilihan Anda. Otomatisasi juga terintegrasi dengan Amazon EventBridge untuk membantu Anda membangun arsitektur berbasis peristiwa dalam skala besar.

**catatan**  
Untuk pelanggan yang baru mengenal Systems Manager Automation per 14 Agustus 2025, tingkat gratis Otomasi tidak tersedia. Untuk pelanggan yang sudah menggunakan Otomasi, tingkat layanan gratis berakhir pada 31 Desember 2025. Untuk informasi tentang biaya layanan saat ini, lihat [AWS Systems Manager harga](https://aws.amazon.com/systems-manager/pricing/).

## Bagaimana Otomasi dapat menguntungkan organisasi saya?
<a name="automation-benefits"></a>

Otomasi menawarkan manfaat ini:
+ **Dukungan skrip dalam konten runbook**

  Menggunakan `aws:executeScript` tindakan, Anda dapat menjalankan Python kustom dan PowerShell fungsi langsung dari runbook Anda. Ini memberi Anda fleksibilitas yang lebih besar dalam membuat runbook khusus karena Anda dapat menyelesaikan berbagai tugas yang tidak didukung oleh tindakan Otomasi lainnya. Anda juga memiliki kontrol yang lebih besar atas logika runbook. Untuk contoh bagaimana tindakan ini dapat digunakan dan bagaimana tindakan ini dapat membantu meningkatkan solusi otomatis yang ada, lihat[Menulis runbook Otomasi](automation-authoring-runbooks.md).
+  **Jalankan otomatisasi di beberapa Akun AWS dan Wilayah AWS dari lokasi terpusat** 

  Administrator dapat menjalankan otomatisasi pada sumber daya di beberapa akun dan Wilayah dari konsol Systems Manager.
+  **Keamanan operasi yang ditingkatkan** 

  Administrator memiliki tempat terpusat untuk memberikan dan mencabut akses ke runbook. Dengan hanya menggunakan kebijakan AWS Identity and Access Management (IAM), Anda dapat mengontrol pengguna atau grup individu mana di organisasi Anda yang dapat menggunakan Automation dan runbook mana yang dapat mereka akses.
+  **Otomatiskan tugas TI umum** 

  Mengotomatisasi tugas umum dapat membantu meningkatkan efisiensi operasional, menegakkan standar organisasi, dan mengurangi kesalahan operator. Misalnya, Anda dapat menggunakan `AWS-UpdateCloudFormationStackWithApproval` runbook untuk memperbarui sumber daya yang digunakan menggunakan templat. AWS CloudFormation Pembaruan memberlakukan templat baru. Anda dapat mengonfigurasi Otomasi untuk meminta persetujuan oleh satu atau beberapa pengguna sebelum pembaruan dimulai.
+  **Lakukan tugas yang mengganggu dengan aman dalam jumlah besar** 

  Otomatisasi mencakup fitur, seperti kontrol tarif, yang memungkinkan Anda mengontrol penyebaran otomatisasi di seluruh armada Anda dengan menentukan nilai konkurensi dan ambang kesalahan. Untuk informasi selengkapnya tentang bekerja dengan kontrol tarif, lihat[Jalankan operasi otomatis pada skala](running-automations-scale.md).
+ **Merampingkan tugas-tugas kompleks**

  Automation menyediakan runbook yang telah ditentukan sebelumnya yang merampingkan tugas-tugas kompleks dan memakan waktu seperti membuat golden (). Amazon Machine Images AMIs Misalnya, Anda dapat menggunakan `AWS-UpdateLinuxAmi` dan `AWS-UpdateWindowsAmi` runbook untuk membuat emas AMIs dari sumberAMI. Dengan menggunakan runbook ini, Anda dapat menjalankan skrip khusus sebelum dan sesudah pembaruan diterapkan. Anda juga dapat menyertakan atau mengecualikan paket perangkat lunak tertentu agar tidak diinstal. Untuk contoh cara menggunakan runbook ini, lihat[Tutorial](automation-tutorials.md).
+ **Tentukan kendala untuk input**

  Anda dapat menentukan batasan dalam runbook khusus untuk membatasi nilai yang akan diterima Automation untuk parameter input tertentu. Misalnya, hanya `allowedPattern` akan menerima nilai untuk parameter input yang cocok dengan ekspresi reguler yang Anda tentukan. Jika Anda menentukan `allowedValues` parameter input, hanya nilai yang Anda tentukan di runbook yang diterima.
+  **Output tindakan otomatisasi log ke Amazon CloudWatch Logs** 

  Untuk memenuhi persyaratan operasional atau keamanan di organisasi Anda, Anda mungkin perlu memberikan catatan skrip yang dijalankan selama runbook. Dengan CloudWatch Log, Anda dapat memantau, menyimpan, dan mengakses file log dari berbagai file Layanan AWS. Anda dapat mengirim output dari `aws:executeScript` tindakan ke grup CloudWatch log Log untuk tujuan debugging dan pemecahan masalah. Data log dapat dikirim ke grup log Anda dengan atau tanpa AWS KMS enkripsi menggunakan kunci KMS Anda. Untuk informasi selengkapnya, lihat [Keluaran tindakan Otomasi Pencatatan dengan CloudWatch Log](automation-action-logging.md).
+  ** EventBridge Integrasi Amazon** 

  Otomatisasi didukung sebagai jenis *target* dalam EventBridge aturan Amazon. Ini berarti Anda dapat memicu runbook dengan menggunakan acara. Untuk informasi selengkapnya, lihat [Memantau peristiwa Systems Manager dengan Amazon EventBridge](monitoring-eventbridge-events.md) dan [Referensi: Pola dan jenis EventBridge acara Amazon untuk Systems Manager](reference-eventbridge-events.md).
+ **Bagikan praktik terbaik organisasi**

  Anda dapat menentukan praktik terbaik untuk pengelolaan sumber daya, tugas operasi, dan lainnya di runbook yang Anda bagikan di seluruh akun dan Wilayah.

## Siapa yang harus menggunakan otomatisasi?
<a name="automation-who"></a>
+ Setiap AWS pelanggan yang ingin meningkatkan efisiensi operasional mereka dalam skala besar, mengurangi kesalahan yang terkait dengan intervensi manual, dan mengurangi waktu untuk menyelesaikan masalah umum.
+ Pakar infrastruktur yang ingin mengotomatiskan tugas penerapan dan konfigurasi.
+ Administrator yang ingin menyelesaikan masalah umum dengan andal, meningkatkan efisiensi pemecahan masalah, dan mengurangi operasi berulang.
+ Pengguna yang ingin mengotomatiskan tugas yang biasanya mereka lakukan secara manual.

## Apa itu otomatisasi?
<a name="what-is-an-automation"></a>

*Otomatisasi* terdiri dari semua tugas yang didefinisikan dalam runbook, dan dilakukan oleh layanan Otomasi. Otomasi menggunakan komponen berikut untuk menjalankan otomatisasi.


****  

| Konsep | Detail | 
| --- | --- | 
|  Otomatisasi runbook  |  Runbook Automation Systems Manager mendefinisikan otomatisasi (tindakan yang dilakukan Systems Manager pada node dan AWS sumber daya terkelola Anda). Otomatisasi mencakup beberapa runbook yang telah ditetapkan dan dapat Anda gunakan untuk melakukan beberapa tugas umum seperti memulai ulang satu instans Amazon EC2 atau lebih atau membuat Amazon Machine Image (AMI). Anda juga dapat membuat runbook Anda sendiri. Runbook menggunakan YAMAL atau JSON, dan mereka menyertakan langkah-langkah dan parameter yang Anda tentukan. Langkah-langkah berjalan secara berurutan. Untuk informasi selengkapnya, lihat [Membuat runbook Anda sendiri](automation-documents.md). Runbooks adalah dokumen Systems Manager atau jenis `Automation`, sebagai lawan `Command`, `Policy`, `Session` dokumen. Runbooks mendukung skema versi 0.3. Dokumen perintah menggunakan skema versi 1.2, 2.0, atau 2.2. Dokumen kebijakan menggunakan skema versi 2.0 atau yang lebih baru.  | 
|  Tindakan otomasi  |  Otomatisasi yang didefinisikan dalam runbook mencakup satu langkah atau lebih. Setiap langkah dikaitkan dengan tindakan tertentu. Tindakan menentukan input, perilaku, dan output dari langkah. Langkah-langkah didefinisikan dalam `mainSteps` bagian dari buku runbook Anda. Otomatisasi mendukung 20 jenis tindakan yang berbeda. Untuk informasi lebih lanjut, lihat [Referensi tindakan Otomatisasi Systems Manager](automation-actions.md).  | 
|  Kuota otomatisasi  |  Masing-masing Akun AWS dapat menjalankan 100 otomatisasi secara bersamaan. Ini termasuk otomatisasi anak (otomatisasi yang dimulai oleh otomatisasi lain), dan otomatisasi kontrol tarif. Jika Anda mencoba menjalankan lebih banyak otomatisasi daripada ini, Systems Manager menambahkan otomatisasi tambahan untuk antrian dan menampilkan status tertunda. Kuota ini dapat disesuaikan dengan menggunakan konkurensi adaptif. Untuk informasi selengkapnya, lihat[Memungkinkan Otomasi untuk beradaptasi dengan kebutuhan konkurensi Anda](adaptive-concurrency.md). Untuk informasi selengkapnya tentang menjalankan otomatisasi, lihat. [Jalankan operasi otomatis yang didukung oleh Systems Manager Automation](running-simple-automations.md)  | 
|  Kuota antrian otomatisasi  |  Jika Anda mencoba untuk menjalankan otomatisasi lebih dari batas otomatisasi bersamaan, otomatisasi berikutnya ditambahkan ke antrean. Masing-masing Akun AWS dapat mengantri 5.000 otomatisasi. Ketika otomatisasi selesai (atau mencapai status berakhir), otomatisasi pertama dalam antrean dimulai.  | 
|  Kuota otomatisasi kontrol tarif  |  Masing-masing Akun AWS dapat menjalankan 25 otomatisasi kontrol tingkat secara bersamaan. Jika Anda mencoba untuk menjalankan kontrol tarif otomatisasi melebihi batas otomatisasi kontrol tarif bersamaan, Systems Manager menambahkan otomatisasi kontrol tarif berikutnya untuk antrean dan menampilkan status tertunda. Untuk informasi lebih lanjut tentang otomatisasi kontrol tarif berjalan, lihat [Jalankan operasi otomatis pada skala](running-automations-scale.md).  | 
|  Kuota antrean otomatisasi kontrol tarif  |  Jika Anda mencoba untuk menjalankan otomatisasi lebih dari batas otomatisasi kontrol tarif bersamaan, otomatisasi berikutnya ditambahkan ke antrean. Masing-masing Akun AWS dapat mengantri 1.000 otomatisasi kontrol tingkat. Ketika otomatisasi selesai (atau mencapai status berakhir), otomatisasi pertama dalam antrean dimulai.  | 

**Topics**
+ [Bagaimana Otomasi dapat menguntungkan organisasi saya?](#automation-benefits)
+ [Siapa yang harus menggunakan otomatisasi?](#automation-who)
+ [Apa itu otomatisasi?](#what-is-an-automation)
+ [Menyiapkan Otomatisasi](automation-setup.md)
+ [Jalankan operasi otomatis yang didukung oleh Systems Manager Automation](running-simple-automations.md)
+ [Menjalankan ulang eksekusi otomatisasi](automation-rerun-executions.md)
+ [Jalankan otomatisasi yang membutuhkan persetujuan](running-automations-require-approvals.md)
+ [Jalankan operasi otomatis pada skala](running-automations-scale.md)
+ [Menjalankan otomatisasi di beberapa Wilayah AWS dan akun](running-automations-multiple-accounts-regions.md)
+ [Jalankan otomatisasi berdasarkan peristiwa EventBridge](running-automations-event-bridge.md)
+ [Jalankan otomatisasi langkah demi langkah](automation-working-executing-manually.md)
+ [Menjadwalkan otomatisasi dengan asosiasi State Manager](scheduling-automations-state-manager-associations.md)
+ [Jadwalkan otomatisasi dengan jendela pemeliharaan](scheduling-automations-maintenance-windows.md)
+ [Referensi tindakan Otomatisasi Systems Manager](automation-actions.md)
+ [Membuat runbook Anda sendiri](automation-documents.md)
+ [Referensi Runbook Otomasi Systems Manager](automation-documents-reference.md)
+ [Tutorial](automation-tutorials.md)
+ [Pelajari tentang status yang dikembalikan oleh Systems Manager Automation](automation-statuses.md)
+ [Pemecahan masalah Otomatisasi Systems Manager](automation-troubleshooting.md)

# Menyiapkan Otomatisasi
<a name="automation-setup"></a>

Untuk mengatur Otomasi, alat di AWS Systems Manager, Anda harus memverifikasi akses pengguna ke layanan Otomasi dan mengonfigurasi peran secara situasional sehingga layanan dapat melakukan tindakan pada sumber daya Anda. Kami juga menyarankan Anda untuk ikut serta dalam mode konkurensi adaptif di preferensi Otomasi Anda. Konkurensi adaptif secara otomatis menskalakan kuota otomatisasi Anda untuk memenuhi kebutuhan Anda. Untuk informasi selengkapnya, lihat [Memungkinkan Otomasi untuk beradaptasi dengan kebutuhan konkurensi Anda](adaptive-concurrency.md).

Untuk memastikan akses yang tepat ke AWS Systems Manager Otomasi, tinjau persyaratan peran pengguna dan layanan berikut.

## Memverifikasi akses pengguna untuk runbook
<a name="automation-setup-user-access"></a>

Verifikasi bahwa Anda memiliki izin untuk menggunakan runbook. Jika pengguna, grup, atau peran Anda diberi izin administrator, maka Anda memiliki akses ke Otomasi Systems Manager. Jika Anda tidak memiliki izin administrator, administrator harus memberi Anda izin dengan menetapkan kebijakan `AmazonSSMFullAccess` terkelola, atau kebijakan yang memberikan izin yang sebanding, kepada pengguna, grup, atau peran Anda.

**penting**  
Kebijakan IAM `AmazonSSMFullAccess` mengizinkan tindakan Systems Manager. Namun, beberapa runbook memerlukan izin untuk layanan lain, seperti runbook `AWS-ReleaseElasticIP`, yang memerlukan izin IAM untuk `ec2:ReleaseAddress`. Oleh karena itu, Anda harus meninjau tindakan yang diambil dalam buku runbook untuk memastikan pengguna, grup, atau peran Anda diberi izin yang diperlukan untuk melakukan tindakan yang disertakan dalam buku runbook.

## Mengonfigurasi akses peran layanan (peran asumsi) untuk otomatisasi
<a name="automation-setup-configure-role"></a>

Otomatisasi dapat dimulai di bawah konteks peran layanan (atau *peran asumsi*). Hal ini memungkinkan layanan untuk kemudian melakukan tindakan atas nama Anda. Jika Anda tidak menentukan peran asumsi, otomatisasi menggunakan konteks pengguna yang menjalankan otomatisasi.

Namun, situasi berikut mengharuskan Anda menentukan peran layanan untuk otomatisasi:
+ Saat Anda ingin membatasi izin pengguna pada sumber daya, tetapi Anda ingin pengguna menjalankan otomatisasi yang memerlukan izin yang ditinggikan. Dalam skenario ini, Anda dapat membuat peran layanan dengan izin yang ditinggikan dan memungkinkan pengguna untuk menjalankan otomatisasi.
+ Saat Anda membuat State Manager asosiasi Systems Manager yang menjalankan runbook.
+ Saat Anda memiliki operasi yang Anda harapkan bisa berjalan lebih dari 12 jam.
+ Saat Anda menjalankan runbook yang tidak dimiliki Amazon yang menggunakan `aws:executeScript` tindakan untuk memanggil operasi AWS API atau bertindak berdasarkan AWS sumber daya. Untuk informasi, lihat [Izin untuk menggunakan runbook](automation-document-script-considerations.md#script-permissions).

Jika Anda ingin membuat peran layanan untuk otomatisasi, Anda dapat menggunakan salah satu metode berikut.

**Topics**
+ [Memverifikasi akses pengguna untuk runbook](#automation-setup-user-access)
+ [Mengonfigurasi akses peran layanan (peran asumsi) untuk otomatisasi](#automation-setup-configure-role)
+ [Buat peran layanan untuk Otomasi dengan menggunakan CloudFormation](automation-setup-cloudformation.md)
+ [Buat peran layanan untuk Otomasi menggunakan konsol](automation-setup-iam.md)
+ [Menyiapkan contoh kebijakan berbasis identitas](automation-setup-identity-based-policies.md)
+ [Memungkinkan Otomasi untuk beradaptasi dengan kebutuhan konkurensi Anda](adaptive-concurrency.md)
+ [Mengkonfigurasi percobaan ulang otomatis untuk operasi yang dibatasi](automation-throttling-retry.md)
+ [Menerapkan kontrol perubahan untuk Otomasi](automation-change-calendar-integration.md)

# Buat peran layanan untuk Otomasi dengan menggunakan CloudFormation
<a name="automation-setup-cloudformation"></a>

Anda dapat membuat peran layanan untuk Otomasi, alat di AWS Systems Manager, dari AWS CloudFormation template. Setelah membuat peran layanan, Anda dapat menentukan peran layanan di runbook menggunakan parameter `AutomationAssumeRole`.

## Buat peran layanan menggunakan CloudFormation
<a name="create-iam-service-role"></a>

Gunakan prosedur berikut untuk membuat peran wajib AWS Identity and Access Management (IAM) untuk Otomasi Systems Manager dengan menggunakan CloudFormation.

**Untuk membuat IAM role yang diperlukan**

1. Unduh dan unzip [https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/AWS-SystemsManager-AutomationServiceRole.zip](https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/AWS-SystemsManager-AutomationServiceRole.zip) file. File ini termasuk file `AWS-SystemsManager-AutomationServiceRole.yaml` CloudFormation template.

1. Buka CloudFormation konsol di [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Pilih **Buat tumpukan**.

1. Di bagian **Tentukan templat**, pilih **Unggah file templat**.

1. Pilih **Browse**, lalu pilih file `AWS-SystemsManager-AutomationServiceRole.yaml` CloudFormation template.

1. Pilih **Berikutnya**.

1. Di halaman **Tentukan detail tumpukan**, di bidang **Nama tumpukan**, masukkan nama. 

1. Pada halaman **Konfigurasikan pilihan tumpukan**, Anda tidak perlu membuat pilihan apa pun. Pilih **Berikutnya**.

1. Pada halaman **Ulasan**, gulir ke bawah dan pilih opsi **Saya akui yang CloudFormation mungkin membuat sumber daya IAM**.

1. Pilih **Buat**.

CloudFormation menunjukkan status **CREATE\$1IN\$1PROGRESS** selama kurang lebih tiga menit. Perubahan status ke **CREATE\$1COMPLETE** setelah tumpukan dibuat dan peran Anda siap untuk digunakan.

**penting**  
Jika Anda menjalankan alur kerja otomatisasi yang menjalankan layanan lain dengan menggunakan AWS Identity and Access Management peran layanan (IAM), pastikan bahwa peran layanan harus dikonfigurasi dengan izin untuk menjalankan layanan tersebut. Persyaratan ini berlaku untuk semua runbook AWS Otomasi (`AWS-*`runbook) seperti`AWS-ConfigureS3BucketLogging`,`AWS-CreateDynamoDBBackup`, dan `AWS-RestartEC2Instance` runbook, untuk beberapa nama. Persyaratan ini juga berlaku untuk setiap runbook Otomasi kustom yang Anda buat yang memanggil orang lain Layanan AWS dengan menggunakan tindakan yang memanggil layanan lain. Misalnya, jika Anda menggunakan `aws:executeAwsApi`, `aws:createStack`, atau `aws:copyImage` tindakan, konfigurasikan peran layanan dengan izin untuk menjalankan layanan tersebut. Anda dapat memberikan izin kepada orang lain Layanan AWS dengan menambahkan kebijakan inline IAM ke peran tersebut. Untuk informasi selengkapnya, lihat [(Opsional) Tambahkan kebijakan sebaris Otomasi atau kebijakan terkelola pelanggan untuk memanggil lainnya Layanan AWS](automation-setup-iam.md#add-inline-policy).

## Salin informasi peran untuk Otomatisasi
<a name="copy-iam-role-info"></a>

Gunakan prosedur berikut untuk menyalin informasi tentang peran layanan Otomasi dari CloudFormation konsol. Anda harus menentukan peran ini ketika menggunakan runbook.

**catatan**  
Anda tidak perlu menyalin informasi peran menggunakan prosedur ini jika Anda menjalankan `AWS-UpdateLinuxAmi` atau `AWS-UpdateWindowsAmi` runbook. Runbook ini sudah memiliki peran yang diperlukan yang ditetapkan sebagai nilai default. Peran yang ditentukan dalam runbook ini menggunakan kebijakan terkelola IAM. 

**Menyalin nama peran**

1. Buka CloudFormation konsol di [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Pilih Otomatisasi **Nama tumpukan** yang Anda buat dalam prosedur sebelumnya.

1. Pilih tab **Sumber Daya**.

1. Pilih tautan **ID Fisik** untuk **AutomationServiceRole**. Konsol IAM membuka ringkasan Peran layanan otomatisasi.

1. Salin Amazon Resource Name (ARN) di samping **Peran ARN**. ARN serupa dengan yang berikut ini: `arn:aws:iam::12345678:role/AutomationServiceRole`

1. Tempel ARN ke file teks untuk digunakan nanti.

Anda telah selesai mengonfigurasi peran layanan untuk otomatisasi. Anda sekarang dapat menggunakan peran layanan otomatisasi ARN di runbook Anda.

# Buat peran layanan untuk Otomasi menggunakan konsol
<a name="automation-setup-iam"></a>

Jika Anda perlu membuat peran layanan untuk Otomasi, alat di AWS Systems Manager, selesaikan tugas-tugas berikut. Untuk informasi lebih lanjut tentang kapan peran layanan diperlukan untuk otomatisasi, lihat [Menyiapkan Otomatisasi](automation-setup.md).

**Topics**
+ [Tugas 1: Buat peran layanan untuk otomatisasi](#create-service-role)
+ [Tugas 2: Lampirkan PassRole kebijakan iam: ke peran Otomasi Anda](#attach-passrole-policy)

## Tugas 1: Buat peran layanan untuk otomatisasi
<a name="create-service-role"></a>

Gunakan prosedur berikut untuk membuat peran layanan (atau *peran asumsi*) untuk Otomatisasi Systems Manager.

**catatan**  
Anda juga dapat menggunakan peran ini di runbook, seperti `AWS-CreateManagedLinuxInstance` runbook. Menggunakan peran ini, atau Nama Sumber Daya Amazon (ARN) peran AWS Identity and Access Management (IAM), dalam runbook memungkinkan Otomasi untuk melakukan tindakan di lingkungan Anda, seperti meluncurkan instans baru dan melakukan tindakan atas nama Anda.

**Untuk membuat IAM role dan mengizinkan Otomatisasi mengasumsikannya**

1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di panel navigasi, pilih **Peran**, lalu pilih **Buat peran**.

1. Di bawah **Pilih jenis entitas tepercaya**, pilih **AWS layanan**.

1. Di bagian **Pilih kasus penggunaan**, pilih **Systems Manager**, lalu pilih **Berikutnya: Izin**.

1. Pada halaman **Kebijakan izin terlampir**, cari kebijakan **SSMAutomationPeran Amazon**, pilih kebijakan tersebut, lalu pilih **Berikutnya: Tinjau**. 

1. Pada halaman **Ulasan**, masukkan nama di kotak **Nama peran**, dan kemudian masukkan deskripsi.

1. Pilih **Buat peran**. Sistem mengembalikan Anda ke halaman **Peran**.

1. Pada halaman **Peran**, pilih peran yang baru Anda buat untuk membuka halaman **Ringkasan**. Catat **Nama peran** dan **Peran ARN**. Anda akan menentukan peran ARN saat Anda melampirkan PassRole kebijakan **iam:** ke akun IAM Anda di prosedur berikutnya. Anda juga dapat menentukan nama peran dan ARN di runbook.

**catatan**  
`AmazonSSMAutomationRole`Kebijakan menetapkan izin peran Otomasi ke subset AWS Lambda fungsi dalam akun Anda. Fungsi ini dimulai dengan "Otomatisasi". Jika Anda berencana untuk menggunakan otomatisasi dengan fungsi Lambda, Lambda ARN harus menggunakan format berikut:  
`"arn:aws:lambda:*:*:function:Automation*"`  
**Jika Anda memiliki fungsi Lambda yang ARNs tidak menggunakan format ini, Anda juga harus melampirkan kebijakan Lambda tambahan ke peran otomatisasi Anda, seperti kebijakan Peran. AWSLambda** Kebijakan atau peran tambahan harus menyediakan akses yang lebih luas ke fungsi Lambda dalam Akun AWS.

Setelah membuat peran layanan Anda, kami sarankan untuk mengedit kebijakan kepercayaan untuk membantu mencegah masalah wakil lintas layanan yang membingungkan. *Masalah confused deputy* adalah masalah keamanan saat entitas yang tidak memiliki izin untuk melakukan suatu tindakan dapat memaksa entitas yang lebih berhak untuk melakukan tindakan tersebut. Pada tahun AWS, peniruan lintas layanan dapat mengakibatkan masalah wakil yang membingungkan. Peniruan identitas lintas layanan dapat terjadi ketika satu layanan (*layanan yang dipanggil*) memanggil layanan lain (*layanan yang dipanggil*). Layanan pemanggilan dapat dimanipulasi menggunakan izinnya untuk bertindak pada sumber daya pelanggan lain dengan cara yang seharusnya tidak dilakukannya kecuali bila memiliki izin untuk mengakses. Untuk mencegah hal ini, AWS sediakan alat yang membantu Anda melindungi data Anda untuk semua layanan dengan prinsip layanan yang telah diberikan akses ke sumber daya di akun Anda. 

Sebaiknya gunakan kunci konteks kondisi [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)global [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)dan global dalam kebijakan sumber daya untuk membatasi izin yang diberikan Automation layanan lain ke sumber daya. Jika `aws:SourceArn` nilainya tidak berisi ID akun, seperti ARN bucket Amazon S3, Anda harus menggunakan kedua kunci konteks kondisi global untuk membatasi izin. Jika Anda menggunakan kunci konteks kondisi global dan nilai `aws:SourceArn` berisi ID akun, nilai `aws:SourceAccount` dan akun dalam nilai `aws:SourceArn` harus menggunakan ID akun yang sama saat digunakan dalam pernyataan kebijakan yang sama. Gunakan `aws:SourceArn` jika Anda ingin hanya satu sumber daya yang akan dikaitkan dengan akses lintas layanan. Gunakan `aws:SourceAccount` jika Anda ingin mengizinkan sumber daya apa pun di akun tersebut dikaitkan dengan penggunaan lintas layanan. Nilai `aws:SourceArn` harus ARN untuk eksekusi otomatisasi. Jika Anda tidak mengetahui ARN lengkap sumber daya atau jika Anda menentukan beberapa sumber daya, gunakan kunci kondisi konteks `aws:SourceArn` global dengan wildcard (`*`) untuk bagian ARN yang tidak diketahui. Misalnya, `arn:aws:ssm:*:123456789012:automation-execution/*`. 

Contoh berikut menunjukkan bagaimana Anda dapat menggunakan `aws:SourceArn` dan kunci konteks kondisi `aws:SourceAccount` global untuk Otomasi untuk mencegah masalah wakil yang membingungkan.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "ssm.amazonaws.com"
        ]
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "123456789012"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:aws:ssm:*:123456789012:automation-execution/*"
        }
      }
    }
  ]
}
```

------

**Untuk memodifikasi kebijakan kepercayaan peran**

1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di panel navigasi, pilih **Peran**.

1. Dalam daftar peran di akun Anda, pilih nama peran layanan Otomasi Anda.

1. Pilih tab **Hubungan kepercayaan**, dan kemudian pilih**Ubah hubungan kepercayaan**.

1. Edit kebijakan kepercayaan menggunakan `aws:SourceArn` dan kunci konteks kondisi `aws:SourceAccount` global untuk Otomasi untuk mencegah masalah wakil yang membingungkan.

1. Pilih **Perbarui Kebijakan Kepercayaan** untuk menyimpan perubahan Anda.

### (Opsional) Tambahkan kebijakan sebaris Otomasi atau kebijakan terkelola pelanggan untuk memanggil lainnya Layanan AWS
<a name="add-inline-policy"></a>

Jika Anda menjalankan otomatisasi yang memanggil orang lain Layanan AWS dengan menggunakan peran layanan IAM, peran layanan harus dikonfigurasi dengan izin untuk memanggil layanan tersebut. Persyaratan ini berlaku untuk semua runbook AWS Otomasi (`AWS-*`runbook) seperti`AWS-ConfigureS3BucketLogging`,`AWS-CreateDynamoDBBackup`, dan `AWS-RestartEC2Instance` runbook, untuk beberapa nama. Persyaratan ini juga berlaku untuk setiap runbook kustom yang Anda buat yang memanggil orang lain Layanan AWS dengan menggunakan tindakan yang memanggil layanan lain. Misalnya, jika Anda menggunakan `aws:executeAwsApi`, `aws:CreateStack`, atau `aws:copyImage` tindakan,untuk beberapa nama, konfigurasikan peran layanan dengan izin untuk menjalankan layanan tersebut. Anda dapat memberikan izin kepada orang lain Layanan AWS dengan menambahkan kebijakan inline IAM atau kebijakan yang dikelola pelanggan ke peran tersebut. 

**Untuk menyematkan kebijakan yang selaras bagi peran layanan (konsol IAM)**

1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di panel navigasi, pilih **Peran**.

1. Dalam daftar peran, pilih nama peran yang ingin Anda edit.

1. Pilih tab **Izin**.

1. Di menu tarik-turun **Tambah izin**, pilih **Lampirkan kebijakan atau **Buat** kebijakan** sebaris.

1. Jika Anda memilih **Lampirkan kebijakan**, pilih kotak centang di samping kebijakan yang ingin Anda tambahkan, lalu pilih **Tambahkan izin**.

1. Jika Anda memilih **Buat kebijakan sebaris**, pilih tab **JSON**.

1. Masukkan dokumen Kebijakan JSON untuk yang ingin Layanan AWS Anda panggil. Berikut adalah dua contoh dokumen Kebijakan JSON.

   **Amazon S3 PutObject dan Contoh GetObject**

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "s3:PutObject",
                   "s3:GetObject"
               ],
               "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
           }
       ]
   }
   ```

------

   **Amazon EC2 CreateSnapshot dan Contoh DescribeSnapShots**

------
#### [ JSON ]

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement":[
         {
            "Effect":"Allow",
            "Action":"ec2:CreateSnapshot",
            "Resource":"*"
         },
         {
            "Effect":"Allow",
            "Action":"ec2:DescribeSnapshots",
            "Resource":"*"
         }
      ]
   }
   ```

------

   Untuk rincian bahasa kebijakan IAM, lihat [Referensi kebijakan IAM JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) di *Panduan Pengguna IAM*.

1. Setelah selesai, pilih **Tinjau kebijakan**. [Validator Kebijakan](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html) melaporkan kesalahan sintaksis.

1. Pada halaman **Kebijakan ulasan**, masukkan **Nama** untuk kebijakan yang Anda buat. Ulas **Ringkasan** kebijakan untuk melihat izin yang diberikan oleh kebijakan Anda. Kemudian pilih **Buat kebijakan** untuk menyimpan pekerjaan Anda.

1. Setelah Anda membuat kebijakan yang selaras, ia akan secara otomatis tertanam di pengguna atau peran Anda.

## Tugas 2: Lampirkan PassRole kebijakan iam: ke peran Otomasi Anda
<a name="attach-passrole-policy"></a>

Gunakan prosedur berikut untuk melampirkan `iam:PassRole` kebijakan untuk peran layanan otomatisasi Anda. Hal ini memungkinkan layanan Otomasi untuk meneruskan peran ke layanan lain atau alat Systems Manager saat menjalankan otomatisasi.

**Untuk melampirkan PassRole kebijakan iam: ke peran Otomasi Anda**

1. Di halaman **Ringkasan** untuk peran yang baru saja Anda buat, pilih tab **Izin**.

1. Pilih **Tambah kebijakan inline**.

1. Di halaman **Buat kebijakan**, pilih tab **Visual editor**.

1. Pilih **Layanan**, lalu pilih **IAM**.

1. Pilih **Pilih tindakan**.

1. Di kotak teks **tindakan Filter****PassRole**, ketik, lalu pilih **PassRole**opsi.

1. Pilih **Sumber Daya**. Verifikasi bahwa **Spesifik** dipilih, dan kemudian pilih **Tambahkan ARN**.

1. Di **Spesifikasikan ARN untuk bidang** peran, tempel otomatisasi peran ARN yang Anda salin pada akhir tugas 1. Sistem mengisi **Akun** dan **Nama peran dengan bidang** jalur.
**catatan**  
Jika Anda ingin peran layanan otomatisasi untuk melampirkan peran profil instans IAM ke instans EC2, maka Anda harus menambahkan ARN peran profil instans IAM. Hal ini memungkinkan peran layanan otomatisasi untuk bisa melewati peran profil instans IAM ke instans EC2 target.

1. Pilih **Tambahkan**.

1. Pilih **Tinjau kebijakan**.

1. Pada halaman **Tinjau kebijakan,** masukkan nama dan deskripsi kebijakan, dan pilih **Buat Kebijakan**.

# Menyiapkan contoh kebijakan berbasis identitas
<a name="automation-setup-identity-based-policies"></a>

Bagian berikut memberikan contoh kebijakan berbasis identitas IAM untuk layanan Otomasi. AWS Systems Manager *Untuk informasi selengkapnya tentang cara membuat kebijakan berbasis identitas IAM menggunakan contoh dokumen Kebijakan JSON ini, lihat [Membuat kebijakan IAM di Panduan Pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor).*

**catatan**  
Semua contoh berisi akun fiktif. IDs ID akun tidak boleh ditentukan dalam Nama Sumber Daya Amazon (ARN) untuk dokumen publik yang AWS dimiliki.

 **Contoh** 
+  [Contoh 1: Izinkan pengguna menjalankan dokumen otomatisasi dan melihat eksekusi otomatisasi](#automation-setup-identity-based-policies-example-1) 
+  [Contoh 2: Izinkan pengguna menjalankan versi tertentu dari dokumen otomatisasi](#automation-setup-identity-based-policies-example-2) 
+  [Contoh 3: Izinkan pengguna untuk mengeksekusi dokumen otomatisasi dengan tag tertentu](#automation-setup-identity-based-policies-example-3) 
+  [Contoh 4: Izinkan pengguna menjalankan dokumen otomatisasi saat parameter tag tertentu disediakan untuk eksekusi otomatisasi](#automation-setup-identity-based-policies-example-4) 

## Contoh 1: Izinkan pengguna menjalankan dokumen otomatisasi dan melihat eksekusi otomatisasi
<a name="automation-setup-identity-based-policies-example-1"></a>

Contoh kebijakan IAM berikut memungkinkan pengguna untuk melakukan hal berikut:
+ Jalankan dokumen otomatisasi yang ditentukan dalam kebijakan. Nama dokumen ditentukan oleh entri berikut.

  ```
  arn:aws:ssm:*:111122223333:document/{{DocumentName}}
  ```
+ Hentikan dan kirim sinyal ke eksekusi otomatisasi.
+ Lihat detail tentang eksekusi otomatisasi setelah dimulai.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": "ssm:StartAutomationExecution",
            "Effect": "Allow",
            "Resource": [
                "arn:aws:ssm:*:111122223333:document/{{DocumentName}}",
                "arn:aws:ssm:*:111122223333:automation-execution/*"
            ]
        },
        {
            "Action": [
                "ssm:StopAutomationExecution",
                "ssm:GetAutomationExecution",
                "ssm:DescribeAutomationExecutions",
                "ssm:DescribeAutomationStepExecutions",
                "ssm:SendAutomationSignal"
            ],
            "Resource": [
                "arn:aws:ssm:*:111122223333:automation-execution/*"
            ],
            "Effect": "Allow"
        }
    ]
}
```

------

## Contoh 2: Izinkan pengguna menjalankan versi tertentu dari dokumen otomatisasi
<a name="automation-setup-identity-based-policies-example-2"></a>

Contoh berikut kebijakan IAM memungkinkan pengguna untuk menjalankan versi tertentu dari dokumen otomatisasi:
+ Nama dokumen otomatisasi ditentukan oleh entri berikut.

  ```
  arn:aws:ssm:*:111122223333:document/{{DocumentName}}
  ```
+ Versi dokumen otomatisasi ditentukan oleh entri berikut.

  ```
  "ssm:DocumentVersion": "5"
  ```

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": "ssm:StartAutomationExecution",
            "Effect": "Allow",
            "Resource": [
                "arn:aws:ssm:*:111122223333:document/{{DocumentName}}"
            ],
            "Condition": {
                "ForAnyValue:StringEquals": {
                   "ssm:DocumentVersion": ["5"]
                }
            }
        },
        {
            "Action": [
                "ssm:StartAutomationExecution"
            ],
            "Resource": [
                "arn:aws:ssm:*:111122223333:automation-execution/*"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "ssm:StopAutomationExecution",
                "ssm:GetAutomationExecution",
                "ssm:DescribeAutomationExecutions",
                "ssm:DescribeAutomationStepExecutions",
                "ssm:SendAutomationSignal"
            ],
            "Resource": [
                "arn:aws:ssm:*:111122223333:automation-execution/*"
            ],
            "Effect": "Allow"
        }
    ]
}
```

------

## Contoh 3: Izinkan pengguna untuk mengeksekusi dokumen otomatisasi dengan tag tertentu
<a name="automation-setup-identity-based-policies-example-3"></a>

Contoh berikut kebijakan IAM memungkinkan pengguna untuk menjalankan dokumen otomatisasi yang memiliki tag tertentu:
+ Nama dokumen otomatisasi ditentukan oleh entri berikut.

  ```
  arn:aws:ssm:*:111122223333:document/{{DocumentName}}
  ```
+ Tag dokumen otomatisasi ditentukan oleh entri berikut.

  ```
  "ssm:DocumentVersion": "5"
  ```

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": "ssm:StartAutomationExecution",
            "Effect": "Allow",
            "Resource": [
                "arn:aws:ssm:*:111122223333:document/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/stage": "production"
                }
            }
        },
        {
            "Action": [
                "ssm:StartAutomationExecution"
            ],
            "Resource": [
                "arn:aws:ssm:*:111122223333:automation-execution/*"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "ssm:StopAutomationExecution",
                "ssm:GetAutomationExecution",
                "ssm:DescribeAutomationExecutions",
                "ssm:DescribeAutomationStepExecutions",
                "ssm:SendAutomationSignal"
            ],
            "Resource": [
                "arn:aws:ssm:*:111122223333:automation-execution/*"
            ],
            "Effect": "Allow"
        }
    ]
}
```

------

## Contoh 4: Izinkan pengguna menjalankan dokumen otomatisasi saat parameter tag tertentu disediakan untuk eksekusi otomatisasi
<a name="automation-setup-identity-based-policies-example-4"></a>

Contoh berikut kebijakan IAM memberikan izin kepada pengguna untuk menjalankan dokumen otomatisasi ketika parameter tag tertentu disediakan untuk eksekusi otomatisasi:
+ Jalankan dokumen otomatisasi yang ditentukan dalam kebijakan. Nama dokumen ditentukan oleh entri berikut.

  ```
  arn:aws:ssm:*:111122223333:document/{{DocumentName}}
  ```
+ Harus menyediakan parameter tag tertentu untuk eksekusi otomatisasi. Parameter tag untuk sumber daya eksekusi otomatisasi ditentukan oleh entri berikut.

  ```
  "aws:ResourceTag/stage": "production"
  ```
+ Hentikan dan kirim sinyal ke eksekusi otomatisasi yang memiliki tag yang ditentukan.
+ Lihat detail tentang eksekusi otomatisasi yang memiliki tag yang ditentukan.
+ Tambahkan tag yang ditentukan ke sumber daya SSM.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": "ssm:StartAutomationExecution",
            "Effect": "Allow",
            "Resource": [
                "arn:aws:ssm:*:111122223333:document/{{DocumentName}}"
            ]
        },
        {
            "Action": [
                "ssm:StartAutomationExecution",
                "ssm:StopAutomationExecution",
                "ssm:GetAutomationExecution",
                "ssm:DescribeAutomationExecutions",
                "ssm:DescribeAutomationStepExecutions",
                "ssm:SendAutomationSignal"
            ],
            "Resource": [
                "arn:aws:ssm:*:111122223333:automation-execution/*"
            ],
            "Effect": "Allow",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/environment": "beta"
                }
            }
        },
        {
            "Action": "ssm:AddTagsToResource",
            "Effect": "Allow",
            "Resource": [
                "arn:aws:ssm:*:111122223333:automation-execution/*"
            ]
        }
    ]
}
```

------

# Memungkinkan Otomasi untuk beradaptasi dengan kebutuhan konkurensi Anda
<a name="adaptive-concurrency"></a>

Secara default, Otomasi memungkinkan Anda menjalankan hingga 100 otomatisasi bersamaan sekaligus. Otomatisasi juga menyediakan pengaturan opsional yang dapat Anda gunakan untuk menyesuaikan kuota otomatisasi konkurensi Anda secara otomatis. Dengan pengaturan ini, kuota otomatisasi konkurensi Anda dapat menampung hingga 500 otomatisasi bersamaan, tergantung pada sumber daya yang tersedia. 

**catatan**  
Jika otomatisasi Anda memanggil operasi API, penskalaan secara adaptif ke target Anda dapat mengakibatkan pengecualian pembatasan. Jika pengecualian pelambatan berulang terjadi saat menjalankan otomatisasi dengan konkurensi adaptif diaktifkan, Anda mungkin harus meminta peningkatan kuota untuk operasi API jika tersedia.

**Untuk mengaktifkan konkurensi adaptif menggunakan Konsol Manajemen AWS**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Pada panel navigasi, pilih **Otomatisasi**.

1. Pilih tab **Preferensi**, dan kemudian pilih **Edit**.

1. Pilih kotak centang di sebelah **Aktifkan konkurensi adaptif**.

1. Pilih **Simpan**.

**Untuk mengaktifkan konkurensi adaptif menggunakan baris perintah**
+ Buka AWS CLI atau Tools untuk Windows PowerShell dan jalankan perintah berikut untuk mengaktifkan konkurensi adaptif untuk akun Anda di Wilayah yang meminta.

------
#### [ Linux & macOS ]

  ```
  aws ssm update-service-setting \
      --setting-id /ssm/automation/enable-adaptive-concurrency \
      --setting-value True
  ```

------
#### [ Windows ]

  ```
  aws ssm update-service-setting ^
      --setting-id /ssm/automation/enable-adaptive-concurrency ^
      --setting-value True
  ```

------
#### [ PowerShell ]

  ```
  Update-SSMServiceSetting `
      -SettingId "/ssm/automation/enable-adaptive-concurrency" `
      -SettingValue "True"
  ```

------

# Mengkonfigurasi percobaan ulang otomatis untuk operasi yang dibatasi
<a name="automation-throttling-retry"></a>

Ada batasan jumlah eksekusi otomatisasi bersamaan yang dapat berjalan di setiap akun. Mencoba menjalankan beberapa otomatisasi secara bersamaan di akun dapat menyebabkan masalah pelambatan. Anda dapat menggunakan kemampuan coba lagi pelambatan otomatis untuk mengonfigurasi perilaku coba lagi untuk langkah-langkah otomatisasi yang dibatasi.

Percobaan ulang pelambatan otomatis untuk tindakan otomatisasi menyediakan lingkungan eksekusi yang lebih tangguh untuk operasi skala tinggi. Kemampuan coba lagi throttling mendukung semua [tindakan otomatisasi kecuali](automation-actions.md) untuk. `aws:executeScript`

Pengaturan coba lagi throttling berfungsi selain properti step yang ada`maxAttempts`. Ketika keduanya dikonfigurasi, sistem pertama-tama mencoba membatasi percobaan ulang dalam batas waktu yang ditentukan, kemudian menerapkan `maxAttempts` pengaturan jika langkah terus gagal.

**Untuk mengonfigurasi pelambatan coba lagi menggunakan Konsol Manajemen AWS**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Pada panel navigasi, pilih **Otomatisasi**.

1. Pilih tab **Preferensi**, dan kemudian pilih **Edit**.

1. Di bidang **batas waktu coba lagi Throttling**, masukkan nilai antara 0 dan 3600 detik. Ini menentukan waktu maksimum bahwa sistem mencoba ulang langkah yang dibatasi.

1. Pilih **Simpan**.

**Untuk mengkonfigurasi throttling coba lagi menggunakan baris perintah**
+ Buka AWS CLI or Tools untuk Windows PowerShell dan jalankan perintah berikut untuk mengonfigurasi coba lagi throttling untuk akun Anda di Wilayah yang meminta.

------
#### [ Linux & macOS ]

  ```
  aws ssm update-service-setting \
      --setting-id /ssm/automation/throttling-retry-time-limit \
      --setting-value 3600
  ```

------
#### [ Windows ]

  ```
  aws ssm update-service-setting ^
      --setting-id /ssm/automation/throttling-retry-time-limit ^
      --setting-value 3600
  ```

------
#### [ PowerShell ]

  ```
  Update-SSMServiceSetting `
      -SettingId "/ssm/automation/throttling-retry-time-limit" `
      -SettingValue "3600"
  ```

------

# Menerapkan kontrol perubahan untuk Otomasi
<a name="automation-change-calendar-integration"></a>

Secara default, Automation memungkinkan Anda untuk menggunakan runbook tanpa batasan tanggal dan waktu. Dengan mengintegrasikan Otomasi denganChange Calendar, Anda dapat menerapkan kontrol perubahan ke semua otomatisasi di Anda. Akun AWS Dengan pengaturan ini, prinsipal AWS Identity and Access Management (IAM) di akun Anda hanya dapat menjalankan otomatisasi selama periode waktu yang diizinkan oleh kalender perubahan Anda. Untuk mempelajari lebih lanjut tentang bekerja denganChange Calendar, lihat[Bekerja dengan Change Calendar](systems-manager-change-calendar-working.md).

**Untuk mengaktifkan kontrol perubahan (konsol)**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Pada panel navigasi, pilih **Otomatisasi**.

1. Pilih tab **Preferensi**, dan kemudian pilih **Edit**.

1. Pilih kotak centang di samping **Aktifkan Change Calendar integrasi**.

1. Dalam daftar tarik-turun **Pilih kalender ubah**, pilih kalender ubah yang ingin diikuti Otomatisasi.

1. Pilih **Simpan**.

# Jalankan operasi otomatis yang didukung oleh Systems Manager Automation
<a name="running-simple-automations"></a>

Ketika Anda menjalankan otomatisasi, secara default, otomatisasi berjalan dalam konteks pengguna yang memulai otomatisasi. Ini berarti, misalnya, jika pengguna Anda memiliki izin administrator, maka otomatisasi berjalan dengan izin administrator dan akses penuh ke sumber daya yang dikonfigurasi oleh otomatisasi. Sebagai praktik terbaik keamanan, kami menyarankan Anda menjalankan otomatisasi dengan menggunakan peran layanan IAM yang dikenal dalam kasus ini sebagai peran *asumsi* yang dikonfigurasi dengan kebijakan terkelola SSMAutomation Peran Amazon. Anda mungkin perlu menambahkan kebijakan IAM tambahan ke peran asumsi Anda untuk menggunakan berbagai runbook. Menggunakan peran layanan IAM untuk menjalankan otomatisasi disebut *administrasi terdelegasi*.

Ketika Anda menggunakan peran layanan, otomatisasi diizinkan untuk berjalan terhadap AWS sumber daya, tetapi pengguna yang menjalankan otomatisasi telah membatasi akses (atau tidak ada akses) ke sumber daya tersebut. Misalnya, Anda dapat mengonfigurasi peran layanan dan menggunakannya dengan otomatisasi untuk memulai ulang instans Amazon Elastic Compute Cloud (Amazon EC2). Otomasi adalah alat dalam AWS Systems Manager. Otomatisasi memulai ulang instas, tetapi peran layanan tidak memberikan izin pengguna untuk mengakses contoh tersebut.

Anda dapat menentukan peran layanan pada saat runtime ketika sedang menjalankan otomatisasi, atau Anda dapat membuat runbook kustom dan menentukan peran layanan secara langsung di runbook. Jika Anda menentukan peran layanan, baik saat runtime atau runbook, maka layanan berjalan dalam konteks peran layanan yang ditentukan. Jika Anda tidak menentukan peran layanan, maka sistem membuat sesi sementara dalam konteks pengguna dan menjalankan otomatisasi.

**catatan**  
Anda harus menentukan peran layanan untuk otomatisasi yang Anda harapkan agar bisa berjalan lebih dari 12 jam. Jika Anda memulai otomatisasi yang berjalan lama dalam konteks pengguna, sesi pengguna sementara berakhir setelah 12 jam.

Administrasi yang didelegasikan memastikan keamanan dan kontrol yang lebih tinggi terhadap AWS sumber daya. Hal ini juga memungkinkan pengalaman audit yang ditingkatkan karena tindakan yang dilakukan terhadap sumber daya Anda oleh peran layanan pusat bukan beberapa akun IAM.

**Sebelum Anda mulai**  
Sebelum Anda menyelesaikan prosedur berikut, Anda harus membuat peran layanan IAM dan mengonfigurasi hubungan kepercayaan untuk Otomasi, alat di AWS Systems Manager. Untuk informasi selengkapnya, lihat [Tugas 1: Buat peran layanan untuk otomatisasi](automation-setup-iam.md#create-service-role).

Prosedur berikut menjelaskan cara menggunakan konsol Systems Manager atau alat baris perintah pilihan Anda untuk menjalankan otomatisasi sederhana.

## Menjalankan otomatisasi sederhana (konsol)
<a name="simple-console"></a>

Prosedur berikut menjelaskan cara menggunakan konsol Systems Manager untuk menjalankan otomatisasi sederhana.

**Untuk menjalankan otomatisasi sederhana**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Otomatisasi**, lalu pilih **Eksekusi otomatisasi**.

1. Di daftar **Dokumen otomatisasi**, pilih runbook. Pilih satu opsi atau lebih di panel **Kategori dokumen** untuk memfilter dokumen SSM sesuai dengan tujuannya. Untuk melihat runbook yang Anda miliki, pilih tab **Dimiliki oleh saya**. Untuk melihat runbook yang dibagikan dengan akun Anda, pilih tab **Dibagikan dengan saya**. Untuk melihat semua runbook, pilih tab **Semua dokumen**.
**catatan**  
Anda dapat melihat informasi tentang runbook dengan memilih nama runbook.

1. Di bagian **Detail dokumen**, verifikasi bahwa **Versi dokumen** diatur ke versi yang ingin Anda jalankan. Sistem ini termasuk pilihan versi berikut: 
   + **Versi default saat runtime** — Pilih opsi ini jika runbook Otomasi diperbarui secara berkala dan versi default baru ditetapkan.
   + **Versi terbaru saat runtime** — Pilih opsi ini jika runbook Otomasi diperbarui secara berkala, dan Anda ingin menjalankan versi yang terbaru diperbarui.
   + **1 (Default)** - Pilih opsi ini untuk menjalankan versi pertama dokumen, yang merupakan default.

1. Pilih **Berikutnya**.

1. Dalam bagian **Mode Eksekusi**, pilih **Eksekusi sederhana**.

1. Di bagian **Parameter input,** tentukan input yang diperlukan. Secara opsional, Anda dapat memilih peran layanan IAM dari daftar. **AutomationAssumeRole**

1. (Opsional) Pilih CloudWatch alarm untuk diterapkan ke otomatisasi Anda untuk pemantauan. Untuk memasang CloudWatch alarm ke otomatisasi Anda, prinsipal IAM yang memulai otomatisasi harus memiliki izin untuk `iam:createServiceLinkedRole` tindakan tersebut. Untuk informasi selengkapnya tentang CloudWatch alarm, lihat [Menggunakan CloudWatch alarm Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html). Perhatikan bahwa jika alarm Anda aktif, otomatisasi dihentikan. Jika Anda menggunakan AWS CloudTrail, Anda akan melihat panggilan API di jejak Anda. 

1. Pilih **Eksekusi**. 

Konsol menampilkan status otomatisasi. Jika otomatisasi gagal berjalan, lihat [Pemecahan masalah Otomatisasi Systems Manager](automation-troubleshooting.md).

Setelah eksekusi otomatisasi selesai, Anda dapat menjalankan kembali eksekusi dengan parameter yang sama atau dimodifikasi. Untuk informasi selengkapnya, lihat [Menjalankan ulang eksekusi otomatisasi](automation-rerun-executions.md).

## Menjalankan otomasi sederhana (baris perintah)
<a name="simple-cli"></a>

Prosedur berikut menjelaskan cara menggunakan AWS CLI (di Linux atau Windows) atau Alat AWS untuk PowerShell menjalankan otomatisasi sederhana.

**Untuk menjalankan otomatisasi sederhana**

1. Instal dan konfigurasikan AWS CLI atau Alat AWS untuk PowerShell, jika Anda belum melakukannya.

   Untuk selengkapnya, lihat [Menginstal atau memperbarui versi terbaru AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) dan [Menginstal Alat AWS untuk PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html).

1. Jalankan perintah berikut untuk memulai otomatisasi sederhana. Ganti masing-masing *example resource placeholder* dengan informasi Anda sendiri.

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
       --document-name runbook name \
       --parameters runbook parameters
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
       --document-name runbook name ^
       --parameters runbook parameters
   ```

------
#### [ PowerShell ]

   ```
   Start-SSMAutomationExecution `
     -DocumentName runbook name `
     -Parameter runbook parameters
   ```

------

   Berikut adalah contoh menggunakan runbook `AWS-RestartEC2Instance` untuk memulai ulang instans EC2 tertentu.

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
       --document-name "AWS-RestartEC2Instance" \
       --parameters "InstanceId=i-02573cafcfEXAMPLE"
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
       --document-name "AWS-RestartEC2Instance" ^
       --parameters "InstanceId=i-02573cafcfEXAMPLE"
   ```

------
#### [ PowerShell ]

   ```
   Start-SSMAutomationExecution `
     -DocumentName AWS-RestartEC2Instance `
     -Parameter @{"InstanceId"="i-02573cafcfEXAMPLE"}
   ```

------

   Sistem mengembalikan informasi seperti berikut.

------
#### [ Linux & macOS ]

   ```
   {
       "AutomationExecutionId": "4105a4fc-f944-11e6-9d32-0123456789ab"
   }
   ```

------
#### [ Windows ]

   ```
   {
       "AutomationExecutionId": "4105a4fc-f944-11e6-9d32-0123456789ab"
   }
   ```

------
#### [ PowerShell ]

   ```
   4105a4fc-f944-11e6-9d32-0123456789ab
   ```

------

1. Jalankan perintah berikut untuk mengambil status otomatisasi.

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-automation-executions \
       --filter "Key=ExecutionId,Values=4105a4fc-f944-11e6-9d32-0123456789ab"
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-automation-executions ^
       --filter "Key=ExecutionId,Values=4105a4fc-f944-11e6-9d32-0123456789ab"
   ```

------
#### [ PowerShell ]

   ```
   Get-SSMAutomationExecutionList | `
     Where {$_.AutomationExecutionId -eq "4105a4fc-f944-11e6-9d32-0123456789ab"}
   ```

------

   Sistem mengembalikan informasi seperti berikut.

------
#### [ Linux & macOS ]

   ```
   {
       "AutomationExecutionMetadataList": [
           {
               "AutomationExecutionStatus": "InProgress",
               "CurrentStepName": "stopInstances",
               "Outputs": {},
               "DocumentName": "AWS-RestartEC2Instance",
               "AutomationExecutionId": "4105a4fc-f944-11e6-9d32-0123456789ab",
               "DocumentVersion": "1",
               "ResolvedTargets": {
                   "ParameterValues": [],
                   "Truncated": false
               },
               "AutomationType": "Local",
               "Mode": "Auto",
               "ExecutionStartTime": 1564600648.159,
               "CurrentAction": "aws:changeInstanceState",
               "ExecutedBy": "arn:aws:sts::123456789012:assumed-role/Administrator/Admin",
               "LogFile": "",
               "Targets": []
           }
       ]
   }
   ```

------
#### [ Windows ]

   ```
   {
       "AutomationExecutionMetadataList": [
           {
               "AutomationExecutionStatus": "InProgress",
               "CurrentStepName": "stopInstances",
               "Outputs": {},
               "DocumentName": "AWS-RestartEC2Instance",
               "AutomationExecutionId": "4105a4fc-f944-11e6-9d32-0123456789ab",
               "DocumentVersion": "1",
               "ResolvedTargets": {
                   "ParameterValues": [],
                   "Truncated": false
               },
               "AutomationType": "Local",
               "Mode": "Auto",
               "ExecutionStartTime": 1564600648.159,
               "CurrentAction": "aws:changeInstanceState",
               "ExecutedBy": "arn:aws:sts::123456789012:assumed-role/Administrator/Admin",
               "LogFile": "",
               "Targets": []
           }
       ]
   }
   ```

------
#### [ PowerShell ]

   ```
   AutomationExecutionId       : 4105a4fc-f944-11e6-9d32-0123456789ab
   AutomationExecutionStatus   : InProgress
   AutomationType              : Local
   CurrentAction               : aws:changeInstanceState
   CurrentStepName             : startInstances
   DocumentName                : AWS-RestartEC2Instance
   DocumentVersion             : 1
   ExecutedBy                  : arn:aws:sts::123456789012:assumed-role/Administrator/Admin
   ExecutionEndTime            : 1/1/0001 12:00:00 AM
   ExecutionStartTime          : 7/31/2019 7:17:28 PM
   FailureMessage              : 
   LogFile                     : 
   MaxConcurrency              : 
   MaxErrors                   : 
   Mode                        : Auto
   Outputs                     : {}
   ParentAutomationExecutionId : 
   ResolvedTargets             : Amazon.SimpleSystemsManagement.Model.ResolvedTargets
   Target                      : 
   TargetMaps                  : {}
   TargetParameterName         : 
   Targets                     : {}
   ```

------

# Menjalankan ulang eksekusi otomatisasi
<a name="automation-rerun-executions"></a>

Anda dapat menjalankan kembali eksekusi AWS Systems Manager otomatisasi untuk mengulangi tugas dengan parameter yang identik atau dimodifikasi. Kemampuan menjalankan ulang memungkinkan Anda mereplikasi eksekusi otomatisasi secara efisien tanpa membuat ulang konfigurasi otomatisasi secara manual, mengurangi overhead operasional dan potensi kesalahan konfigurasi.

Saat menjalankan ulang eksekusi otomatisasi, Systems Manager mempertahankan parameter runbook asli, CloudWatch alarm Amazon, dan tag dari eksekusi sebelumnya. Sistem membuat eksekusi baru dengan ID eksekusi baru dan cap waktu yang diperbarui. Anda dapat menjalankan kembali semua jenis eksekusi otomatisasi, termasuk eksekusi sederhana, eksekusi kontrol tingkat, eksekusi lintas akun dan lintas wilayah, dan eksekusi manual.

## Jalankan kembali eksekusi otomatisasi (konsol)
<a name="rerun-console"></a>

Prosedur berikut menjelaskan cara menggunakan konsol Systems Manager untuk menjalankan kembali eksekusi otomatisasi.

**Untuk menjalankan kembali eksekusi otomatisasi dari halaman beranda Otomasi**

Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Pada panel navigasi, pilih **Otomatisasi**.

1. Dalam daftar eksekusi, pilih eksekusi yang ingin Anda jalankan kembali.

1. Pilih **Jalankan ulang eksekusi**.

1. Pada halaman **dokumen Execute automation**, tinjau parameter yang telah diisi sebelumnya, mode eksekusi, dan konfigurasi target dari eksekusi asli.

1. (Opsional) Ubah parameter, target, atau pengaturan lain sesuai kebutuhan untuk menjalankan ulang Anda.

1. Pilih **Jalankan** untuk memulai tayangan ulang dengan ID eksekusi baru.

**Untuk menjalankan kembali eksekusi otomatisasi dari halaman detail eksekusi**

Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Pada panel navigasi, pilih **Otomatisasi**.

1. Pilih ID eksekusi otomatisasi yang ingin Anda jalankan kembali.

1. Pada halaman detail eksekusi, pilih **Jalankan ulang eksekusi**.

1. Pada halaman **dokumen Execute automation**, tinjau parameter yang telah diisi sebelumnya, mode eksekusi, dan konfigurasi target dari eksekusi asli.

1. (Opsional) Ubah parameter, target, atau pengaturan lain sesuai kebutuhan untuk menjalankan ulang Anda.

1. Pilih **Jalankan** untuk memulai tayangan ulang dengan ID eksekusi baru.

**Untuk menyalin eksekusi otomatisasi ke eksekusi baru**

Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Pada panel navigasi, pilih **Otomatisasi**.

1. Pilih ID eksekusi otomatisasi yang ingin Anda salin.

1. Pada halaman detail eksekusi, pilih **Tindakan**, lalu pilih **Salin ke baru**.

1. Pada halaman **dokumen Execute automation**, tinjau parameter yang telah diisi sebelumnya, mode eksekusi, dan konfigurasi target dari eksekusi asli.

1. (Opsional) Ubah parameter, target, atau pengaturan lain sesuai kebutuhan untuk eksekusi baru Anda.

1. Pilih **Execute** untuk memulai eksekusi baru.

# Jalankan otomatisasi yang membutuhkan persetujuan
<a name="running-automations-require-approvals"></a>

Prosedur berikut menjelaskan cara menggunakan AWS Systems Manager konsol dan AWS Command Line Interface (AWS CLI) untuk menjalankan otomatisasi dengan persetujuan menggunakan eksekusi sederhana. Otomatisasi menggunakan tindakan otomatisasi `aws:approve`, yang menghentikan otomatisasi sementara sampai otomatisasi utama menyetujui atau menolak tindakan tersebut. Otomatisasi berjalan dalam konteks pengguna saat ini. Ini berarti bahwa Anda tidak perlu mengkonfigurasi izin IAM tambahan selama Anda memiliki izin untuk menggunakan runbook, dan tindakan apa pun yang disebut oleh runbook. Jika Anda memiliki izin administrator di IAM, maka Anda sudah memiliki izin untuk menggunakan runbook ini.

**Sebelum Anda mulai**  
Selain input standar yang diperlukan oleh runbook, tindakan `aws:approve` membutuhkan dua parameter berikut: 
+ Daftar pemberi persetujuan. Daftar pemberi persetujuan harus berisi setidaknya satu pemberi persetujuan dalam bentuk nama pengguna atau ARN pengguna. Jika tersedia beberapa pemberi persetujuan, jumlah persetujuan minimum yang terkait juga harus ditentukan dalam runbook. 
+ Topik Amazon Simple Notification Service (Amazon SNS) ARN. Nama topik Amazon SNS harus dimulai dengan `Automation`.

Prosedur ini mengasumsikan bahwa Anda telah membuat topik Amazon SNS, yang diperlukan untuk memberikan permintaan persetujuan. Untuk informasi lebih lanjut, lihat [Buat topik](https://docs.aws.amazon.com/sns/latest/dg/sns-getting-started.html#CreateTopic) dalam *Panduan Developer Amazon Simple Notification Service*.

## Menjalankan otomatisasi dengan pemberi persetujuan (konsol)
<a name="approval-console"></a>

**Untuk menjalankan otomatisasi dengan pemberi persetujuan**

Prosedur berikut menjelaskan cara menggunakan konsol Systems Manager untuk menjalankan otomatisasi dengan pemberi persetujuan.

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Otomatisasi**, lalu pilih **Eksekusi otomatisasi**.

1. Di daftar **Dokumen otomatisasi**, pilih runbook. Pilih satu opsi atau lebih di panel **Kategori dokumen** untuk memfilter dokumen SSM sesuai dengan tujuannya. Untuk melihat runbook yang Anda miliki, pilih tab **Dimiliki oleh saya**. Untuk melihat runbook yang dibagikan dengan akun Anda, pilih tab **Dibagikan dengan saya**. Untuk melihat semua runbook, pilih tab **Semua dokumen**.
**catatan**  
Anda dapat melihat informasi tentang runbook dengan memilih nama runbook.

1. Di bagian **Detail dokumen**, verifikasi bahwa **Versi dokumen** diatur ke versi yang ingin Anda jalankan. Sistem ini termasuk pilihan versi berikut: 
   + **Versi default saat runtime** — Pilih opsi ini jika runbook Otomasi diperbarui secara berkala dan versi default baru ditetapkan.
   + **Versi terbaru saat runtime** — Pilih opsi ini jika runbook Otomasi diperbarui secara berkala, dan Anda ingin menjalankan versi yang terbaru diperbarui.
   + **1 (Default)** - Pilih opsi ini untuk menjalankan versi pertama dokumen, yang merupakan default.

1. Pilih **Berikutnya**.

1. Pada halaman **Eksekusi dokumen otomatisasi,** pilih **Eksekusi sederhana**.

1. Di bagian **Parameter input,** tentukan parameter input yang diperlukan.

   Misalnya, jika Anda memilih `AWS-StartEC2InstanceWithApproval` runbook, maka Anda harus menentukan atau memilih instance IDs untuk **InstanceId**parameter. 

1. Di bagian **Penyetuju**, tentukan nama pengguna atau pengguna ARNs pemberi persetujuan untuk tindakan otomatisasi.

1. Di bagian **SNSTopicARN**, tentukan topik SNS ARN yang akan digunakan untuk mengirim pemberitahuan persetujuan. Nama topik SNS harus dimulai dengan **Otomatisasi**.

1. Secara opsional, Anda dapat memilih peran layanan IAM dari daftar. **AutomationAssumeRole** Jika Anda menargetkan lebih dari 100 akun dan Wilayah, Anda harus menentukan. `AWS-SystemsManager-AutomationAdministrationRole`

1. Pilih **Eksekusi otomatisasi**. 

Pemberi persetujuan yang ditentukan menerima notifikasi Amazon SNS dengan detail untuk menyetujui atau menolak otomatisasi. Tindakan persetujuan ini berlaku selama 7 hari sejak tanggal penerbitan dan dapat dikeluarkan menggunakan konsol Systems Manager atau AWS Command Line Interface (AWS CLI).

Jika Anda memilih untuk menyetujui otomatisasi, otomatisasi terus menjalankan langkah-langkah yang disertakan dalam runbook tertentu. Konsol menampilkan status otomatisasi. Jika otomatisasi gagal berjalan, lihat [Pemecahan masalah Otomatisasi Systems Manager](automation-troubleshooting.md).

**Untuk menyetujui atau menolak otomatisasi**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Otomatisasi**, dan kemudian pilih otomatisasi yang dijalankan dalam prosedur sebelumnya.

1. Pilih **Tindakan** dan kemudian pilih **Setujui/Tolak**.

1. Pilih **Setujui** atau **Tolak** dan berikan komentar (opsional).

1. Pilih **Kirim**.

## Menjalankan otomatisasi dengan pemberi persetujuan (bari perintah)
<a name="approval-cli"></a>

Prosedur berikut menjelaskan cara menggunakan AWS CLI (di Linux atau Windows) atau Alat AWS untuk PowerShell menjalankan otomatisasi dengan pemberi persetujuan.

**Untuk menjalankan otomatisasi dengan pemberi persetujuan**

1. Instal dan konfigurasikan AWS CLI atau Alat AWS untuk PowerShell, jika Anda belum melakukannya.

   Untuk selengkapnya, lihat [Menginstal atau memperbarui versi terbaru AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) dan [Menginstal Alat AWS untuk PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html).

1. Jalankan perintah berikut untuk menjalankan otomatisasi dengan pemberi persetujuan. Ganti masing-masing *example resource placeholder* dengan informasi Anda sendiri. Di bagian nama dokumen, tentukan runbook yang mencakup tindakan otomasi, `aws:approve`.

   Untuk`Approvers`, tentukan nama pengguna atau pengguna pemberi ARNs persetujuan untuk tindakan tersebut. Untuk `SNSTopic`, tentukan topik SNS ARN untuk digunakan saat mengirim pemberitahuan persetujuan. Nama topik Amazon SNS harus dimulai dengan `Automation`.
**catatan**  
Nama spesifik dari nilai parameter untuk pemberi persetujuan dan topik SNS bergantung pada nilai yang ditentukan dalam runbook yang Anda pilih. 

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
       --document-name "AWS-StartEC2InstanceWithApproval" \
       --parameters "InstanceId=i-02573cafcfEXAMPLE,Approvers=arn:aws:iam::123456789012:role/Administrator,SNSTopicArn=arn:aws:sns:region:123456789012:AutomationApproval"
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
       --document-name "AWS-StartEC2InstanceWithApproval" ^
       --parameters "InstanceId=i-02573cafcfEXAMPLE,Approvers=arn:aws:iam::123456789012:role/Administrator,SNSTopicArn=arn:aws:sns:region:123456789012:AutomationApproval"
   ```

------
#### [ PowerShell ]

   ```
   Start-SSMAutomationExecution `
       -DocumentName AWS-StartEC2InstanceWithApproval `
       -Parameters @{
           "InstanceId"="i-02573cafcfEXAMPLE"
           "Approvers"="arn:aws:iam::123456789012:role/Administrator"
           "SNSTopicArn"="arn:aws:sns:region:123456789012:AutomationApproval"
       }
   ```

------

   Sistem mengembalikan informasi seperti berikut.

------
#### [ Linux & macOS ]

   ```
   {
       "AutomationExecutionId": "df325c6d-b1b1-4aa0-8003-6cb7338213c6"
   }
   ```

------
#### [ Windows ]

   ```
   {
       "AutomationExecutionId": "df325c6d-b1b1-4aa0-8003-6cb7338213c6"
   }
   ```

------
#### [ PowerShell ]

   ```
   df325c6d-b1b1-4aa0-8003-6cb7338213c6
   ```

------

**Menyetujui otomatisasi**
+ Gunakan perintah berikut untuk menyetujui otomatisasi. Ganti masing-masing *example resource placeholder* dengan informasi Anda sendiri.

------
#### [ Linux & macOS ]

  ```
  aws ssm send-automation-signal \
      --automation-execution-id "df325c6d-b1b1-4aa0-8003-6cb7338213c6" \
      --signal-type "Approve" \
      --payload "Comment=your comments"
  ```

------
#### [ Windows ]

  ```
  aws ssm send-automation-signal ^
      --automation-execution-id "df325c6d-b1b1-4aa0-8003-6cb7338213c6" ^
      --signal-type "Approve" ^
      --payload "Comment=your comments"
  ```

------
#### [ PowerShell ]

  ```
  Send-SSMAutomationSignal `
      -AutomationExecutionId df325c6d-b1b1-4aa0-8003-6cb7338213c6 `
      -SignalType Approve `
      -Payload @{"Comment"="your comments"}
  ```

------

  Jika perintah berhasil, tidak ada output yang akan ditampilkan.

**Untuk menyangkal otomatisasi**
+ Jalankan perintah berikut untuk menolak otomatisasi. Ganti masing-masing *example resource placeholder* dengan informasi Anda sendiri.

------
#### [ Linux & macOS ]

  ```
  aws ssm send-automation-signal \
      --automation-execution-id "df325c6d-b1b1-4aa0-8003-6cb7338213c6" \
      --signal-type "Deny" \
      --payload "Comment=your comments"
  ```

------
#### [ Windows ]

  ```
  aws ssm send-automation-signal ^
      --automation-execution-id "df325c6d-b1b1-4aa0-8003-6cb7338213c6" ^
      --signal-type "Deny" ^
      --payload "Comment=your comments"
  ```

------
#### [ PowerShell ]

  ```
  Send-SSMAutomationSignal `
      -AutomationExecutionId df325c6d-b1b1-4aa0-8003-6cb7338213c6 `
      -SignalType Deny `
      -Payload @{"Comment"="your comments"}
  ```

------

  Tidak ada output jika perintah berhasil.

# Jalankan operasi otomatis pada skala
<a name="running-automations-scale"></a>

Dengan AWS Systems Manager Otomasi, Anda dapat menjalankan otomatisasi pada armada sumber AWS daya dengan menggunakan *target*. Selain itu, Anda dapat mengontrol deployment otomatisasi tersebut dengan menentukan nilai konkurensi dan ambang kesalahan. Fitur konkurensi dan fitur ambang batas kesalahan secara kolektif disebut *pengendalian rate*. Nilai konkurensi menentukan berapa banyak sumber daya yang diizinkan untuk menjalankan otomatisasi secara bersamaan. Otomasi juga menyediakan mode konkurensi adaptif yang dapat Anda pilih. Konkurensi adaptif secara otomatis menskalakan kuota otomatisasi Anda dari 100 otomatisasi yang berjalan secara bersamaan hingga 500. Ambang kesalahan menentukan berapa banyak otomatisasi yang diperbolehkan untuk gagal sebelum Systems Manager berhenti mengirim otomatisasi ke sumber daya lainnya.

Untuk informasi lebih lanjut tentang ambang batas konkurensi dan kesalahan, lihat [Kontrol otomatisasi dalam skala besar](running-automations-scale-controls.md). Untuk informasi selengkapnya tentang target, lihat [Memetakan target untuk otomatisasi](running-automations-map-targets.md).

Prosedur berikut menunjukkan cara mengaktifkan konkurensi adaptif, dan cara menjalankan otomatisasi dengan target dan kontrol tingkat dengan menggunakan konsol Systems Manager dan AWS Command Line Interface ()AWS CLI.

## Menjalankan otomatisasi dengan kontrol tarif dan target (konsol)
<a name="scale-console"></a>

Prosedur berikut menjelaskan cara menjalankan otomatisasi dengan target dan kontrol tarif dengan menggunakan konsol Systems Manager.

**Untuk menjalankan otomatisasi dengan target dan kontrol tarif**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Otomatisasi**, lalu pilih **Eksekusi otomatisasi**.

1. Di daftar **Dokumen otomatisasi**, pilih runbook. Pilih satu opsi atau lebih di panel **Kategori dokumen** untuk memfilter dokumen SSM sesuai dengan tujuannya. Untuk melihat runbook yang Anda miliki, pilih tab **Dimiliki oleh saya**. Untuk melihat runbook yang dibagikan dengan akun Anda, pilih tab **Dibagikan dengan saya**. Untuk melihat semua runbook, pilih tab **Semua dokumen**.
**catatan**  
Anda dapat melihat informasi tentang runbook dengan memilih nama runbook.

1. Di bagian **Detail dokumen**, verifikasi bahwa **Versi dokumen** diatur ke versi yang ingin Anda jalankan. Sistem ini termasuk pilihan versi berikut: 
   + **Versi default saat runtime** — Pilih opsi ini jika runbook Otomasi diperbarui secara berkala dan versi default baru ditetapkan.
   + **Versi terbaru saat runtime** — Pilih opsi ini jika runbook Otomasi diperbarui secara berkala, dan Anda ingin menjalankan versi yang terbaru diperbarui.
   + **1 (Default)** - Pilih opsi ini untuk menjalankan versi pertama dokumen, yang merupakan default.

1. Pilih **Berikutnya**.

1. Di bagian **Eksekusi Mode**, pilih **Pengendalian Rate**. Anda harus menggunakan mode ini atau **Multi-Akun dan Wilayah** jika Anda ingin menggunakan target dan kontrol tarif.

1. Di bagian **Target**, pilih bagaimana Anda ingin menargetkan AWS sumber daya tempat Anda ingin menjalankan otomatisasi. Pilihan ini diperlukan.

   1. Gunakan daftar **Parameter** untuk memilih parameter. Item dalam daftar **Parameter** ditentukan oleh parameter di Runbook otomatisasi yang Anda pilih pada awal prosedur ini. Dengan memilih parameter, Anda menentukan jenis sumber daya di mana alur kerja otomatisasi berjalan. 

   1. Gunakan daftar **Target** untuk memilih cara Anda menargetkan sumber daya.

      1. Jika Anda ingin menargetkan sumber daya dengan menggunakan nilai parameter, masukkan nilai parameter untuk parameter yang Anda pilih di bagian **Parameter input**.

      1. Jika Anda memilih untuk menargetkan sumber daya dengan menggunakan AWS Resource Groups, maka pilih nama grup dari daftar **Grup Sumber Daya**.

      1. Jika Anda memilih untuk menargetkan sumber daya dengan menggunakan tag, masukkan kunci tag dan nilai tag dalam bidang yang disediakan (opsional). Pilih **Tambahkan**.

      1. Jika Anda ingin menjalankan runbook Otomasi pada semua instance saat ini Wilayah AWS, Akun AWS lalu pilih **Semua** instance.

1. Di bagian **Parameter input,** tentukan input yang diperlukan. Secara opsional, Anda dapat memilih peran layanan IAM dari daftar. **AutomationAssumeRole**
**catatan**  
Anda mungkin tidak perlu memilih beberapa opsi di bagian **Parameter input**. Hal ini karena Anda menargetkan sumber daya menggunakan tag atau kelompok sumber daya. Misalnya, jika Anda memilih `AWS-RestartEC2Instance` runbook, maka Anda tidak perlu menentukan atau memilih instance IDs di bagian **Parameter input**. Eksekusi otomatisasi menempatkan contoh untuk memulai ulang dengan menggunakan tag atau grup sumber daya yang Anda tentukan.

1. Gunakan opsi di bagian **Kontrol tarif** untuk membatasi jumlah AWS sumber daya yang dapat menjalankan Otomasi dalam setiap pasangan Account-region. 

   Di bagian **Konkurensi**, pilih satu opsi: 
   + Pilih **target** untuk memasukkan jumlah absolut target yang dapat menjalankan alur kerja otomatisasi secara bersamaan.
   + Pilih **persentase** untuk memasukkan persentase dari set target yang dapat menjalankan alur kerja otomatisasi secara bersamaan.

1. Di bagian **Ambang kesalahan**, pilih satu opsi:
   + Pilih **kesalahan** untuk memasukkan jumlah kesalahan absolut yang diizinkan sebelum Otomatisasi berhenti mengirim alur kerja ke sumber daya lainnya.
   + Pilih **persentase** untuk memasukkan persentase kesalahan absolut yang diizinkan sebelum Otomatisasi berhenti mengirim alur kerja ke sumber daya lainnya.

1. (Opsional) Pilih CloudWatch alarm untuk diterapkan ke otomatisasi Anda untuk pemantauan. Untuk memasang CloudWatch alarm ke otomatisasi Anda, prinsip IAM yang memulai otomatisasi harus memiliki izin untuk `iam:createServiceLinkedRole` tindakan tersebut. Untuk informasi selengkapnya tentang CloudWatch alarm, lihat [Menggunakan CloudWatch alarm Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html). Perhatikan bahwa jika alarm Anda aktif, otomatisasi dihentikan. Jika Anda menggunakan AWS CloudTrail, Anda akan melihat panggilan API di jejak Anda.

1. Pilih **Eksekusi**. 

Untuk melihat otomatisasi yang dimulai oleh otomatisasi kontrol tarif Anda, di panel navigasi, pilih Otomatisasi, dan kemudian pilih **Tampilkan otomatisasi anak**.

Setelah eksekusi otomatisasi selesai, Anda dapat menjalankan kembali eksekusi dengan parameter yang sama atau dimodifikasi. Untuk informasi selengkapnya, lihat [Menjalankan ulang eksekusi otomatisasi](automation-rerun-executions.md).

## Menjalankan otomatisasi dengan target dan kontrol tarif (baris perintah)
<a name="scale-cli"></a>

Prosedur berikut menjelaskan cara menggunakan AWS CLI (di Linux atau Windows) atau Alat AWS untuk PowerShell menjalankan otomatisasi dengan target dan kontrol tingkat.

**Untuk menjalankan otomatisasi dengan target dan kontrol tarif**

1. Instal dan konfigurasikan AWS CLI atau Alat AWS untuk PowerShell, jika Anda belum melakukannya.

   Untuk selengkapnya, lihat [Menginstal atau memperbarui versi terbaru AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) dan [Menginstal Alat AWS untuk PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html).

1. Jalankan perintah berikut untuk menandai dokumen.

------
#### [ Linux & macOS ]

   ```
   aws ssm list-documents
   ```

------
#### [ Windows ]

   ```
   aws ssm list-documents
   ```

------
#### [ PowerShell ]

   ```
   Get-SSMDocumentList
   ```

------

   Perhatikan nama runbook yang ingin Anda gunakan.

1. Jalankan perintah berikut untuk menampilkan detail tentang runbook. Ganti *runbook name* dengan nama runbook yang detailnya ingin Anda lihat. Juga, perhatikan nama parameter (misalnya,`InstanceId`) yang ingin Anda gunakan untuk `--target-parameter-name` opsi tersebut. Parameter ini menentukan jenis sumber daya di mana otomatisasi berjalan.

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-document \
       --name runbook name
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-document ^
       --name runbook name
   ```

------
#### [ PowerShell ]

   ```
   Get-SSMDocumentDescription `
       -Name runbook name
   ```

------

1. Buat perintah yang menggunakan target dan opsi kontrol tarif yang ingin Anda jalankan. Ganti masing-masing *example resource placeholder* dengan informasi Anda sendiri.

   *Penargetan menggunakan tag*

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
       --document-name runbook name \
       --targets Key=tag:key name,Values=value \
       --target-parameter-name parameter name \
       --parameters "input parameter name=input parameter value,input parameter 2 name=input parameter 2 value" \
       --max-concurrency 10 \
       --max-errors 25%
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
       --document-name runbook name ^
       --targets Key=tag:key name,Values=value ^
       --target-parameter-name parameter name ^
       --parameters "input parameter name=input parameter value,input parameter 2 name=input parameter 2 value" ^
       --max-concurrency 10 ^
       --max-errors 25%
   ```

------
#### [ PowerShell ]

   ```
   $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target
   $Targets.Key = "tag:key name"
   $Targets.Values = "value"
   
   Start-SSMAutomationExecution `
       DocumentName "runbook name" `
       -Targets $Targets `
       -TargetParameterName "parameter name" `
       -Parameter @{"input parameter name"="input parameter value";"input parameter 2 name"="input parameter 2 value"} `
       -MaxConcurrency "10" `
       -MaxError "25%"
   ```

------

   *Penargetan menggunakan nilai parameter*

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
       --document-name runbook name \
       --targets Key=ParameterValues,Values=value,value 2,value 3 \
       --target-parameter-name parameter name \
       --parameters "input parameter name=input parameter value" \
       --max-concurrency 10 \
       --max-errors 25%
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
       --document-name runbook name ^
       --targets Key=ParameterValues,Values=value,value 2,value 3 ^
       --target-parameter-name parameter name ^
       --parameters "input parameter name=input parameter value" ^
       --max-concurrency 10 ^
       --max-errors 25%
   ```

------
#### [ PowerShell ]

   ```
   $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target
   $Targets.Key = "ParameterValues"
   $Targets.Values = "value","value 2","value 3"
   
   Start-SSMAutomationExecution `
       -DocumentName "runbook name" `
       -Targets $Targets `
       -TargetParameterName "parameter name" `
       -Parameter @{"input parameter name"="input parameter value"} `
       -MaxConcurrency "10" `
       -MaxError "25%"
   ```

------

   *Penargetan menggunakan AWS Resource Groups*

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
       --document-name runbook name \
       --targets Key=ResourceGroup,Values=Resource group nname \
       --target-parameter-name parameter name \
       --parameters "input parameter name=input parameter value" \
       --max-concurrency 10 \
       --max-errors 25%
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
       --document-name runbook name ^
       --targets Key=ResourceGroup,Values=Resource group name ^
       --target-parameter-name parameter name ^
       --parameters "input parameter name=input parameter value" ^
       --max-concurrency 10 ^
       --max-errors 25%
   ```

------
#### [ PowerShell ]

   ```
   $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target
   $Targets.Key = "ResourceGroup"
   $Targets.Values = "Resource group name"
   
   Start-SSMAutomationExecution `
       -DocumentName "runbook name" `
       -Targets $Targets `
       -TargetParameterName "parameter name" `
       -Parameter @{"input parameter name"="input parameter value"} `
       -MaxConcurrency "10" `
       -MaxError "25%"
   ```

------

   *Menargetkan semua instans Amazon EC2 saat ini dan Akun AWS Wilayah AWS*

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
       --document-name runbook name \
       --targets "Key=AWS::EC2::Instance,Values=*"  \
       --target-parameter-name instanceId \
       --parameters "input parameter name=input parameter value" \
       --max-concurrency 10 \
       --max-errors 25%
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
       --document-name runbook name ^
       --targets Key=AWS::EC2::Instance,Values=* ^
       --target-parameter-name instanceId ^
       --parameters "input parameter name=input parameter value" ^
       --max-concurrency 10 ^
       --max-errors 25%
   ```

------
#### [ PowerShell ]

   ```
   $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target
   $Targets.Key = "AWS::EC2::Instance"
   $Targets.Values = "*"
   
   Start-SSMAutomationExecution `
       -DocumentName "runbook name" `
       -Targets $Targets `
       -TargetParameterName "instanceId" `
       -Parameter @{"input parameter name"="input parameter value"} `
       -MaxConcurrency "10" `
       -MaxError "25%"
   ```

------

   Perintah mengembalikan ID eksekusi. Salin ID ini ke clipboard. Anda dapat menggunakan ID ini untuk melihat status otomatisasi.

------
#### [ Linux & macOS ]

   ```
   {
       "AutomationExecutionId": "a4a3c0e9-7efd-462a-8594-01234EXAMPLE"
   }
   ```

------
#### [ Windows ]

   ```
   {
       "AutomationExecutionId": "a4a3c0e9-7efd-462a-8594-01234EXAMPLE"
   }
   ```

------
#### [ PowerShell ]

   ```
   a4a3c0e9-7efd-462a-8594-01234EXAMPLE
   ```

------

1. Jalankan perintah berikut untuk melihat otomatisasi. Ganti masing-masing *automation execution ID* dengan informasi Anda sendiri.

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-automation-executions \
       --filter Key=ExecutionId,Values=automation execution ID
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-automation-executions ^
       --filter Key=ExecutionId,Values=automation execution ID
   ```

------
#### [ PowerShell ]

   ```
   Get-SSMAutomationExecutionList | `
       Where {$_.AutomationExecutionId -eq "automation execution ID"}
   ```

------

1. Untuk melihat detail tentang kemajuan otomatisasi, jalankan perintah berikut. Ganti masing-masing *automation execution ID* dengan informasi Anda sendiri.

------
#### [ Linux & macOS ]

   ```
   aws ssm get-automation-execution \
       --automation-execution-id automation execution ID
   ```

------
#### [ Windows ]

   ```
   aws ssm get-automation-execution ^
       --automation-execution-id automation execution ID
   ```

------
#### [ PowerShell ]

   ```
   Get-SSMAutomationExecution `
       -AutomationExecutionId automation execution ID
   ```

------

   Sistem mengembalikan informasi seperti berikut.

------
#### [ Linux & macOS ]

   ```
   {
       "AutomationExecution": {
           "StepExecutionsTruncated": false,
           "AutomationExecutionStatus": "Success",
           "MaxConcurrency": "1",
           "Parameters": {},
           "MaxErrors": "1",
           "Outputs": {},
           "DocumentName": "AWS-StopEC2Instance",
           "AutomationExecutionId": "a4a3c0e9-7efd-462a-8594-01234EXAMPLE",
           "ResolvedTargets": {
               "ParameterValues": [
                   "i-02573cafcfEXAMPLE"
               ],
               "Truncated": false
           },
           "ExecutionEndTime": 1564681619.915,
           "Targets": [
               {
                   "Values": [
                       "DEV"
                   ],
                   "Key": "tag:ENV"
               }
           ],
           "DocumentVersion": "1",
           "ExecutionStartTime": 1564681576.09,
           "ExecutedBy": "arn:aws:sts::123456789012:assumed-role/Administrator/Admin",
           "StepExecutions": [
               {
                   "Inputs": {
                       "InstanceId": "i-02573cafcfEXAMPLE"
                   },
                   "Outputs": {},
                   "StepName": "i-02573cafcfEXAMPLE",
                   "ExecutionEndTime": 1564681619.093,
                   "StepExecutionId": "86c7b811-3896-4b78-b897-01234EXAMPLE",
                   "ExecutionStartTime": 1564681576.836,
                   "Action": "aws:executeAutomation",
                   "StepStatus": "Success"
               }
           ],
           "TargetParameterName": "InstanceId",
           "Mode": "Auto"
       }
   }
   ```

------
#### [ Windows ]

   ```
   {
       "AutomationExecution": {
           "StepExecutionsTruncated": false,
           "AutomationExecutionStatus": "Success",
           "MaxConcurrency": "1",
           "Parameters": {},
           "MaxErrors": "1",
           "Outputs": {},
           "DocumentName": "AWS-StopEC2Instance",
           "AutomationExecutionId": "a4a3c0e9-7efd-462a-8594-01234EXAMPLE",
           "ResolvedTargets": {
               "ParameterValues": [
                   "i-02573cafcfEXAMPLE"
               ],
               "Truncated": false
           },
           "ExecutionEndTime": 1564681619.915,
           "Targets": [
               {
                   "Values": [
                       "DEV"
                   ],
                   "Key": "tag:ENV"
               }
           ],
           "DocumentVersion": "1",
           "ExecutionStartTime": 1564681576.09,
           "ExecutedBy": "arn:aws:sts::123456789012:assumed-role/Administrator/Admin",
           "StepExecutions": [
               {
                   "Inputs": {
                       "InstanceId": "i-02573cafcfEXAMPLE"
                   },
                   "Outputs": {},
                   "StepName": "i-02573cafcfEXAMPLE",
                   "ExecutionEndTime": 1564681619.093,
                   "StepExecutionId": "86c7b811-3896-4b78-b897-01234EXAMPLE",
                   "ExecutionStartTime": 1564681576.836,
                   "Action": "aws:executeAutomation",
                   "StepStatus": "Success"
               }
           ],
           "TargetParameterName": "InstanceId",
           "Mode": "Auto"
       }
   }
   ```

------
#### [ PowerShell ]

   ```
   AutomationExecutionId       : a4a3c0e9-7efd-462a-8594-01234EXAMPLE
   AutomationExecutionStatus   : Success
   CurrentAction               : 
   CurrentStepName             : 
   DocumentName                : AWS-StopEC2Instance
   DocumentVersion             : 1
   ExecutedBy                  : arn:aws:sts::123456789012:assumed-role/Administrator/Admin
   ExecutionEndTime            : 8/1/2019 5:46:59 PM
   ExecutionStartTime          : 8/1/2019 5:46:16 PM
   FailureMessage              : 
   MaxConcurrency              : 1
   MaxErrors                   : 1
   Mode                        : Auto
   Outputs                     : {}
   Parameters                  : {}
   ParentAutomationExecutionId : 
   ProgressCounters            : 
   ResolvedTargets             : Amazon.SimpleSystemsManagement.Model.ResolvedTargets
   StepExecutions              : {i-02573cafcfEXAMPLE}
   StepExecutionsTruncated     : False
   Target                      : 
   TargetLocations             : {}
   TargetMaps                  : {}
   TargetParameterName         : InstanceId
   Targets                     : {tag:Name}
   ```

------
**catatan**  
Anda juga dapat memantau status otomatisasi di konsol. Di daftar **Eksekusi otomatisasi**, pilih otomatisasi yang baru Anda jalankan dan kemudian pilih tab **Langkah eksekusi**. Tab ini menampilkan status tindakan otomatisasi.

# Memetakan target untuk otomatisasi
<a name="running-automations-map-targets"></a>

Gunakan `Targets` parameter untuk dengan cepat menentukan sumber daya mana yang ditargetkan oleh otomatisasi. Misalnya, jika Anda ingin menjalankan otomatisasi yang memulai ulang instans terkelola, alih-alih memilih puluhan ID instans di konsol atau mengetiknya secara otomatis dalam perintah, Anda dapat menargetkan instans dengan menentukan Amazon Elastic Compute Cloud (Amazon EC2) tag dengan `Targets` parameter.

Saat Anda menjalankan otomatisasi yang menggunakan target, AWS Systems Manager buat otomatisasi anak untuk setiap target. Sebagai contoh, jika Anda menargetkan volume Amazon Elastic Block Store (Amazon EBS) dengan menentukan tag, dan tag tersebut dapat digunakan untuk 100 Amazon EBS volume, maka Systems Manager menciptakan 100 anak otomatisasi. Otomatisasi induk selesai ketika semua anak otomatisasi mencapai keadaan akhir.

**catatan**  
Semua `input parameters` yang Anda tentukan pada saat bagian runtime (baik di **Parameter input** konsol atau dengan menggunakan `parameters` pilihan dari baris perintah) yang secara otomatis diproses oleh semua anak otomatisasi.

Anda dapat menargetkan sumber daya untuk otomatisasi dengan menggunakan tag, Resource Groups, dan nilai-nilai parameter. Selain itu, Anda dapat menggunakan `TargetMaps` untuk menargetkan beberapa nilai parameter dari baris perintah atau file. Bagian berikut menjelaskan setiap opsi penargetan ini secara lebih detail.

## Menargetkan tag
<a name="target-tags"></a>

Anda dapat menentukan satu tag sebagai target otomatisasi. Banyak AWS tag dukungan sumber daya, termasuk instans Amazon Elastic Compute Cloud (Amazon EC2) dan Amazon Relational Database Service (Amazon RDS), volume dan snapshot Amazon Elastic Block Store (Amazon EBS), Resource Groups, dan bucket Amazon Simple Storage Service (Amazon S3), untuk beberapa nama. Anda dapat dengan cepat menjalankan otomatisasi pada AWS sumber daya Anda dengan menargetkan tag. Tag adalah pasangan kunci-nilai, seperti Operating\$1System:Linux atau Department:Finance. Jika Anda menetapkan nama tertentu ke sumber daya, Anda juga dapat menggunakan kata "Nama" sebagai kunci, dan nama sumber daya sebagai nilainya.

Bila Anda menentukan tag sebagai target untuk otomatisasi, Anda juga menentukan parameter target. Parameter target menggunakan `TargetParameterName` pilihan. Dengan memilih parameter target, Anda menentukan jenis sumber daya tempat alur kerja otomatisasi berjalan. Parameter target yang Anda tentukan dengan tag harus merupakan parameter valid yang didefinisikan dalam runbook. Misalnya, jika Anda ingin menargetkan puluhan instans EC2 dengan menggunakan tag, kemudian pilih `InstanceId` parameter target. Dengan memilih parameter ini, anda menentukan *instans* sebagai jenis sumber daya untuk otomatisasi. Saat membuat runbook kustom, Anda harus menentukan **jenis Target** `/AWS::EC2::Instance` untuk memastikan hanya instance yang digunakan. Jika tidak, semua sumber daya dengan tag yang sama akan ditargetkan. Saat menargetkan instance dengan tag, instance yang dihentikan mungkin disertakan.

Screenshot berikut menggunaka `AWS-DetachEBSVolume` runbook. Parameter target logis adalah `VolumeId`.

![\[Menggunakan tag sebagai target untuk Automasi Systems Manager\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/images/automation-rate-control-tags-1-new.png)


Runbook `AWS-DetachEBSVolume` juga mencakup properti khusus yang disebut **Jenis target**, yang diatur ke `/AWS::EC2::Volume`. Ini berarti bahwa jika pasangan kunci tag `Finance:TestEnv` mengembalikan berbagai jenis sumber daya (misalnya, instans EC2, volume Amazon EBS, Amazon EBS snapshot) maka hanya volume Amazon EBS yang akan digunakan.

**penting**  
Nama parameter target peka huruf besar dan kecil. Jika Anda menjalankan otomatisasi dengan menggunakan AWS Command Line Interface (AWS CLI) atau AWS Tools for Windows PowerShell, maka Anda harus memasukkan nama parameter target persis seperti yang ditentukan dalam runbook. Jika tidak, sistem akan mengembalikan sebuah `InvalidAutomationExecutionParametersException` kesalahan. Anda dapat menggunakan operasi [DescribeDocument](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribeDocument.html)API untuk melihat informasi tentang parameter target yang tersedia di runbook tertentu. Berikut ini adalah contoh AWS CLI perintah yang menyediakan informasi tentang `AWS-DeleteSnapshot` dokumen.  

```
aws ssm describe-document \
    --name AWS-DeleteSnapshot
```

Berikut adalah beberapa contoh AWS CLI perintah yang menargetkan sumber daya dengan menggunakan tag.

**Contoh 1: Menargetkan tag menggunakan pasangan nilai kunci untuk memulai ulang instans Amazon EC2**

Contoh ini memulai ulang semua instans Amazon EC2 yang ditandai dengan kunci Departemen *dan nilai*. *HumanResources* Parameter target menggunakan *InstanceId*parameter dari runbook. Contoh menggunakan parameter tambahan untuk menjalankan otomatisasi dengan menggunakan peran layanan otomatisasi (juga disebut *peran asumsi*).

```
aws ssm start-automation-execution \
    --document-name AWS-RestartEC2Instance \
    --targets Key=tag:Department,Values=HumanResources \
    --target-parameter-name InstanceId \
    --parameters "AutomationAssumeRole=arn:aws:iam::111122223333:role/AutomationServiceRole"
```

**Contoh 2: Menargetkan tag menggunakan pasangan nilai kunci untuk menghapus snapshot Amazon EBS**

Contoh berikut menggunakan `AWS-DeleteSnapshot` runbook untuk menghapus semua snapshot dengan kunci *Nama* dan nilai *Januari2018Backup*. Parameter target menggunakan *VolumeId*parameter.

```
aws ssm start-automation-execution \
    --document-name AWS-DeleteSnapshot \
    --targets Key=tag:Name,Values=January2018Backups \
    --target-parameter-name VolumeId
```

## Penargetan AWS Resource Groups
<a name="target-resource-groups"></a>

Anda dapat menentukan grup AWS sumber daya tunggal sebagai target otomatisasi. Systems Manager menciptakan otomatisasi anak untuk setiap objek dalam Grup Sumber Daya target.

Misalnya, katakan bahwa salah satu Resource Groups Anda bernama PatchedAMIs. Kelompok sumber daya ini mencakup daftar 25 Windows Amazon Machine Images (AMIs) yang di-patch secara rutin. Jika Anda menjalankan otomatisasi yang menggunakan `AWS-CreateManagedWindowsInstance` runbook dan menargetkan Resource Groups ini, kemudian Systems Manager menciptakan otomatisasi anak untuk masing-masing 25 AMIs. Ini berarti, bahwa dengan menargetkan Grup AMIs Sumber Daya Patched, otomatisasi membuat 25 instance dari daftar tambalan. AMIs Otomatisasi induk selesai ketika semua otomatisasi anak menyelesaikan pemrosesan atau mencapai keadaan akhir.

 AWS CLI Perintah berikut berlaku untuk contoh Patch AMIs Resource Group. Perintah mengambil *AmiId*parameter untuk `--target-parameter-name` opsi. Perintah tidak termasuk parameter tambahan yang menentukan jenis instans untuk dibuat dari masing-masing AMI. Default `AWS-CreateManagedWindowsInstance` runbook ke jenis instans t2.medium, jadi perintah ini akan membuat 25 instans Amazon EC2 t2.medium untuk Windows Server.

```
aws ssm start-automation-execution \
    --document-name AWS-CreateManagedWindowsInstance \
    --targets Key=ResourceGroup,Values=PatchedAMIs  \
    --target-parameter-name AmiId
```

Contoh konsol berikut menggunakan Resource Group yang disebut t2-micro-instances.

![\[Menargetkan grup AWS sumber daya dengan otomatisasi Systems Manager\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/images/automation-rate-control-resource-groups-new.png)


## Menanrgetkan nilai parameter
<a name="target-parameter-values"></a>

Anda juga dapat menargetkan nilai parameter. Anda memasukkan `ParameterValues` sebagai kunci dan kemudian memasukkan nilai sumber daya tertentu agar otomatisasi dapat berjalan. Jika Anda menentukan beberapa nilai, Systems Manager menjalankan otomatisasi anak pada setiap nilai yang ditentukan.

Sebagai contoh, katakan bahwa runbook Anda mencakup parameter **InstanceID**. Jika Anda menargetkan nilai-nilai parameter **InstanceID** ketika menjalankan otomatisasi, Systems Manager menjalankan otomatisasi anak untuk setiap nilai ID instans yang ditentukan. Otomatisasi induk selesai ketika otomatisasi selesai menjalankan setiap instans tertentu, atau jika otomatisasi gagal. Anda dapat menargetkan maksimum 50 nilai parameter.

Contoh berikut menggunakan `AWS-CreateImage` runbook. Nama parameter target yang ditentukan adalah *InstanceId*. Kegunaan kuncinya *ParameterValues*. Nilainya adalah dua instans Amazon EC2. IDs Perintah ini menciptakan otomatisasi untuk setiap instans, yang menghasilkan AMI dari setiap instans. 

```
aws ssm start-automation-execution 
    --document-name AWS-CreateImage \
    --target-parameter-name InstanceId \
    --targets Key=ParameterValues,Values=i-02573cafcfEXAMPLE,i-0471e04240EXAMPLE
```

**catatan**  
`AutomationAssumeRole` bukan parameter yang valid. Jangan memilih item ini ketika menjalankan otomatisasi yang menargetkan nilai parameter.

### Menargetkan peta nilai parameter
<a name="target-maps"></a>

Pilihan `TargetMaps` memperluas kemampuan Anda untuk menargetkan `ParameterValues`. Anda dapat memasukkan array nilai parameter dengan menggunakan `TargetMaps` di baris perintah. Anda dapat menentukan maksimum 50 nilai parameter pada baris perintah. Jika Anda ingin menjalankan perintah yang menentukan lebih dari 50 nilai parameter, maka Anda dapat memasukkan nilai-nilai dalam file JSON. Anda kemudian dapat memanggil file dari baris perintah.

**catatan**  
Pilihan `TargetMaps` tidak didukung di konsol.

Gunakan format berikut untuk menentukan beberapa nilai parameter dengan menggunakan `TargetMaps` pilihan dalam perintah. Ganti masing-masing *example resource placeholder* dengan informasi Anda sendiri.

```
aws ssm start-automation-execution \
    --document-name runbook name \
    --target-maps “parameter=value, parameter 2=value, parameter 3=value”  “parameter 4=value, parameter 5=value, parameter 6=value”
```

Jika Anda ingin memasukkan lebih dari 50 nilai parameter untuk `TargetMaps` pilihan, tentukan nilai dalam file menggunakan format JSON berikut. Menggunakan file JSON juga meningkatkan pembacaan ketika memberikan beberapa nilai parameter.

```
[

    {“parameter”: "value", “parameter 2”: "value", “parameter 3”: "value"},

    {“parameter 4”: "value", “parameter 5”: "value", "parameter 6": "value"}

]
```

Simpan file dengan ekstensi file .json. Anda dapat membuat daftar file dengan menggunakan perintah berikut. Ganti masing-masing *example resource placeholder* dengan informasi Anda sendiri.

```
aws ssm start-automation-execution \
    --document-name runbook name \
    –-parameters input parameters \
    --target-maps path to file/file name.json
```

Anda juga dapat mengunduh file dari bucket Amazon Simple Storage Service (Amazon S3), selama Anda memiliki izin untuk membaca data dari bucket. Gunakan format perintah berikut. Ganti masing-masing *example resource placeholder* dengan informasi Anda sendiri.

```
aws ssm start-automation-execution \
    --document-name runbook name \
    --target-maps http://amzn-s3-demo-bucket.s3.amazonaws.com/file_name.json
```

Berikut adalah contoh skenario untuk membantu Anda memahami `TargetMaps` pilihan. Dalam skenario ini, pengguna ingin membuat instans Amazon EC2 dari berbagai jenis dari yang berbeda AMIs. Untuk melakukan tugas ini, pengguna menciptakan runbook bernama AMI\$1testing. Runbook ini mendefinisikan dua parameter input: `instanceType` dan `imageId`. 

```
{
  "description": "AMI Testing",
  "schemaVersion": "0.3",
  "assumeRole": "{{assumeRole}}",
  "parameters": {
    "assumeRole": {
      "type": "String",
      "description": "Role under which to run the automation",
      "default": ""
    },
    "instanceType": {
      "type": "String",
      "description": "Type of EC2 Instance to launch for this test"
    },
    "imageId": {
      "type": "String",
      "description": "Source AMI id from which to run instance"
    }
  },
  "mainSteps": [
    {
      "name": "runInstances",
      "action": "aws:runInstances",
      "maxAttempts": 1,
      "onFailure": "Abort",
      "inputs": {
        "ImageId": "{{imageId}}",
        "InstanceType": "{{instanceType}}",
        "MinInstanceCount": 1,
        "MaxInstanceCount": 1
      }
    }
  ],
  "outputs": [
    "runInstances.InstanceIds"
  ]
}
```

Pengguna kemudian menentukan nilai parameter target berikut dalam sebuah file bernama `AMI_instance_types.json`.

```
[
  {
    "instanceType" : ["t2.micro"],     
    "imageId" : ["ami-b70554c8"]     
  },
  {
    "instanceType" : ["t2.small"],     
    "imageId" : ["ami-b70554c8"]     
  },
  {
    "instanceType" : ["t2.medium"],     
    "imageId" : ["ami-cfe4b2b0"]     
  },
  {
    "instanceType" : ["t2.medium"],     
    "imageId" : ["ami-cfe4b2b0"]     
  },
  {
    "instanceType" : ["t2.medium"],     
    "imageId" : ["ami-cfe4b2b0"]     
  }
]
```

Pengguna dapat menjalankan otomatisasi dan membuat lima instans EC2 yang didefinisikan dalam `AMI_instance_types.json` dengan menjalankan perintah berikut.

```
aws ssm start-automation-execution \
    --document-name AMI_Testing \
    --target-parameter-name imageId \
    --target-maps file:///home/TestUser/workspace/runinstances/AMI_instance_types.json
```

## Menargetkan semua instans Amazon EC2
<a name="target-all-instances"></a>

**Anda dapat menjalankan otomatisasi pada semua instans Amazon EC2 saat ini Akun AWS dan Wilayah AWS dengan memilih **Semua instans** dalam daftar Target.** **Misalnya, jika Anda ingin memulai ulang semua instans Amazon EC2 Anda Akun AWS dan saat ini Wilayah AWS, Anda dapat memilih `AWS-RestartEC2Instance` runbook lalu memilih **Semua instans** dari daftar Target.**

![\[Menargetkan semua instans Amazon EC2 untuk runbook\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/images/automation-rate-control-target-all-instances.png)


Setelah Anda memilih **Semua instans**, Systems Manager mengisi **Instans** dengan tanda bintang (\$1) dan membuat bidang tidak dapat diubah (bidang berwarna abu-abu). Systems Manager juga membuat **InstanceId**bidang di bidang **parameter Input** tidak tersedia untuk perubahan. Membuat bidang ini tidak dapat diubah adalah perilaku yang diharapkan jika Anda memilih untuk menargetkan semua instans.

# Kontrol otomatisasi dalam skala besar
<a name="running-automations-scale-controls"></a>

Anda dapat mengontrol penyebaran otomatisasi di seluruh armada AWS sumber daya dengan menentukan nilai konkurensi dan ambang kesalahan. Fitur konkurensi dan fitur ambang batas kesalahan secara kolektif disebut *pengendalian rate*.

**Bersamaan**  
Gunakan Konkurensi untuk menentukan berapa banyak sumber daya yang diizinkan untuk menjalankan otomatisasi secara bersamaan. Konkurensi membantu untuk membatasi dampak atau downtime pada sumber daya Anda saat memproses otomatisasi. Anda dapat menentukan jumlah sumber daya absolut, misalnya 20, atau persentase target yang ditetapkan, misalnya 10%.

Sistem antrean memberikan otomatisasi ke sumber daya tunggal dan menunggu sampai penanganan awal selesai sebelum mengirim otomatisasi ke dua sumber daya lagi. Sistem secara eksponensial mengirimkan otomatisasi ke lebih banyak sumber daya sampai nilai konkurensi terpenuhi.

**Ambang batas kesalahan**  
Gunakan ambang kesalahan untuk menentukan berapa banyak otomatisasi yang diizinkan gagal sebelum AWS Systems Manager berhenti mengirim otomatisasi ke sumber daya lain. Anda dapat menentukan jumlah sumber daya absolut, misalnya 10, atau persentase target yang ditetapkan, misalnya 10%.

Jika Anda menentukan jumlah absolut dari 3 kesalahan, misalnya, sistem berhenti menjalankan otomatisasi saat kesalahan keempat diterima. Jika Anda menentukan 0, maka sistem berhenti menjalankan otomatisasi pada target tambahan setelah hasil kesalahan pertama dikembalikan.

Jika Anda mengirim otomatisasi ke, misalnya, 50 instans dan mengatur ambang batas kesalahan 10%, sistem berhenti mengirim perintah ke instans tambahan ketika kesalahan kelima diterima. Pemanggilan yang sudah menjalankan otomatisasi ketika ambang batas kesalahan tercapai bisa diselesaikan, tetapi beberapa otomatisasi ini mungkin juga akan gagal. Jika Anda ingin memastikan bahwa tidak akan ada lebih banyak kesalahan daripada nomor yang ditentukan untuk ambang batas kesalahan, atur nilai **Konkurensi** ke 1 sehingga otomatisasi melanjutkan satu per satu. 

# Menjalankan otomatisasi di beberapa Wilayah AWS dan akun
<a name="running-automations-multiple-accounts-regions"></a>

Anda dapat menjalankan AWS Systems Manager otomatisasi di beberapa unit Wilayah AWS dan Akun AWS atau AWS Organizations organisasi (OUs) dari akun pusat. Otomasi adalah alat dalam AWS Systems Manager. Menjalankan otomatisasi di beberapa Wilayah dan akun atau OUs mengurangi waktu yang diperlukan untuk mengelola AWS sumber daya Anda sekaligus meningkatkan keamanan lingkungan komputasi Anda.

Misalnya, Anda dapat melakukan hal berikut dengan menggunakan runbook otomatisasi:
+ Menerapkan patching dan pembaruan keamanan secara terpusat.
+ Memulihkan penyimpangan kepatuhan pada konfigurasi VPC atau kebijakan bucket Amazon S3.
+ Kelola sumber daya, seperti instans Amazon Elastic Compute Cloud (Amazon EC2) EC2, dalam skala besar.

Diagram berikut menunjukkan contoh pengguna yang menjalankan `AWS-RestartEC2Instances` runbook di beberapa Wilayah dan akun dari akun pusat. Otomatisasi menempatkan instance dengan menggunakan tag yang ditentukan di Wilayah dan akun yang ditargetkan.

![\[Ilustrasi yang menampilkan Otomatisasi Systems Manager berjalan di beberapa wilayah dan beberapa akun.\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/images/automation-multi-region-and-multi-account.png)


**Pilih akun pusat untuk Otomasi**  
Jika Anda ingin menjalankan otomatisasi di seluruh OUs, akun pusat harus memiliki izin untuk mencantumkan semua akun di akun. OUs Ini hanya dimungkinkan dari akun administrator yang didelegasikan, atau akun manajemen organisasi. Kami menyarankan Anda mengikuti praktik AWS Organizations terbaik dan menggunakan akun administrator yang didelegasikan. Untuk informasi selengkapnya tentang praktik AWS Organizations [terbaik, lihat Praktik terbaik untuk akun manajemen](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_best-practices_mgmt-acct.html) di *Panduan AWS Organizations Pengguna*. Untuk membuat akun administrator yang didelegasikan untuk Systems Manager, Anda dapat menggunakan `register-delegated-administrator` perintah dengan AWS CLI seperti yang ditunjukkan pada contoh berikut.

```
aws organizations register-delegated-administrator \
    --account-id delegated admin account ID \
    --service-principal ssm.amazonaws.com
```

Jika Anda ingin menjalankan otomatisasi di beberapa akun yang tidak dikelola oleh AWS Organizations, sebaiknya buat akun khusus untuk manajemen otomatisasi. Menjalankan semua otomatisasi lintas akun dari akun khusus menyederhanakan manajemen izin IAM, upaya pemecahan masalah, dan menciptakan lapisan pemisahan antara operasi dan administrasi. Pendekatan ini juga disarankan jika Anda menggunakan AWS Organizations, tetapi hanya ingin menargetkan akun individu dan tidak OUs.

**Cara kerja menjalankan otomatisasi**  
Menjalankan otomatisasi di beberapa Wilayah dan akun atau OUs berfungsi sebagai berikut:

1. Masuk ke akun yang ingin Anda konfigurasikan sebagai akun pusat Otomasi.

1. Gunakan [Menyiapkan izin akun manajemen untuk otomatisasi multi-wilayah dan multi-akun](#setup-management-account-iam-roles) prosedur dalam topik ini untuk membuat peran IAM berikut:
   + `AWS-SystemsManager-AutomationAdministrationRole`- Peran ini memberikan izin pengguna untuk menjalankan otomatisasi di beberapa akun dan OUs.
   + `AWS-SystemsManager-AutomationExecutionRole`- Peran ini memberikan izin pengguna untuk menjalankan otomatisasi di akun yang ditargetkan.

1. Pilih runbook, Wilayah, dan akun atau OUs di mana Anda ingin menjalankan otomatisasi.
**catatan**  
Pastikan target OU berisi akun yang diinginkan. Jika Anda memilih runbook khusus, runbook harus dibagikan dengan semua akun target. Untuk informasi tentang berbagi runbook, lihat[Membagikan dokumen SSM](documents-ssm-sharing.md). Untuk informasi tentang menggunakan runbook bersama, lihat [Menggunakan dokumen SSM bersama](documents-ssm-sharing.md#using-shared-documents).

1. Jalankan otomatisasi.

1. Gunakan [GetAutomationExecution](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetAutomationExecution.html), [DescribeAutomationStepExecutions](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribeAutomationStepExecutions.html), dan operasi [DescribeAutomationExecutions](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribeAutomationExecutions.html)API dari AWS Systems Manager konsol atau AWS CLI untuk memantau kemajuan otomatisasi. Output langkah-langkah untuk otomatisasi di akun utama Anda akan menjadi `AutomationExecutionId` dari otomatisasi anak. Untuk melihat output otomatisasi anak yang dibuat di akun target Anda, pastikan untuk menentukan akun yang sesuai, Wilayah, dan `AutomationExecutionId` dalam permintaan Anda.

## Menyiapkan izin akun manajemen untuk otomatisasi multi-wilayah dan multi-akun
<a name="setup-management-account-iam-roles"></a>

Gunakan prosedur berikut untuk membuat IAM role yang diperlukan untuk otomatisasi mulati Wilayah dan multi akun Otomatisasi Systems Manager dengan menggunakan AWS CloudFormation. Prosedur ini menjelaskan cara membuat `AWS-SystemsManager-AutomationAdministrationRole` peran. Anda hanya perlu membuat peran ini di akun pusat Otomasi. Prosedur ini juga menjelaskan cara membuat `AWS-SystemsManager-AutomationExecutionRole` peran. Anda harus membuat peran ini dalam *setiap* akun yang ingin Anda targetkan untuk menjalankan otomatisasi multi-wilayah dan multi-akun. Sebaiknya gunakan CloudFormation StackSets untuk membuat `AWS-SystemsManager-AutomationExecutionRole` peran di akun yang ingin Anda targetkan untuk menjalankan otomatisasi Multi-wilayah dan multi-akun.

**Untuk membuat peran administrasi IAM yang diperlukan untuk otomatisasi Multi-wilayah dan multi-akun dengan menggunakan CloudFormation**

1. Unduh dan unzip file. [https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/AWS-SystemsManager-AutomationAdministrationRole.zip](https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/AWS-SystemsManager-AutomationAdministrationRole.zip)

   -atau-

   Jika akun Anda dikelola oleh AWS Organizations [https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/AWS-SystemsManager-AutomationAdministrationRole (org).zip](https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/AWS-SystemsManager-AutomationAdministrationRole (org).zip).

   File-file ini berisi file `AWS-SystemsManager-AutomationAdministrationRole.yaml` dan `AWS-SystemsManager-AutomationAdministrationRole (org).yaml` CloudFormation template, masing-masing.

1. Buka CloudFormation konsol di [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Pilih **Buat tumpukan**.

1. Di bagian **Tentukan templat**, pilih **Unggah templat**.

1. Pilih **Pilih file**, lalu pilih file `AWS-SystemsManager-AutomationAdministrationRole.yaml` atau `AWS-SystemsManager-AutomationAdministrationRole (org).yaml` CloudFormation templat, tergantung pada pilihan Anda di langkah 1.

1. Pilih **Berikutnya**.

1. Di halaman **Tentukan detail tumpukan**, di bidang **Nama tumpukan**, masukkan nama. 

1. Pilih **Berikutnya**.

1. Pada halaman **Configure stack options**, masukkan nilai untuk opsi apa pun yang ingin Anda gunakan. Pilih **Berikutnya**.

1. Pada halaman **Ulasan**, gulir ke bawah dan pilih opsi **Saya akui yang CloudFormation mungkin membuat sumber daya IAM dengan nama khusus**.

1. Pilih **Buat tumpukan**.

CloudFormation menunjukkan status **CREATE\$1IN\$1PROGRESS** selama kurang lebih tiga menit. Perubahan status menjadi **CREATE\$1COMPLETE**.

Anda harus mengulangi prosedur berikut di *setiap* akun yang ingin Anda targetkan untuk menjalankan otomatisasi Multi-wilayah dan multi-akun.

**Untuk membuat peran otomatisasi IAM yang diperlukan untuk otomatisasi Multi-wilayah dan multi-akun dengan menggunakan CloudFormation**

1. Unduh [https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/AWS-SystemsManager-AutomationExecutionRole.zip](https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/AWS-SystemsManager-AutomationExecutionRole.zip).

   -atau

   Jika akun Anda dikelola oleh AWS Organizations [https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/AWS-SystemsManager-AutomationExecutionRole (org).zip](https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/AWS-SystemsManager-AutomationExecutionRole (org).zip).

   File-file ini berisi file `AWS-SystemsManager-AutomationExecutionRole.yaml` dan `AWS-SystemsManager-AutomationExecutionRole (org).yaml`CloudFormation template, masing-masing.

1. Buka CloudFormation konsol di [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Pilih **Buat tumpukan**.

1. Di bagian **Tentukan templat**, pilih **Unggah templat**.

1. Pilih **Pilih file**, lalu pilih file `AWS-SystemsManager-AutomationExecutionRole.yaml` atau `AWS-SystemsManager-AutomationExecutionRole (org).yaml` CloudFormation templat, tergantung pada pilihan Anda di langkah 1.

1. Pilih **Berikutnya**.

1. Di halaman **Tentukan detail tumpukan**, di bidang **Nama tumpukan**, masukkan nama. 

1. Di bagian **Parameter**, di **AdminAccountId**lapangan, masukkan ID untuk akun pusat otomatisasi.

1. Jika Anda menyiapkan peran ini untuk AWS Organizations lingkungan, ada bidang lain di bagian yang disebut **organizationId**. Masukkan ID AWS organisasi Anda.

1. Pilih **Berikutnya**.

1. Pada halaman **Configure stack options**, masukkan nilai untuk opsi apa pun yang ingin Anda gunakan. Pilih **Berikutnya**.

1. Pada halaman **Ulasan**, gulir ke bawah dan pilih opsi **Saya akui yang CloudFormation mungkin membuat sumber daya IAM dengan nama khusus**.

1. Pilih **Buat tumpukan**.

CloudFormation menunjukkan status **CREATE\$1IN\$1PROGRESS** selama kurang lebih tiga menit. Perubahan status menjadi **CREATE\$1COMPLETE**.

## Jalankan otomatisasi di beberapa Wilayah dan akun (konsol)
<a name="multiple-console"></a>

Prosedur berikut menjelaskan cara menggunakan konsol Systems Manager untuk menjalankan otomatisasi di beberapa Wilayah dan akun dari akun manajemen otomatisasi.

**Sebelum Anda memulai**  
Sebelum Anda menyelesaikan prosedur berikut, perhatikan informasi berikut:
+ Pengguna atau peran yang Anda gunakan untuk menjalankan otomatisasi Multi-wilayah atau multi-akun harus memiliki `iam:PassRole` izin untuk peran tersebut`AWS-SystemsManager-AutomationAdministrationRole`.
+ Akun AWS IDs atau OUs di mana Anda ingin menjalankan otomatisasi.
+ [Wilayah yang didukung oleh Systems Manager](https://docs.aws.amazon.com/general/latest/gr/ssm.html#ssm_region) tempat Anda ingin menjalankan otomatisasi.
+ Kunci tag dan nilai tag, atau nama grup sumber daya, di mana Anda ingin menjalankan otomatisasi.

**Menjalankan otomatisasi di beberapa Wilayah dan akun**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Otomatisasi**, lalu pilih **Eksekusi otomatisasi**.

1. Di daftar **Dokumen otomatisasi**, pilih runbook. Pilih satu opsi atau lebih di panel **Kategori dokumen** untuk memfilter dokumen SSM sesuai dengan tujuannya. Untuk melihat runbook yang Anda miliki, pilih tab **Dimiliki oleh saya**. Untuk melihat runbook yang dibagikan dengan akun Anda, pilih tab **Dibagikan dengan saya**. Untuk melihat semua runbook, pilih tab **Semua dokumen**.
**catatan**  
Anda dapat melihat informasi tentang runbook dengan memilih nama runbook.

1. Di bagian **Detail dokumen**, verifikasi bahwa **Versi dokumen** diatur ke versi yang ingin Anda jalankan. Sistem ini termasuk pilihan versi berikut: 
   + **Versi default saat runtime** — Pilih opsi ini jika runbook Otomasi diperbarui secara berkala dan versi default baru ditetapkan.
   + **Versi terbaru saat runtime** — Pilih opsi ini jika runbook Otomasi diperbarui secara berkala, dan Anda ingin menjalankan versi yang terbaru diperbarui.
   + **1 (Default)** - Pilih opsi ini untuk menjalankan versi pertama dokumen, yang merupakan default.

1. Pilih **Berikutnya**.

1. Pada halaman **Eksekusi dokumen otomatisasi**, pilih **Multi-Akun dan Wilayah**.

1. Di bagian **Target account dan Regions**, gunakan bidang **Accounts, organization units (OUs), dan root** untuk menentukan unit yang berbeda Akun AWS atau AWS organisasi (OUs) tempat Anda ingin menjalankan otomatisasi. Pisahkan beberapa akun atau OUs dengan koma. 

   1. (Opsional) Pilih OUs kotak centang **Sertakan anak** untuk menyertakan semua unit organisasi anak dalam yang ditentukan OUs.

   1. (Opsional) Di bidang **Kecualikan akun dan unit organisasi (OUs)**, masukkan daftar akun IDs dan OU yang dipisahkan koma IDs yang ingin Anda kecualikan dari entitas yang diperluas yang dimasukkan di atas.

1. Gunakan daftar **Wilayah** untuk memilih satu atau beberapa Wilayah tempat Anda ingin menjalankan otomatisasi.

1. Gunakan pilihan **Kontrol tarif multi Wilayah dan akun** untuk membatasi otomatisasi ke sejumlah akun yang berjalan di sejumlah Wilayah. Pilihan ini tidak membatasi jumlah AWS sumber daya yang dapat menjalankan otomatisasi. 

   1. Di bagian **Lokasi (pasangan wilayah akun) konkurensi**, pilih opsi untuk membatasi jumlah otomatisasi yang dapat berjalan di beberapa akun dan Wilayah secara bersamaan. Misalnya, jika Anda memilih untuk menjalankan otomatisasi dalam lima (5) Akun AWS, yang terletak di empat (4) Wilayah AWS, maka Systems Manager menjalankan otomatisasi dalam total 20 pasangan Account-region. Anda dapat menggunakan opsi ini untuk menentukan jumlah absolut, seperti **2**, sehingga otomatisasi hanya berjalan dalam dua pasangan akun-wilayah pada waktu yang sama. Atau Anda dapat menentukan persentase pasangan Wilayah-akun yang dapat berjalan pada waktu yang sama. Misalnya, dengan 20 pasangan wilayah akun, jika Anda menentukan 20%, maka otomatisasi secara bersamaan menjalankan maksimal lima (5) pasangan wilayah akun. 
      + Pilih **target** untuk memasukkan jumlah target absolut pasangan akun-Wilayah yang dapat menjalankan otomatisasi secara bersamaan.
      + Pilih **persen** untuk memasukkan persentase dari jumlah total pasangan wilayah yang dapat menjalankan otomatisasi secara bersamaan.

   1. Di bagian **Ambang kesalahan**, pilih satu opsi:
      + Pilih **kesalahan** untuk memasukkan jumlah kesalahan absolut yang diizinkan sebelum Otomatisasi berhenti mengirim otomatisasi ke sumber daya lainnya.
      + Pilih **persen** untuk memasukkan persentase kesalahan yang diizinkan sebelum Otomatisasi berhenti mengirim otomatisasi ke sumber daya lainnya.

1. Di bagian **Target**, pilih bagaimana Anda ingin menargetkan AWS sumber daya tempat Anda ingin menjalankan otomatisasi. Pilihan ini diperlukan.

   1. Gunakan daftar **Parameter** untuk memilih parameter. Item dalam daftar **Parameter** ditentukan oleh parameter di Runbook otomatisasi yang Anda pilih pada awal prosedur ini. Dengan memilih parameter, Anda menentukan jenis sumber daya di mana alur kerja otomatisasi berjalan. 

   1. Gunakan daftar **Target** untuk memilih cara Anda menargetkan sumber daya.

      1. Jika Anda ingin menargetkan sumber daya dengan menggunakan nilai parameter, masukkan nilai parameter untuk parameter yang Anda pilih di bagian **Parameter input**.

      1. Jika Anda memilih untuk menargetkan sumber daya dengan menggunakan AWS Resource Groups, maka pilih nama grup dari daftar **Grup Sumber Daya**.

      1. Jika Anda memilih untuk menargetkan sumber daya dengan menggunakan tag, masukkan kunci tag dan nilai tag dalam bidang yang disediakan (opsional). Pilih **Tambahkan**.

      1. Jika Anda ingin menjalankan runbook Otomasi pada semua instance saat ini Akun AWS dan Wilayah AWS, lalu pilih **Semua** instance.

1. Di bagian **Parameter input,** tentukan input yang diperlukan. Pilih peran layanan `AWS-SystemsManager-AutomationAdministrationRole` IAM dari **AutomationAssumeRole**daftar.
**catatan**  
Anda mungkin tidak perlu memilih beberapa opsi di bagian **Parameter input**. Hal ini karena Anda menargetkan sumber daya di beberapa wilayah dan akun dengan menggunakan tag atau grup sumber daya. Misalnya, jika Anda memilih `AWS-RestartEC2Instance` runbook, maka Anda tidak perlu menentukan atau memilih instance IDs di bagian **Parameter input**. Otomatisasi menempatkan instans untuk memulai ulang dengan menggunakan tag yang Anda tentukan. 

1. (Opsional) Pilih CloudWatch alarm untuk diterapkan ke otomatisasi Anda untuk pemantauan. Untuk memasang CloudWatch alarm ke otomatisasi Anda, prinsip IAM yang memulai otomatisasi harus memiliki izin untuk `iam:createServiceLinkedRole` tindakan tersebut. Untuk informasi selengkapnya tentang CloudWatch alarm, lihat [Menggunakan CloudWatch alarm Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html). Perhatikan bahwa jika alarm Anda aktif, otomatisasi dibatalkan dan `OnCancel` langkah apa pun yang telah Anda tetapkan dijalankan. Jika Anda menggunakan AWS CloudTrail, Anda akan melihat panggilan API di jejak Anda.

1. Gunakan opsi di bagian **Kontrol tarif** untuk membatasi jumlah AWS sumber daya yang dapat menjalankan Otomasi dalam setiap pasangan Account-region. 

   Di bagian **Konkurensi**, pilih satu opsi: 
   + Pilih **target** untuk memasukkan jumlah absolut target yang dapat menjalankan alur kerja otomatisasi secara bersamaan.
   + Pilih **persentase** untuk memasukkan persentase dari set target yang dapat menjalankan alur kerja otomatisasi secara bersamaan.

1. Di bagian **Ambang kesalahan**, pilih satu opsi:
   + Pilih **kesalahan** untuk memasukkan jumlah kesalahan absolut yang diizinkan sebelum Otomatisasi berhenti mengirim alur kerja ke sumber daya lainnya.
   + Pilih **persentase** untuk memasukkan persentase kesalahan absolut yang diizinkan sebelum Otomatisasi berhenti mengirim alur kerja ke sumber daya lainnya.

1. Pilih **Eksekusi**.

Setelah eksekusi otomatisasi selesai, Anda dapat menjalankan kembali eksekusi dengan parameter yang sama atau dimodifikasi. Untuk informasi selengkapnya, lihat [Menjalankan ulang eksekusi otomatisasi](automation-rerun-executions.md).

## Jalankan otomatisasi di beberapa Wilayah dan akun (baris perintah)
<a name="multiple-cli"></a>

Prosedur berikut menjelaskan cara menggunakan AWS CLI (di Linux atau Windows) atau Alat AWS untuk PowerShell menjalankan otomatisasi di beberapa Wilayah dan akun dari akun manajemen Otomasi.

**Sebelum Anda mulai**  
Sebelum Anda menyelesaikan prosedur berikut, perhatikan informasi berikut:
+ Akun AWS IDs atau OUs di mana Anda ingin menjalankan otomatisasi.
+ [Wilayah yang didukung oleh Systems Manager](https://docs.aws.amazon.com/general/latest/gr/ssm.html#ssm_region) tempat Anda ingin menjalankan otomatisasi.
+ Kunci tag dan nilai tag, atau nama grup sumber daya, di mana Anda ingin menjalankan otomatisasi.

**Menjalankan otomatisasi di beberapa Wilayah dan akun**

1. Instal dan konfigurasikan AWS CLI atau Alat AWS untuk PowerShell, jika Anda belum melakukannya.

   Untuk selengkapnya, lihat [Menginstal atau memperbarui versi terbaru AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) dan [Menginstal Alat AWS untuk PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html).

1. Gunakan format berikut untuk membuat perintah untuk menjalankan otomatisasi di beberapa wilayah dan akun. Ganti masing-masing *example resource placeholder* dengan informasi Anda sendiri.

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
           --document-name runbook name \
           --parameters AutomationAssumeRole=arn:aws:iam::management account ID:role/AWS-SystemsManager-AutomationAdministrationRole \
           --target-parameter-name parameter name \
           --targets Key=tag key,Values=value \
           --target-locations Accounts=account ID,account ID 2,Regions=Region,Region 2,ExecutionRoleName=AWS-SystemsManager-AutomationExecutionRole
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
           --document-name runbook name ^
           --parameters AutomationAssumeRole=arn:aws:iam::management account ID:role/AWS-SystemsManager-AutomationAdministrationRole ^
           --target-parameter-name parameter name ^
           --targets Key=tag key,Values=value ^
           --target-locations Accounts=account ID,account ID 2,Regions=Region,Region 2,ExecutionRoleName=AWS-SystemsManager-AutomationExecutionRole
   ```

------
#### [ PowerShell ]

   ```
   $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target
       $Targets.Key = "tag key"
       $Targets.Values = "value"
       
       Start-SSMAutomationExecution `
           -DocumentName "runbook name" `
           -Parameter @{
           "AutomationAssumeRole"="arn:aws:iam::management account ID:role/AWS-SystemsManager-AutomationAdministrationRole" } `
           -TargetParameterName "parameter name" `
           -Target $Targets `
           -TargetLocation @{
           "Accounts"="account ID","account ID 2";
           "Regions"="Region","Region 2";
           "ExecutionRoleName"="AWS-SystemsManager-AutomationExecutionRole" }
   ```

------

**Contoh: Menjalankan otomatisasi di beberapa Wilayah dan akun**  
Berikut ini adalah contoh yang menunjukkan cara menggunakan AWS CLI dan PowerShell menjalankan otomatisasi di beberapa akun dan Wilayah dengan satu perintah.

   **Contoh 1**: Contoh ini memulai ulang instans EC2 di tiga Wilayah di seluruh organisasi. AWS Organizations Ini dicapai dengan menargetkan ID root organisasi, dan termasuk anak OUs.

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
           --document-name "AWS-RestartEC2Instance" \
           --target-parameter-name InstanceId \
           --targets '[{"Key":"AWS::EC2::Instance","Values":["*"]}]' \
           --target-locations '[{
               "Accounts": ["r-example"],
               "IncludeChildOrganizationUnits": true,
               "Regions": ["us-east-1", "us-east-2", "us-west-2"]
           }]'
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution \
           --document-name "AWS-RestartEC2Instance" ^
           --target-parameter-name InstanceId ^
           --targets '[{"Key":"AWS::EC2::Instance","Values":["*"]}]' ^
           --target-locations '[{
               "Accounts": ["r-example"],
               "IncludeChildOrganizationUnits": true,
               "Regions": ["us-east-1", "us-east-2", "us-west-2"]
           }]'
   ```

------
#### [ PowerShell ]

   ```
   Start-SSMAutomationExecution `
           -DocumentName "AWS-RestartEC2Instance" `
           -TargetParameterName "InstanceId" `
           -Targets '[{"Key":"AWS::EC2::Instance","Values":["*"]}]'
           -TargetLocation @{
               "Accounts"="r-example";
               "Regions"="us-east-1", "us-east-2", "us-west-2";
               "IncludeChildOrganizationUnits"=true}
   ```

------

   **Contoh 2**: Contoh ini memulai ulang instans EC2 tertentu di akun dan Wilayah yang berbeda.
**catatan**  
`TargetLocationMaxConcurrency`Opsi ini tersedia menggunakan AWS CLI dan AWS SDKs.

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
           --document-name "AWS-RestartEC2Instance" \
           --target-parameter-name InstanceId \
           --target-locations '[{
               "Accounts": ["123456789012"],
               "Targets": [{
                   "Key":"ParameterValues",
                   "Values":["i-02573cafcfEXAMPLE", "i-0471e04240EXAMPLE"]
               }],
               "TargetLocationMaxConcurrency": "100%",
               "Regions": ["us-east-1"]
           }, {
               "Accounts": ["987654321098"],
               "Targets": [{
                   "Key":"ParameterValues",
                   "Values":["i-07782c72faEXAMPLE"]
               }],
               "TargetLocationMaxConcurrency": "100%",
               "Regions": ["us-east-2"]
           }]'
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
           --document-name "AWS-RestartEC2Instance" ^
           --target-parameter-name InstanceId ^
           --target-locations '[{
               "Accounts": ["123456789012"],
               "Targets": [{
                   "Key":"ParameterValues",
                   "Values":["i-02573cafcfEXAMPLE", "i-0471e04240EXAMPLE"]
               }],
               "TargetLocationMaxConcurrency": "100%",
               "Regions": ["us-east-1"]
           }, {
               "Accounts": ["987654321098"],
               "Targets": [{
                   "Key":"ParameterValues",
                   "Values":["i-07782c72faEXAMPLE"]
               }],
               "TargetLocationMaxConcurrency": "100%",
               "Regions": ["us-east-2"]
           }]'
   ```

------
#### [ PowerShell ]

   ```
   Start-SSMAutomationExecution `
           -DocumentName "AWS-RestartEC2Instance" `
           -TargetParameterName "InstanceId" `
           -Targets '[{"Key":"AWS::EC2::Instance","Values":["*"]}]'
           -TargetLocation @({
               "Accounts"="123456789012",
               "Targets"= @{
                   "Key":"ParameterValues",
                   "Values":["i-02573cafcfEXAMPLE", "i-0471e04240EXAMPLE"]
               },
               "TargetLocationMaxConcurrency"="100%",
               "Regions"=["us-east-1"]
           }, {
               "Accounts"="987654321098",
               "Targets": @{
                   "Key":"ParameterValues",
                   "Values":["i-07782c72faEXAMPLE"]
               },
               "TargetLocationMaxConcurrency": "100%",
               "Regions"=["us-east-2"]
           })
   ```

------

   **Contoh 3**: Contoh ini menunjukkan menentukan beberapa Akun AWS dan Wilayah di mana otomatisasi harus dijalankan menggunakan opsi. `--target-locations-url` Nilai untuk opsi ini harus berupa file JSON di URL Amazon [S3 presigned](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-presigned-url.html) yang dapat diakses publik.
**catatan**  
`--target-locations-url`tersedia saat menggunakan AWS CLI dan AWS SDKs.

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
       --document-name "MyCustomAutomationRunbook" \
       --target-locations-url "https://amzn-s3-demo-bucket.s3.amazonaws.com/target-locations.json"
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
       --document-name "MyCustomAutomationRunbook" ^
       --target-locations-url "https://amzn-s3-demo-bucket.s3.amazonaws.com/target-locations.json"
   ```

------
#### [ PowerShell ]

   ```
   Start-SSMAutomationExecution `
       -DocumentName "MyCustomAutomationRunbook" `
       -TargetLocationsUrl "https://amzn-s3-demo-bucket.s3.amazonaws.com/target-locations.json"
   ```

------

   Contoh konten untuk file JSON:

   ```
   [
   { 
            "Accounts": [ "123456789012", "987654321098", "456789123012" ],
            "ExcludeAccounts": [ "111222333444", "999888444666" ],
            "ExecutionRoleName": "MyAutomationExecutionRole",
            "IncludeChildOrganizationUnits": true,
            "Regions": [ "us-east-1", "us-west-2", "ap-south-1", "ap-northeast-1" ],
            "Targets": ["Key": "AWS::EC2::Instance", "Values": ["i-2"]],
            "TargetLocationMaxConcurrency": "50%",
            "TargetLocationMaxErrors": "10",
            "TargetsMaxConcurrency": "20",
            "TargetsMaxErrors": "12"
    }
   ]
   ```

   **Contoh 4**: Contoh ini memulai ulang instans EC2 di `987654321098` akun `123456789012` dan, yang terletak di dan Wilayah. `us-east-2` `us-west-1` Instans harus ditandai dengan nilai pasangan kunci `Env-PROD`.

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
           --document-name AWS-RestartEC2Instance \
           --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/AWS-SystemsManager-AutomationAdministrationRole \
           --target-parameter-name InstanceId \
           --targets Key=tag:Env,Values=PROD \
           --target-locations Accounts=123456789012,987654321098,Regions=us-east-2,us-west-1,ExecutionRoleName=AWS-SystemsManager-AutomationExecutionRole
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
           --document-name AWS-RestartEC2Instance ^
           --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/AWS-SystemsManager-AutomationAdministrationRole ^
           --target-parameter-name InstanceId ^
           --targets Key=tag:Env,Values=PROD ^
           --target-locations Accounts=123456789012,987654321098,Regions=us-east-2,us-west-1,ExecutionRoleName=AWS-SystemsManager-AutomationExecutionRole
   ```

------
#### [ PowerShell ]

   ```
   $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target
       $Targets.Key = "tag:Env"
       $Targets.Values = "PROD"
       
       Start-SSMAutomationExecution `
           -DocumentName "AWS-RestartEC2Instance" `
           -Parameter @{
           "AutomationAssumeRole"="arn:aws:iam::123456789012:role/AWS-SystemsManager-AutomationAdministrationRole" } `
           -TargetParameterName "InstanceId" `
           -Target $Targets `
           -TargetLocation @{
           "Accounts"="123456789012","987654321098";
           "Regions"="us-east-2","us-west-1";
           "ExecutionRoleName"="AWS-SystemsManager-AutomationExecutionRole" }
   ```

------

   **Contoh 5**: Contoh ini memulai ulang instans EC2 di `987654321098` akun `123456789012` dan, yang terletak di Wilayah. `eu-central-1` Contoh harus menjadi anggota grup `prod-instances` AWS sumber daya.

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
           --document-name AWS-RestartEC2Instance \
           --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/AWS-SystemsManager-AutomationAdministrationRole \
           --target-parameter-name InstanceId \
           --targets Key=ResourceGroup,Values=prod-instances \
           --target-locations Accounts=123456789012,987654321098,Regions=eu-central-1,ExecutionRoleName=AWS-SystemsManager-AutomationExecutionRole
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
           --document-name AWS-RestartEC2Instance ^
           --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/AWS-SystemsManager-AutomationAdministrationRole ^
           --target-parameter-name InstanceId ^
           --targets Key=ResourceGroup,Values=prod-instances ^
           --target-locations Accounts=123456789012,987654321098,Regions=eu-central-1,ExecutionRoleName=AWS-SystemsManager-AutomationExecutionRole
   ```

------
#### [ PowerShell ]

   ```
   $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target
       $Targets.Key = "ResourceGroup"
       $Targets.Values = "prod-instances"
       
       Start-SSMAutomationExecution `
           -DocumentName "AWS-RestartEC2Instance" `
           -Parameter @{
           "AutomationAssumeRole"="arn:aws:iam::123456789012:role/AWS-SystemsManager-AutomationAdministrationRole" } `
           -TargetParameterName "InstanceId" `
           -Target $Targets `
           -TargetLocation @{
           "Accounts"="123456789012","987654321098";
           "Regions"="eu-central-1";
           "ExecutionRoleName"="AWS-SystemsManager-AutomationExecutionRole" }
   ```

------

   **Contoh 6**: Contoh ini memulai ulang instans EC2 di unit `ou-1a2b3c-4d5e6c` AWS organisasi (OU). Instans terletak di `us-west-1` dan `us-west-2` Wilayah. Contoh harus menjadi anggota grup `WebServices` AWS sumber daya.

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
           --document-name AWS-RestartEC2Instance \
           --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/AWS-SystemsManager-AutomationAdministrationRole \
           --target-parameter-name InstanceId \
           --targets Key=ResourceGroup,Values=WebServices \
           --target-locations Accounts=ou-1a2b3c-4d5e6c,Regions=us-west-1,us-west-2,ExecutionRoleName=AWS-SystemsManager-AutomationExecutionRole
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
           --document-name AWS-RestartEC2Instance ^
           --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/AWS-SystemsManager-AutomationAdministrationRole ^
           --target-parameter-name InstanceId ^
           --targets Key=ResourceGroup,Values=WebServices ^
           --target-locations Accounts=ou-1a2b3c-4d5e6c,Regions=us-west-1,us-west-2,ExecutionRoleName=AWS-SystemsManager-AutomationExecutionRole
   ```

------
#### [ PowerShell ]

   ```
   $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target
       $Targets.Key = "ResourceGroup"
       $Targets.Values = "WebServices"
       
       Start-SSMAutomationExecution `
           -DocumentName "AWS-RestartEC2Instance" `
           -Parameter @{
           "AutomationAssumeRole"="arn:aws:iam::123456789012:role/AWS-SystemsManager-AutomationAdministrationRole" } `
           -TargetParameterName "InstanceId" `
           -Target $Targets `
           -TargetLocation @{
           "Accounts"="ou-1a2b3c-4d5e6c";
           "Regions"="us-west-1";
           "ExecutionRoleName"="AWS-SystemsManager-AutomationExecutionRole" }
   ```

------

   Sistem mengembalikan informasi seperti berikut ini.

------
#### [ Linux & macOS ]

   ```
   {
           "AutomationExecutionId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE"
       }
   ```

------
#### [ Windows ]

   ```
   {
           "AutomationExecutionId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE"
       }
   ```

------
#### [ PowerShell ]

   ```
   4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE
   ```

------

1. Jalankan perintah berikut untuk menampilkan detail otomatisasi. Ganti *automation execution ID* dengan informasi Anda sendiri.

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-automation-executions \
           --filters Key=ExecutionId,Values=automation execution ID
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-automation-executions ^
           --filters Key=ExecutionId,Values=automation execution ID
   ```

------
#### [ PowerShell ]

   ```
   Get-SSMAutomationExecutionList | `
           Where {$_.AutomationExecutionId -eq "automation execution ID"}
   ```

------

1. Jalankan perintah berikut untuk melihat detail tentang kemajuan otomatisasi.

------
#### [ Linux & macOS ]

   ```
   aws ssm get-automation-execution \
           --automation-execution-id 4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE
   ```

------
#### [ Windows ]

   ```
   aws ssm get-automation-execution ^
           --automation-execution-id 4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE
   ```

------
#### [ PowerShell ]

   ```
   Get-SSMAutomationExecution `
           -AutomationExecutionId a4a3c0e9-7efd-462a-8594-01234EXAMPLE
   ```

------
**catatan**  
Anda juga dapat memantau status otomatisasi di konsol. Di daftar **Eksekusi otomatisasi**, pilih otomatisasi yang baru Anda jalankan dan kemudian pilih tab **Langkah eksekusi**. Tab ini menampilkan status tindakan otomatisasi.

**Info lebih lanjut**  
[Penambalan multi-akun dan Multi-wilayah terpusat dengan Otomasi AWS Systems Manager](https://aws.amazon.com/blogs/mt/centralized-multi-account-and-multi-region-patching-with-aws-systems-manager-automation/)

# Jalankan otomatisasi berdasarkan peristiwa EventBridge
<a name="running-automations-event-bridge"></a>

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 *BootStrapInstances*yang menginstal perangkat lunak pada sebuah instance ketika sebuah instance dimulai. Untuk menentukan *BootStrapInstances*runbook (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 *BootStrapInstances*runbook 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](automation-documents.md).

## Membuat EventBridge acara yang menggunakan runbook (konsol)
<a name="automation-cwe-target-console"></a>

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/](https://console.aws.amazon.com/events/).

1. Di panel navigasi, pilih **Aturan**.

1. Pilih **Buat aturan**.

1. 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.

1. 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.

1. Pilih bagaimana aturan dipicu.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/running-automations-event-bridge.html)

1. Pilih **Berikutnya**.

1. Untuk **Jenis target**, pilih **Layanan AWS **.

1. Untuk **Pilih target**, pilih **Systems Manager Automation**. 

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

1. 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.

1. 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:

------
#### [ JSON ]

****  

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

------

1. Pilih **Berikutnya**.

1. (Opsional) Masukkan satu atau lebih tanda untuk aturan. Untuk informasi selengkapnya, lihat [Menandai EventBridge Sumber Daya Amazon Anda](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-tagging.html) di *Panduan EventBridge Pengguna Amazon*.

1. Pilih **Berikutnya**.

1. Tinjau detail aturan dan pilih **Buat aturan**.

## Buat EventBridge acara yang menggunakan runbook (baris perintah)
<a name="automation-cwe-target-commandline"></a>

Prosedur berikut menjelaskan cara menggunakan AWS CLI (di Linux atau Windows) atau Alat AWS untuk 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 Alat AWS untuk PowerShell, jika Anda belum melakukannya.

   Untuk selengkapnya, lihat [Menginstal atau memperbarui versi terbaru AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) dan [Menginstal Alat AWS untuk PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html).

1. Buat perintah untuk menentukan aturan EventBridge acara baru. Ganti masing-masing *example resource placeholder* 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
   ```

------

1. Buat perintah untuk menentukan runbook sebagai target aturan EventBridge acara yang Anda buat di langkah 2. Ganti masing-masing *example resource placeholder* 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":"{\"Message\":[\"{\\\"Key\\\":\\\"key name\\\",\\\"Values\\\":[\\\"value\\\"]}\"]}","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":"{\"Message\":[\"{\\\"Key\\\":\\\"key name\\\",\\\"Values\\\":[\\\"value\\\"]}\"]}","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 runbook`AWS-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

------

# Jalankan otomatisasi langkah demi langkah
<a name="automation-working-executing-manually"></a>

Prosedur berikut menjelaskan cara menggunakan AWS Systems Manager konsol dan AWS Command Line Interface (AWS CLI) untuk menjalankan otomatisasi menggunakan mode eksekusi manual. Dengan menggunakan mode eksekusi manual, otomatisasi dimulai dalam status *Menunggu* dan berhenti sebentar dalam status *Menunggu* di antara setiap langkah. Hal ini memungkinkan Anda untuk mengontrol kapan otomatisasi berlangsung, yang berguna jika Anda perlu meninjau hasil langkah sebelum melanjutkan.

Otomatisasi berjalan dalam konteks pengguna saat ini. Ini berarti bahwa Anda tidak perlu mengkonfigurasi izin IAM tambahan selama Anda memiliki izin untuk menggunakan runbook, dan tindakan apa pun yang disebut oleh runbook. Jika Anda memiliki izin administrator di IAM, maka Anda sudah memiliki izin untuk menjalankan otomatisasi ini.

## Menjalankan otomatisasi langkah demi langkah (konsol)
<a name="automation-working-executing-manually-console"></a>

Prosedur berikut menjelaskan cara menggunakan konsol Systems Manager untuk menjalankan otomatisasi langkah demi langkah.

**Untuk menjalankan otomatisasi langkah demi langkah**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Otomatisasi**, lalu pilih **Eksekusi otomatisasi**.

1. Di daftar **Dokumen otomatisasi**, pilih runbook. Pilih satu opsi atau lebih di panel **Kategori dokumen** untuk memfilter dokumen SSM sesuai dengan tujuannya. Untuk melihat runbook yang Anda miliki, pilih tab **Dimiliki oleh saya**. Untuk melihat runbook yang dibagikan dengan akun Anda, pilih tab **Dibagikan dengan saya**. Untuk melihat semua runbook, pilih tab **Semua dokumen**.
**catatan**  
Anda dapat melihat informasi tentang runbook dengan memilih nama runbook.

1. Di bagian **Detail dokumen**, verifikasi bahwa **Versi dokumen** diatur ke versi yang ingin Anda jalankan. Sistem ini termasuk pilihan versi berikut: 
   + **Versi default saat runtime** — Pilih opsi ini jika runbook Otomasi diperbarui secara berkala dan versi default baru ditetapkan.
   + **Versi terbaru saat runtime** — Pilih opsi ini jika runbook Otomasi diperbarui secara berkala, dan Anda ingin menjalankan versi yang terbaru diperbarui.
   + **1 (Default)** - Pilih opsi ini untuk menjalankan versi pertama dokumen, yang merupakan default.

1. Pilih **Berikutnya**.

1. Di bagian **Mode eksekusi**, pilih **Eksekusi manual**.

1. Di bagian **Parameter input,** tentukan input yang diperlukan. Secara opsional, Anda dapat memilih peran layanan IAM dari daftar. **AutomationAssumeRole**

1. Pilih **Eksekusi**. 

1. Pilih **Eksekusi langkah ini** saat Anda siap memulai langkah otomatisasi pertama. Otomatisasi dimulai dengan langkah satu dan berhenti sebelum menjalankan langkah-langkah berikutnya yang ditentukan dalam runbook yang Anda pilih pada langkah 3 prosedur ini. Jika runbook memiliki beberapa langkah, Anda harus memilih **Eksekusi langkah ini** untuk setiap langkah otomatisasi guna melanjutkan. Setiap kali Anda memilih **Eksekusi langkah ini** tindakan berjalan.
**catatan**  
Konsol menampilkan status otomatisasi. Jika otomatisasi gagal untuk menjalankan langkah, lihat [Pemecahan masalah Otomatisasi Systems Manager](automation-troubleshooting.md).

1. Setelah Anda menyelesaikan semua langkah yang ditentukan dalam runbook, pilih **Selesaikan dan lihat hasil** untuk menyelesaikan otomatisasi dan melihat hasilnya.

Setelah eksekusi otomatisasi selesai, Anda dapat menjalankan kembali eksekusi dengan parameter yang sama atau dimodifikasi. Untuk informasi selengkapnya, lihat [Menjalankan ulang eksekusi otomatisasi](automation-rerun-executions.md).

## Menjalankan otomatisasi langkah demi langkah (baris perintah)
<a name="automation-working-executing-manually-commandline"></a>

Prosedur berikut menjelaskan cara menggunakan AWS CLI (di Linux,macOS, atau Windows) atau Alat AWS untuk PowerShell secara manual menjalankan otomatisasi langkah demi langkah.

**Untuk menjalankan otomatisasi langkah demi langkah**

1. Instal dan konfigurasikan AWS CLI atau Alat AWS untuk PowerShell, jika Anda belum melakukannya.

   Untuk selengkapnya, lihat [Menginstal atau memperbarui versi terbaru AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) dan [Menginstal Alat AWS untuk PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html).

1. Jalankan perintah berikut untuk memulai otomatisasi manual. Ganti masing-masing *example resource placeholder* dengan informasi Anda sendiri.

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
       --document-name runbook name \
       --mode Interactive \
       --parameters runbook parameters
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
       --document-name runbook name ^
       --mode Interactive ^
       --parameters runbook parameters
   ```

------
#### [ PowerShell ]

   ```
   Start-SSMAutomationExecution `
       -DocumentName runbook name `
       -Mode Interactive `
       -Parameter runbook parameters
   ```

------

   Berikut adalah contoh menggunakan runbook `AWS-RestartEC2Instance` untuk memulai ulang instans EC2 tertentu.

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
       --document-name "AWS-RestartEC2Instance" \
       --mode Interactive \
       --parameters "InstanceId=i-02573cafcfEXAMPLE"
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
       --document-name "AWS-RestartEC2Instance" ^
       --mode Interactive ^
       --parameters "InstanceId=i-02573cafcfEXAMPLE"
   ```

------
#### [ PowerShell ]

   ```
   Start-SSMAutomationExecution `
       -DocumentName AWS-RestartEC2Instance `
       -Mode Interactive 
       -Parameter @{"InstanceId"="i-02573cafcfEXAMPLE"}
   ```

------

   Sistem mengembalikan informasi seperti berikut.

------
#### [ Linux & macOS ]

   ```
   {
       "AutomationExecutionId": "ba9cd881-1b36-4d31-a698-0123456789ab"
   }
   ```

------
#### [ Windows ]

   ```
   {
       "AutomationExecutionId": "ba9cd881-1b36-4d31-a698-0123456789ab"
   }
   ```

------
#### [ PowerShell ]

   ```
   ba9cd881-1b36-4d31-a698-0123456789ab
   ```

------

1. Jalankan perintah berikut bila Anda siap untuk memulai langkah pertama otomatisasi. Ganti masing-masing *example resource placeholder* dengan informasi Anda sendiri. Otomatisasi dimulai dengan langkah satu dan berhenti sebelum menjalankan langkah-langkah berikutnya yang ditentukan dalam runbook yang Anda pilih pada langkah 1 prosedur ini. Jika runbook memiliki beberapa langkah, Anda harus menjalankan perintah berikut untuk setiap otomatisasi guna melanjutkan.

------
#### [ Linux & macOS ]

   ```
   aws ssm send-automation-signal \
       --automation-execution-id ba9cd881-1b36-4d31-a698-0123456789ab \
       --signal-type StartStep \
       --payload StepName="stopInstances"
   ```

------
#### [ Windows ]

   ```
   aws ssm send-automation-signal ^
       --automation-execution-id ba9cd881-1b36-4d31-a698-0123456789ab ^
       --signal-type StartStep ^
       --payload StepName="stopInstances"
   ```

------
#### [ PowerShell ]

   ```
   Send-SSMAutomationSignal `
       -AutomationExecutionId ba9cd881-1b36-4d31-a698-0123456789ab `
       -SignalType StartStep 
       -Payload @{"StepName"="stopInstances"}
   ```

------

   Jika perintah berhasil, tidak ada output yang akan ditampilkan.

1. Jalankan perintah berikut untuk mengambil status setiap eksekusi langkah dalam otomatisasi.

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-automation-step-executions \
       --automation-execution-id ba9cd881-1b36-4d31-a698-0123456789ab
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-automation-step-executions ^
       --automation-execution-id ba9cd881-1b36-4d31-a698-0123456789ab
   ```

------
#### [ PowerShell ]

   ```
   Get-SSMAutomationStepExecution `
       -AutomationExecutionId ba9cd881-1b36-4d31-a698-0123456789ab
   ```

------

   Sistem mengembalikan informasi seperti berikut.

------
#### [ Linux & macOS ]

   ```
   {
       "StepExecutions": [
           {
               "StepName": "stopInstances",
               "Action": "aws:changeInstanceState",
               "ExecutionStartTime": 1557167178.42,
               "ExecutionEndTime": 1557167220.617,
               "StepStatus": "Success",
               "Inputs": {
                   "DesiredState": "\"stopped\"",
                   "InstanceIds": "[\"i-02573cafcfEXAMPLE\"]"
               },
               "Outputs": {
                   "InstanceStates": [
                       "stopped"
                   ]
               },
               "StepExecutionId": "654243ba-71e3-4771-b04f-0123456789ab",
               "OverriddenParameters": {},
               "ValidNextSteps": [
                   "startInstances"
               ]
           },
           {
               "StepName": "startInstances",
               "Action": "aws:changeInstanceState",
               "ExecutionStartTime": 1557167273.754,
               "ExecutionEndTime": 1557167480.73,
               "StepStatus": "Success",
               "Inputs": {
                   "DesiredState": "\"running\"",
                   "InstanceIds": "[\"i-02573cafcfEXAMPLE\"]"
               },
               "Outputs": {
                   "InstanceStates": [
                       "running"
                   ]
               },
               "StepExecutionId": "8a4a1e0d-dc3e-4039-a599-0123456789ab",
               "OverriddenParameters": {}
           }
       ]
   }
   ```

------
#### [ Windows ]

   ```
   {
       "StepExecutions": [
           {
               "StepName": "stopInstances",
               "Action": "aws:changeInstanceState",
               "ExecutionStartTime": 1557167178.42,
               "ExecutionEndTime": 1557167220.617,
               "StepStatus": "Success",
               "Inputs": {
                   "DesiredState": "\"stopped\"",
                   "InstanceIds": "[\"i-02573cafcfEXAMPLE\"]"
               },
               "Outputs": {
                   "InstanceStates": [
                       "stopped"
                   ]
               },
               "StepExecutionId": "654243ba-71e3-4771-b04f-0123456789ab",
               "OverriddenParameters": {},
               "ValidNextSteps": [
                   "startInstances"
               ]
           },
           {
               "StepName": "startInstances",
               "Action": "aws:changeInstanceState",
               "ExecutionStartTime": 1557167273.754,
               "ExecutionEndTime": 1557167480.73,
               "StepStatus": "Success",
               "Inputs": {
                   "DesiredState": "\"running\"",
                   "InstanceIds": "[\"i-02573cafcfEXAMPLE\"]"
               },
               "Outputs": {
                   "InstanceStates": [
                       "running"
                   ]
               },
               "StepExecutionId": "8a4a1e0d-dc3e-4039-a599-0123456789ab",
               "OverriddenParameters": {}
           }
       ]
   }
   ```

------
#### [ PowerShell ]

   ```
   Action: aws:changeInstanceState
   ExecutionEndTime     : 5/6/2019 19:45:46
   ExecutionStartTime   : 5/6/2019 19:45:03
   FailureDetails       : 
   FailureMessage       : 
   Inputs               : {[DesiredState, "stopped"], [InstanceIds, ["i-02573cafcfEXAMPLE"]]}
   IsCritical           : False
   IsEnd                : False
   MaxAttempts          : 0
   NextStep             : 
   OnFailure            : 
   Outputs              : {[InstanceStates, Amazon.Runtime.Internal.Util.AlwaysSendList`1[System.String]]}
   OverriddenParameters : {}
   Response             : 
   ResponseCode         : 
   StepExecutionId      : 8fcc9641-24b7-40b3-a9be-0123456789ab
   StepName             : stopInstances
   StepStatus           : Success
   TimeoutSeconds       : 0
   ValidNextSteps       : {startInstances}
   ```

------

1. Jalankan perintah berikut untuk menyelesaikan otomatisasi setelah semua langkah yang ditentukan dalam runbook yang dipilih telah selesai. Ganti masing-masing *example resource placeholder* dengan informasi Anda sendiri.

------
#### [ Linux & macOS ]

   ```
   aws ssm stop-automation-execution \
       --automation-execution-id ba9cd881-1b36-4d31-a698-0123456789ab \
       --type Complete
   ```

------
#### [ Windows ]

   ```
   aws ssm stop-automation-execution ^
       --automation-execution-id ba9cd881-1b36-4d31-a698-0123456789ab ^
       --type Complete
   ```

------
#### [ PowerShell ]

   ```
   Stop-SSMAutomationExecution `
       -AutomationExecutionId ba9cd881-1b36-4d31-a698-0123456789ab `
       -Type Complete
   ```

------

   Tidak ada output jika perintah berhasil.

# Menjadwalkan otomatisasi dengan asosiasi State Manager
<a name="scheduling-automations-state-manager-associations"></a>

Anda dapat memulai otomatisasi dengan membuat State Manager asosiasi dengan runbook. State Manageradalah alat di AWS Systems Manager. Dengan membuat State Manager asosiasi dengan runbook, Anda dapat menargetkan berbagai jenis AWS sumber daya. Misalnya, Anda dapat membuat asosiasi yang menerapkan status yang diinginkan pada AWS sumber daya, termasuk yang berikut ini:
+ Lampirkan peran Systems Manager untuk instans Amazon Elastic Compute Cloud (Amazon EC2) untuk membuatnya menjadi *instans terkelola*.
+ Tegakkan masuk dan keluarnya aturan yang diinginkan untuk grup keamanan.
+ Buat atau hapus backup Amazon DynamoDB.
+ Buat atau hapus snapshot Amazon Elastic Block Store (Amazon EBS).
+ Matikan izin baca dan tulis di bucket Amazon Simple Storage Service (Amazon S3).
+ Mulai, mulai ulang, atau hentikan instans terkelola dan instans Amazon Relational Database Service (Amazon RDS).
+ Terapkan patch ke Linux, macOS, dan Window AMIs.

Gunakan prosedur berikut untuk membuat State Manager asosiasi yang menjalankan otomatisasi menggunakan AWS Systems Manager konsol dan AWS Command Line Interface (AWS CLI). Untuk informasi umum tentang asosiasi dan informasi tentang membuat asosiasi yang menggunakan `Command` dokumen atau `Policy` dokumen SSM, lihat[Membuat asosiasi](state-manager-associations-creating.md).

**Sebelum Anda mulai**  
Perhatikan detail penting berikut sebelum Anda menjalankan otomatisasi dengan menggunakanState Manager:
+ Sebelum Anda dapat membuat asosiasi yang menggunakan runbook, verifikasi bahwa Anda mengonfigurasi izin untuk Otomasi, alat di dalamnya. AWS Systems Manager Untuk informasi selengkapnya, lihat [Menyiapkan Otomatisasi](automation-setup.md).
+ State Managerasosiasi yang menggunakan runbook berkontribusi pada jumlah maksimum otomatisasi yang berjalan secara bersamaan di Anda. Akun AWS Anda dapat memiliki maksimum 100 otomatisasi yang berjalan bersamaan. Untuk selengkapnya, lihat [kuota layanan Systems Manager](https://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) di bagian. *Referensi Umum Amazon Web Services*
+ Saat menjalankan otomatisasi, State Manager tidak mencatat operasi API yang diprakarsai oleh otomatisasi di AWS CloudTrail.
+ Systems Manager secara otomatis membuat peran terkait layanan sehingga State Manager memiliki izin untuk memanggil operasi Systems Manager Automation API. Jika mau, Anda dapat membuat peran terkait layanan sendiri dengan menjalankan perintah berikut dari or. AWS CLI Alat AWS untuk PowerShell

------
#### [ Linux & macOS ]

  ```
  aws iam create-service-linked-role \
  --aws-service-name ssm.amazonaws.com
  ```

------
#### [ Windows ]

  ```
  aws iam create-service-linked-role ^
  --aws-service-name ssm.amazonaws.com
  ```

------
#### [ PowerShell ]

  ```
  New-IAMServiceLinkedRole `
  -AWSServiceName ssm.amazonaws.com
  ```

------

  Untuk informasi selengkapnya tentang peran terkait layanan, lihat [Menggunakan peran terkait layanan untuk Systems Manager](using-service-linked-roles.md).

## Mewujudkan asosiasi yang menjalankan otomatisasi (konsol)
<a name="create-automation-association-console"></a>

Prosedur berikut menjelaskan cara menggunakan konsol Systems Manager untuk membuat State Manager asosiasi yang menjalankan otomatisasi.

**Untuk membuat State Manager asosiasi yang menjalankan otomatisasi**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **State Manager**, lalu pilih **Buat asosiasi**.

1. Di bidang **Nama**, tentukan nama. Ini memang opsional, tetapi direkomendasikan.

1. Di daftar **Dokumen**, pilih runbook. Gunakan bilah Pencarian untuk memfilter **Jenis dokumen: Sama : Otomasi** runbook. Untuk melihat lebih banyak runbook, gunakan angka di sebelah kanan bilah Pencarian. 
**catatan**  
Anda dapat melihat informasi tentang runbook dengan memilih nama runbook.

1. Pilih **Eksekusi sederhana** untuk menjalankan otomatisasi pada satu target atau lebih dengan menentukan ID sumber daya untuk target tersebut. Pilih **Rate control** untuk menjalankan otomatisasi di seluruh armada AWS sumber daya dengan menentukan opsi penargetan seperti tag atau. AWS Resource Groups Anda juga dapat mengontrol pengoperasian otomatisasi di seluruh sumber daya Anda dengan menentukan konkurensi dan ambang batas kesalahan.

   Jika Anda memilih **Pengendalian rate**, bagian **Target** akan ditampilkan.

1. Di bagian **Target**, pilih metode untuk menargetkan sumber daya.

   1. (Diperlukan) Gunakan daftar **Parameter** untuk memilih parameter. Item dalam daftar **Parameter** ditentukan oleh parameter di runbook yang Anda pilih pada awal prosedur ini. Dengan memilih parameter, Anda menentukan jenis sumber daya tempat alur kerja otomatisasi berjalan. 

   1. (Diperlukan) Dalam daftar **Target**, pilih metode untuk menargetkan sumber daya.
      + **Grup Sumber Daya**: Pilih nama grup dari daftar **Grup Sumber Daya**. Untuk informasi selengkapnya tentang penargetan AWS Resource Groups di runbook, lihat. [Penargetan AWS Resource Groups](running-automations-map-targets.md#target-resource-groups)
      + **Tag**: Masukkan kunci tag dan nilai tag di bidang yang disediakan (opsional). Pilih **Tambahkan**. Untuk informasi lebih lanjut tentang penargetan tag di runbook, lihat [Menargetkan tag](running-automations-map-targets.md#target-tags).
      + **Nilai Parameter**: Masukkan nilai dalam bagian **Parameter input**. Jika Anda menentukan beberapa nilai, Systems Manager menjalankan otomatisasi anak pada setiap nilai yang ditentukan.

        Sebagai contoh, katakan bahwa runbook Anda mencakup parameter **InstanceID**. Jika Anda menargetkan nilai-nilai parameter **InstanceID** ketika menjalankan otomatisasi, Systems Manager menjalankan otomatisasi anak untuk setiap nilai ID instans yang ditentukan. Otomatisasi induk selesai ketika otomatisasi selesai menjalankan setiap instans tertentu, atau jika otomatisasi gagal. Anda dapat menargetkan maksimum 50 nilai parameter. Untuk informasi selengkapnya tentang nilai parameter penargetan dalam runbook, lihat [Menanrgetkan nilai parameter](running-automations-map-targets.md#target-parameter-values).

1. Di bagian **Parameter input,** tentukan parameter input yang diperlukan.

   Jika Anda memilih untuk menargetkan sumber daya dengan menggunakan tag atau grup sumber daya, maka Anda mungkin tidak perlu memilih beberapa opsi di bagian **Parameter input**. Misalnya, jika Anda memilih `AWS-RestartEC2Instance` runbook, dan Anda memilih untuk menargetkan instance dengan menggunakan tag, maka Anda tidak perlu menentukan atau memilih instance IDs di bagian **Parameter input**. Otomatisasi menempatkan instans untuk memulai ulang dengan menggunakan tag yang Anda tentukan. 
**penting**  
Anda harus menentukan peran ARN di lapangan. **AutomationAssumeRole** State Managermenggunakan peran asumsi untuk memanggil Layanan AWS yang ditentukan dalam buku runbook dan menjalankan asosiasi Otomasi atas nama Anda.

1. Di bagian **Tentukan jadwal**, pilih **Sesuai jadwal** jika Anda ingin menjalankan asosiasi secara berkala. Jika Anda memilih opsi ini, gunakan opsi yang disediakan untuk membuat jadwal menggunakan ekspresi Cron atau Rate. Untuk informasi selengkapnya tentang ekspresi Cron dan RateState Manager, lihat[Ekspresi cron dan rate untuk associate](reference-cron-and-rate-expressions.md#reference-cron-and-rate-expressions-association). 
**catatan**  
Ekspresi tingkat adalah mekanisme penjadwalan yang disukai untuk State Manager asosiasi yang menggunakan runbook. Ekspresi laju memungkinkan lebih banyak fleksibilitas untuk menjalankan asosiasi dalam hal bahwa Anda mencapai jumlah konkurensi maksimum yang menjalankan otomatisasi. Dengan jadwal laju, Systems Manager dapat kembali mencoba otomatisasi setelah menerima pemberitahuan bahwa otomatisasi bersamaan telah mencapai batas maksimumnya dan telah dicekal.

   Pilih **Tidak ada jadwal** jika Anda ingin menjalankan asosiasi satu kali. 

1. (Opsional) Di bagian **Rate Control**, pilih opsi **Concurrency** dan **Error threshold** untuk mengontrol penerapan otomatisasi di seluruh sumber daya Anda AWS .

   1. Di bagian **Konkurensi**, pilih satu opsi: 
      + Pilih **target** untuk memasukkan jumlah target absolut yang dapat menjalankan otomatisasi secara bersamaan.
      + Pilih **persentase** untuk memasukkan persentase set target yang dapat menjalankan alur kerja otomatisasi secara bersamaan.

   1. Di bagian **Ambang kesalahan**, pilih satu opsi:
      + Pilih **kesalahan** untuk memasukkan jumlah kesalahan absolut yang diizinkan sebelum Otomatisasi berhenti mengirim otomatisasi ke sumber daya lainnya.
      + Pilih **persentase** untuk memasukkan persentase kesalahan absolut yang diizinkan sebelum Otomatisasi berhenti mengirim otomatisasi ke sumber daya lainnya.

   Untuk informasi selengkapnya tentang target dan kontrol tarif dengan Otomatisasi, lihat [Jalankan operasi otomatis pada skala](running-automations-scale.md).

1. Pilih **Buat Asosiasi**. 
**penting**  
Bila Anda membuat asosiasi, asosiasi tersebut segera berjalan melawan target yang ditentukan. Asosiasi kemudian berjalan berdasarkan ekspresi cron atau laju yang Anda pilih. Jika Anda memilih **Tidak ada jadwal**, asosiasi tidak berjalan lagi.

## Mewujudkan asosiasi yang menjalankan otomatisasi (baris perintah)
<a name="create-automation-association-cli"></a>

Prosedur berikut menjelaskan cara menggunakan AWS CLI (di Linux atauWindows Server) atau Alat AWS untuk PowerShell untuk membuat State Manager asosiasi yang menjalankan otomatisasi.

**Sebelum Anda mulai**  
Sebelum Anda menyelesaikan prosedur berikut, pastikan Anda telah membuat peran layanan IAM yang berisi izin yang diperlukan untuk menjalankan runbook, dan mengonfigurasi hubungan kepercayaan untuk Otomasi, alat di dalamnya. AWS Systems Manager Untuk informasi selengkapnya, lihat [Tugas 1: Buat peran layanan untuk otomatisasi](automation-setup-iam.md#create-service-role).

**Untuk membuat asosiasi yang menjalankan otomatisasi**

1. Instal dan konfigurasikan AWS CLI atau Alat AWS untuk PowerShell, jika Anda belum melakukannya.

   Untuk selengkapnya, lihat [Menginstal atau memperbarui versi terbaru AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) dan [Menginstal Alat AWS untuk PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html).

1. Jalankan perintah berikut untuk menandai dokumen.

------
#### [ Linux & macOS ]

   ```
   aws ssm list-documents
   ```

------
#### [ Windows ]

   ```
   aws ssm list-documents
   ```

------
#### [ PowerShell ]

   ```
   Get-SSMDocumentList
   ```

------

   Perhatikan nama runbook yang ingin Anda gunakan untuk asosiasi.

1. Jalankan perintah berikut untuk menampilkan detail tentang runbook. Dalam perintah berikut, ganti *runbook name* dengan informasi Anda sendiri.

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-document \
   --name runbook name
   ```

   Catat nama parameter (misalnya, `InstanceId`) yang ingin Anda gunakan untuk `--automation-target-parameter-name` pilihan. Parameter ini menentukan jenis sumber daya di mana otomatisasi berjalan.

------
#### [ Windows ]

   ```
   aws ssm describe-document ^
   --name runbook name
   ```

   Catat nama parameter (misalnya, `InstanceId`) yang ingin Anda gunakan untuk `--automation-target-parameter-name` pilihan. Parameter ini menentukan jenis sumber daya di mana otomatisasi berjalan.

------
#### [ PowerShell ]

   ```
   Get-SSMDocumentDescription `
   -Name runbook name
   ```

   Catat nama parameter (misalnya, `InstanceId`) yang ingin Anda gunakan untuk `AutomationTargetParameterName` pilihan. Parameter ini menentukan jenis sumber daya di mana otomatisasi berjalan.

------

1. Buat perintah yang menjalankan otomatisasi menggunakan State Manager asosiasi. Ganti masing-masing *example resource placeholder* dengan informasi Anda sendiri.

   *Penargetan menggunakan tag*

------
#### [ Linux & macOS ]

   ```
   aws ssm create-association \
   --association-name association name \
   --targets Key=tag:key name,Values=value \
   --name runbook name \
   --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/RunbookAssumeRole \
   --automation-target-parameter-name target parameter \
   --schedule "cron or rate expression"
   ```

**catatan**  
Jika Anda membuat asosiasi dengan menggunakan AWS CLI, gunakan `--targets` parameter untuk menargetkan instance untuk asosiasi. Jangan gunakan `--instance-id` parameter. Parameter `--instance-id` adalah parameter warisan. 

------
#### [ Windows ]

   ```
   aws ssm create-association ^
   --association-name association name ^
   --targets Key=tag:key name,Values=value ^
   --name runbook name ^
   --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/RunbookAssumeRole ^
   --automation-target-parameter-name target parameter ^
   --schedule "cron or rate expression"
   ```

**catatan**  
Jika Anda membuat asosiasi dengan menggunakan AWS CLI, gunakan `--targets` parameter untuk menargetkan instance untuk asosiasi. Jangan gunakan `--instance-id` parameter. Parameter `--instance-id` adalah parameter warisan. 

------
#### [ PowerShell ]

   ```
   $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target
   $Targets.Key = "tag:key name"
   $Targets.Values = "value"
   
   New-SSMAssociation `
   -AssociationName "association name" `
   -Target $Targets `
   -Name "runbook name" `
   -Parameters @{
   "AutomationAssumeRole"="arn:aws:iam::123456789012:role/RunbookAssumeRole" } `
   -AutomationTargetParameterName "target parameter" `
   -ScheduleExpression "cron or rate expression"
   ```

**catatan**  
Jika Anda membuat asosiasi dengan menggunakan Alat AWS untuk PowerShell, gunakan `Target` parameter untuk menargetkan instance untuk asosiasi. Jangan gunakan `InstanceId` parameter. Parameter `InstanceId` adalah parameter warisan. 

------

   *Penargetan menggunakan nilai parameter*

------
#### [ Linux & macOS ]

   ```
   aws ssm create-association \
   --association-name association name \
   --targets Key=ParameterValues,Values=value,value 2,value 3 \
   --name runbook name \
   --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/RunbookAssumeRole \
   --automation-target-parameter-name target parameter \
   --schedule "cron or rate expression"
   ```

------
#### [ Windows ]

   ```
   aws ssm create-association ^
   --association-name association name ^
   --targets Key=ParameterValues,Values=value,value 2,value 3 ^
   --name runbook name ^
   --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/RunbookAssumeRole ^
   --automation-target-parameter-name target parameter ^
   --schedule "cron or rate expression"
   ```

------
#### [ PowerShell ]

   ```
   $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target
   $Targets.Key = "ParameterValues"
   $Targets.Values = "value","value 2","value 3"
   
   New-SSMAssociation `
   -AssociationName "association name" `
   -Target $Targets `
   -Name "runbook name" `
   -Parameters @{
   "AutomationAssumeRole"="arn:aws:iam::123456789012:role/RunbookAssumeRole"} `
   -AutomationTargetParameterName "target parameter" `
   -ScheduleExpression "cron or rate expression"
   ```

------

   *Penargetan menggunakan AWS Resource Groups*

------
#### [ Linux & macOS ]

   ```
   aws ssm create-association \
   --association-name association name \
   --targets Key=ResourceGroup,Values=resource group name \
   --name runbook name \
   --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/RunbookAssumeRole \
   --automation-target-parameter-name target parameter \
   --schedule "cron or rate expression"
   ```

------
#### [ Windows ]

   ```
   aws ssm create-association ^
   --association-name association name ^
   --targets Key=ResourceGroup,Values=resource group name ^
   --name runbook name ^
   --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/RunbookAssumeRole ^
   --automation-target-parameter-name target parameter ^
   --schedule "cron or rate expression"
   ```

------
#### [ PowerShell ]

   ```
   $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target
   $Targets.Key = "ResourceGroup"
   $Targets.Values = "resource group name"
   
   New-SSMAssociation `
   -AssociationName "association name" `
   -Target $Targets `
   -Name "runbook name" `
   -Parameters @{
   "AutomationAssumeRole"="arn:aws:iam::123456789012:role/RunbookAssumeRole"} `
   -AutomationTargetParameterName "target parameter" `
   -ScheduleExpression "cron or rate expression"
   ```

------

   *Menargetkan beberapa akun dan Wilayah*

------
#### [ Linux & macOS ]

   ```
   aws ssm create-association \
   --association-name association name \
   --targets Key=ResourceGroup,Values=resource group name \
   --name runbook name \
   --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/RunbookAssumeRole \
   --automation-target-parameter-name target parameter \
   --schedule "cron or rate expression" \ 
   --target-locations Accounts=111122223333,444455556666,444455556666,Regions=region,region
   ```

------
#### [ Windows ]

   ```
   aws ssm create-association ^
   --association-name association name ^
   --targets Key=ResourceGroup,Values=resource group name ^
   --name runbook name ^
   --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/RunbookAssumeRole ^
   --automation-target-parameter-name target parameter ^
   --schedule "cron or rate expression" ^ 
   --target-locations Accounts=111122223333,444455556666,444455556666,Regions=region,region
   ```

------
#### [ PowerShell ]

   ```
   $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target
   $Targets.Key = "ResourceGroup"
   $Targets.Values = "resource group name"
   
   New-SSMAssociation `
   -AssociationName "association name" `
   -Target $Targets `
   -Name "runbook name" `
   -Parameters @{
   "AutomationAssumeRole"="arn:aws:iam::123456789012:role/RunbookAssumeRole"} `
   -AutomationTargetParameterName "target parameter" `
   -ScheduleExpression "cron or rate expression" `
   -TargetLocations @{
       "Accounts"=["111122223333,444455556666,444455556666"],
       "Regions"=["region,region"]
   ```

------

   Perintah akan menampilkan detail asosiasi baru yang serupa dengan yang berikut ini.

------
#### [ Linux & macOS ]

   ```
   {
   "AssociationDescription": {
       "ScheduleExpression": "cron(0 7 ? * MON *)",
       "Name": "AWS-StartEC2Instance",
       "Parameters": {
           "AutomationAssumeRole": [
               "arn:aws:iam::123456789012:role/RunbookAssumeRole"
           ]
       },
       "Overview": {
           "Status": "Pending",
           "DetailedStatus": "Creating"
       },
       "AssociationId": "1450b4b7-bea2-4e4b-b340-01234EXAMPLE",
       "DocumentVersion": "$DEFAULT",
       "AutomationTargetParameterName": "InstanceId",
       "LastUpdateAssociationDate": 1564686638.498,
       "Date": 1564686638.498,
       "AssociationVersion": "1",
       "AssociationName": "CLI",
       "Targets": [
           {
               "Values": [
                   "DEV"
               ],
               "Key": "tag:ENV"
           }
       ]
   }
   }
   ```

------
#### [ Windows ]

   ```
   {
   "AssociationDescription": {
       "ScheduleExpression": "cron(0 7 ? * MON *)",
       "Name": "AWS-StartEC2Instance",
       "Parameters": {
           "AutomationAssumeRole": [
               "arn:aws:iam::123456789012:role/RunbookAssumeRole"
           ]
       },
       "Overview": {
           "Status": "Pending",
           "DetailedStatus": "Creating"
       },
       "AssociationId": "1450b4b7-bea2-4e4b-b340-01234EXAMPLE",
       "DocumentVersion": "$DEFAULT",
       "AutomationTargetParameterName": "InstanceId",
       "LastUpdateAssociationDate": 1564686638.498,
       "Date": 1564686638.498,
       "AssociationVersion": "1",
       "AssociationName": "CLI",
       "Targets": [
           {
               "Values": [
                   "DEV"
               ],
               "Key": "tag:ENV"
           }
       ]
   }
   }
   ```

------
#### [ PowerShell ]

   ```
   Name                  : AWS-StartEC2Instance
   InstanceId            : 
   Date                  : 8/1/2019 7:31:38 PM
   Status.Name           : 
   Status.Date           : 
   Status.Message        : 
   Status.AdditionalInfo :
   ```

------

**catatan**  
Jika Anda menggunakan tag untuk membuat asosiasi pada satu kasus target atau lebih, dan kemudian Anda menghapus tag dari instans yang tidak lagi menjalankan asosiasi. Instance dipisahkan dari State Manager dokumen. 

## Pemecahan masalah otomatisasi yang dijalankan oleh asosiasi State Manager
<a name="troubleshooting-automation-associations"></a>

otomatisasi Systems Manager memberlakukan batas 100 otomatisasi bersamaan, dan 1.000 antri otomatisasi per akun, per Wilayah. Jika State Manager asosiasi yang menggunakan runbook menunjukkan status **Gagal** dan status terperinci **AutomationExecutionLimitExceeded**, maka otomatisasi Anda mungkin telah mencapai batasnya. Akibatnya, Systems Manager mencekal otomatisasi. Untuk mengatasi masalah ini, lakukan solusi berikut:
+ Gunakan tingkat yang berbeda atau ekspresi cron untuk asosiasi Anda. Misalnya, jika asosiasi dijadwalkan untuk berjalan setiap 30 menit, ubah ekspresi agar bisa berjalan setiap satu atau dua jam sekali.
+ Hapus otomatisasi yang ada yang memiliki status **Menunggu**. Dengan menghapus otomatisasi ini, Anda menghapus antrean saat ini.

# Jadwalkan otomatisasi dengan jendela pemeliharaan
<a name="scheduling-automations-maintenance-windows"></a>

Anda dapat memulai otomatisasi dengan mengonfigurasi runbook sebagai tugas terdaftar untuk jendela pemeliharaan. Dengan mendaftarkan runbook sebagai tugas terdaftar, jendela pemeliharaan menjalankan otomatisasi selama periode pemeliharaan terjadwal. 

Sebagai contoh, katakanlah Anda membuat runbook bernama `CreateAMI` yang menciptakan Amazon Machine Image (AMI) dari instans terdaftar sebagai target ke jendela pemeliharaan. Untuk menentukan `CreateAMI` runbook (dan otomatisasi yang sesuai) sebagai tugas terdaftar dari jendela pemeliharaan, Anda harus terlebih dahulu membuat jendela pemeliharaan dan mendaftarkan target. Kemudian Anda menggunakan prosedur berikut untuk menentukan `CreateAMI` dokumen sebagai tugas terdaftar dalam jendela pemeliharaan. Ketika jendela pemeliharaan dimulai selama periode yang dijadwalkan, sistem menjalankan otomatisasi dan menciptakan AMI dari target terdaftar.

Untuk informasi lebih lanjut tentang pembuatan runbook Otomatisasi, lihat [Membuat runbook Anda sendiri](automation-documents.md). Otomasi adalah alat dalam AWS Systems Manager.

Gunakan prosedur berikut untuk mengonfigurasi otomatisasi sebagai tugas terdaftar untuk jendela pemeliharaan menggunakan AWS Systems Manager konsol, AWS Command Line Interface (AWS CLI), atau AWS Tools for Windows PowerShell.

## Mendaftarkan tugas otomatisasi ke jendela pemeliharaan (konsol)
<a name="register-automation-task-maintenance-window-console"></a>

Prosedur berikut menjelaskan cara menggunakan konsol Systems Manager untuk mengonfigurasi otomatisasi sebagai tugas terdaftar untuk jendela pemeliharaan.

**Sebelum Anda memulai**  
Sebelum Anda menyelesaikan prosedur berikut, Anda harus membuat jendela pemeliharaan dan mendaftarkan setidaknya satu target. Untuk informasi selengkapnya, lihat prosedur berikut: 
+ [Buat jendela pemeliharaan menggunakan konsol](sysman-maintenance-create-mw.md).
+ [Tetapkan target ke jendela pemeliharaan menggunakan konsol](sysman-maintenance-assign-targets.md)

**Untuk mengonfigurasi otomatisasi sebagai tugas terdaftar untuk jendela pemeliharaan**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi kiri, pilih **Maintenance Windows**, lalu pilih jendela pemeliharaan yang ingin Anda daftarkan tugas Otomasi.

1. Pilih **Tindakan**. Kemudian pilih **Mendaftarkan tugas otomatisasi** untuk menjalankan pilihan otomatisasi Anda pada target dengan menggunakan runbook.

1. Untuk **Nama**, masukkan nama untuk tugas.

1. Untuk **Deskripsi**, masukkan deskriptif.

1. Untuk **Dokumen**, pilih runbook yang mendefinisikan tugas yang akan dijalankan.

1. Untuk **Versi dokumen**, pilih versi runbook untuk digunakan.

1. Untuk **Prioritas tugas**, tentukan prioritas untuk tugas ini. `1` adalah prioritas tertinggi. Tugas di jendela pemeliharaan dijadwalkan dalam urutan prioritas; tugas yang memiliki prioritas yang sama dijadwalkan secara paralel.

1. Di bagian **Target**, jika runbook yang Anda pilih adalah salah satu yang menjalankan tugas di sumber daya, identifikasi target tempat Anda ingin menjalankan otomatisasi ini dengan menentukan tag atau memilih instans secara manual.
**catatan**  
Jika Anda ingin melewati sumber daya melalui parameter input bukan target, Anda tidak perlu menentukan target jendela pemeliharaan.  
Dalam banyak kasus, Anda tidak perlu secara eksplisit menentukan target untuk tugas otomatisasi. Misalnya, katakanlah bahwa Anda membuat tugas jenis otomatisasi untuk memperbarui Amazon Machine Image (AMI) untuk Linux menggunakan `AWS-UpdateLinuxAmi` runbook. Ketika tugas berjalan, AMI diperbarui dengan paket distribusi Linux terbaru yang tersedia dan perangkat lunak Amazon. Contoh baru dibuat dari AMI telah menginstal pembaruan ini. Karena ID AMI yang akan diperbarui ditentukan dalam parameter input untuk runbook, tidak perlu untuk menentukan target lagi dalam tugas jendela pemeliharaan.

   Untuk informasi tentang tugas jendela pemeliharaan yang tidak memerlukan target, lihat [Pendaftaran tugas jendela pemeliharaan tanpa target](maintenance-windows-targetless-tasks.md).

1. (Opsional) Untuk **Pengendalian rate**:
**catatan**  
Jika tugas yang Anda jalankan tidak menentukan target, Anda tidak perlu menentukan kontrol tarif.
   + Untuk **Konkurensi**, tentukan jumlah atau persentase target untuk menjalankan perintah pada saat yang sama.

     Jika Anda memilih target dengan memilih pasangan kunci nilai tag, dan Anda tidak yakin berapa banyak target yang menggunakan tag terpilih, maka batasi jumlah instans yang dapat menjalankan dokumen pada waktu yang sama dengan menentukan persentase.

     Ketika jendela pemeliharaan berjalan, otomatisasi baru dimulai per target. Ada batas 100 otomatisasi bersamaan per Akun AWS. Jika Anda menentukan tingkat konkurensi lebih besar dari 100, otomatisasi bersama yang lebih dari 100 akan ditambahkan secara otomatis ke antrean otomatisasi. Untuk selengkapnya, lihat [kuota layanan Systems Manager](https://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) di bagian. *Referensi Umum Amazon Web Services* 
   + Untuk **Ambang batas kesalahan**, tetapkan kapan harus berhenti menjalankan otomatisasi pada target lain setelah gagal pada sejumlah atau persentase instans. Misalnya, jika Anda menentukan tiga kesalahan, maka Systems Manager berhenti mengirim perintah ketika kesalahan keempat diterima. Target yang masih memproses otomatisasi juga dapat mengirim kesalahan.

1. Di bagian **Parameter input,** tentukan parameter untuk runbook. Untuk runbook, sistem akan secara otomatis mengisi beberapa nilai. Anda dapat menyimpan atau mengganti nilai-nilai ini.
**penting**  
Untuk runbook, Anda dapat menentukan Peran Asumsi Otomatisasi. Jika Anda tidak menentukan peran untuk parameter ini, maka otomatisasi mengasumsikan peran layanan jendela pemeliharaan yang Anda pilih di langkah 11. Dengan demikian, Anda harus memastikan bahwa peran layanan jendela pemeliharaan yang Anda pilih memiliki izin AWS Identity and Access Management (IAM) yang sesuai untuk melakukan tindakan yang ditentukan dalam runbook.   
Misalnya, peran terkait layanan untuk Systems Manager tidak memiliki izin IAM `ec2:CreateSnapshot`, yang diperlukan untuk menggunakan runbook `AWS-CopySnapshot`. Dalam skenario ini, Anda harus menggunakan peran layanan jendela pemeliharaan kustom atau menentukan peran asumsi Otomasi yang memiliki `ec2:CreateSnapshot` izin. Untuk informasi, lihat [Menyiapkan Otomatisasi](automation-setup.md).

1. Di area **peran layanan IAM**, pilih peran untuk memberikan izin bagi Systems Manager untuk memulai otomatisasi.

   Untuk membuat peran layanan untuk tugas jendela pemeliharaan, lihat[Menyiapkan Maintenance Windows](setting-up-maintenance-windows.md).

1. Pilih **Daftarkan tugas otomatisasi**.

## Mendaftarkan tugas otomatisasi ke jendela pemeliharaan (baris perintah)
<a name="register-automation-task-maintenance-window-cli"></a>

Prosedur berikut menjelaskan cara menggunakan AWS CLI (di Linux atauWindows Server) atau Alat AWS untuk PowerShell untuk mengkonfigurasi otomatisasi sebagai tugas terdaftar untuk jendela pemeliharaan.

**Sebelum Anda mulai**  
Sebelum Anda menyelesaikan prosedur berikut, Anda harus membuat jendela pemeliharaan dan mendaftarkan setidaknya satu target. Untuk informasi selengkapnya, lihat prosedur berikut:
+ [Langkah 1: Buat jendela pemeliharaan menggunakan AWS CLI](mw-cli-tutorial-create-mw.md).
+ [Langkah 2: Daftarkan node target dengan jendela pemeliharaan menggunakan AWS CLI](mw-cli-tutorial-targets.md)

**Untuk mengonfigurasi otomatisasi sebagai tugas terdaftar untuk jendela pemeliharaan**

1. Instal dan konfigurasikan AWS CLI atau Alat AWS untuk PowerShell, jika Anda belum melakukannya.

   Untuk selengkapnya, lihat [Menginstal atau memperbarui versi terbaru AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) dan [Menginstal Alat AWS untuk PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html).

1. Buat perintah untuk mengonfigurasi otomatisasi sebagai tugas terdaftar untuk jendela pemeliharaan. Ganti masing-masing *example resource placeholder* dengan informasi Anda sendiri.

------
#### [ Linux & macOS ]

   ```
   aws ssm register-task-with-maintenance-window \
   --window-id window ID \
   --name task name \
   --task-arn runbook name \
   --targets Key=targets,Values=value \
   --service-role-arn IAM role arn \
   --task-type AUTOMATION \
   --task-invocation-parameters task parameters \
   --priority task priority \
   --max-concurrency 10% \
   --max-errors 5
   ```

**catatan**  
Jika Anda mengonfigurasi otomatisasi sebagai tugas terdaftar dengan menggunakan AWS CLI, gunakan `--Task-Invocation-Parameters` parameter untuk menentukan parameter yang akan diteruskan ke tugas saat dijalankan. Jangan gunakan `--Task-Parameters` parameter. Parameter `--Task-Parameters` adalah parameter warisan.  
Untuk tugas jendela pemeliharaan tanpa target yang ditentukan, Anda tidak dapat memberikan nilai untuk `--max-errors` dan `--max-concurrency`. Sebaliknya, sistem menyisipkan nilai placeholder`1`, yang mungkin dilaporkan dalam respons terhadap perintah seperti dan. [https://docs.aws.amazon.com/cli/latest/reference/ssm/describe-maintenance-window-tasks.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/describe-maintenance-window-tasks.html) Nilai-nilai ini tidak mempengaruhi tugas Anda yang sedang berjalan dan dapat diabaikan.  
Untuk informasi tentang tugas jendela pemeliharaan yang tidak memerlukan target, lihat [Pendaftaran tugas jendela pemeliharaan tanpa target](maintenance-windows-targetless-tasks.md).

------
#### [ Windows ]

   ```
   aws ssm register-task-with-maintenance-window ^
   --window-id window ID ^
   --name task name ^
   --task-arn runbook name ^
   --targets Key=targets,Values=value ^
   --service-role-arn IAM role arn ^
   --task-type AUTOMATION ^
   --task-invocation-parameters task parameters ^
   --priority task priority ^
   --max-concurrency 10% ^
   --max-errors 5
   ```

**catatan**  
Jika Anda mengonfigurasi otomatisasi sebagai tugas terdaftar dengan menggunakan AWS CLI, gunakan `--task-invocation-parameters` parameter untuk menentukan parameter yang akan diteruskan ke tugas saat dijalankan. Jangan gunakan `--task-parameters` parameter. Parameter `--task-parameters` adalah parameter warisan.  
Untuk tugas jendela pemeliharaan tanpa target yang ditentukan, Anda tidak dapat memberikan nilai untuk `--max-errors` dan `--max-concurrency`. Sebaliknya, sistem menyisipkan nilai placeholder`1`, yang mungkin dilaporkan dalam respons terhadap perintah seperti dan. [https://docs.aws.amazon.com/cli/latest/reference/ssm/describe-maintenance-window-tasks.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/describe-maintenance-window-tasks.html) Nilai-nilai ini tidak mempengaruhi tugas Anda yang sedang berjalan dan dapat diabaikan.  
Untuk informasi tentang tugas jendela pemeliharaan yang tidak memerlukan target, lihat [Pendaftaran tugas jendela pemeliharaan tanpa target](maintenance-windows-targetless-tasks.md).

------
#### [ PowerShell ]

   ```
   Register-SSMTaskWithMaintenanceWindow `
   -WindowId window ID `
   -Name "task name" `
   -TaskArn "runbook name" `
   -Target @{ Key="targets";Values="value" } `
   -ServiceRoleArn "IAM role arn" `
   -TaskType "AUTOMATION" `
   -Automation_Parameter @{ "task parameter"="task parameter value"} `
   -Priority task priority `
   -MaxConcurrency 10% `
   -MaxError 5
   ```

**catatan**  
Jika Anda mengonfigurasi otomatisasi sebagai tugas terdaftar dengan menggunakan Alat AWS untuk PowerShell, gunakan `-Automation_Parameter` parameter untuk menentukan parameter yang akan diteruskan ke tugas saat tugas berjalan. Jangan gunakan `-TaskParameters` parameter. Parameter `-TaskParameters` adalah parameter warisan.  
Untuk tugas jendela pemeliharaan tanpa target yang ditentukan, Anda tidak dapat memberikan nilai untuk `-MaxError` dan `-MaxConcurrency`. Sebaliknya, sistem menyisipkan nilai placeholder dari 1, yang mungkin dilaporkan sesuai dengan perintah seperti `Get-SSMMaintenanceWindowTaskList` dan `Get-SSMMaintenanceWindowTask`. Nilai-nilai ini tidak mempengaruhi tugas Anda yang sedang berjalan dan dapat diabaikan.  
Untuk informasi tentang tugas jendela pemeliharaan yang tidak memerlukan target, lihat [Pendaftaran tugas jendela pemeliharaan tanpa target](maintenance-windows-targetless-tasks.md).

------

   Contoh berikut mengonfigurasi otomatisasi sebagai tugas terdaftar ke jendela pemeliharaan dengan prioritas 1. Hal ini juga menunjukkan menghilangkan `--targets`, `--max-errors`, dan `--max-concurrency` pilihan tugas jendela pemeliharaan tanpa target. Otomatisasi menggunakan `AWS-StartEC2Instance` runbook dan peran asumsi otomatisasi untuk memulai instans EC2 terdaftar sebagai target untuk jendela pemeliharaan. Jendela pemeliharaan menjalankan otomatisasi secara bersamaan pada 5 instans maksimum pada waktu tertentu. Juga, asosiasi ini berhenti berjalan pada lebih banyak instans untuk interval eksekusi tertentu jika jumlah kesalahan melebihi 1.

------
#### [ Linux & macOS ]

   ```
   aws ssm register-task-with-maintenance-window \
   --window-id mw-0c50858d01EXAMPLE \
   --name StartEC2Instances \
   --task-arn AWS-StartEC2Instance \
   --service-role-arn arn:aws:iam::123456789012:role/MaintenanceWindowRole \
   --task-type AUTOMATION \
   --task-invocation-parameters "{\"Automation\":{\"Parameters\":{\"InstanceId\":[\"{{TARGET_ID}}\"],\"AutomationAssumeRole\":[\"arn:aws:iam::123456789012:role/AutomationAssumeRole\"]}}}" \
   --priority 1
   ```

------
#### [ Windows ]

   ```
   aws ssm register-task-with-maintenance-window ^
   --window-id mw-0c50858d01EXAMPLE ^
   --name StartEC2Instances ^
   --task-arn AWS-StartEC2Instance ^
   --service-role-arn arn:aws:iam::123456789012:role/MaintenanceWindowRole ^
   --task-type AUTOMATION ^
   --task-invocation-parameters "{\"Automation\":{\"Parameters\":{\"InstanceId\":[\"{{TARGET_ID}}\"],\"AutomationAssumeRole\":[\"arn:aws:iam::123456789012:role/AutomationAssumeRole\"]}}}" ^
   --priority 1
   ```

------
#### [ PowerShell ]

   ```
   Register-SSMTaskWithMaintenanceWindow `
   -WindowId mw-0c50858d01EXAMPLE `
   -Name "StartEC2" `
   -TaskArn "AWS-StartEC2Instance" `
   -ServiceRoleArn "arn:aws:iam::123456789012:role/MaintenanceWindowRole" `
   -TaskType "AUTOMATION" `
   -Automation_Parameter @{ "InstanceId"="{{TARGET_ID}}";"AutomationAssumeRole"="arn:aws:iam::123456789012:role/AutomationAssumeRole" } `
   -Priority 1
   ```

------

   Perintah akan menampilkan detail untuk tugas baru yang terdaftar serupa dengan yang berikut ini.

------
#### [ Linux & macOS ]

   ```
   {
   "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE"
   }
   ```

------
#### [ Windows ]

   ```
   {
   "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE"
   }
   ```

------
#### [ PowerShell ]

   ```
   4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE
   ```

------

1. Untuk melihat tugas terdaftar, jalankan perintah berikut. Ganti *maintenance windows ID* dengan informasi Anda sendiri.

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-maintenance-window-tasks \
   --window-id maintenance window ID
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-maintenance-window-tasks ^
   --window-id maintenance window ID
   ```

------
#### [ PowerShell ]

   ```
   Get-SSMMaintenanceWindowTaskList `
   -WindowId maintenance window ID
   ```

------

   Sistem mengembalikan informasi seperti berikut.

------
#### [ Linux & macOS ]

   ```
   {
   "Tasks": [
       {
           "ServiceRoleArn": "arn:aws:iam::123456789012:role/MaintenanceWindowRole",
           "MaxErrors": "1",
           "TaskArn": "AWS-StartEC2Instance",
           "MaxConcurrency": "1",
           "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
           "TaskParameters": {},
           "Priority": 1,
           "WindowId": "mw-0c50858d01EXAMPLE",
           "Type": "AUTOMATION",
           "Targets": [
           ],
           "Name": "StartEC2"
       }
   ]
   }
   ```

------
#### [ Windows ]

   ```
   {
   "Tasks": [
       {
           "ServiceRoleArn": "arn:aws:iam::123456789012:role/MaintenanceWindowRole",
           "MaxErrors": "1",
           "TaskArn": "AWS-StartEC2Instance",
           "MaxConcurrency": "1",
           "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
           "TaskParameters": {},
           "Priority": 1,
           "WindowId": "mw-0c50858d01EXAMPLE",
           "Type": "AUTOMATION",
           "Targets": [
           ],
           "Name": "StartEC2"
       }
   ]
   }
   ```

------
#### [ PowerShell ]

   ```
   Description    : 
   LoggingInfo    : 
   MaxConcurrency : 5
   MaxErrors      : 1
   Name           : StartEC2
   Priority       : 1
   ServiceRoleArn : arn:aws:iam::123456789012:role/MaintenanceWindowRole
   Targets        : {}
   TaskArn        : AWS-StartEC2Instance
   TaskParameters : {}
   Type           : AUTOMATION
   WindowId       : mw-0c50858d01EXAMPLE
   WindowTaskId   : 4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE
   ```

------

# Referensi tindakan Otomatisasi Systems Manager
<a name="automation-actions"></a>

Referensi ini menjelaskan tindakan otomatisasi yang dapat Anda tentukan di runbook Otomatisasi. Otomasi adalah alat dalam AWS Systems Manager. Tindakan ini tidak dapat digunakan dalam dokumen Systems Manager (SSM) jenis yang lain. Untuk informasi tentang plugin untuk jenis dokumen SSM lainnya, lihat [Referensi plugin dokumen perintah](documents-command-ssm-plugin-reference.md).

Otomatisasi Systems Manager menjalankan langkah-langkah yang ditetapkan dalam runbook otomatisasi. Setiap langkah dikaitkan dengan tindakan tertentu. Tindakan menentukan input, perilaku, dan output dari langkah. Langkah-langkah didefinisikan dalam `mainSteps` bagian dari buku runbook Anda.

Anda tidak perlu menentukan output dari suatu tindakan atau langkah. Output yang telah ditentukan oleh tindakan yang terkait dengan langkah. Ketika Anda menentukan input langkah di runbook, Anda dapat referensi satu output atau lebih dari langkah sebelumnya. Misalnya, Anda dapat membuat output dari `aws:runInstances` yang tersedia untuk tindakan berikutnya `aws:runCommand`. Anda juga dapat referensi output dari langkah-langkah sebelumnya di `Output` bagian runbook. 

**penting**  
Jika Anda menjalankan alur kerja otomatisasi yang menjalankan layanan lain dengan menggunakan AWS Identity and Access Management peran layanan (IAM), pastikan bahwa peran layanan harus dikonfigurasi dengan izin untuk menjalankan layanan tersebut. Persyaratan ini berlaku untuk semua runbook AWS Otomasi (`AWS-*`runbook) seperti`AWS-ConfigureS3BucketLogging`,`AWS-CreateDynamoDBBackup`, dan `AWS-RestartEC2Instance` runbook, untuk beberapa nama. Persyaratan ini juga berlaku untuk setiap runbook Otomasi kustom yang Anda buat yang memanggil orang lain Layanan AWS dengan menggunakan tindakan yang memanggil layanan lain. Misalnya, jika Anda menggunakan `aws:executeAwsApi`, `aws:createStack`, atau `aws:copyImage` tindakan, konfigurasikan peran layanan dengan izin untuk menjalankan layanan tersebut. Anda dapat memberikan izin kepada orang lain Layanan AWS dengan menambahkan kebijakan inline IAM ke peran tersebut. Untuk informasi selengkapnya, lihat [(Opsional) Tambahkan kebijakan sebaris Otomasi atau kebijakan terkelola pelanggan untuk memanggil lainnya Layanan AWS](automation-setup-iam.md#add-inline-policy).

**Topics**
+ [Properti dibagi oleh semua tindakan](#automation-common)
+ [`aws:approve` – Jeda otomatisasi untuk persetujuan manual](automation-action-approve.md)
+ [`aws:assertAwsResourceProperty`— Menegaskan status AWS sumber daya atau status acara](automation-action-assertAwsResourceProperty.md)
+ [`aws:branch` – Jalankan langkah-langkah otomatisasi bersyarat](automation-action-branch.md)
+ [`aws:changeInstanceState` – Ubah atau tegaskan status instans](automation-action-changestate.md)
+ [`aws:copyImage` – Salin atau enkripsi Amazon Machine Image](automation-action-copyimage.md)
+ [`aws:createImage` – Buat Amazon machine image (AMI)](automation-action-create.md)
+ [`aws:createStack`— Buat CloudFormation tumpukan](automation-action-createstack.md)
+ [`aws:createTags`— Buat tag untuk AWS sumber daya](automation-action-createtag.md)
+ [`aws:deleteImage` – Hapus Amazon Machine Image](automation-action-delete.md)
+ [`aws:deleteStack`— Hapus CloudFormation tumpukan](automation-action-deletestack.md)
+ [`aws:executeAutomation` – Jalankan otomatisasi lain](automation-action-executeAutomation.md)
+ [`aws:executeAwsApi`— Panggil dan jalankan operasi AWS API](automation-action-executeAwsApi.md)
+ [`aws:executeScript` – Jalankan skrip](automation-action-executeScript.md)
+ [`aws:executeStateMachine`— Jalankan mesin AWS Step Functions negara](automation-action-executeStateMachine.md)
+ [`aws:invokeWebhook`— Memanggil integrasi webhook Otomasi](invoke-webhook.md)
+ [`aws:invokeLambdaFunction`— Memanggil fungsi AWS Lambda](automation-action-lamb.md)
+ [`aws:loop`— Ulangi langkah-langkah dalam otomatisasi](automation-action-loop.md)
+ [`aws:pause` – Jeda otomatisasi](automation-action-pause.md)
+ [`aws:runCommand` – Jalankan perintah pada instans terkelola](automation-action-runcommand.md)
+ [`aws:runInstances` – Luncurkan Instans Amazon EC2](automation-action-runinstance.md)
+ [`aws:sleep` – Menunda otomatisasi](automation-action-sleep.md)
+ [`aws:updateVariable`— Memperbarui nilai untuk variabel runbook](automation-action-update-variable.md)
+ [`aws:waitForAwsResourceProperty`— Tunggu properti AWS sumber daya](automation-action-waitForAwsResourceProperty.md)
+ [Variabel sistem Otomatisasi](automation-variables.md)

## Properti dibagi oleh semua tindakan
<a name="automation-common"></a>

Sifat umum adalah parameter atau opsi yang ditemukan di semua tindakan. Beberapa pilihan menentukan perilaku untuk langkah, seperti berapa lama menunggu langkah selesai dan apa yang harus dilakukan jika langkah gagal. Properti berikut umum untuk semua tindakan.

[description](#descriptProp)  
Informasi yang Anda berikan untuk menggambarkan tujuan runbook atau langkah.  
Tipe: String  
Wajib: Tidak

[name](#nameProp)  
Pengenal yang harus unik di semua nama langkah di runbook.  
Tipe: String  
Pola yang diizinkan: [A-za-Z0-9\$1] \$1\$1  
Wajib: Ya

[action](#actProp)  
Nama tindakan langkah adalah untuk menjalankan. [`aws:runCommand` – Jalankan perintah pada instans terkelola](automation-action-runcommand.md) adalah contoh dari tindakan yang dapat Anda tentukan di sini. Dokumen ini memberikan informasi mendetail tentang semua tindakan yang tersedia.  
Jenis: String  
Wajib: Ya

[maxAttempts](#maxProp)  
Berapa kali langkah harus dicoba lagi jika terjadi kegagalan. Jika nilai lebih besar dari 1, langkah tidak dianggap gagal sampai semua upaya coba lagi telah gagal. Nilai default adalah 1.  
Jenis: Bilangan bulat  
Wajib: Tidak

[timeoutSeconds](#timeProp)  
Nilai batas waktu untuk langkah. Jika batas waktu tercapai dan nilai `maxAttempts` lebih besar dari 1, maka langkah ini tidak dianggap kedaluwarsa sampai semua percobaan telah dicoba.  
Jenis: Bilangan bulat  
Wajib: Tidak

[onFailure](#failProp)  
Menunjukkan apakah otomatisasi harus berhenti, melanjutkan, atau meneruskan ke langkah yang berbeda pada kegagalan. Nilai default untuk opsi ini adalah batalkan.  
Tipe: String  
Nilai yang valid: Batalkan \$1 Lanjutkan \$1 langkah: *step\$1name*  
Wajib: Tidak

[onCancel](#canProp)  
Menunjukkan langkah mana yang harus dilakukan otomatisasi jika pengguna membatalkan otomatisasi. Otomatisasi menjalankan alur kerja pembatalan untuk maksimal dua menit.  
Tipe: String  
Nilai yang valid: Batalkan \$1 langkah: *step\$1name*  
Wajib: Tidak  
Properti `onCancel` tidak mendukung pindah ke tindakan berikut:  
+ `aws:approve`
+ `aws:copyImage`
+ `aws:createImage`
+ `aws:createStack`
+ `aws:createTags`
+ `aws:loop`
+ `aws:pause`
+ `aws:runInstances`
+ `aws:sleep`

[isEnd](#endProp)  
Opsi ini menghentikan otomatisasi pada akhir langkah tertentu. Otomatisasi berhenti jika langkah gagal atau berhasil. Nilai default salah.  
Jenis: Boolean  
Nilai yang valid: benar/salah  
Wajib: Tidak

[nextStep](#nextProp)  
Menentukan langkah mana dalam otomatisasi yang harus diproses setelah berhasil menyelesaikan langkah.  
Jenis: String  
Wajib: Tidak

[isCritical](#critProp)  
Menunjuk langkah sebagai kepentingan untuk berhasil menyelesaikan otomatisasi. Jika langkah dengan penunjukan ini gagal, maka otomatisasi melaporkan status akhir otomatisasi sebagai gagal. Properti ini hanya dievaluasi jika Anda secara eksplisit mendefinisikannya dalam langkah Anda. Jika `onFailure` properti diatur ke `Continue` dalam langkah, nilai default diatur ke salah. Jika tidak, nilai default untuk opsi ini adalah benar.  
Jenis: Boolean  
Nilai yang valid: benar/salah  
Wajib: Tidak

[inputs](#inProp)  
Sifat khusus tindakan.  
Jenis: Peta  
Wajib: Ya

### Contoh
<a name="automation-demo"></a>

```
---
description: "Custom Automation Example"
schemaVersion: '0.3'
assumeRole: "{{ AutomationAssumeRole }}"
parameters:
  AutomationAssumeRole:
    type: String
    description: "(Required) The ARN of the role that allows Automation to perform
      the actions on your behalf. If no role is specified, Systems Manager Automation
      uses your IAM permissions to run this runbook."
    default: ''
  InstanceId:
      type: String
      description: "(Required) The Instance Id whose root EBS volume you want to restore the latest Snapshot."
      default: ''
mainSteps:
- name: getInstanceDetails
  action: aws:executeAwsApi
  onFailure: Abort
  inputs:
    Service: ec2
    Api: DescribeInstances
    InstanceIds:
    - "{{ InstanceId }}"
  outputs:
    - Name: availabilityZone
      Selector: "$.Reservations[0].Instances[0].Placement.AvailabilityZone"
      Type: String
    - Name: rootDeviceName
      Selector: "$.Reservations[0].Instances[0].RootDeviceName"
      Type: String
  nextStep: getRootVolumeId
- name: getRootVolumeId
  action: aws:executeAwsApi
  maxAttempts: 3
  onFailure: Abort
  inputs:
    Service: ec2
    Api: DescribeVolumes
    Filters:
    -  Name: attachment.device
       Values: ["{{ getInstanceDetails.rootDeviceName }}"]
    -  Name: attachment.instance-id
       Values: ["{{ InstanceId }}"]
  outputs:
    - Name: rootVolumeId
      Selector: "$.Volumes[0].VolumeId"
      Type: String
  nextStep: getSnapshotsByStartTime
- name: getSnapshotsByStartTime
  action: aws:executeScript
  timeoutSeconds: 45
  onFailure: Abort
  inputs:
    Runtime: python3.8
    Handler: getSnapshotsByStartTime
    InputPayload:
      rootVolumeId : "{{ getRootVolumeId.rootVolumeId }}"
    Script: |-
      def getSnapshotsByStartTime(events,context):
        import boto3

        #Initialize client
        ec2 = boto3.client('ec2')
        rootVolumeId = events['rootVolumeId']
        snapshotsQuery = ec2.describe_snapshots(
          Filters=[
            {
              "Name": "volume-id",
              "Values": [rootVolumeId]
            }
          ]
        )
        if not snapshotsQuery['Snapshots']:
          noSnapshotFoundString = "NoSnapshotFound"
          return { 'noSnapshotFound' : noSnapshotFoundString }
        else:
          jsonSnapshots = snapshotsQuery['Snapshots']
          sortedSnapshots = sorted(jsonSnapshots, key=lambda k: k['StartTime'], reverse=True)
          latestSortedSnapshotId = sortedSnapshots[0]['SnapshotId']
          return { 'latestSnapshotId' : latestSortedSnapshotId }
  outputs:
  - Name: Payload
    Selector: $.Payload
    Type: StringMap
  - Name: latestSnapshotId
    Selector: $.Payload.latestSnapshotId
    Type: String
  - Name: noSnapshotFound
    Selector: $.Payload.noSnapshotFound
    Type: String 
  nextStep: branchFromResults
- name: branchFromResults
  action: aws:branch
  onFailure: Abort
  onCancel: step:startInstance
  inputs:
    Choices:
    - NextStep: createNewRootVolumeFromSnapshot
      Not:
        Variable: "{{ getSnapshotsByStartTime.noSnapshotFound }}"
        StringEquals: "NoSnapshotFound"
  isEnd: true
- name: createNewRootVolumeFromSnapshot
  action: aws:executeAwsApi
  onFailure: Abort
  inputs:
    Service: ec2
    Api: CreateVolume
    AvailabilityZone: "{{ getInstanceDetails.availabilityZone }}"
    SnapshotId: "{{ getSnapshotsByStartTime.latestSnapshotId }}"
  outputs:
    - Name: newRootVolumeId
      Selector: "$.VolumeId"
      Type: String
  nextStep: stopInstance
- name: stopInstance
  action: aws:executeAwsApi
  onFailure: Abort
  inputs:
    Service: ec2
    Api: StopInstances
    InstanceIds:
    - "{{ InstanceId }}"
  nextStep: verifyVolumeAvailability
- name: verifyVolumeAvailability
  action: aws:waitForAwsResourceProperty
  timeoutSeconds: 120
  inputs:
    Service: ec2
    Api: DescribeVolumes
    VolumeIds:
    - "{{ createNewRootVolumeFromSnapshot.newRootVolumeId }}"
    PropertySelector: "$.Volumes[0].State"
    DesiredValues:
    - "available"
  nextStep: verifyInstanceStopped
- name: verifyInstanceStopped
  action: aws:waitForAwsResourceProperty
  timeoutSeconds: 120
  inputs:
    Service: ec2
    Api: DescribeInstances
    InstanceIds:
    - "{{ InstanceId }}"
    PropertySelector: "$.Reservations[0].Instances[0].State.Name"
    DesiredValues:
    - "stopped"
  nextStep: detachRootVolume
- name: detachRootVolume
  action: aws:executeAwsApi
  onFailure: Abort
  isCritical: true
  inputs:
    Service: ec2
    Api: DetachVolume
    VolumeId: "{{ getRootVolumeId.rootVolumeId }}"
  nextStep: verifyRootVolumeDetached
- name: verifyRootVolumeDetached
  action: aws:waitForAwsResourceProperty
  timeoutSeconds: 30
  inputs:
    Service: ec2
    Api: DescribeVolumes
    VolumeIds:
    - "{{ getRootVolumeId.rootVolumeId }}"
    PropertySelector: "$.Volumes[0].State"
    DesiredValues:
    - "available"
  nextStep: attachNewRootVolume
- name: attachNewRootVolume
  action: aws:executeAwsApi
  onFailure: Abort
  inputs:
    Service: ec2
    Api: AttachVolume
    Device: "{{ getInstanceDetails.rootDeviceName }}"
    InstanceId: "{{ InstanceId }}"
    VolumeId: "{{ createNewRootVolumeFromSnapshot.newRootVolumeId }}"
  nextStep: verifyNewRootVolumeAttached
- name: verifyNewRootVolumeAttached
  action: aws:waitForAwsResourceProperty
  timeoutSeconds: 30
  inputs:
    Service: ec2
    Api: DescribeVolumes
    VolumeIds:
    - "{{ createNewRootVolumeFromSnapshot.newRootVolumeId }}"
    PropertySelector: "$.Volumes[0].Attachments[0].State"
    DesiredValues:
    - "attached"
  nextStep: startInstance
- name: startInstance
  action: aws:executeAwsApi
  onFailure: Abort
  inputs:
    Service: ec2
    Api: StartInstances
    InstanceIds:
    - "{{ InstanceId }}"
```

# `aws:approve` – Jeda otomatisasi untuk persetujuan manual
<a name="automation-action-approve"></a>

Menjeda Otomatisasi untuk sementara waktu sampai otomatisasi utama yang ditunjuk menyetujui atau menolak tindakan. Setelah jumlah persetujuan yang diperlukan tercapai, otomatisasi dilanjutkan. Anda dapat memasukkan langkah persetujuan di mana saja `mainSteps` di bagian runbook Anda. 

**catatan**  
Tindakan ini tidak mendukung otomatisasi multi-akun dan Wilayah. Batas waktu default untuk tindakan ini adalah 7 hari (604800 detik) dan nilai maksimum adalah 30 hari (2592000 detik). Anda dapat membatasi atau memperpanjang batas waktu dengan menentukan `timeoutSeconds` parameter untuk `aws:approve` langkah.

Pada contoh berikut, `aws:approve` tindakan menghentikan otomatisasi sementara hingga satu pemberi persetujuan menerima atau menolak otomatisasi. Setelah disetujui, otomatisasi menjalankan PowerShell perintah sederhana. 

------
#### [ YAML ]

```
---
description: RunInstancesDemo1
schemaVersion: '0.3'
assumeRole: "{{ assumeRole }}"
parameters:
  assumeRole:
    type: String
  message:
    type: String
mainSteps:
- name: approve
  action: aws:approve
  timeoutSeconds: 1000
  onFailure: Abort
  inputs:
    NotificationArn: arn:aws:sns:us-east-2:12345678901:AutomationApproval
    Message: "{{ message }}"
    MinRequiredApprovals: 1
    Approvers:
    - arn:aws:iam::12345678901:user/AWS-User-1
- name: run
  action: aws:runCommand
  inputs:
    InstanceIds:
    - i-1a2b3c4d5e6f7g
    DocumentName: AWS-RunPowerShellScript
    Parameters:
      commands:
      - date
```

------
#### [ JSON ]

```
{
   "description":"RunInstancesDemo1",
   "schemaVersion":"0.3",
   "assumeRole":"{{ assumeRole }}",
   "parameters":{
      "assumeRole":{
         "type":"String"
      },
      "message":{
         "type":"String"
      }
   },
   "mainSteps":[
      {
         "name":"approve",
         "action":"aws:approve",
         "timeoutSeconds":1000,
         "onFailure":"Abort",
         "inputs":{
            "NotificationArn":"arn:aws:sns:us-east-2:12345678901:AutomationApproval",
            "Message":"{{ message }}",
            "MinRequiredApprovals":1,
            "Approvers":[
               "arn:aws:iam::12345678901:user/AWS-User-1"
            ]
         }
      },
      {
         "name":"run",
         "action":"aws:runCommand",
         "inputs":{
            "InstanceIds":[
               "i-1a2b3c4d5e6f7g"
            ],
            "DocumentName":"AWS-RunPowerShellScript",
            "Parameters":{
               "commands":[
                  "date"
               ]
            }
         }
      }
   ]
}
```

------

Anda dapat menyetujui atau menolak otomatisasi yang menunggu persetujuan di konsol.

**Untuk menyetujui atau menolak otomatisasi menunggu**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Pada panel navigasi, pilih **Otomatisasi**.

1. Pilih opsi di sebelah Otomatisasi dengan status **Menunggu**.  
![\[Mengakses halaman Approve/Deny Otomasi\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/images/automation-approve-action-aws.png)

1. Pilih **Menyetujui/Menolak**.

1. Tinjau detail Otomatisasi.

1. Pilih **Setuju** atau **Tolak**, ketik komentar opsional, dan kemudian pilih **Kirim**.

**Contoh masukan**

------
#### [ YAML ]

```
NotificationArn: arn:aws:sns:us-west-1:12345678901:Automation-ApprovalRequest
Message: Please approve this step of the Automation.
MinRequiredApprovals: 3
Approvers:
- IamUser1
- IamUser2
- arn:aws:iam::12345678901:user/IamUser3
- arn:aws:iam::12345678901:role/IamRole
```

------
#### [ JSON ]

```
{
   "NotificationArn":"arn:aws:sns:us-west-1:12345678901:Automation-ApprovalRequest",
   "Message":"Please approve this step of the Automation.",
   "MinRequiredApprovals":3,
   "Approvers":[
      "IamUser1",
      "IamUser2",
      "arn:aws:iam::12345678901:user/IamUser3",
      "arn:aws:iam::12345678901:role/IamRole"
   ]
}
```

------

NotificationArn  
Amazon Resource Name (ARN topik Amazon Simple Notification Service (Amazon SNS) untuk persetujuan otomatisasi. Bila Anda menentukan `aws:approve` langkah dalam runbook, Otomatisasi mengirimkan pesan ke topik ini agar otomatisasi utama tahu bahwa mereka harus menyetujui atau menolak langkah otomatisasi. Judul topik Amazon SNS harus diawali dengan "Otomatisi".  
Jenis: String  
Wajib: Tidak

Pesan  
Informasi yang ingin Anda sertakan dalam topik Amazon SNS ketika permintaan persetujuan dikirim. Panjang pesan maksimum adalah 4096 karakter.   
Jenis: String  
Wajib: Tidak

MinRequiredApprovals  
Jumlah minimum persetujuan yang diperlukan untuk melanjutkan otomatisasi. Jika Anda tidak menentukan nilai, default sistem adalah satu. Nilai untuk parameter ini harus berupa angka positif. Nilai untuk parameter ini tidak dapat melebihi jumlah pemberi persetujuan yang ditentukan oleh `Approvers` parameter.   
Jenis: Bilangan bulat  
Wajib: Tidak

Pemberi persetujuan  
Daftar kepala sekolah yang AWS diautentikasi yang dapat menyetujui atau menolak tindakan tersebut. Jumlah maksimum pemberi persetujuan adalah 10. Anda dapat menyebutkan salah satu prinsip dasar berikut dalam kebijakan:  
+ Nama pengguna
+ Pengguna ARN
+ IAM role ARN
+ IAM berperan ARN
Jenis: StringList  
Wajib: Ya

EnhancedApprovals  
Input ini hanya digunakan untuk Change Manager template. Daftar kepala sekolah yang AWS diautentikasi yang dapat menyetujui atau menolak tindakan, jenis prinsipal IAM, dan jumlah minimum pemberi persetujuan. Berikut ini adalah contohnya:  

```
schemaVersion: "0.3"
emergencyChange: false
autoApprovable: false
mainSteps:
    - name: ApproveAction1
    action: aws:approve
    timeoutSeconds: 604800
    inputs:
        Message: Please approve this change request
        MinRequiredApprovals: 3
        EnhancedApprovals:
        Approvers:
            - approver: John Stiles
            type: IamUser
            minRequiredApprovals: 0
            - approver: Ana Carolina Silva
            type: IamUser
            minRequiredApprovals: 0
            - approver: GroupOfThree
            type: IamGroup
            minRequiredApprovals: 0
            - approver: RoleOfTen
            type: IamRole
            minRequiredApprovals: 0
```
Jenis: StringList  
Wajib: Ya

**Keluaran**

ApprovalStatus  
Status persetujuan langkah. Status dapat berupa salah satu hal berikut: Disetujui, Ditolak, atau Tunggu. Menunggu berarti Otomasi sedang menunggu masukan dari pemberi persetujuan.  
Tipe: String

ApproverDecisions  
Sebuah peta JSON yang mencakup keputusan persetujuan setiap pemberi persetujuan.  
Jenis: MapList

# `aws:assertAwsResourceProperty`— Menegaskan status AWS sumber daya atau status acara
<a name="automation-action-assertAwsResourceProperty"></a>

Tindakan `aws:assertAwsResourceProperty` tersebut mengizinkan Anda menegaskan status sumber daya atau status peristiwa tertentu untuk langkah Otomatisasi tertentu.

**catatan**  
`aws:assertAwsResourceProperty`Tindakan ini mendukung percobaan ulang pelambatan otomatis. Untuk informasi selengkapnya, lihat [Mengkonfigurasi percobaan ulang otomatis untuk operasi yang dibatasi](automation-throttling-retry.md).

Untuk contoh lebih lanjut tentang cara menggunakan tindakan ini, lihat[Contoh runbook tambahan](automation-document-examples.md).

**Input**  
Input didefinisikan oleh operasi API yang Anda pilih. 

------
#### [ YAML ]

```
action: aws:assertAwsResourceProperty
inputs:
  Service: The official namespace of the service
  Api: The API operation or method name
  API operation inputs or parameters: A value
  PropertySelector: Response object
  DesiredValues:
  - Desired property values
```

------
#### [ JSON ]

```
{
  "action": "aws:assertAwsResourceProperty",
  "inputs": {
    "Service":"The official namespace of the service",
    "Api":"The API operation or method name",
    "API operation inputs or parameters":"A value",
    "PropertySelector": "Response object",
    "DesiredValues": [
      "Desired property values"
    ]
  }
}
```

------

Layanan  
 Layanan AWS Namespace yang berisi operasi API yang ingin Anda jalankan. Misalnya, namespace untuk Systems Manager adalah `ssm`. Namespace untuk Amazon EC2 adalah `ec2`. Anda dapat melihat daftar Layanan AWS ruang nama yang didukung di bagian [Layanan yang Tersedia pada Referensi AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/#available-services) *Perintah*.  
Tipe: String  
Wajib: Ya

Api  
Nama operasi API yang ingin Anda jalankan. Anda dapat melihat operasi API (juga disebut metode) dengan memilih layanan di navigasi kiri pada halaman [Referensi Layanan](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html). Pilih metode di bagian **Klien** untuk layanan yang ingin Anda jalankan. Misalnya, semua operasi API (metode) untuk Amazon Relational Database Service (Amazon RDS) tercantum di halaman berikut: [Metode Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html).  
Jenis: String  
Wajib: Ya

Input operasi API  
Satu input operasi API atau lebih. Anda dapat melihat input yang tersediaI (dikenal dengan parameter) dengan memilih layanan di navigasi kiri pada halaman [Referensi Layanan](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html) berikut. Pilih metode di bagian **Klien** untuk layanan yang ingin Anda jalankan. Misalnya, semua metode untuk Amazon RDS tercantum di halaman berikut: [Metode Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html). ******Pilih metode [describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) dan gulir ke bawah untuk melihat parameter yang tersedia, seperti DBInstance Identifier, Name, dan Values.****** Gunakan format berikut untuk menentukan lebih dari satu masukan.  

```
inputs:
  Service: The official namespace of the service
  Api: The API operation name
  API input 1: A value
  API Input 2: A value
  API Input 3: A value
```

```
"inputs":{
      "Service":"The official namespace of the service",
      "Api":"The API operation name",
      "API input 1":"A value",
      "API Input 2":"A value",
      "API Input 3":"A value"
}
```
Jenis: Ditentukan oleh operasi API yang dipilih  
Wajib: Ya

PropertySelector  
 JSONPath Untuk atribut tertentu dalam objek respon. Anda dapat melihat obyek respon dengan memilih layanan di navigasi kiri pada halaman [Referensi Layanan](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html) berikut. Pilih metode di bagian **Klien** untuk layanan yang ingin Anda jalankan. Misalnya, semua metode untuk Amazon RDS tercantum di halaman berikut: [Metode Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html). **Pilih metode [describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) dan gulir ke bawah ke bagian Struktur Respons.** **DBInstances**terdaftar sebagai objek respons.  
Tipe: String  
Diperlukan: Ya

DesiredValues  
Status yang diharapkan untuk melanjutkan otomatisasi. Jika Anda menentukan nilai Boolean, Anda harus menggunakan huruf kapital seperti Benar atau Salah.  
Jenis: StringList  
Wajib: Ya

# `aws:branch` – Jalankan langkah-langkah otomatisasi bersyarat
<a name="automation-action-branch"></a>

Tindakan `aws:branch` tersebut mengizinkan Anda membuat otomatisasi dinamis yang mengevaluasi pilihan yang berbeda dalam satu langkah dan kemudian melompat ke langkah di runbook yang berbeda berdasarkan hasil evaluasi tersebut. 

Bila Anda menentukan `aws:branch` tindakan untuk sebuah langkah, Anda menentukan `Choices` bahwa otomatisasi harus mengevaluasi. Dapat `Choices` didasarkan pada nilai yang Anda tentukan dalam `Parameters` bagian runbook, atau nilai dinamis yang dihasilkan sebagai output dari langkah sebelumnya. Otomatisasi mengevaluasi setiap pilihan dengan menggunakan ekspresi Boolean. Jika pilihan pertama adalah benar, maka otomatisasi melompat ke langkah yang ditetapkan untuk pilihan tersebut. Jika pilihan pertama salah, otomatisasi mengevaluasi pilihan berikutnya. Otomatisasi terus mengevaluasi setiap pilihan sampai memproses pilihan yang benar. Selanjutnya, otomatisasi melompat ke langkah yang ditetapkan untuk pilihan yang benar tersebut.

Jika tidak ada pilihan yang benar, otomatisasi memeriksa untuk melihat apakah langkah berisi `default` nilai. Nilai default menentukan langkah yang harus dilakukan otomatisasi jika tidak ada pilihan yang benar. Jika tidak ada `default` nilai yang ditentukan untuk langkah, otomatisasi akan memproses langkah berikutnya dalam runbook.

Tindakan `aws:branch` tersebut mendukung evaluasi pilihan kompleks dengan menggunakan kombinasi `And`, `Not`, dan `Or` operator. Untuk informasi lebih lanjut tentang cara menggunakan `aws:branch`, termasuk contoh runbook dan contoh yang menggunakan operator yang berbeda, lihat [Menggunakan pernyataan bersyarat di runbook](automation-branch-condition.md).

**Input**  
Tentukan satu atau lebih `Choices` dalam satu langkah. Dapat `Choices` didasarkan pada nilai yang Anda tentukan dalam `Parameters` bagian runbook, atau nilai dinamis yang dihasilkan sebagai output dari langkah sebelumnya. Berikut adalah sampel YAML yang mengevaluasi parameter.

```
mainSteps:
- name: chooseOS
  action: aws:branch
  inputs:
    Choices:
    - NextStep: runWindowsCommand
      Variable: "{{Name of a parameter defined in the Parameters section. For example: OS_name}}"
      StringEquals: windows
    - NextStep: runLinuxCommand
      Variable: "{{Name of a parameter defined in the Parameters section. For example: OS_name}}"
      StringEquals: linux
    Default:
      sleep3
```

Berikut adalah sampel YAML yang mengevaluasi output dari langkah sebelumnya.

```
mainSteps:
- name: chooseOS
  action: aws:branch
  inputs:
    Choices:
    - NextStep: runPowerShellCommand
      Variable: "{{Name of a response object. For example: GetInstance.platform}}"
      StringEquals: Windows
    - NextStep: runShellCommand
      Variable: "{{Name of a response object. For example: GetInstance.platform}}"
      StringEquals: Linux
    Default:
      sleep3
```

Pilihan  
Satu ekspresi atau lebih bahwa Otomatisasi harus mengevaluasi ketika menentukan langkah berikutnya untuk proses. Pilihan dievaluasi dengan menggunakan ekspresi Boolean. Setiap templat menyertakan menentukan opsi berikut:  
+ **NextStep**: Langkah selanjutnya dalam runbook untuk memproses jika pilihan yang ditunjuk benar.
+ **Variabel**: Tenentukan nama parameter yang didefinisikan dalam `Parameters` bagian dari buku runbook. Atau tentukan objek output dari langkah sebelumnya dalam runbook. Untuk informasi lebih lanjut tentang permbuatan variabel untuk `aws:branch`, lihat [Tentang membuat variabel output](automation-branch-condition.md#branch-action-output).
+ **Operasi**: Kriteria yang digunakan untuk mengevaluasi pilihan. Tindakan `aws:branch` tersebut mendukung operasi berikut:

**Operasi String**
  + StringEquals
  + EqualsIgnoreCase
  + StartsWith
  + EndsWith
  + Berisi

**Operasi numerik**
  + NumericEquals
  + NumericGreater
  + NumericLesser
  + NumericGreaterOrEquals
  + NumericLesser
  + NumericLesserOrEquals

**Operasi Boolean**
  + BooleanEquals
**penting**  
Ketika Anda membuat runbook, sistem memvalidasi setiap operasi di runbook. Jika operasi tidak didukung, sistem akan mengembalikan kesalahan saat Anda mencoba membuat runbook.

Default  
Nama langkah yang harus dilakukan otomatisasi jika tidak ada `Choices` yang benar.  
Jenis: String  
Wajib: Tidak

**catatan**  
Tindakan `aws:branch` tersebut mendukung `And`, `Or`, dan `Not` operator. Misalnya `aws:branch` yang menggunakan operator, lihat [Menggunakan pernyataan bersyarat di runbook](automation-branch-condition.md).

# `aws:changeInstanceState` – Ubah atau tegaskan status instans
<a name="automation-action-changestate"></a>

Ubah atau tegaskan status instans.

Tindakan ini dapat digunakan dalam modus menegaskan (tidak menjalankan API untuk mengubah status tetapi memverifikasi instans dalam keadaan yang diinginkan.) Untuk menggunakan modus menegaskan, atur `CheckStateOnly` parameter ke benar. Mode ini berguna saat menjalankan perintah Sysprep aktifWindows Server, yang merupakan perintah asinkron yang dapat berjalan di latar belakang untuk waktu yang lama. Anda dapat memastikan bahwa instans dihentikan sebelum Anda membuat Amazon Machine Image (AMI).

**catatan**  
Nilai batas waktu default untuk tindakan ini adalah 3600 detik (satu jam). Anda dapat membatasi atau memperpanjang batas waktu dengan menentukan `timeoutSeconds` parameter untuk `aws:changeInstanceState` langkah.

**catatan**  
`aws:changeInstanceState`Tindakan ini mendukung percobaan ulang pelambatan otomatis. Untuk informasi selengkapnya, lihat [Mengkonfigurasi percobaan ulang otomatis untuk operasi yang dibatasi](automation-throttling-retry.md).

**Masukan**

------
#### [ YAML ]

```
name: stopMyInstance
action: aws:changeInstanceState
maxAttempts: 3
timeoutSeconds: 3600
onFailure: Abort
inputs:
  InstanceIds:
  - i-1234567890abcdef0
  CheckStateOnly: true
  DesiredState: stopped
```

------
#### [ JSON ]

```
{
    "name":"stopMyInstance",
    "action": "aws:changeInstanceState",
    "maxAttempts": 3,
    "timeoutSeconds": 3600,
    "onFailure": "Abort",
    "inputs": {
        "InstanceIds": ["i-1234567890abcdef0"],
        "CheckStateOnly": true,
        "DesiredState": "stopped"
    }
}
```

------

InstanceIds  
 IDs Dari contoh.  
Jenis: StringList  
Wajib: Ya

CheckStateOnly  
Jika salah, tetapkan status instans ke status yang diinginkan. Jika benar, tegaskan status yang diinginkan menggunakan polling.  
Default: `false`  
Jenis: Boolean  
Wajib: Tidak

DesiredState  
Status yang diinginkan. Ketika diatur ke `running`, aksi ini menunggu status Amazon EC2 menjadi `Running`, Status Instans menjadi `OK`, dan Status Sistem yang menjadi `OK` sebelum selesai.  
Jenis: String  
Nilai yang valid: `running` \$1 `stopped` \$1 `terminated`  
Wajib: Ya

Kekuatan  
Jika diatur, paksa instans untuk berhenti. Instans yang ada tidak memiliki peluang untuk membersihkan cache sistem file atau metadata sistem file. Jika Anda menggunakan opsi ini, Anda harus melakukan prosedur pemeriksaan dan perbaikan sistem file. Opsi ini tidak disarankan untuk instans EC2 untuk Windows Server.  
Jenis: Boolean  
Wajib: Tidak

AdditionalInfo  
Dicadangkan.  
Jenis: String  
Wajib: Tidak

**Output**  
Tidak ada

# `aws:copyImage` – Salin atau enkripsi Amazon Machine Image
<a name="automation-action-copyimage"></a>

Menyalin Amazon Machine Image (AMI) dari mana pun Wilayah AWS ke Wilayah saat ini. Tindakan ini juga dapat mengenkripsi AMI.

**catatan**  
`aws:copyImage`Tindakan ini mendukung percobaan ulang pelambatan otomatis. Untuk informasi selengkapnya, lihat [Mengkonfigurasi percobaan ulang otomatis untuk operasi yang dibatasi](automation-throttling-retry.md).

**Input**  
Tindakan ini mendukung sebagian besar `CopyImage` parameter. Untuk informasi selengkapnya, lihat [CopyImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CopyImage.html).

Contoh berikut membuat salinan AMI di wilayah Seoul (`SourceImageID`: ami-0fe10819. `SourceRegion`: ap-northeast-2). Baru AMI disalin ke wilayah di mana Anda memulai tindakan otomatisasi. Yang disalin AMI akan dienkripsi karena bendera opsional `Encrypted` diatur ke `true`.

------
#### [ YAML ]

```
name: createEncryptedCopy
action: aws:copyImage
maxAttempts: 3
onFailure: Abort
inputs:
  SourceImageId: ami-0fe10819
  SourceRegion: ap-northeast-2
  ImageName: Encrypted Copy of LAMP base AMI in ap-northeast-2
  Encrypted: true
```

------
#### [ JSON ]

```
{   
    "name": "createEncryptedCopy",
    "action": "aws:copyImage",
    "maxAttempts": 3,
    "onFailure": "Abort",
    "inputs": {
        "SourceImageId": "ami-0fe10819",
        "SourceRegion": "ap-northeast-2",
        "ImageName": "Encrypted Copy of LAMP base AMI in ap-northeast-2",
        "Encrypted": true
    }   
}
```

------

SourceRegion  
Wilayah tempat sumbernya AMI berada.  
Jenis: String  
Diperlukan: Ya

SourceImageId  
ID AMI untuk menyalin dari Sumber Wilayah.  
Jenis: String  
Diperlukan: Ya

ImageName  
Nama gambar baru.  
Jenis: String  
Diperlukan: Ya

ImageDescription  
Deskripsi gambar target.  
Jenis: String  
Wajib: Tidak

Dienkripsi  
Enkripsi target AMI.  
Jenis: Boolean  
Wajib: Tidak

KmsKeyId  
Nama Sumber Daya Amazon (ARN) lengkap yang akan AWS KMS key digunakan saat mengenkripsi snapshot gambar selama operasi penyalinan. Untuk informasi selengkapnya, lihat [CopyImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/api_copyimage.html).  
Tipe: String  
Wajib: Tidak

ClientToken  
Pengenal unik dan peka huruf besar yang Anda berikan untuk memastikan permintaan idempotensi. Untuk informasi selengkapnya, lihat [CopyImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/api_copyimage.html).  
Tipe: String  
Wajib: TidakOutput

ImageId  
ID dari gambar yang disalin.

ImageState  
Keadaan gambar yang disalin.  
Nilai yang Valid: `available` \$1 `pending` \$1 `failed`

# `aws:createImage` – Buat Amazon machine image (AMI)
<a name="automation-action-create"></a>

Membuat Amazon Machine Image (AMI) dari instance yang berjalan, berhenti, atau berhenti, dan polling `ImageState` untuk menjadi`available`.

**catatan**  
`aws:createImage`Tindakan ini mendukung percobaan ulang pelambatan otomatis. Untuk informasi selengkapnya, lihat [Mengkonfigurasi percobaan ulang otomatis untuk operasi yang dibatasi](automation-throttling-retry.md).

**Input**  
Tindakan ini mendukung `CreateImage` parameter berikut. Untuk informasi selengkapnya, lihat [CreateImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateImage.html).

------
#### [ YAML ]

```
name: createMyImage
action: aws:createImage
maxAttempts: 3
onFailure: Abort
inputs:
  InstanceId: i-1234567890abcdef0
  ImageName: AMI Created on{{global:DATE_TIME}}
  NoReboot: true
  ImageDescription: My newly created AMI
```

------
#### [ JSON ]

```
{
    "name": "createMyImage",
    "action": "aws:createImage",
    "maxAttempts": 3,
    "onFailure": "Abort",
    "inputs": {
        "InstanceId": "i-1234567890abcdef0",
        "ImageName": "AMI Created on{{global:DATE_TIME}}",
        "NoReboot": true,
        "ImageDescription": "My newly created AMI"
    }
}
```

------

InstanceId  
ID instance.  
Jenis: String  
Diperlukan: Ya

ImageName  
Nama gambar.  
Jenis: String  
Diperlukan: Ya

ImageDescription  
Deskripsi alias.  
Jenis: String  
Wajib: Tidak

NoReboot  
Boolean literal.  
Secara default, Amazon Elastic Compute Cloud (Amazon EC2) mencoba untuk mematikan dan reboot instans sebelum membuat gambar. Jika pilihan **Tidak Reboot** diatur ke `true`, Amazon EC2 tidak menutup instans sebelum membuat gambar. Bila opsi ini digunakan, integritas sistem file pada gambar yang dibuat tidak dapat dijamin.   
Jika Anda tidak ingin instance berjalan setelah Anda membuat AMI dari itu, pertama-tama gunakan [`aws:changeInstanceState` – Ubah atau tegaskan status instans](automation-action-changestate.md) tindakan untuk menghentikan instance, dan kemudian gunakan `aws:createImage` tindakan ini dengan **NoReboot**opsi yang disetel ke`true`.  
Tipe: Boolean  
Wajib: Tidak

BlockDeviceMappings  
Perangkat blok untuk instans.  
Jenis: Peta  
Wajib: TidakOutput

ImageId  
ID gambar yang baru dibuat.  
Tipe: String

ImageState  
Keadaan gambar saat ini (). Jika status tersedia, gambar berhasil terdaftar dan dapat digunakan untuk meluncurkan sebuah instans.  
Tipe: String

# `aws:createStack`— Buat CloudFormation tumpukan
<a name="automation-action-createstack"></a>

Membuat AWS CloudFormation tumpukan dari template.

**catatan**  
`aws:createStack`Tindakan ini mendukung percobaan ulang pelambatan otomatis. Untuk informasi selengkapnya, lihat [Mengkonfigurasi percobaan ulang otomatis untuk operasi yang dibatasi](automation-throttling-retry.md).

*Untuk informasi tambahan tentang membuat CloudFormation tumpukan, lihat [CreateStack](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html)di Referensi API.AWS CloudFormation * 

**Masukan**

------
#### [ YAML ]

```
name: makeStack
action: aws:createStack
maxAttempts: 1
onFailure: Abort
inputs:
  Capabilities:
  - CAPABILITY_IAM
  StackName: myStack
  TemplateURL: http://s3.amazonaws.com/amzn-s3-demo-bucket/myStackTemplate
  TimeoutInMinutes: 5
  Parameters:
    - ParameterKey: LambdaRoleArn
      ParameterValue: "{{LambdaAssumeRole}}"
    - ParameterKey: createdResource
      ParameterValue: createdResource-{{automation:EXECUTION_ID}}
```

------
#### [ JSON ]

```
{
    "name": "makeStack",
    "action": "aws:createStack",
    "maxAttempts": 1,
    "onFailure": "Abort",
    "inputs": {
        "Capabilities": [
            "CAPABILITY_IAM"
        ],
        "StackName": "myStack",
        "TemplateURL": "http://s3.amazonaws.com/amzn-s3-demo-bucket/myStackTemplate",
        "TimeoutInMinutes": 5,
        "Parameters": [
          {
            "ParameterKey": "LambdaRoleArn",
            "ParameterValue": "{{LambdaAssumeRole}}"
          },
          {
            "ParameterKey": "createdResource",
            "ParameterValue": "createdResource-{{automation:EXECUTION_ID}}"
          }
    }
}
```

------

Kemampuan  
Daftar nilai yang Anda tentukan sebelumnya CloudFormation dapat membuat tumpukan tertentu. Beberapa template tumpukan menyertakan sumber daya yang dapat memengaruhi izin di Anda Akun AWS. Untuk tumpukan tersebut, Anda harus secara eksplisit mengakui kemampuan mereka dengan menentukan parameter ini.   
Nilai yang valid termasuk `CAPABILITY_IAM`, `CAPABILITY_NAMED_IAM`, dan `CAPABILITY_AUTO_EXPAND`.   
**CAPABILITY\$1IAM dan CAPABILITY\$1NAMED\$1IAM**  
Jika Anda memiliki sumber daya IAM, Anda dapat menentukan salah satu kemampuan. Jika Anda memiliki sumber daya IAM dengan nama kustom, Anda harus menentukan `CAPABILITY_NAMED_IAM`. Jika Anda tidak menentukan parameter ini, tindakan ini mengembalikan sebuah `InsufficientCapabilities` kesalahan. Sumber daya berikut mengharuskan Anda untuk menentukan salah satu `CAPABILITY_IAM`atau `CAPABILITY_NAMED_IAM`.
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
Jika templat tumpukan berisi sumber daya ini, sebaiknya Anda meninjau semua izin yang terkait dengannya dan mengedit izinnya, jika diperlukan.   
Untuk informasi selengkapnya, lihat [Mengakui Sumber Daya IAM](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities) di Templat. CloudFormation   
**CAPABILITY\$1AUTO\$1EXPAND**  
Beberapa templat berisi makro. Makro melakukan pemrosesan khusus pada templat; ini dapat mencakup tindakan sederhana seperti find-and-replace operasi, hingga transformasi ekstensif seluruh templat. Karena ini, pengguna biasanya membuat perubahan yang ditetapkan dari templat yang diproses, sehingga mereka dapat meninjau perubahan yang dihasilkan dari makro sebelum benar-benar membuat tumpukan. Jika templat tumpukan berisi satu makro atau lebih, dan Anda memilih untuk membuat tumpukan langsung dari templat yang diproses, tanpa terlebih dahulu meninjau perubahan yang dihasilkan dalam satu set perubahan, Anda harus mengakui kemampuan ini. 
Untuk informasi selengkapnya, lihat [Menggunakan AWS CloudFormation Makro untuk Melakukan Pemrosesan Kustom pada Templat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html) di *Panduan AWS CloudFormation Pengguna*.  
Jenis: Array string  
Nilai yang Valid: `CAPABILITY_IAM | CAPABILITY_NAMED_IAM | CAPABILITY_AUTO_EXPAND`  
Wajib: Tidak

ClientRequestToken  
Pengenal unik untuk CreateStack permintaan ini. Tentukan token ini jika Anda menetapkan maxAttempts dalam langkah ini untuk nilai yang lebih besar dari 1. Dengan menentukan token ini, CloudFormation ketahuilah bahwa Anda tidak mencoba membuat tumpukan baru dengan nama yang sama.  
Tipe: String  
Wajib: Tidak  
Panjang Batasan: Panjang minimum 1. Panjang maksimum 128.  
Pola: [a-zA-Z0-9][-a-zA-Z0-9]\$1

DisableRollback  
Atur ke `true` untuk menonaktifkan rollback tumpukan jika pembuatan tumpukan gagal.  
Bersyarat: Anda dapat menentukan salah satu `DisableRollback` parameter atau `OnFailure` parameter, tapi tidak keduanya.   
Default: `false`  
Jenis: Boolean  
Wajib: Tidak

Pemberitahuan ARNs  
 ARNs Topik Amazon Simple Notification Service (Amazon SNS) untuk mempublikasikan acara terkait tumpukan. [Anda dapat menemukan topik SNS ARNs menggunakan konsol https://console.aws.amazon.com/sns/ Amazon SNS, v3/home.](https://console.aws.amazon.com/sns/v3/home)   
Jenis: Array string  
Anggota Array: Jumlah maksimum 5 item.  
Wajib: Tidak

OnFailure  
Menentukan tindakan yang harus diambil jika pembuatan tumpukan gagal. Anda harus menentukan `DO_NOTHING`, `ROLLBACK`, atau `DELETE`.  
Bersyarat: Anda dapat menentukan salah satu `OnFailure` parameter atau `DisableRollback` parameter, tapi tidak keduanya.   
Default: `ROLLBACK`  
Jenis: String  
Nilai yang Valid:` DO_NOTHING | ROLLBACK | DELETE`  
Wajib: Tidak

Parameter  
Daftar `Parameter` struktur yang menentukan parameter input untuk tumpukan. Untuk informasi selengkapnya, lihat jenis data [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html).   
Jenis: array dari objek [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html)   
Wajib: Tidak

ResourceTypes  
Jenis sumber daya templat yang izinnya Anda gunakan untuk membuat tindakan tumpukan ini. Misalnya: `AWS::EC2::Instance`, `AWS::EC2::*`, atau `Custom::MyCustomInstance`. Gunakan sintaks berikut untuk menggambarkan jenis sumber daya templat.  
+ Untuk semua AWS sumber daya:

  ```
  AWS::*
  ```
+ Untuk semua sumber daya kustom:

  ```
  Custom::*
  ```
+ Untuk sumber daya kustom tertentu:

  ```
  Custom::logical_ID
  ```
+ Untuk semua sumber daya tertentu Layanan AWS:

  ```
  AWS::service_name::*
  ```
+ Untuk sumber AWS daya tertentu:

  ```
  AWS::service_name::resource_logical_ID
  ```
Jika daftar jenis sumber daya tidak termasuk sumber daya yang Anda buat, pembuatan tumpukan gagal. Secara default, CloudFormation memberikan izin ke semua jenis sumber daya. IAM menggunakan parameter ini untuk kunci kondisi CloudFormation -spesifik dalam kebijakan IAM. Untuk informasi selengkapnya, lihat [Mengontrol Akses dengan AWS Identity and Access Management](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html).   
Jenis: Array string  
Panjang Batasan: Panjang minimum 1. Panjang maksimum 256.  
Wajib: Tidak

RoleArn  
Nama Sumber Daya Amazon (ARN) dari peran IAM yang CloudFormation mengasumsikan untuk membuat tumpukan. CloudFormation menggunakan kredensi peran untuk melakukan panggilan atas nama Anda. CloudFormation selalu menggunakan peran ini untuk semua operasi future di stack. Selama pengguna memiliki izin untuk beroperasi di tumpukan, CloudFormation gunakan peran ini meskipun pengguna tidak memiliki izin untuk meneruskannya. Pastikan bahwa peran memberikan sedikitnya jumlah hak istimewa.   
Jika Anda tidak menentukan nilai, CloudFormation gunakan peran yang sebelumnya dikaitkan dengan tumpukan. Jika tidak ada peran yang tersedia, CloudFormation gunakan sesi sementara yang dihasilkan dari kredensi pengguna Anda.   
Tipe: String  
Batasan Panjang: Panjang minimum 20. Panjang maksimum 2048.  
Wajib: Tidak

StackName  
Nama yang terkait dengan tumpukan. Nama harus unik di Daerah di mana Anda membuat tumpukan.  
Sebuah nama tumpukan dapat berisi karakter alfanumerik (peka huruf besar/kecil) dan tanda hubung. Ini harus dimulai dengan karakter abjad dan tidak boleh lebih dari 128 karakter. 
Jenis: String  
Diperlukan: Ya

StackPolicyBody  
Struktur yang berisi badan kebijakan tumpukan. Untuk informasi lebih lanjut, lihat [Cegah Pembaruan untuk Sumber Daya Tumpukan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html).  
Bersyarat: Anda dapat menentukan salah satu `StackPolicyBody` parameter atau `StackPolicyURL` parameter, tapi tidak keduanya.   
Jenis: String  
Panjang Batasan: Panjang minimum 1. Panjang maksimum 16384.   
Wajib: Tidak

StackPolicyURL  
Lokasi file yang berisi kebijakan tumpukan. URL harus menunjuk ke kebijakan yang terletak di bucket S3 di wilayah yang sama dengan tumpukan. Ukuran file maksimum yang diizinkan untuk kebijakan tumpukan adalah 16 KB.  
Bersyarat: Anda dapat menentukan salah satu `StackPolicyBody` parameter atau `StackPolicyURL` parameter, tapi tidak keduanya.   
Jenis: String  
Panjang Batasan: Panjang minimum 1. Panjang maksimum 1350.  
Wajib: Tidak

Tanda  
Pasangan kunci-nilai untuk diasosiasikan dengan tumpukan ini. CloudFormation juga menyebarkan tag ini ke sumber daya yang dibuat di tumpukan. Anda dapat menentukan jumlah maksimum 10 tag.   
Jenis: Array objek [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Tag.html)   
Wajib: Tidak

TemplateBody  
Struktur yang mengandungi body templat dengan panjang minimum 1 byte dan panjang maksimum 51.200 byte. Untuk informasi lebih lanjut, lihat [Anatomi Templat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html).   
Bersyarat: Anda dapat menentukan salah satu `TemplateBody` parameter atau `TemplateURL` parameter, tapi tidak keduanya.   
Jenis: String  
Panjang Batasan: Panjang minimum 1.  
Wajib: Tidak

TemplateURL  
Lokasi file yang mengandungi badan templat. URL harus menunjuk ke templat yang terletak di bucket S3. Ukuran maksimum yang diizinkan untuk template adalah 460.800 byte. Untuk informasi lebih lanjut, lihat [Anatomi Templat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html).   
Bersyarat: Anda dapat menentukan salah satu `TemplateBody` parameter atau `TemplateURL` parameter, tapi tidak keduanya.   
Jenis: String  
Batasan Panjang: Panjang minimum 1. Panjang maksimum 1024.  
Wajib: Tidak

TimeoutInMinutes  
Lamanya waktu yang dapat berlalu sebelum status tumpukan menjadi `CREATE_FAILED`. Jika `DisableRollback` tidak diatur atau diatur ke `false`, tumpukan akan dibatalkan.   
Jenis: Bilangan bulat  
Rentang yang Valid: Nilai minimum 1.  
Wajib: Tidak

## Output
<a name="automation-action-createstack-output"></a>

StackId  
Pengenal tumpukan yang unik.  
Tipe: String

StackStatus  
Status tumpukan saat ini.  
Jenis: String  
Nilai yang Valid: `CREATE_IN_PROGRESS | CREATE_FAILED | CREATE_COMPLETE | ROLLBACK_IN_PROGRESS | ROLLBACK_FAILED | ROLLBACK_COMPLETE | DELETE_IN_PROGRESS | DELETE_FAILED | DELETE_COMPLETE | UPDATE_IN_PROGRESS | UPDATE_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_COMPLETE | UPDATE_ROLLBACK_IN_PROGRESS | UPDATE_ROLLBACK_FAILED | UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_ROLLBACK_COMPLETE | REVIEW_IN_PROGRESS`  
Wajib: Ya

StackStatusReason  
Pesan sukses atau gagal yang terkait dengan status tumpukan.  
Jenis: String  
Wajib: Tidak  
Untuk informasi selengkapnya, lihat [CreateStack](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html).

## Pertimbangan keamanan
<a name="automation-action-createstack-security"></a>

Sebelum Anda dapat menggunakan `aws:createStack` tindakan, Anda harus menetapkan kebijakan berikut untuk peran asumsi Otomatisasi IAM. Untuk informasi lebih lanjut tentang peran asumsi, lihat [Tugas 1: Buat peran layanan untuk otomatisasi](automation-setup-iam.md#create-service-role). 

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "sqs:*",
            "cloudformation:CreateStack",
            "cloudformation:DescribeStacks"
         ],
         "Resource":"*"
      }
   ]
}
```

------

# `aws:createTags`— Buat tag untuk AWS sumber daya
<a name="automation-action-createtag"></a>

Membuat tag baru untuk instans Amazon Elastic Compute Cloud (Amazon EC2) atau instans terkelola. AWS Systems Manager 

**catatan**  
`aws:createTags`Tindakan ini mendukung percobaan ulang pelambatan otomatis. Untuk informasi selengkapnya, lihat [Mengkonfigurasi percobaan ulang otomatis untuk operasi yang dibatasi](automation-throttling-retry.md).

**Input**  
Tindakan ini mendukung sebagian besar parameter Amazon EC2 `CreateTags` dan Systems Manager `AddTagsToResource`. Untuk informasi selengkapnya, lihat [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/api_createtags.html) dan [AddTagsToResource](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/api_addtagstoresource.html).

Contoh berikut menunjukkan cara menandai tag Amazon Machine Image (AMI) dan sebuah instans sebagai sumber daya produksi untuk departemen tertentu.

------
#### [ YAML ]

```
name: createTags
action: aws:createTags
maxAttempts: 3
onFailure: Abort
inputs:
  ResourceType: EC2
  ResourceIds:
  - ami-9a3768fa
  - i-02951acd5111a8169
  Tags:
  - Key: production
    Value: ''
  - Key: department
    Value: devops
```

------
#### [ JSON ]

```
{
    "name": "createTags",
    "action": "aws:createTags",
    "maxAttempts": 3,
    "onFailure": "Abort",
    "inputs": {
        "ResourceType": "EC2",
        "ResourceIds": [
            "ami-9a3768fa",
            "i-02951acd5111a8169"
        ],
        "Tags": [
            {
                "Key": "production",
                "Value": ""
            },
            {
                "Key": "department",
                "Value": "devops"
            }
        ]
    }
}
```

------

ResourceIds  
ID sumber daya (s) yang akan ditandai. Jika jenis sumber daya bukan “EC2”, bidang ini hanya dapat berisi satu item.  
Jenis: Daftar String  
Wajib: Ya

Tag  
Tag untuk mengasosiasikan dengan sumber daya.  
Jenis: Daftar Peta  
Wajib: Ya

ResourceType  
ID sumber daya yang akan ditandai. Jika tidak disediakan, nilai default “EC2” digunakan.  
Jenis: String  
Wajib: Tidak  
Nilai yang benar: `EC2` \$1 `ManagedInstance` \$1 `MaintenanceWindow` \$1 `Parameter`

**Output**  
Tidak ada

# `aws:deleteImage` – Hapus Amazon Machine Image
<a name="automation-action-delete"></a>

Menghapus Amazon Machine Image (AMI) khusus dan semua snapshot terkait.

**catatan**  
`aws:deleteImage`Tindakan ini mendukung percobaan ulang pelambatan otomatis. Untuk informasi selengkapnya, lihat [Mengkonfigurasi percobaan ulang otomatis untuk operasi yang dibatasi](automation-throttling-retry.md).

**Input**  
Tindakan ini hanya mendukung satu parameter. Untuk informasi selengkapnya, lihat dokumentasi untuk [DeregisterImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeregisterImage.html)dan [DeleteSnapshot](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteSnapshot.html).

------
#### [ YAML ]

```
name: deleteMyImage
action: aws:deleteImage
maxAttempts: 3
timeoutSeconds: 180
onFailure: Abort
inputs:
  ImageId: ami-12345678
```

------
#### [ JSON ]

```
{
    "name": "deleteMyImage",
    "action": "aws:deleteImage",
    "maxAttempts": 3,
    "timeoutSeconds": 180,
    "onFailure": "Abort",
    "inputs": {
        "ImageId": "ami-12345678"
    }
}
```

------

ImageId  
ID gambar yang akan dihapus.  
Jenis: String  
Diperlukan: Ya

**Output**  
Tidak ada

# `aws:deleteStack`— Hapus CloudFormation tumpukan
<a name="automation-action-deletestack"></a>

Menghapus AWS CloudFormation tumpukan.

**catatan**  
`aws:deleteStack`Tindakan ini mendukung percobaan ulang pelambatan otomatis. Untuk informasi selengkapnya, lihat [Mengkonfigurasi percobaan ulang otomatis untuk operasi yang dibatasi](automation-throttling-retry.md).

**Masukan**

------
#### [ YAML ]

```
name: deleteStack
action: aws:deleteStack
maxAttempts: 1
onFailure: Abort
inputs:
  StackName: "{{stackName}}"
```

------
#### [ JSON ]

```
{
   "name":"deleteStack",
   "action":"aws:deleteStack",
   "maxAttempts":1,
   "onFailure":"Abort",
   "inputs":{
      "StackName":"{{stackName}}"
   }
}
```

------

ClientRequestToken  
Pengidentifikasi unik untuk `DeleteStack` permintaan ini. Tentukan token ini jika Anda berencana untuk mencoba lagi permintaan sehingga CloudFormation tahu bahwa Anda tidak mencoba menghapus tumpukan dengan nama yang sama. Anda dapat mencoba kembali `DeleteStack` permintaan untuk memverifikasi bahwa CloudFormation menerimanya.  
Tipe: String  
Batasan Panjang: Panjang minimum 1. Panjang maksimum 128.  
Pola: [a-zA-Z][-a-zA-Z0-9]\$1  
Wajib: Tidak

RetainResources.member.n  
Masukan ini hanya berlaku untuk tumpukan yang berada di `DELETE_FAILED` status. Daftar sumber daya logis IDs untuk sumber daya yang ingin Anda pertahankan. Selama penghapusan, CloudFormation menghapus tumpukan, tetapi tidak menghapus sumber daya yang dipertahankan.  
Mempertahankan sumber daya berguna bila Anda tidak dapat menghapus sumber daya, seperti bucket S3 yang tidak kosong, namun Anda ingin menghapus tumpukan.  
Jenis: array string  
Wajib: Tidak

RoleArn  
Nama Sumber Daya Amazon (ARN) dari peran AWS Identity and Access Management (IAM) yang CloudFormation mengasumsikan untuk membuat tumpukan. CloudFormation menggunakan kredensi peran untuk melakukan panggilan atas nama Anda. CloudFormation selalu menggunakan peran ini untuk semua operasi future di stack. Selama pengguna memiliki izin untuk beroperasi di tumpukan, CloudFormation gunakan peran ini meskipun pengguna tidak memiliki izin untuk meneruskannya. Pastikan bahwa peran memberikan sedikitnya jumlah hak istimewa.   
Jika Anda tidak menentukan nilai, CloudFormation gunakan peran yang sebelumnya dikaitkan dengan tumpukan. Jika tidak ada peran yang tersedia, CloudFormation gunakan sesi sementara yang dihasilkan dari kredensi pengguna Anda.   
Tipe: String  
Batasan Panjang: Panjang minimum 20. Panjang maksimum 2048.  
Wajib: Tidak

StackName  
Nama atau ID tumpukan unik yang berhubungan dengan tumpukan.  
Jenis: String  
Wajib: Ya

## Pertimbangan keamanan
<a name="automation-action-deletestack-security"></a>

Sebelum Anda dapat menggunakan `aws:deleteStack` tindakan, Anda harus menetapkan kebijakan berikut untuk peran asumsi Otomatisasi IAM. Untuk informasi lebih lanjut tentang peran asumsi, lihat [Tugas 1: Buat peran layanan untuk otomatisasi](automation-setup-iam.md#create-service-role). 

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "sqs:*",
            "cloudformation:DeleteStack",
            "cloudformation:DescribeStacks"
         ],
         "Resource":"*"
      }
   ]
}
```

------

# `aws:executeAutomation` – Jalankan otomatisasi lain
<a name="automation-action-executeAutomation"></a>

Menjalankan otomatisasi sekunder dengan memanggil runbook sekunder. Dengan tindakan ini, Anda dapat membuat runbook untuk operasi Anda yang paling umum, dan referensi runbook tersebut selama otomatisasi. Tindakan ini dapat menyederhanakan runbook Anda dengan menghapus kebutuhan untuk menduplikasi langkah-langkah di runbook serupa.

Otomatisasi sekunder berjalan dalam konteks pengguna yang memulai otomatisasi utama. Ini berarti bahwa otomatisasi sekunder menggunakan peran AWS Identity and Access Management (IAM) atau pengguna yang sama dengan pengguna yang memulai otomatisasi pertama.

**penting**  
Jika Anda menetapkan parameter dalam otomatisasi sekunder yang menggunakan peran asumsi (peran yang menggunakan kebijakan iam:passRole), maka pengguna atau peran yang memulai otomatisasi utama harus memiliki izin untuk melewati peran asumsi yang ditentukan dalam otomatisasi sekunder. Untuk informasi lebih lanjut tentang pengaturan peran asumsi untuk otomatisasi, lihat [Buat peran layanan untuk Otomasi menggunakan konsol](automation-setup-iam.md).

**Masukan**

------
#### [ YAML ]

```
name: Secondary_Automation
action: aws:executeAutomation
maxAttempts: 3
timeoutSeconds: 3600
onFailure: Abort
inputs:
  DocumentName: secondaryAutomation
  RuntimeParameters:
    instanceIds:
    - i-1234567890abcdef0
```

------
#### [ JSON ]

```
{
   "name":"Secondary_Automation",
   "action":"aws:executeAutomation",
   "maxAttempts":3,
   "timeoutSeconds":3600,
   "onFailure":"Abort",
   "inputs":{
      "DocumentName":"secondaryAutomation",
      "RuntimeParameters":{
         "instanceIds":[
            "i-1234567890abcdef0"
         ]
      }
   }
}
```

------

DocumentName  
Nama runbook sekunder yang dijalankan selama langkah. Untuk runbook yang sama Akun AWS, tentukan nama runbook. Untuk runbook yang dibagikan dari yang berbeda Akun AWS, tentukan Nama Sumber Daya Amazon (ARN) dari runbook. Untuk informasi tentang menggunakan runbook bersama, lihat [Menggunakan dokumen SSM bersama](documents-ssm-sharing.md#using-shared-documents).  
Jenis: String  
Diperlukan: Ya

DocumentVersion  
Runbook versi sekunder yang akan dijalankan. Jika tidak ditentukan, Otomatisasi menjalankan runbook versi default.  
Jenis: String  
Wajib: Tidak

MaxConcurrency  
Jumlah maksimum target yang diizinkan untuk menjalankan tugas ini secara paralel. Anda dapat menentukan angka, seperti 10, atau persentase, seperti 10%.  
Tipe: String  
Wajib: Tidak

MaxErrors  
Jumlah kesalahan yang diizinkan sebelum sistem berhenti menjalankan otomatisasi pada target tambahan. Anda dapat menentukan jumlah kesalahan absolut, misalnya 10, atau persentase target yang ditetapkan, misalnya 10%. Jika Anda menentukan 3, misalnya, sistem berhenti menjalankan otomatisasi ketika kesalahan keempat diterima. Jika Anda menentukan 0, maka sistem berhenti menjalankan otomatisasi pada target tambahan setelah hasil kesalahan pertama dikembalikan. Jika Anda menjalankan otomatisasi pada 50 sumber daya dan disetel `MaxErrors` ke 10%, maka sistem berhenti menjalankan otomatisasi pada target tambahan ketika kesalahan keenam diterima.  
Otomatisasi yang sudah berjalan ketika `MaxErrors` ambang batas tercapai diizinkan untuk diselesaikan, tetapi beberapa otomatisasi ini mungkin gagal juga. Jika Anda perlu memastikan bahwa tidak akan ada lebih banyak otomatisasi yang gagal daripada yang ditentukan`MaxErrors`, atur `MaxConcurrency` ke 1 sehingga otomatisasi berjalan satu per satu.  
Tipe: String  
Wajib: Tidak

RuntimeParameters  
Diperlukan parameter untuk runbook sekunder. Pemetaan menggunakan format berikut: \$1"parameter1" : "value1", "parameter2" : "value2" \$1  
Jenis: Peta  
Wajib: Tidak

Tanda  
Metadata opsional yang Anda tetapkan ke sumber daya. Anda dapat menentukan maksimal lima tag untuk otomatisasi.  
Jenis: MapList  
Wajib: Tidak

TargetLocations  
Lokasi adalah kombinasi dari Wilayah AWS dan/atau Akun AWS di mana Anda ingin menjalankan otomatisasi. Jumlah minimum 1 item harus ditentukan dan jumlah maksimum 100 item dapat ditentukan. Saat menentukan nilai untuk parameter ini, output tidak dikembalikan ke otomatisasi induk. Jika diperlukan, Anda harus melakukan panggilan berikutnya ke operasi API untuk mengambil output dari otomatisasi anak.  
Jenis: MapList  
Wajib: Tidak

TargetMaps  
Daftar pemetaan nilai kunci parameter dokumen untuk menargetkan sumber daya. Keduanya `Targets` dan tidak `TargetMaps` dapat ditentukan bersama.   
Jenis: MapList  
Wajib: Tidak

TargetParameterName  
Nama parameter yang digunakan sebagai sumber daya target untuk otomatisasi yang dikendalikan laju. Diperlukan jika Anda menentukan`Targets`.  
Tipe: String  
Wajib: Tidak

Target  
Daftar pemetaan nilai kunci untuk menargetkan sumber daya. Diperlukan jika Anda menentukan`TargetParameterName`.  
Jenis: MapList  
Wajib: TidakOutput

Output  
Output yang dihasilkan oleh otomatisasi sekunder. Anda dapat mereferensikan output dengan menggunakan format berikut: *Secondary\$1Automation\$1Step\$1Name* .Output  
Jenis: StringList  
Inilah contohnya:  

```
- name: launchNewWindowsInstance
  action: 'aws:executeAutomation'
  onFailure: Abort
  inputs:
    DocumentName: launchWindowsInstance
  nextStep: getNewInstanceRootVolume
- name: getNewInstanceRootVolume
  action: 'aws:executeAwsApi'
  onFailure: Abort
  inputs:
    Service: ec2
    Api: DescribeVolumes
    Filters:
    - Name: attachment.device
      Values:
      - /dev/sda1
    - Name: attachment.instance-id
      Values:
      - '{{launchNewWindowsInstance.Output}}'
  outputs:
  - Name: rootVolumeId
    Selector: '$.Volumes[0].VolumeId'
    Type: String
  nextStep: snapshotRootVolume
- name: snapshotRootVolume
  action: 'aws:executeAutomation'
  onFailure: Abort
  inputs:
    DocumentName: AWS-CreateSnapshot
    RuntimeParameters:
    VolumeId:
    - '{{getNewInstanceRootVolume.rootVolumeId}}'
    Description:
    - 'Initial root snapshot for {{launchNewWindowsInstance.Output}}'
```

ExecutionId  
ID otomatisasi sekunder.  
Jenis: String

Status  
Status otomatisasi sekunder.  
Tipe: String

# `aws:executeAwsApi`— Panggil dan jalankan operasi AWS API
<a name="automation-action-executeAwsApi"></a>

Memanggil dan menjalankan operasi AWS API. Sebagian besar operasi API didukung, meskipun tidak semua operasi API telah diuji. Operasi API streaming, seperti [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html)operasi, tidak didukung. Jika Anda tidak yakin apakah operasi API yang ingin Anda gunakan adalah operasi streaming, tinjau dokumentasi [Boto3](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html) untuk layanan tersebut guna menentukan apakah API memerlukan input atau output streaming. Kami secara teratur memperbarui versi Boto3 yang digunakan oleh tindakan ini. Namun, setelah rilis versi Boto3 baru, diperlukan waktu hingga beberapa minggu agar perubahan tercermin dalam tindakan ini. Setiap `aws:executeAwsApi` tindakan dapat berjalan hingga durasi maksimum 25 detik. Untuk contoh lebih lanjut tentang cara menggunakan tindakan ini, lihat[Contoh runbook tambahan](automation-document-examples.md).

**catatan**  
`aws:executeAwsApi`Tindakan ini mendukung percobaan ulang pelambatan otomatis. Untuk informasi selengkapnya, lihat [Mengkonfigurasi percobaan ulang otomatis untuk operasi yang dibatasi](automation-throttling-retry.md).

**Masukan**  
Input didefinisikan oleh operasi API yang Anda pilih. 

------
#### [ YAML ]

```
action: aws:executeAwsApi
inputs:
  Service: The official namespace of the service
  Api: The API operation or method name
  API operation inputs or parameters: A value
outputs: # These are user-specified outputs
- Name: The name for a user-specified output key
  Selector: A response object specified by using jsonpath format
  Type: The data type
```

------
#### [ JSON ]

```
{
   "action":"aws:executeAwsApi",
   "inputs":{
      "Service":"The official namespace of the service",
      "Api":"The API operation or method name",
      "API operation inputs or parameters":"A value"
   },
   "outputs":[ These are user-specified outputs
      {
         "Name":"The name for a user-specified output key",
         "Selector":"A response object specified by using JSONPath format",
         "Type":"The data type"
      }
   ]
}
```

------

Layanan  
 Layanan AWS Namespace yang berisi operasi API yang ingin Anda jalankan. Anda dapat melihat daftar Layanan AWS ruang nama yang didukung di [Layanan yang tersedia](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html) dari. AWS SDK untuk Python (Boto3) Namespace dapat ditemukan di bagian **Klien**. Misalnya, namespace untuk Systems Manager adalah `ssm`. Namespace untuk Amazon Elastic Compute Cloud (Amazon EC2) adalah `ec2`.  
Jenis: String  
Wajib: Ya

Api  
Nama operasi API yang ingin Anda jalankan. Anda dapat melihat operasi API (juga disebut metode) dengan memilih layanan di navigasi kiri pada halaman [Referensi Layanan](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html). Pilih metode di bagian **Klien** untuk layanan yang ingin Anda jalankan. Misalnya, semua operasi API (metode) untuk Amazon Relational Database Service (Amazon RDS) tercantum di halaman berikut: [Metode Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html).  
Jenis: String  
Wajib: Ya

Input operasi API  
Satu input operasi API atau lebih. Anda dapat melihat input yang tersediaI (dikenal dengan parameter) dengan memilih layanan di navigasi kiri pada halaman [Referensi Layanan](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html) berikut. Pilih metode di bagian **Klien** untuk layanan yang ingin Anda jalankan. Misalnya, semua metode untuk Amazon RDS tercantum di halaman berikut: [Metode Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html). ******Pilih metode [describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) dan gulir ke bawah untuk melihat parameter yang tersedia, seperti DBInstance Identifier, Name, dan Values.******  

```
inputs:
  Service: The official namespace of the service
  Api: The API operation name
  API input 1: A value
  API Input 2: A value
  API Input 3: A value
```

```
"inputs":{
      "Service":"The official namespace of the service",
      "Api":"The API operation name",
      "API input 1":"A value",
      "API Input 2":"A value",
      "API Input 3":"A value"
}
```
Jenis: Ditentukan oleh operasi API yang dipilih  
Wajib: Ya

**Output**  
Output ditentukan oleh pengguna berdasarkan respon dari operasi API yang dipilih.

Nama  
Nama untuk output.  
Jenis: String  
Wajib: Ya

Pemilih  
 JSONPath Untuk atribut tertentu dalam objek respon. Anda dapat melihat obyek respon dengan memilih layanan di navigasi kiri pada halaman [Referensi Layanan](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html) berikut. Pilih metode di bagian **Klien** untuk layanan yang ingin Anda jalankan. Misalnya, semua metode untuk Amazon RDS tercantum di halaman berikut: [Metode Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html). **Pilih metode [describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) dan gulir ke bawah ke bagian Struktur Respons.** **DBInstances**terdaftar sebagai objek respons.  
Jenis: Integer, Boolean, String,, StringList, StringMap atau MapList  
Wajib: Ya

Jenis  
Jenis data untuk elemen respon.  
Jenis: Bervariasi  
Wajib: Ya

# `aws:executeScript` – Jalankan skrip
<a name="automation-action-executeScript"></a>

Menjalankan Python atau PowerShell skrip yang disediakan menggunakan runtime dan handler yang ditentukan. Setiap `aws:executeScript` tindakan dapat menjalankan hingga durasi maksimum 600 detik (10 menit). Anda dapat membatasi batas waktu dengan menentukan `timeoutSeconds` parameter untuk `aws:executeScript` langkah.

Gunakan pernyataan pengembalian dalam fungsi Anda untuk menambahkan output ke payload keluaran Anda. Untuk contoh mendefinisikan output untuk `aws:executeScript` tindakan Anda, lihat. [Contoh 2: Runbook berskrip](automation-authoring-runbooks-scripted-example.md) Anda juga dapat mengirim output dari `aws:executeScript` tindakan di runbook ke grup CloudWatch log Amazon Logs yang Anda tentukan. Untuk informasi selengkapnya, lihat [Keluaran tindakan Otomasi Pencatatan dengan CloudWatch Log](automation-action-logging.md).

Jika Anda ingin mengirim output dari `aws:executeScript` tindakan ke CloudWatch Log, atau jika skrip yang Anda tentukan untuk `aws:executeScript` tindakan memanggil operasi AWS API, peran layanan AWS Identity and Access Management (IAM) (atau mengambil peran) selalu diperlukan untuk menjalankan runbook.

**catatan**  
`aws:executeScript`Tindakan ini tidak mendukung percobaan ulang pelambatan otomatis. Jika skrip Anda membuat panggilan AWS API yang mungkin dibatasi, Anda harus menerapkan logika coba ulang Anda sendiri dalam kode skrip Anda.

`aws:executeScript`Tindakan ini berisi modul PowerShell Core prainstal berikut:
+ Microsoft. PowerShell.Tuan rumah
+ Microsoft. PowerShell.Manajemen
+ Microsoft. PowerShell.Keamanan
+ Microsoft. PowerShell.Utilitas
+ PackageManagement
+ PowerShellGet

Untuk menggunakan modul PowerShell Core yang tidak diinstal sebelumnya, skrip Anda harus menginstal modul dengan `-Force` bendera, seperti yang ditunjukkan pada perintah berikut. `AWSPowerShell.NetCore`Modul tidak didukung. Ganti *ModuleName* dengan modul yang ingin Anda instal.

```
Install-Module ModuleName -Force
```

Untuk menggunakan cmdlet PowerShell Core dalam skrip Anda, sebaiknya gunakan `AWS.Tools` modul, seperti yang ditunjukkan pada perintah berikut. Ganti masing-masing *example resource placeholder* dengan informasi Anda sendiri.
+ cmdlet Amazon S3.

  ```
  Install-Module AWS.Tools.S3 -Force
  Get-S3Bucket -BucketName amzn-s3-demo-bucket
  ```
+ cmdlet Amazon EC2.

  ```
  Install-Module AWS.Tools.EC2 -Force
  Get-EC2InstanceStatus -InstanceId instance-id
  ```
+ Umum, atau layanan AWS Tools for Windows PowerShell cmdlet independen.

  ```
  Install-Module AWS.Tools.Common -Force
  Get-AWSRegion
  ```

Jika skrip Anda menginisialisasi objek baru selain menggunakan cmdlet PowerShell Core, Anda juga harus mengimpor modul seperti yang ditunjukkan pada perintah berikut.

```
Install-Module AWS.Tools.EC2 -Force
Import-Module AWS.Tools.EC2

$tag = New-Object Amazon.EC2.Model.Tag
$tag.Key = "Tag"
$tag.Value = "TagValue"

New-EC2Tag -Resource i-02573cafcfEXAMPLE -Tag $tag
```

Untuk contoh menginstal dan mengimpor `AWS.Tools` modul, dan menggunakan cmdlet PowerShell Core di runbook, lihat. [Pengalaman desain visual untuk runbook Otomasi](automation-visual-designer.md)

**Input**  
Berikan informasi yang diperlukan untuk menjalankan skrip Anda. Ganti masing-masing *example resource placeholder* dengan informasi Anda sendiri.

**catatan**  
Lampiran untuk skrip Python dapat berupa file.py atau file.zip yang berisi skrip. PowerShell skrip harus disimpan dalam file.zip.

------
#### [ YAML ]

```
action: "aws:executeScript"
inputs: 
 Runtime: runtime
 Handler: "functionName"
 InputPayload: 
  scriptInput: '{{parameterValue}}'
 Script: |-
   def functionName(events, context):
   ...
 Attachment: "scriptAttachment.zip"
```

------
#### [ JSON ]

```
{
    "action": "aws:executeScript",
    "inputs": {
        "Runtime": "runtime",
        "Handler": "functionName",
        "InputPayload": {
            "scriptInput": "{{parameterValue}}"
        },
        "Attachment": "scriptAttachment.zip"
    }
}
```

------

Waktu Aktif  
Bahasa runtime yang akan digunakan untuk menjalankan skrip yang disediakan. `aws:executeScript`mendukung runtime dalam tabel berikut.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/automation-action-executeScript.html)
Tipe: String  
Diperlukan: Ya  
Untuk runtime python, lingkungan menyediakan memori 512MB dan ruang disk 512MB. Untuk PowerShell runtime, lingkungan menyediakan memori 1024MB dan ruang disk 512MB.

Handler  
Nama fungsi Anda. Anda harus memastikan fungsi yang didefinisikan dalam handler memiliki dua parameter, `events` dan `context`. PowerShell Runtime tidak mendukung parameter ini.  
Tipe: String  
Diperlukan: Ya (Python) \$1 Tidak didukung () PowerShell

InputPayload  
Objek JSON atau YAML yang akan diteruskan ke parameter handler pertama. Ini dapat digunakan untuk melewatkan data input ke script.  
Jenis: String  
Wajib: Tidak  

```
description: Tag an instance
schemaVersion: '0.3'
assumeRole: '{{AutomationAssumeRole}}'
parameters:
    AutomationAssumeRole:
        type: String
        description: '(Required) The Amazon Resource Name (ARN) of the IAM role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to operate this runbook.'
    InstanceId:
        type: String
        description: (Required) The ID of the EC2 instance you want to tag.
mainSteps:
  - name: tagInstance
    action: 'aws:executeScript'
    inputs:
        Runtime: "python3.11"
        Handler: tagInstance
        InputPayload:
            instanceId: '{{InstanceId}}'
        Script: |-
          def tagInstance(events,context):
            import boto3

            #Initialize client
            ec2 = boto3.client('ec2')
            instanceId = events['instanceId']
            tag = {
                "Key": "Env",
                "Value": "ExamplePython"
            }
            print(f"Adding tag {tag} to instance id {instanceId}")
            ec2.create_tags(
                Resources=[instanceId],
                Tags=[tag]
            )
            return tag
    outputs:
      - Type: String
        Name: TagKey
        Selector: $.Payload.Key
outputs:
  - tagInstance.TagKey
```

```
description: Tag an instance
schemaVersion: '0.3'
assumeRole: '{{AutomationAssumeRole}}'
parameters:
  AutomationAssumeRole:
    type: String
    description: (Required) The Amazon Resource Name (ARN) of the IAM role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to operate this runbook.
  InstanceId:
    type: String
    description: (Required) The ID of the EC2 instance you want to tag.
mainSteps:
  - name: tagInstance
    action: aws:executeScript
    isEnd: true
    inputs:
      Runtime: PowerShell 7.4
      InputPayload:
        instanceId: '{{InstanceId}}'
      Script: |-
        Install-Module AWS.Tools.EC2 -Force
        Import-Module AWS.Tools.EC2

        $input = $env:InputPayload | ConvertFrom-Json

        $tag = New-Object Amazon.EC2.Model.Tag
        $tag.Key = "Env"
        $tag.Value = "ExamplePowerShell"

        Write-Information "Adding tag key: $($tag.Key) and value: $($tag.Value) to instance id $($input.instanceId)"
        New-EC2Tag -Resource $input.instanceId -Tag $tag

        return $tag
    outputs:
      - Type: String
        Name: TagKey
        Selector: $.Payload.Key
outputs:
  - tagInstance.TagKey
```

Skrip  
Skrip tertanam yang ingin Anda jalankan selama otomatisasi.  
Tipe: String  
Wajib: Tidak (Python) \$1 Ya () PowerShell

Lampiran  
Nama file skrip mandiri atau file .zip yang dapat dijalankan oleh tindakan. Tentukan nilai yang sama dengan `Name` file lampiran dokumen yang Anda tentukan dalam parameter `Attachments` permintaan. Untuk informasi selengkapnya, lihat [Lampiran](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_CreateDocument.html#systemsmanager-CreateDocument-request-Attachments) di *Referensi AWS Systems Manager API*. Jika Anda menyediakan skrip menggunakan lampiran, Anda juga harus menentukan `files` bagian di elemen tingkat atas runbook Anda. Untuk informasi selengkapnya, lihat [Skema versi 0.3](documents-schemas-features.md#automation-doc-syntax-examples).  
Guna menjalankan file untuk Python, gunakan `filename.method_name` format dalam `Handler`.   
Lampiran untuk skrip Python dapat berupa file.py atau file.zip yang berisi skrip. PowerShell skrip harus disimpan dalam file.zip.
Ketika menyertakan pustaka Python di lampiran anda, kami sarankan menambahkan sebuah `__init__.py` file kosong dalam setiap direktori modul. Hal ini mengizinkan Anda untuk mengimpor modul dari pustaka di lampiran dalam konten skrip Anda. Misalnya: `from library import module`  
Jenis: String  
Wajib: TidakOutput

Payload  
Representasi objek JSON dikembalikan oleh fungsi Anda. Hingga 100KB yang dikembalikan. Jika Anda menampilkan daftar, maksimal 100 item dikembalikan.

## Menggunakan lampiran dengan AWS: ExecuteScript
<a name="automation-action-executeScript-attachments"></a>

Lampiran menyediakan cara ampuh untuk mengemas dan menggunakan kembali skrip kompleks, beberapa modul, dan dependensi eksternal dengan tindakan Anda. `aws:executeScript` Gunakan lampiran saat Anda perlu:
+ Package beberapa modul Python atau PowerShell script bersama-sama.
+ Gunakan kembali logika skrip yang sama di beberapa runbook.
+ Sertakan pustaka atau dependensi eksternal dengan skrip Anda.
+ Jaga agar definisi runbook Anda tetap bersih dengan memisahkan logika skrip yang kompleks.
+ Bagikan paket skrip di seluruh tim atau alur kerja otomatisasi.

### Struktur lampiran dan kemasan
<a name="automation-action-executeScript-attachment-structure"></a>

Anda dapat melampirkan file tunggal atau paket zip yang berisi banyak file. Strukturnya tergantung pada kasus penggunaan Anda:

**Lampiran file tunggal**  
Untuk skrip sederhana, Anda dapat melampirkan satu `.py` file (Python) atau file `.zip` yang berisi skrip tunggal PowerShell.

**Paket multi-modul**  
Untuk otomatisasi kompleks yang memerlukan banyak modul, buat paket zip dengan struktur yang direkomendasikan berikut:

```
my-automation-package.zip
├── main.py                    # Entry point script
├── utils/
│   ├── __init__.py           # Required for Python module imports
│   ├── helper_functions.py   # Utility functions
│   └── aws_operations.py     # AWS-specific operations
├── config/
│   ├── __init__.py
│   └── settings.py           # Configuration settings
└── requirements.txt          # Optional: document dependencies
```

**penting**  
Untuk paket Python, Anda harus menyertakan `__init__.py` file kosong di setiap direktori yang berisi modul Python. Ini memungkinkan Anda untuk mengimpor modul menggunakan sintaks impor Python standar seperti. `from utils import helper_functions`

**PowerShell struktur paket**  
PowerShell lampiran harus dikemas dalam file zip dengan struktur berikut:

```
my-powershell-package.zip
├── Main.ps1                  # Entry point script
├── Modules/
│   ├── HelperFunctions.ps1   # Utility functions
│   └── AWSOperations.ps1     # AWS-specific operations
└── Config/
    └── Settings.ps1          # Configuration settings
```

### Membuat runbook dengan lampiran
<a name="automation-action-executeScript-attachment-workflow"></a>

Ikuti langkah-langkah berikut untuk membuat runbook yang menggunakan lampiran:

1. **Unggah lampiran Anda ke Amazon S3**

   Unggah file skrip atau paket zip Anda ke bucket S3 yang dapat diakses oleh peran otomatisasi Anda. Perhatikan URI S3 untuk digunakan pada langkah berikutnya.

   ```
   aws s3 cp my-automation-package.zip s3://my-automation-bucket/scripts/
   ```

1. **Hitung checksum lampiran**

   Hitung checksum SHA-256 dari file lampiran Anda untuk verifikasi keamanan:

   ```
   # Linux/macOS
   shasum -a 256 my-automation-package.zip
   
   # Windows PowerShell
   Get-FileHash -Algorithm SHA256 my-automation-package.zip
   ```

1. **Tentukan bagian file di runbook Anda**

   Tambahkan `files` bagian di tingkat atas runbook Anda untuk mereferensikan lampiran Anda:

   ```
   files:
     my-automation-package.zip:
       checksums:
         sha256: "your-calculated-checksum-here"
   ```

1. **Referensikan lampiran di langkah ExecuteScript Anda**

   Gunakan `Attachment` parameter untuk mereferensikan file yang Anda unggah:

   ```
   - name: runMyScript
     action: aws:executeScript
     inputs:
       Runtime: python3.11
       Handler: main.process_data
       Attachment: my-automation-package.zip
       InputPayload:
         inputData: "{{InputParameter}}"
   ```

## AWS: Contoh lampiran executeScript
<a name="automation-action-executeScript-examples"></a>

Contoh berikut menunjukkan berbagai cara untuk menggunakan lampiran dengan `aws:executeScript` tindakan.

### Contoh 1: Lampiran file tunggal
<a name="automation-action-executeScript-single-file-example"></a>

Contoh ini menunjukkan bagaimana menggunakan file Python tunggal sebagai lampiran untuk memproses data instans EC2.

**File lampiran: process\$1instance.py**  
Buat file Python dengan konten berikut:

```
import boto3
import json

def process_instance_data(events, context):
    """Process EC2 instance data and return formatted results."""
    try:
        instance_id = events.get('instanceId')
        if not instance_id:
            raise ValueError("instanceId is required")
        
        ec2 = boto3.client('ec2')
        
        # Get instance details
        response = ec2.describe_instances(InstanceIds=[instance_id])
        instance = response['Reservations'][0]['Instances'][0]
        
        # Format the response
        result = {
            'instanceId': instance_id,
            'instanceType': instance['InstanceType'],
            'state': instance['State']['Name'],
            'availabilityZone': instance['Placement']['AvailabilityZone'],
            'tags': {tag['Key']: tag['Value'] for tag in instance.get('Tags', [])}
        }
        
        print(f"Successfully processed instance {instance_id}")
        return result
        
    except Exception as e:
        print(f"Error processing instance: {str(e)}")
        raise
```

**Runbook lengkap**  
Berikut adalah runbook lengkap yang menggunakan lampiran file tunggal:

```
description: Process EC2 instance data using single file attachment
schemaVersion: '0.3'
assumeRole: '{{AutomationAssumeRole}}'
parameters:
  AutomationAssumeRole:
    type: String
    description: (Required) IAM role for automation execution
  InstanceId:
    type: String
    description: (Required) EC2 instance ID to process

files:
  process_instance.py:
    checksums:
      sha256: "abc123def456..."

mainSteps:
  - name: processInstance
    action: aws:executeScript
    inputs:
      Runtime: python3.11
      Handler: process_instance.process_instance_data
      Attachment: process_instance.py
      InputPayload:
        instanceId: '{{InstanceId}}'
    outputs:
      - Type: StringMap
        Name: InstanceData
        Selector: $.Payload

outputs:
  - processInstance.InstanceData
```

### Contoh 2: Paket multi-modul
<a name="automation-action-executeScript-multi-module-example"></a>

Contoh ini menunjukkan penggunaan paket zip yang berisi beberapa modul Python untuk operasi bucket S3 yang kompleks.

**Struktur Package**  
Buat paket zip dengan struktur berikut:

```
s3-operations.zip
├── main.py
├── utils/
│   ├── __init__.py
│   ├── s3_helper.py
│   └── validation.py
└── config/
    ├── __init__.py
    └── settings.py
```

**main.py (titik masuk)**  
Skrip utama yang mengatur operasi:

```
from utils.s3_helper import S3Operations
from utils.validation import validate_bucket_name
from config.settings import get_default_settings

def cleanup_s3_bucket(events, context):
    """Clean up S3 bucket based on specified criteria."""
    try:
        bucket_name = events.get('bucketName')
        max_age_days = events.get('maxAgeDays', 30)
        
        # Validate inputs
        if not validate_bucket_name(bucket_name):
            raise ValueError(f"Invalid bucket name: {bucket_name}")
        
        # Initialize S3 operations
        s3_ops = S3Operations()
        settings = get_default_settings()
        
        # Perform cleanup
        deleted_objects = s3_ops.delete_old_objects(
            bucket_name, 
            max_age_days,
            settings['dry_run']
        )
        
        result = {
            'bucketName': bucket_name,
            'deletedCount': len(deleted_objects),
            'deletedObjects': deleted_objects[:10],  # Return first 10 for brevity
            'dryRun': settings['dry_run']
        }
        
        print(f"Cleanup completed for bucket {bucket_name}")
        return result
        
    except Exception as e:
        print(f"Error during S3 cleanup: {str(e)}")
        raise
```

## Pemecahan masalah AWS: Lampiran ExecuteScript
<a name="automation-action-executeScript-troubleshooting"></a>

Gunakan panduan berikut untuk menyelesaikan masalah umum dengan `aws:executeScript` lampiran:

**Kesalahan impor modul**  
Jika Anda menerima kesalahan impor saat menggunakan paket multi-modul:
+ Pastikan Anda telah menyertakan `__init__.py` file kosong di setiap direktori yang berisi modul Python.
+ Verifikasi bahwa pernyataan impor Anda cocok dengan struktur file dan direktori yang sebenarnya dalam paket zip Anda.
+ Gunakan impor relatif (misalnya,`from .utils import helper`) atau impor absolut (misalnya,`from utils import helper`) secara konsisten.

**Lampiran tidak ditemukan kesalahan**  
Jika otomatisasi Anda gagal menemukan lampiran:
+ Verifikasi bahwa nilai `Attachment` parameter sama persis dengan kunci di `files` bagian Anda.
+ Periksa apakah jalur bucket S3 dan nama file Anda sudah benar di `files` bagian tersebut.
+ Pastikan peran otomatisasi Anda memiliki `s3:GetObject` izin untuk lokasi lampiran S3.
+ Verifikasi bahwa checksum di runbook Anda cocok dengan checksum file yang sebenarnya.

**Kesalahan fungsi handler**  
Jika Anda menerima kesalahan terkait penangan:
+ Untuk Python: Gunakan format `filename.function_name` dalam `Handler` parameter (misalnya,`main.process_data`).
+ Pastikan fungsi handler Anda menerima tepat dua parameter: `events` dan. `context`
+ Untuk PowerShell: Jangan tentukan `Handler` parameter; skrip berjalan secara langsung.

**Kegagalan eksekusi skrip**  
Jika skrip Anda gagal selama eksekusi:
+ Periksa riwayat eksekusi otomatisasi untuk pesan kesalahan terperinci dan jejak tumpukan.
+ Gunakan `print()` pernyataan (Python) atau `Write-Information` (PowerShell) untuk menambahkan output debugging.
+ Verifikasi bahwa semua AWS izin yang diperlukan diberikan ke peran otomatisasi Anda.
+ Uji logika skrip Anda secara lokal sebelum mengemasnya sebagai lampiran.

**Kode keluar dan penanganan kesalahan**  
Untuk menangani kesalahan dengan benar dan mengembalikan kode keluar:
+ Dalam Python: Gunakan `raise Exception("error message")` untuk menunjukkan kegagalan skrip.
+ Dalam PowerShell: Gunakan `throw "error message"` atau `Write-Error` untuk menunjukkan kegagalan.
+ Kembalikan data terstruktur dari fungsi Anda untuk memberikan success/failure informasi terperinci.
+ Gunakan blok try-catch untuk menangani pengecualian dengan anggun dan memberikan pesan kesalahan yang berarti.

# `aws:executeStateMachine`— Jalankan mesin AWS Step Functions negara
<a name="automation-action-executeStateMachine"></a>

Menjalankan mesin AWS Step Functions negara.

**catatan**  
`aws:executeStateMachine`Tindakan ini mendukung percobaan ulang pelambatan otomatis. Untuk informasi selengkapnya, lihat [Mengkonfigurasi percobaan ulang otomatis untuk operasi yang dibatasi](automation-throttling-retry.md).

**Masukan**

Tindakan ini mendukung sebagian besar parameter untuk operasi Step Functions [StartExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html)API.

**Izin yang diperlukan AWS Identity and Access Management (IAM)**
+ `states:DescribeExecution`
+ `states:StartExecution`
+ `states:StopExecution`

------
#### [ YAML ]

```
name: executeTheStateMachine
action: aws:executeStateMachine
inputs:
  stateMachineArn: StateMachine_ARN
  input: '{"parameters":"values"}'
  name: name
```

------
#### [ JSON ]

```
{
    "name": "executeTheStateMachine",
    "action": "aws:executeStateMachine",
    "inputs": {
        "stateMachineArn": "StateMachine_ARN",
        "input": "{\"parameters\":\"values\"}",
        "name": "name"
    }
}
```

------

stateMachineArn  
Amazon Resource Name (ARN) mesin status Step Functions.  
Jenis: String  
Wajib: Ya

nama  
Nama eksekusi.  
Jenis: String  
Wajib: Tidak

input  
Sebuah string yang berisi data input JSON untuk eksekusi.  
Jenis: String  
Wajib: Tidak

**Output**  
Output berikut telah ditentukan untuk tindakan ini.

ExecutionARN  
ARN eksekusi.  
Tipe: String

input  
String yang berisi data input JSON dari eksekusi. Kendala panjang berlaku untuk ukuran muatan, dan dinyatakan sebagai byte dalam pengkodean UTF-8..  
Tipe: String

name  
Nama eksekusi.  
Tipe: String

output  
Data keluaran JSON dari eksekusi. Kendala panjang berlaku untuk ukuran muatan, dan dinyatakan sebagai byte dalam pengkodean UTF-8.  
Tipe: String

StartDate  
Tanggal eksekusi dimulai.  
Tipe: String

stateMachineArn  
ARN dari mesin yang dinyatakan dieksekusi.  
Tipe: String

status  
Status eksekusi saat ini.  
Tipe: String

StopDate  
Jika eksekusi sudah berakhir, tanggal eksekusi berhenti.  
Tipe: String

# `aws:invokeWebhook`— Memanggil integrasi webhook Otomasi
<a name="invoke-webhook"></a>

Memanggil integrasi webhook Otomasi yang ditentukan. Untuk informasi tentang membuat integrasi Otomasi, lihat[Membuat integrasi webhook untuk Otomasi](creating-webhook-integrations.md).

**catatan**  
`aws:invokeWebhook`Tindakan ini mendukung percobaan ulang pelambatan otomatis. Untuk informasi selengkapnya, lihat [Mengkonfigurasi percobaan ulang otomatis untuk operasi yang dibatasi](automation-throttling-retry.md).

**catatan**  
Untuk menggunakan `aws:invokeWebhook` tindakan, peran pengguna atau layanan Anda harus mengizinkan tindakan berikut:  
ssm: GetParameter
kms:Decrypt
Izin untuk `Decrypt` operasi AWS Key Management Service (AWS KMS) hanya diperlukan jika Anda menggunakan kunci yang dikelola pelanggan untuk mengenkripsi parameter untuk integrasi Anda.

**Input**  
Berikan informasi untuk integrasi Otomasi yang ingin Anda panggil.

------
#### [ YAML ]

```
action: "aws:invokeWebhook"
inputs: 
 IntegrationName: "exampleIntegration"
 Body: "Request body"
```

------
#### [ JSON ]

```
{
    "action": "aws:invokeWebhook",
    "inputs": {
        "IntegrationName": "exampleIntegration",
        "Body": "Request body"
    }
}
```

------

IntegrationName  
Nama integrasi Otomasi. Misalnya, `exampleIntegration`. Integrasi yang Anda tentukan harus sudah ada.  
Tipe: String  
Diperlukan: Ya

Tubuh  
Payload yang ingin Anda kirim saat integrasi webhook Anda dipanggil.  
Tipe: String  
Wajib: TidakOutput

Respons  
Teks yang diterima dari respons penyedia webhook.

ResponseCode  
Kode status HTTP diterima dari respon penyedia webhook.

# `aws:invokeLambdaFunction`— Memanggil fungsi AWS Lambda
<a name="automation-action-lamb"></a>

Memanggil AWS Lambda fungsi yang ditentukan.

**catatan**  
Setiap `aws:invokeLambdaFunction` tindakan dapat menjalankan hingga durasi maksimum 300 detik (5 menit). Anda dapat membatasi batas waktu dengan menentukan `timeoutSeconds` parameter untuk `aws:invokeLambdaFunction` langkah.

**catatan**  
`aws:invokeLambdaFunction`Tindakan ini mendukung percobaan ulang pelambatan otomatis. Untuk informasi selengkapnya, lihat [Mengkonfigurasi percobaan ulang otomatis untuk operasi yang dibatasi](automation-throttling-retry.md).

**Input**  
Tindakan ini mendukung parameter yang paling dijalankan untuk layanan Lambda. Untuk informasi selengkapnya, lihat [Jalankan](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html).

------
#### [ YAML ]

```
name: invokeMyLambdaFunction
action: aws:invokeLambdaFunction
maxAttempts: 3
timeoutSeconds: 120
onFailure: Abort
inputs:
  FunctionName: MyLambdaFunction
```

------
#### [ JSON ]

```
{
    "name": "invokeMyLambdaFunction",
    "action": "aws:invokeLambdaFunction",
    "maxAttempts": 3,
    "timeoutSeconds": 120,
    "onFailure": "Abort",
    "inputs": {
        "FunctionName": "MyLambdaFunction"
    }
}
```

------

FunctionName  
Nama fungsi Lambda. Fungsi ini harus ada.  
Jenis: String  
Wajib: Ya

Pengualifikasi  
Versi fungsi atau alias.  
Jenis: String  
Wajib: Tidak

InvocationType  
Jenis penanganan. Nilai default-nya adalah `RequestResponse`.  
Jenis: String  
Nilai yang valid: `Event` \$1 `RequestResponse` \$1 `DryRun`  
Wajib: Tidak

LogType  
Jika nilai default-nya adalah `Tail`, jenis penanganan harus berupa `RequestResponse`. Lambda mengembalikan 4 KB data log terakhir yang dihasilkan oleh fungsi Lambda Anda, base64-dikodekan.  
Jenis: String  
Nilai yang valid: `None` \$1 `Tail`  
Wajib: Tidak

ClientContext  
Informasi khusus klien.  
Wajib: Tidak

InputPayload  
Sebuah objek YAMAL atau JSON yang diteruskan ke parameter pertama dari handler. Anda dapat menggunakan input ini untuk meneruskan data ke fungsi. Masukan ini memberikan lebih banyak fleksibilitas dan dukungan daripada `Payload` input lama. Jika Anda mendefinisikan keduanya `InputPayload` dan `Payload` untuk tindakan, `InputPayload` diutamakan dan `Payload` nilainya tidak digunakan.  
Jenis: StringMap  
Wajib: Tidak

Payload  
String JSON yang diteruskan ke parameter pertama handler. Ini dapat digunakan untuk meneruskan data input ke fungsi. Kami merekomendasikan penggunaan `InputPayload` input untuk fungsionalitas tambahan.  
Tipe: String  
Wajib: TidakOutput

StatusCode  
Kode status HTTP.

FunctionError  
Jika ada, ini menunjukkan bahwa kesalahan terjadi saat menjalankan fungsi. Detail kesalahan disertakan dalam muatan respons.

LogResult  
The base64-encoded mencatat penanganan fungsi Lambda. Catatan hadir hanya jika jenis penanganan adalah `RequestResponse`, dan log diminta.

Muatan  
Representasi objek JSON dikembalikan oleh fungsi Lambda. Muatan hadir hanya jika jenis doa adalah `RequestResponse`.

Berikut ini adalah bagian dari `AWS-PatchInstanceWithRollback` runbook yang menunjukkan cara mereferensikan output dari tindakan. `aws:invokeLambdaFunction`

------
#### [ YAML ]

```
- name: IdentifyRootVolume
  action: aws:invokeLambdaFunction
  inputs:
    FunctionName: "IdentifyRootVolumeLambda-{{automation:EXECUTION_ID}}"
    Payload: '{"InstanceId": "{{InstanceId}}"}'
- name: PrePatchSnapshot
  action: aws:executeAutomation
  inputs:
    DocumentName: "AWS-CreateSnapshot"
    RuntimeParameters:
      VolumeId: "{{IdentifyRootVolume.Payload}}"
      Description: "ApplyPatchBaseline restoration case contingency"
```

------
#### [ JSON ]

```
{
    "name": "IdentifyRootVolume",
    "action": "aws:invokeLambdaFunction",
    "inputs": {
      "FunctionName": "IdentifyRootVolumeLambda-{{automation:EXECUTION_ID}}",
      "Payload": "{\"InstanceId\": \"{{InstanceId}}\"}"
    }
  },
  {
    "name": "PrePatchSnapshot",
    "action": "aws:executeAutomation",
    "inputs": {
      "DocumentName": "AWS-CreateSnapshot",
      "RuntimeParameters": {
        "VolumeId": "{{IdentifyRootVolume.Payload}}",
        "Description": "ApplyPatchBaseline restoration case contingency"
      }
    }
  }
```

------

# `aws:loop`— Ulangi langkah-langkah dalam otomatisasi
<a name="automation-action-loop"></a>

Tindakan ini mengulangi subset langkah dalam runbook otomatisasi. Anda dapat memilih loop `do while` atau `for each` gaya. Untuk membangun `do while` loop, gunakan parameter `LoopCondition` input. Untuk membangun `for each` loop, gunakan parameter `Iterators` dan `IteratorDataType` input. Saat menggunakan `aws:loop` tindakan, hanya tentukan parameter `Iterators` atau `LoopCondition` input. Jumlah maksimum iterasi adalah 100.

`onCancel`Properti hanya dapat digunakan untuk langkah-langkah yang ditentukan dalam loop. `onCancel`Properti tidak didukung untuk `aws:loop` tindakan tersebut. `onFailure`Properti dapat digunakan untuk `aws:loop` tindakan, namun hanya akan digunakan jika terjadi kesalahan tak terduga yang menyebabkan langkah gagal. Jika Anda mendefinisikan `onFailure` properti untuk langkah-langkah dalam loop, `aws:loop` tindakan mewarisi properti tersebut dan bereaksi sesuai ketika kegagalan terjadi.

**Contoh**  
Berikut ini adalah contoh bagaimana membangun berbagai jenis tindakan loop.

------
#### [ do while ]

```
name: RepeatMyLambdaFunctionUntilOutputIsReturned
action: aws:loop
inputs:
    Steps:
    - name: invokeMyLambda
        action: aws:invokeLambdaFunction
        inputs:
        FunctionName: LambdaFunctionName
        outputs:
        - Name: ShouldRetry
            Selector: $.Retry
            Type: Boolean
    LoopCondition:
        Variable: "{{ invokeMyLambda.ShouldRetry }}"
        BooleanEquals: true
    MaxIterations: 3
```

------
#### [ for each ]

```
name: stopAllInstancesWithWaitTime
action: aws:loop
inputs:
    Iterators: "{{ DescribeInstancesStep.InstanceIds }}"
    IteratorDataType: "String"
    Steps:
    - name: stopOneInstance
        action: aws:changeInstanceState
        inputs:
        InstanceIds:
            - "{{stopAllInstancesWithWaitTime.CurrentIteratorValue}}"
        CheckStateOnly: false
        DesiredState: stopped
    - name: wait10Seconds
        action: aws:sleep
        inputs:
        Duration: PT10S
```

------

**Input**  
Intputnya adalah sebagai berikut.

Iterator  
Daftar item untuk langkah-langkah untuk mengulangi. Jumlah maksimum iterator adalah 100.  
Jenis: StringList  
Wajib: Tidak

IteratorDataType  
Parameter opsional untuk menentukan tipe data dari file`Iterators`. Nilai untuk parameter ini dapat diberikan bersama dengan parameter `Iterators` input. Jika Anda tidak menentukan nilai untuk parameter ini dan`Iterators`, maka Anda harus menentukan nilai untuk `LoopCondition` parameter tersebut.  
Tipe: String  
Nilai yang valid: Boolean \$1 Integer \$1 String \$1 StringMap  
Default: String  
Wajib: Tidak

LoopCondition  
Terdiri dari a `Variable` dan kondisi operator untuk mengevaluasi. Jika Anda tidak menentukan nilai untuk parameter ini, maka Anda harus menentukan nilai untuk `Iterators` dan `IteratorDataType` parameter. Anda dapat menggunakan evaluasi operator yang kompleks dengan menggunakan kombinasi`And`,`Not`, dan `Or` operator. Kondisi ini dievaluasi setelah langkah-langkah dalam loop selesai. Jika kondisinya `true` dan `MaxIterations` nilainya belum tercapai, langkah-langkah dalam loop berjalan lagi. Kondisi operator adalah sebagai berikut:  

**Operasi String**
+ StringEquals
+ EqualsIgnoreCase
+ StartsWith
+ EndsWith
+ Berisi

**Operasi numerik**
+ NumericEquals
+ NumericGreater
+ NumericLesser
+ NumericGreaterOrEquals
+ NumericLesser
+ NumericLesserOrEquals

**Operasi Boolean**
+ BooleanEquals
Jenis: StringMap  
Wajib: Tidak

MaxIterations  
Jumlah maksimum kali langkah-langkah dalam loop dijalankan. Setelah nilai yang ditentukan untuk input ini tercapai, loop berhenti berjalan bahkan jika `LoopCondition` masih `true` atau jika ada objek yang tersisa dalam `Iterators` parameter.  
Jenis: Integer  
Nilai yang valid: 1 - 100  
Wajib: Tidak

Langkah-langkah  
Daftar langkah-langkah untuk dijalankan dalam loop. Ini berfungsi seperti runbook bersarang. Dalam langkah-langkah ini Anda dapat mengakses nilai iterator saat ini untuk `for each` loop menggunakan sintaks`{{loopStepName.CurrentIteratorValue}}`. Anda juga dapat mengakses nilai integer dari iterasi saat ini untuk kedua jenis loop menggunakan sintaks. `{{loopStepName.CurrentIteration}}`  
Jenis: Daftar langkah  
Wajib: YaOutput

CurrentIteration  
Iterasi loop saat ini sebagai bilangan bulat. Nilai iterasi mulai dari 1.  
Jenis: Integer

CurrentIteratorValue  
Nilai iterator saat ini sebagai string. Output ini hanya ada dalam `for each` loop.  
Tipe: String

# `aws:pause` – Jeda otomatisasi
<a name="automation-action-pause"></a>

Tindakan ini menghentikan otomatisasi. Setelah dijeda, status otomasi adalah *Menunggu*. Untuk melanjutkan otomatisasi, gunakan operasi [SendAutomationSignal](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_SendAutomationSignal.html)API dengan tipe `Resume` sinyal. Sebaiknya gunakan `aws:approve` tindakan `aws:sleep` atau untuk kontrol alur kerja Anda yang lebih terperinci.

**catatan**  
Batas waktu default untuk tindakan ini adalah 7 hari (604800 detik) dan nilai maksimum adalah 30 hari (2592000 detik). Anda dapat membatasi atau memperpanjang batas waktu dengan menentukan `timeoutSeconds` parameter untuk `aws:pause` langkah.

**Input**  
Intputnya adalah sebagai berikut.

------
#### [ YAML ]

```
name: pauseThis
action: aws:pause
timeoutSeconds: 1209600
inputs: {}
```

------
#### [ JSON ]

```
{
    "name": "pauseThis",
    "action": "aws:pause",
    "timeoutSeconds": "1209600",
    "inputs": {}
}
```

------Output

Tidak ada  


# `aws:runCommand` – Jalankan perintah pada instans terkelola
<a name="automation-action-runcommand"></a>

Menjalankan perintah yang ditentukan.

**catatan**  
Otomatisasi hanya mendukung *output* dari satu AWS Systems Manager Run Command tindakan. Runbook dapat menyertakan beberapa Run Command tindakan, tetapi output didukung hanya untuk satu tindakan pada satu waktu.

**Input**  
Tindakan ini mendukung sebagian besar parameter perintah kirim. Untuk informasi selengkapnya, lihat [SendCommand](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_SendCommand.html).

------
#### [ YAML ]

```
- name: checkMembership
  action: 'aws:runCommand'
  inputs:
    DocumentName: AWS-RunPowerShellScript
    InstanceIds:
      - '{{InstanceIds}}'
    Parameters:
      commands:
        - (Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain
```

------
#### [ JSON ]

```
{
    "name": "checkMembership",
    "action": "aws:runCommand",
    "inputs": {
        "DocumentName": "AWS-RunPowerShellScript",
        "InstanceIds": [
            "{{InstanceIds}}"
        ],
        "Parameters": {
            "commands": [
                "(Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain"
            ]
        }
    }
}
```

------

DocumentName  
Jika dokumen tipe Command dimiliki oleh Anda atau AWS, tentukan nama dokumen. Jika Anda menggunakan dokumen yang dibagikan dengan Anda oleh Akun AWS yang berbeda, tentukan Amazon Resource Name (ARN) dokumen. Untuk informasi selengkapnya tentang penggunaan dokumen bersama, lihat [Menggunakan dokumen SSM bersama](documents-ssm-sharing.md#using-shared-documents).  
Jenis: String  
Diperlukan: Ya

InstanceIds  
Contoh di IDs mana Anda ingin perintah dijalankan. Anda dapat menentukan maksimal 50 IDs.   
Anda juga dapat menggunakan parameter `{{RESOURCE_ID}}` semu sebagai pengganti instance IDs untuk menjalankan perintah pada semua instance dalam grup target. Untuk informasi selengkapnya tentang parameter semu, lihat[Menggunakan parameter semu saat mendaftarkan tugas jendela pemeliharaan](maintenance-window-tasks-pseudo-parameters.md).  
Alternatif lain adalah untuk mengirim perintah ke armada instans dengan menggunakan `Targets` parameter. Parameter `Targets` menerima tag Amazon Elastic Compute Cloud (Amazon EC2). Untuk informasi selengkapnya tentang cara menggunakan `Targets` parameter, lihat [Jalankan perintah pada skala](send-commands-multiple.md).  
Jenis: StringList  
Wajib: Tidak (Jika Anda tidak menentukan InstanceIds atau menggunakan parameter `{{RESOURCE_ID}}` semu, maka Anda harus menentukan `Targets` parameternya.)

Target  
Array kriteria penelusuran yang menargetkan instance dengan menggunakan kombinasi Kunci, Nilai yang Anda tentukan. `Targets`diperlukan jika Anda tidak memberikan satu atau lebih contoh IDs dalam panggilan. Untuk informasi selengkapnya tentang cara menggunakan `Targets` parameter, lihat [Jalankan perintah pada skala](send-commands-multiple.md).  
Jenis: MapList (Skema peta dalam daftar harus cocok dengan objek.) Untuk informasi lebih lanjut, lihat [Target](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_Target.html) dalam *AWS Systems Manager Referensi API*.  
Wajib: Tidak (Jika Anda tidak menentukan`Targets`, maka Anda harus menentukan InstanceIds atau menggunakan parameter `{{RESOURCE_ID}}` semu.)  
Berikut adalah contohnya.  

```
- name: checkMembership
  action: aws:runCommand
  inputs:
    DocumentName: AWS-RunPowerShellScript
    Targets:
      - Key: tag:Stage
        Values:
          - Gamma
          - Beta
      - Key: tag-key
        Values:
          - Suite
    Parameters:
      commands:
        - (Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain
```

```
{
    "name": "checkMembership",
    "action": "aws:runCommand",
    "inputs": {
        "DocumentName": "AWS-RunPowerShellScript",
        "Targets": [                   
            {
                "Key": "tag:Stage",
                "Values": [
                    "Gamma", "Beta"
                ]
            },
            {
                "Key": "tag:Application",
                "Values": [
                    "Suite"
                ]
            }
        ],
        "Parameters": {
            "commands": [
                "(Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain"
            ]
        }
    }
}
```

Parameter  
Parameter yang diperlukan dan opsional yang ditentukan dalam dokumen.  
Jenis: Peta  
Wajib: Tidak

CloudWatchOutputConfig  
Opsi konfigurasi untuk mengirim output perintah ke Amazon CloudWatch Logs. Untuk informasi selengkapnya tentang mengirim output perintah ke CloudWatch Log, lihat[Mengkonfigurasi CloudWatch Log Amazon untuk Run Command](sysman-rc-setting-up-cwlogs.md).  
Jenis: StringMap (Skema peta harus cocok dengan objek. Untuk informasi selengkapnya, lihat [CloudWatchOutputConfig](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_CloudWatchOutputConfig.html)di *Referensi AWS Systems Manager API*).  
Wajib: Tidak  
Berikut adalah contohnya.  

```
- name: checkMembership
  action: aws:runCommand
  inputs:
    DocumentName: AWS-RunPowerShellScript
    InstanceIds:
      - "{{InstanceIds}}"
    Parameters:
      commands:
        - "(Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain"
    CloudWatchOutputConfig:
      CloudWatchLogGroupName: CloudWatchGroupForSSMAutomationService
      CloudWatchOutputEnabled: true
```

```
{
    "name": "checkMembership",
    "action": "aws:runCommand",
    "inputs": {
        "DocumentName": "AWS-RunPowerShellScript",
        "InstanceIds": [
            "{{InstanceIds}}"
        ],
        "Parameters": {
            "commands": [
                "(Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain"
            ]
        },
        "CloudWatchOutputConfig" : { 
                "CloudWatchLogGroupName": "CloudWatchGroupForSSMAutomationService",
                "CloudWatchOutputEnabled": true
        }
    }
}
```

Komentar  
Informasi yang ditetapkan pengguna tentang perintah.  
Jenis: String  
Wajib: Tidak

DocumentHash  
Hash untuk dokumen.  
Jenis: String  
Wajib: Tidak

DocumentHashType  
Jenis hash.  
Jenis: String  
Nilai yang valid: `Sha256` \$1 `Sha1`  
Wajib: Tidak

NotificationConfig  
Konfigurasi untuk mengirim notifikasi.  
Wajib: Tidak

Keluaran3 BucketName  
Nama bucket S3 untuk tanggapan output perintah. Node terkelola Anda harus memiliki izin agar bucket S3 berhasil mencatat output.  
Tipe: String  
Wajib: Tidak

Keluaran3 KeyPrefix  
Prefiks.  
Jenis: String  
Wajib: Tidak

ServiceRoleArn  
ARN dari peran AWS Identity and Access Management (IAM).  
Tipe: String  
Wajib: Tidak

TimeoutSeconds  
Jumlah waktu dalam hitungan detik untuk menunggu perintah dikirimkan ke AWS Systems Manager SSM Agent pada sebuah instance. Jika perintah tidak diterima oleh SSM Agent pada instance sebelum nilai yang ditentukan tercapai, maka status perintah berubah menjadi`Delivery Timed Out`.  
Tipe: Integer  
Wajib: Tidak  
Nilai yang valid: 30-2592000Output

CommandId  
ID perintah.

Status  
Status perintah.

ResponseCode  
Kode respon perintah. Jika dokumen yang Anda jalankan memiliki lebih dari 1 langkah, nilai tidak dikembalikan untuk output ini.

Output  
Output perintah. Jika Anda menargetkan tag atau beberapa instance dengan perintah Anda, tidak ada nilai output yang dikembalikan. Anda dapat menggunakan operasi `GetCommandInvocation` dan `ListCommandInvocations` API untuk mengambil output untuk instance individual.

# `aws:runInstances` – Luncurkan Instans Amazon EC2
<a name="automation-action-runinstance"></a>

Luncurkan Amazon Elastic Compute Cloud (Amazon EC2) yang baru.

**catatan**  
`aws:runInstances`Tindakan ini mendukung percobaan ulang pelambatan otomatis. Untuk informasi selengkapnya, lihat [Mengkonfigurasi percobaan ulang otomatis untuk operasi yang dibatasi](automation-throttling-retry.md).

**Input**  
Tindakan ini mendukung sebagian besar parameter API. Untuk informasi selengkapnya, lihat dokumentasi [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html)API.

------
#### [ YAML ]

```
name: launchInstance
action: aws:runInstances
maxAttempts: 3
timeoutSeconds: 1200
onFailure: Abort
inputs:
  ImageId: ami-12345678
  InstanceType: t2.micro
  MinInstanceCount: 1
  MaxInstanceCount: 1
  IamInstanceProfileName: myRunCmdRole
  TagSpecifications:
  - ResourceType: instance
    Tags:
    - Key: LaunchedBy
      Value: SSMAutomation
    - Key: Category
      Value: HighAvailabilityFleetHost
```

------
#### [ JSON ]

```
{
   "name":"launchInstance",
   "action":"aws:runInstances",
   "maxAttempts":3,
   "timeoutSeconds":1200,
   "onFailure":"Abort",
   "inputs":{
      "ImageId":"ami-12345678",
      "InstanceType":"t2.micro",
      "MinInstanceCount":1,
      "MaxInstanceCount":1,
      "IamInstanceProfileName":"myRunCmdRole",
      "TagSpecifications":[
         {
            "ResourceType":"instance",
            "Tags":[
               {
                  "Key":"LaunchedBy",
                  "Value":"SSMAutomation"
               },
               {
                  "Key":"Category",
                  "Value":"HighAvailabilityFleetHost"
               }
            ]
         }
      ]
   }
}
```

------

AdditionalInfo  
Dicadangkan.  
Jenis: String  
Wajib: Tidak

BlockDeviceMappings  
Perangkat blok untuk instans.  
Jenis: MapList  
Wajib: Tidak

ClientToken  
Pengenal untuk memastikan idempotensi permintaan.  
Jenis: String  
Wajib: Tidak

DisableApiTermination  
Menghidupkan atau mematikan penghentian API instans.  
Jenis: Boolean  
Wajib: Tidak

EbsOptimized  
Menghidupkan atau mematikan optimisasi Amazon Elastic Block Store (Amazon EBS).  
Jenis: Boolean  
Wajib: Tidak

IamInstanceProfileArn  
Nama Sumber Daya Amazon (ARN) dari profil instans AWS Identity and Access Management (IAM) untuk instance tersebut.  
Tipe: String  
Wajib: Tidak

IamInstanceProfileName  
Nama profil instans (IAM) untuk instans.  
Jenis: String  
Wajib: Tidak

ImageId  
ID Amazon Machine Image (AMI).  
Jenis: String  
Diperlukan: Ya

InstanceInitiatedShutdownBehavior  
Menunjukkan apakah instans berhenti atau berakhir pada sistem shutdown.  
Jenis: String  
Wajib: Tidak

InstanceType  
Jenis instance.  
Jika nilai jenis instans tidak disediakan, jenis instans m1.small digunakan.
Jenis: String  
Wajib: Tidak

KernelId  
ID kernel.  
Jenis: String  
Wajib: Tidak

KeyName  
Nama pasangan kunci.  
Jenis: String  
Wajib: Tidak

MaxInstanceCount  
Jumlah instans maksimum untuk diluncurkan.  
Jenis: String  
Wajib: Tidak

MetadataOptions  
Opsi metadata untuk instans. Untuk informasi selengkapnya, lihat [InstanceMetadataOptionsRequest](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_InstanceMetadataOptionsRequest.html).  
Jenis: StringMap  
Wajib: Tidak

MinInstanceCount  
Jumlah instans minimum untuk diluncurkan.  
Jenis: String  
Wajib: Tidak

Pemantauan  
Menghidupkan atau mematikan pemantauan terperinci.  
Jenis: Boolean  
Wajib: Tidak

NetworkInterfaces  
Antarmuka jaringan.  
Jenis: MapList  
Wajib: Tidak

Penempatan  
Penempatan untuk instans.  
Jenis: StringMap  
Wajib: Tidak

PrivateIpAddress  
 IPv4 Alamat utama.  
Tipe: String  
Wajib: Tidak

RamdiskId  
ID disk RAM.  
Jenis: String  
Wajib: Tidak

SecurityGroupIds  
 IDs Kelompok keamanan misalnya.  
Jenis: StringList  
Wajib: Tidak

SecurityGroups  
Nama grup keamanan untuk instans.  
Jenis: StringList  
Wajib: Tidak

SubnetId  
ID subnet.  
Jenis: String  
Wajib: Tidak

TagSpecifications  
Tag untuk diterapkan ke sumber daya selama peluncuran. Anda hanya dapat menandai instans dan volume saat peluncuran. Tag tertentu diterapkan untuk semua instans atau volume yang dibuat selama peluncuran. Untuk menandai instans setelah diluncurkan, gunakan [`aws:createTags`— Buat tag untuk AWS sumber daya](automation-action-createtag.md) tindakan.  
Jenis: MapList (Untuk informasi lebih lanjut, lihat [TagSpecification](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_TagSpecification.html).)  
Wajib: Tidak

UserData  
Sebuah skrip yang disediakan sebagai nilai literal string. Jika nilai literal dimasukkan, maka harus Base64-encoded.  
Jenis: String  
Wajib: TidakOutput

InstanceIds  
 IDs Dari contoh.

InstanceStates  
Status tabel saat ini ().

# `aws:sleep` – Menunda otomatisasi
<a name="automation-action-sleep"></a>

Menunda otomatisasi selama beberapa waktu tertentu. Tindakan ini menggunakan format tanggal dan waktu Organisasi Internasional untuk Standardisasi (ISO) 8601. Untuk informasi selengkapnya tentang format gal dan waktu, lihat [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html).

**Input**  
Anda dapat menunda otomatisasi untuk durasi tertentu. 

------
#### [ YAML ]

```
name: sleep
action: aws:sleep
inputs:
  Duration: PT10M
```

------
#### [ JSON ]

```
{
   "name":"sleep",
   "action":"aws:sleep",
   "inputs":{
      "Duration":"PT10M"
   }
}
```

------

Anda juga dapat menunda otomatisasi sampai tanggal dan waktu yang ditentukan. Jika tanggal dan waktu yang ditentukan telah berlalu, tindakan akan segera berlanjut. 

------
#### [ YAML ]

```
name: sleep
action: aws:sleep
inputs:
  Timestamp: '2020-01-01T01:00:00Z'
```

------
#### [ JSON ]

```
{
    "name": "sleep",
    "action": "aws:sleep",
    "inputs": {
        "Timestamp": "2020-01-01T01:00:00Z"
    }
}
```

------

**catatan**  
Otomasi mendukung penundaan maksimum 604799 detik (7 hari).

Durasi  
Durasi ISO 8601. Anda tidak dapat menentukan durasi negatif.   
Jenis: String  
Wajib: Tidak

Timestamp  
Sebuah cap waktu ISO 8601. Jika Anda tidak menentukan nilai untuk parameter ini, Anda harus menentukan nilai untuk `Duration` parameter tersebut.   
Jenis: String  
Wajib: TidakOutput

Tidak ada  


# `aws:updateVariable`— Memperbarui nilai untuk variabel runbook
<a name="automation-action-update-variable"></a>

Tindakan ini memperbarui nilai untuk variabel runbook. Tipe data dari nilai harus sesuai dengan tipe data variabel yang ingin Anda perbarui. Konversi tipe data tidak didukung. `onCancel`Properti tidak didukung untuk `aws:updateVariable` tindakan tersebut.

**Input**  
Intputnya adalah sebagai berikut.

------
#### [ YAML ]

```
name: updateStringList
action: aws:updateVariable
inputs:
    Name: variable:variable name
    Value:
    - "1"
    - "2"
```

------
#### [ JSON ]

```
{
    "name": "updateStringList",
    "action": "aws:updateVariable",
    "inputs": {
        "Name": "variable:variable name",
        "Value": ["1","2"]
    }
}
```

------

Nama  
Nama variabel yang nilainya ingin Anda perbarui. Anda harus menggunakan format `variable:variable name`  
Tipe: String  
Diperlukan: Ya

Nilai  
Nilai baru untuk menetapkan ke variabel. Nilai harus sesuai dengan tipe data variabel. Konversi tipe data tidak didukung.  
Jenis: Boolean \$1 Integer \$1 \$1 String MapList \$1 \$1 StringList StringMap  
Wajib: Ya  
Batas:  
+ MapList dapat berisi jumlah maksimum 200 item.
+ Panjang kunci bisa menjadi panjang minimum 1 dan panjang maksimum 50.
+ StringList dapat berupa jumlah minimum 0 item dan jumlah maksimum 50 item.
+ Panjang string bisa menjadi panjang minimum 1 dan panjang maksimum 512.Output

Tidak ada  


# `aws:waitForAwsResourceProperty`— Tunggu properti AWS sumber daya
<a name="automation-action-waitForAwsResourceProperty"></a>

Tindakan `aws:waitForAwsResourceProperty` tersebut mengizinkan otomatisasi Anda untuk menunggu status sumber daya tertentu atau status peristiwa sebelum melanjutkan otomatisasi. Untuk contoh lebih lanjut tentang cara menggunakan tindakan ini, lihat[Contoh runbook tambahan](automation-document-examples.md).

**catatan**  
Nilai batas waktu default untuk tindakan ini adalah 3600 detik (satu jam). Anda dapat membatasi atau memperpanjang batas waktu dengan menentukan `timeoutSeconds` parameter untuk `aws:waitForAwsResourceProperty` langkah. Untuk informasi selengkapnya dan contoh tentang cara menggunakan tindakan ini, lihat [Menangani waktu habis di runbook](automation-handling-timeouts.md).

**catatan**  
`aws:waitForAwsResourceProperty`Tindakan ini mendukung percobaan ulang pelambatan otomatis. Untuk informasi selengkapnya, lihat [Mengkonfigurasi percobaan ulang otomatis untuk operasi yang dibatasi](automation-throttling-retry.md).

**Input**  
Input didefinisikan oleh operasi API yang Anda pilih.

------
#### [ YAML ]

```
action: aws:waitForAwsResourceProperty
inputs:
  Service: The official namespace of the service
  Api: The API operation or method name
  API operation inputs or parameters: A value
  PropertySelector: Response object
  DesiredValues:
  - Desired property value
```

------
#### [ JSON ]

```
{
  "action": "aws:waitForAwsResourceProperty",
  "inputs": {
    "Service":"The official namespace of the service",
    "Api":"The API operation or method name",
    "API operation inputs or parameters":"A value",
    "PropertySelector": "Response object",
    "DesiredValues": [
      "Desired property value"
    ]
  }
}
```

------

Layanan  
 Layanan AWS Namespace yang berisi operasi API yang ingin Anda jalankan. Misalnya, namespace untuk AWS Systems Manager adalah. `ssm` Namespace untuk Amazon Elastic Compute Cloud (Amazon EC2) adalah `ec2`. Anda dapat melihat daftar Layanan AWS ruang nama yang didukung di bagian [Layanan yang Tersedia pada Referensi AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/#available-services) *Perintah*.  
Tipe: String  
Wajib: Ya

Api  
Nama operasi API yang ingin Anda jalankan. Anda dapat melihat operasi API (juga disebut metode) dengan memilih layanan di navigasi kiri pada halaman [Referensi Layanan](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html). Pilih metode di bagian **Klien** untuk layanan yang ingin Anda jalankan. Misalnya, semua operasi API (metode) untuk Amazon Relational Database Service (Amazon RDS) tercantum di halaman berikut: [Metode Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html).  
Jenis: String  
Wajib: Ya

Input operasi API  
Satu input operasi API atau lebih. Anda dapat melihat input yang tersediaI (dikenal dengan parameter) dengan memilih layanan di navigasi kiri pada halaman [Referensi Layanan](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html) berikut. Pilih metode di bagian **Klien** untuk layanan yang ingin Anda jalankan. Misalnya, semua metode untuk Amazon RDS tercantum di halaman berikut: [Metode Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html). ******Pilih metode [describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) dan gulir ke bawah untuk melihat parameter yang tersedia, seperti DBInstance Identifier, Name, dan Values.******  

```
inputs:
  Service: The official namespace of the service
  Api: The API operation name
  API input 1: A value
  API Input 2: A value
  API Input 3: A value
```

```
"inputs":{
      "Service":"The official namespace of the service",
      "Api":"The API operation name",
      "API input 1":"A value",
      "API Input 2":"A value",
      "API Input 3":"A value"
}
```
Jenis: Ditentukan oleh operasi API yang dipilih  
Wajib: Ya

PropertySelector  
 JSONPath Untuk atribut tertentu dalam objek respon. Anda dapat melihat obyek respon dengan memilih layanan di navigasi kiri pada halaman [Referensi Layanan](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html) berikut. Pilih metode di bagian **Klien** untuk layanan yang ingin Anda jalankan. Misalnya, semua metode untuk Amazon RDS tercantum di halaman berikut: [Metode Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html). **Pilih metode [describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) dan gulir ke bawah ke bagian Struktur Respons.** **DBInstances**terdaftar sebagai objek respons.  
Tipe: String  
Diperlukan: Ya

DesiredValues  
Status yang diharapkan untuk melanjutkan otomatisasi.  
Jenis: MapList, StringList  
Wajib: Ya

# Variabel sistem Otomatisasi
<a name="automation-variables"></a>

AWS Systems Manager Runbook otomatisasi menggunakan variabel berikut. Untuk contoh cara penggunaan variabel-variabel ini digunakan, lihat sumber JSON `AWS-UpdateWindowsAmi` runbook. 

**Untuk melihat sumber JSON `AWS-UpdateWindowsAmi` runbook**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Dokumen**.

1. Dalam daftar dokumen, gunakan bilah Pencarian atau angka di sebelah kanan bilah Pencarian untuk memilih buku runbook `AWS-UpdateWindowsAmi`.

1. Pilih tab **Daftar Isi**. 

**Variabel sistem**  
Runbook otomatisasi mendukung variabel berikut.


****  

| Variabel | Detail | 
| --- | --- | 
|  `global:ACCOUNT_ID`  |   Akun AWS ID pengguna atau peran di mana Otomasi berjalan.  | 
|  `global:DATE`  |  Tanggal (pada waktu berjalan) dalam format yyyy-MM-dd.  | 
|  `global:DATE_TIME`  |  Tanggal dan waktu (pada waktu berjalan) dalam format yyyy-MM-dd \$1HH.mm.ss.  | 
|  `global:AWS_PARTITION`  |  Partisi tempat sumber daya berada. Untuk standar Wilayah AWS, partisi adalah`aws`. Jika Anda memiliki sumber daya di partisi lain, maka partisi-nya adalah `aws-partitionname`. Misalnya, partisi untuk sumber daya di Wilayah AWS GovCloud (AS-Barat) adalah`aws-us-gov`.  | 
|  `global:REGION`  |  Wilayah tempat runbook dijalankan. Misalnya, us–east-2.  | 

**Variabel otomatisasi**  
Runbook otomatisasi mendukung variabel otomatisasi berikut.


****  

| Variabel | Detail | 
| --- | --- | 
|  `automation:EXECUTION_ID`  |  Pengenal unik yang ditugaskan untuk otomatisasi saat ini. Misalnya, `1a2b3c-1a2b3c-1a2b3c-1a2b3c1a2b3c1a2b3c`.  | 

**Topics**
+ [Terminologi](#automation-terms)
+ [Skenario yang didukung](#automation-variables-support)
+ [Skenario tidak didukung](#automation-variables-unsupported)

## Terminologi
<a name="automation-terms"></a>

Istilah berikut menjelaskan cara menyelesaikan variabel dan parameter.


****  

| Jangka waktu | Definisi | Contoh | 
| --- | --- | --- | 
|  ARN Konstan  |  Amazon Resource Name (ARN) yang valid tanpa variabel.  |  `arn:aws:iam::123456789012:role/roleName`  | 
|  Parameter runbook  |  Parameter yang didefinisikan pada tingkat runbook (misalnya, `instanceId`). Parameter tersebut digunakan dalam pengganti string dasar. Nilainya diberikan pada saat Memulai Eksekusi.  |  <pre>{ <br />   "description": "Create Image Demo",<br />   "version": "0.3",<br />   "assumeRole": "Your_Automation_Assume_Role_ARN",<br />   "parameters":{ <br />      "instanceId": { <br />         "type": "String",<br />         "description": "Instance to create image from"<br />   }<br />}</pre>  | 
|  Variabel sistem  |  Variabel umum diganti ke runbook ketika setiap bagian runbook dievaluasi.  |  <pre>"activities": [ <br />   { <br />      "id": "copyImage",<br />      "activityType": "AWS-CopyImage",<br />      "maxAttempts": 1,<br />      "onFailure": "Continue",<br />      "inputs": { <br />         "ImageName": "{{imageName}}",<br />         "SourceImageId": "{{sourceImageId}}",<br />         "SourceRegion": "{{sourceRegion}}",<br />         "Encrypted": true,<br />         "ImageDescription": "Test CopyImage Description created on {{global:DATE}}"<br />      }<br />   }<br />]</pre>  | 
|  Variasi otomatis  |  Variabel yang berkaitan dengan otomatisasi diganti ke runbook ketika setiap bagian runbook dievaluasi.  |  <pre>{ <br />   "name": "runFixedCmds",<br />   "action": "aws:runCommand",<br />   "maxAttempts": 1,<br />   "onFailure": "Continue",<br />   "inputs": { <br />      "DocumentName": "AWS-RunPowerShellScript",<br />      "InstanceIds": [ <br />         "{{LaunchInstance.InstanceIds}}"<br />      ],<br />      "Parameters": { <br />         "commands": [ <br />            "dir",<br />            "date",<br />            "“{{outputFormat}}” -f “left”,”right”,”{{global:DATE}}”,”{{automation:EXECUTION_ID}}”<br />         ]<br />      }<br />   }<br />}</pre>  | 
|  Parameter Systems Manager  |  Variabel yang didefinisikan dalam AWS Systems Manager Parameter Store. Itu tidak dapat langsung direferensikan dalam input langkah. Izin mungkin diperlukan untuk mengakses parameter.  |  <pre><br />description: Launch new Windows test instance<br />schemaVersion: '0.3'<br />assumeRole: '{{AutomationAssumeRole}}'<br />parameters:<br />  AutomationAssumeRole:<br />    type: String<br />    default: ''<br />    description: >-<br />      (Required) The ARN of the role that allows Automation to perform the<br />      actions on your behalf. If no role is specified, Systems Manager<br />      Automation uses your IAM permissions to run this runbook.<br />  LatestAmi:<br />    type: String<br />    default: >-<br />      {{ssm:/aws/service/ami-windows-latest/Windows_Server-2016-English-Full-Base}}<br />    description: The latest Windows Server 2016 AMI queried from the public parameter.<br />mainSteps:<br />  - name: launchInstance<br />    action: 'aws:runInstances'<br />    maxAttempts: 3<br />    timeoutSeconds: 1200<br />    onFailure: Abort<br />    inputs:<br />      ImageId: '{{LatestAmi}}'<br />...</pre>  | 

## Skenario yang didukung
<a name="automation-variables-support"></a>


****  

| Skenario | Komentar | Contoh | 
| --- | --- | --- | 
|  ARN Konstan `assumeRole` saat penciptaan.  |  Pemeriksaan otorisasi dilakukan untuk memverifikasi bahwa pengguna panggilan diizinkan untuk melewati diberikan `assumeRole`.  |  <pre>{<br />  "description": "Test all Automation resolvable parameters",<br />  "schemaVersion": "0.3",<br />  "assumeRole": "arn:aws:iam::123456789012:role/roleName",<br />  "parameters": { <br />  ...</pre>  | 
|  Parameter Runbook disediakan untuk `AssumeRole` saat otomasi dimulai.  |  Harus didefinisikan dalam daftar parameter runbook.  |  <pre>{<br />  "description": "Test all Automation resolvable parameters",<br />  "schemaVersion": "0.3",<br />  "assumeRole": "{{dynamicARN}}",<br />  "parameters": {<br /> ...</pre>  | 
|  Nilai yang disediakan untuk parameter runbook di awal.  |  Pelanggan memasok nilai yang akan digunakan untuk parameter. Setiap input yang diberikan pada waktu mulai harus didefinisikan dalam daftar parameter runbook.  |  <pre>...<br />"parameters": {<br />    "amiId": {<br />      "type": "String",<br />      "default": "ami-12345678",<br />      "description": "list of commands to run as part of first step"<br />    },<br />...</pre> Masukan untuk Memulai Eksekusi Otomatisasi meliputi : `{"amiId" : ["ami-12345678"] }`  | 
|  Parameter Systems Manager direferensikan dalam konten runbook.  |  Variabel ada dalam akun pelanggan, atau merupakan parameter yang dapat diakses publik, dan `AssumeRole` untuk runbook memiliki akses ke variabel. Pemeriksaan dilakukan pada waktu membuat untuk mengonfirmasi `AssumeRole` memiliki akses. Parameter tidak dapat langsung direferensikan dalam langkah input.  |  <pre><br />...<br />parameters:<br />    LatestAmi:<br />    type: String<br />    default: >-<br />      {{ssm:/aws/service/ami-windows-latest/Windows_Server-2016-English-Full-Base}}<br />    description: The latest Windows Server 2016 AMI queried from the public parameter.<br />mainSteps:<br />  - name: launchInstance<br />    action: 'aws:runInstances'<br />    maxAttempts: 3<br />    timeoutSeconds: 1200<br />    onFailure: Abort<br />    inputs:<br />      ImageId: '{{LatestAmi}}'<br />...</pre>  | 
|  Variabel sistem direferensikan dalam definisi langkah  |  Sebuah variabel sistem diganti ke runbook ketika otomatisasi dimulai. Nilai yang disuntikkan ke dalam runbook relatif saat substitusi terjadi. Artinya, nilai variabel waktu disuntikkan pada langkah 1 berbeda dari nilai variabel yang disuntikkan pada langkah 3 karena waktu yang dibutuhkan untuk menjalankan langkah-langkah di antaranya. Variabel sistem tidak perlu diatur dalam daftar parameter runbook.  |  <pre>...<br />  "mainSteps": [<br />    {<br />      "name": "RunSomeCommands",<br />      "action": "aws:runCommand",<br />      "maxAttempts": 1,<br />      "onFailure": "Continue",<br />      "inputs": {<br />        "DocumentName": "AWS:RunPowerShell",<br />        "InstanceIds": ["{{LaunchInstance.InstanceIds}}"],<br />        "Parameters": {<br />            "commands" : [<br />                "echo {The time is now {{global:DATE_TIME}}}"<br />            ]<br />        }<br />    }<br />}, ... </pre>  | 
|  Variabel otomatisasi direferensikan dalam definisi langkah.  |  Variabel otomatisasi tidak perlu diatur dalam daftar parameter runbook. Variabel Otomatisasi yang hanya didukung adalah **otomatisasi:EXECUTION\$1ID**.  |  <pre>...<br />"mainSteps": [<br />    {<br />      "name": "invokeLambdaFunction",<br />      "action": "aws:invokeLambdaFunction",<br />      "maxAttempts": 1,<br />      "onFailure": "Continue",<br />      "inputs": {<br />        "FunctionName": "Hello-World-LambdaFunction",<br /><br />"Payload" : "{ "executionId" : "{{automation:EXECUTION_ID}}" }"<br />      }<br />    }<br />... </pre>  | 
|  Lihat output langkah sebelumnya dalam definisi langkah berikutnya.  |  Ini adalah pengalihan parameter. Output langkah sebelumnya direferensikan menggunakan sintaks `{{stepName.OutputName}}`. Sintaks ini tidak dapat digunakan oleh pelanggan untuk parameter runbook. Hal ini teratasi saat langkah pengarah berjalan. Parameter tidak tercantum dalam parameter runbook.  |  <pre>...<br />"mainSteps": [<br />    {<br />      "name": "LaunchInstance",<br />      "action": "aws:runInstances",<br />      "maxAttempts": 1,<br />      "onFailure": "Continue",<br />      "inputs": {<br />        "ImageId": "{{amiId}}",<br />        "MinInstanceCount": 1,<br />        "MaxInstanceCount": 2<br />      }<br />    },<br />    {<br />      "name":"changeState",<br />      "action": "aws:changeInstanceState",<br />      "maxAttempts": 1,<br />      "onFailure": "Continue",<br />      "inputs": {<br />        "InstanceIds": ["{{LaunchInstance.InstanceIds}}"],<br />        "DesiredState": "terminated"<br />      }<br />    }<br /><br />... </pre>  | 

## Skenario tidak didukung
<a name="automation-variables-unsupported"></a>


****  

| Skenario | Komentar | Contoh | 
| --- | --- | --- | 
|  Parameter Systems Manager disediakan untuk `assumeRole` saat membuat  |  Tidak didukung.  |  <pre>...<br /><br />{<br />  "description": "Test all Automation resolvable parameters",<br />  "schemaVersion": "0.3",<br />  "assumeRole": "{{ssm:administratorRoleARN}}",<br />  "parameters": {<br /><br />... </pre>  | 
|  Parameter Systems Manager langsung direferensikan dalam langkah input.  |  Pengembalian `InvalidDocumentContent` pengecualian pada waktu pembuatan.  |  <pre><br />...<br />mainSteps:<br />  - name: launchInstance<br />    action: 'aws:runInstances'<br />    maxAttempts: 3<br />    timeoutSeconds: 1200<br />    onFailure: Abort<br />    inputs:<br />      ImageId: '{{ssm:/aws/service/ami-windows-latest/Windows_Server-2016-English-Full-Base}}'<br />...</pre>  | 
|  Definisi langkah variabel  |  Definisi langkah dalam runbook dibangun oleh variabel.  |  <pre>...<br /><br />"mainSteps": [<br />    {<br />      "name": "LaunchInstance",<br />      "action": "aws:runInstances",<br />      "{{attemptModel}}": 1,<br />      "onFailure": "Continue",<br />      "inputs": {<br />        "ImageId": "ami-12345678",<br />        "MinInstanceCount": 1,<br />        "MaxInstanceCount": 2<br />      }<br /><br />...<br /><br />User supplies input : { "attemptModel" : "minAttempts" } </pre>  | 
|  Parameter runbook referensi silang  |  Pengguna memasok parameter input pada waktu mulai, yang merupakan referensi ke parameter lain dalam runbook.  |  <pre>...<br />"parameters": {<br />    "amiId": {<br />      "type": "String",<br />      "default": "ami-7f2e6015",<br />      "description": "list of commands to run as part of first step"<br />    },<br />    "alternateAmiId": {<br />      "type": "String",<br />      "description": "The alternate AMI to try if this first fails".<br /><br />"default" : "{{amiId}}"<br />    },<br /><br />... </pre>  | 
|  Ekspansi multi level  |  Runbook mendefinisikan variabel yang mengevaluasi ke nama variabel. Ini berada dalam pembatas variabel (yaitu *\$1\$1\$1\$1*) dan diperluas ke nilai variabel/parameter tersebut.  |  <pre>...<br />  "parameters": {<br />    "firstParameter": {<br />      "type": "String",<br />      "default": "param2",<br />      "description": "The parameter to reference"<br />    },<br />    "secondParameter": {<br />      "type": "String",<br />      "default" : "echo {Hello world}",<br />      "description": "What to run"<br />    }<br />  },<br />  "mainSteps": [{<br />      "name": "runFixedCmds",<br />      "action": "aws:runCommand",<br />      "maxAttempts": 1,<br />      "onFailure": "Continue",<br />      "inputs": {<br />        "DocumentName": "AWS-RunPowerShellScript",<br /><br />"InstanceIds" : "{{LaunchInstance.InstanceIds}}",<br />        "Parameters": {<br />          "commands": [ "{{ {{firstParameter}} }}"]<br /><br />}<br /><br />...<br /><br />Note: The customer intention here would be to run a command of "echo {Hello world}" </pre>  | 
|  Referensi output langkah runbook yang merupakan jenis variabel yang berbeda  |  Pengguna mereferensikan output dari langkah runbook sebelumnya dalam langkah berikutnya. Output adalah jenis variabel yang tidak memenuhi persyaratan tindakan pada langkah berikutnya.  |  <pre>...<br />mainSteps:<br />- name: getImageId<br />  action: aws:executeAwsApi<br />  inputs:<br />    Service: ec2<br />    Api: DescribeImages<br />    Filters:  <br />    - Name: "name"<br />      Values: <br />      - "{{ImageName}}"<br />  outputs:<br />  - Name: ImageIdList<br />    Selector: "$.Images"<br />    Type: "StringList"<br />- name: copyMyImages<br />  action: aws:copyImage<br />  maxAttempts: 3<br />  onFailure: Abort<br />  inputs:<br />    SourceImageId: {{getImageId.ImageIdList}}<br />    SourceRegion: ap-northeast-2<br />    ImageName: Encrypted Copies of LAMP base AMI in ap-northeast-2<br />    Encrypted: true <br />... <br />Note: You must provide the type required by the Automation action. <br />In this case, aws:copyImage requires a "String" type variable but the preceding step outputs a "StringList" type variable.<br />                                        </pre>  | 

# Membuat runbook Anda sendiri
<a name="automation-documents"></a>

Runbook Otomasi menentukan *tindakan* yang dilakukan Systems Manager pada instans terkelola dan AWS sumber daya lainnya saat otomatisasi berjalan. Otomasi adalah alat dalam AWS Systems Manager. Runbook berisi satu langkah atau lebih yang berjalan dalam urutan yang tepat. Setiap langkah dibangun di sekitar satu tindakan. Output satu langkah dapat digunakan sebagai masukan dalam langkah selanjutnya. 

Proses menjalankan tindakan ini dan langkah-langkah mereka disebut *Otomatisasi*.

Jenis tindakan yang didukung untuk runbook memungkinkan Anda mengotomatiskan berbagai operasi di lingkungan Anda AWS . Misalnya, menggunakan tipe `executeScript` tindakan, Anda dapat menyematkan python atau PowerShell skrip langsung di runbook Anda. (Ketika Anda membuat runbook kustom, Anda dapat menambahkan skrip sebaris, atau melampirkannya dari bucket S3 atau dari mesin lokal Anda.) Anda dapat mengotomatiskan pengelolaan AWS CloudFormation sumber daya Anda dengan menggunakan jenis `createStack` dan `deleteStack` tindakan. Selain itu, dengan menggunakan tipe `executeAwsApi` tindakan, sebuah langkah dapat menjalankan operasi API *apa* pun Layanan AWS, termasuk membuat atau menghapus AWS sumber daya, memulai proses lain, memulai pemberitahuan, dan banyak lagi. 

Untuk daftar 20 jenis tindakan yang mendukung otomatisasi, lihat [Referensi tindakan Otomatisasi Systems Manager](automation-actions.md).

AWS Systems Manager Automation menyediakan beberapa runbook dengan langkah-langkah yang telah ditentukan sebelumnya yang dapat Anda gunakan untuk melakukan tugas umum seperti memulai ulang satu atau beberapa instans Amazon Elastic Compute Cloud ( EC2Amazon) atau membuat (). Amazon Machine Image AMI Anda juga dapat membuat runbook Anda sendiri dan membagikannya dengan yang lain Akun AWS, atau menjadikannya publik untuk semua pengguna Otomasi.

Runbook ditulis menggunakan YAMAL atau JSON. Menggunakan **Pembuat Dokumen** di konsol Otomatisasi Systems Manager, namun, Anda dapat membuat runbook tanpa harus menulis dalama JSON atau YAML.

**penting**  
Jika Anda menjalankan alur kerja otomatisasi yang menjalankan layanan lain dengan menggunakan AWS Identity and Access Management peran layanan (IAM), pastikan bahwa peran layanan harus dikonfigurasi dengan izin untuk menjalankan layanan tersebut. Persyaratan ini berlaku untuk semua runbook AWS Otomasi (`AWS-*`runbook) seperti`AWS-ConfigureS3BucketLogging`,`AWS-CreateDynamoDBBackup`, dan `AWS-RestartEC2Instance` runbook, untuk beberapa nama. Persyaratan ini juga berlaku untuk setiap runbook Otomasi kustom yang Anda buat yang memanggil orang lain Layanan AWS dengan menggunakan tindakan yang memanggil layanan lain. Misalnya, jika Anda menggunakan `aws:executeAwsApi`, `aws:createStack`, atau `aws:copyImage` tindakan, konfigurasikan peran layanan dengan izin untuk menjalankan layanan tersebut. Anda dapat memberikan izin kepada orang lain Layanan AWS dengan menambahkan kebijakan inline IAM ke peran tersebut. Untuk informasi selengkapnya, lihat [(Opsional) Tambahkan kebijakan sebaris Otomasi atau kebijakan terkelola pelanggan untuk memanggil lainnya Layanan AWS](automation-setup-iam.md#add-inline-policy).

Untuk informasi tentang tindakan yang dapat Anda tentukan di buku runbook, lihat [Referensi tindakan Otomatisasi Systems Manager](automation-actions.md).

Untuk informasi tentang penggunaan AWS Toolkit for Visual Studio Code untuk membuat runbook, lihat [Bekerja dengan dokumen Otomasi Systems Manager](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/systems-manager-automation-docs.html) di *Panduan AWS Toolkit for Visual Studio Code Pengguna*.

Untuk informasi tentang menggunakan desainer visual untuk membuat buku runbook kustom, lihat[Pengalaman desain visual untuk runbook Otomasi](automation-visual-designer.md). 

**Contents**
+ [Pengalaman desain visual untuk runbook Otomasi](automation-visual-designer.md)
  + [Ikhtisar antarmuka pengalaman desain visual](visual-designer-interface-overview.md)
    + [Browser tindakan](visual-designer-interface-overview.md#visual-designer-actions)
    + [Kanvas](visual-designer-interface-overview.md#visual-designer-canvas)
    + [Formulir](visual-designer-interface-overview.md#visual-designer-form)
    + [Pintasan keyboard](visual-designer-interface-overview.md#visual-designer-keyboard-shortcuts)
  + [Menggunakan pengalaman desain visual](visual-designer-use.md)
    + [Buat alur kerja runbook](visual-designer-use.md#visual-designer-create-runbook-workflow)
    + [Desain buku runbook](visual-designer-use.md#visual-designer-build)
    + [Perbarui runbook Anda](visual-designer-use.md#visual-designer-update-runbook)
    + [Ekspor runbook Anda](visual-designer-use.md#visual-designer-export-runbook)
  + [Mengkonfigurasi input dan output untuk tindakan Anda](visual-designer-action-inputs-outputs.md)
    + [Menyediakan data masukan untuk suatu tindakan](visual-designer-action-inputs-outputs.md#providing-input)
    + [Tentukan data keluaran untuk suatu tindakan](visual-designer-action-inputs-outputs.md#defining-output)
  + [Penanganan kesalahan dengan pengalaman desain visual](visual-designer-error-handling.md)
    + [Coba lagi tindakan pada kesalahan](visual-designer-error-handling.md#retry-actions)
    + [Timeout](visual-designer-error-handling.md#timeout-seconds)
    + [Tindakan yang gagal](visual-designer-error-handling.md#failure-actions)
    + [Tindakan yang dibatalkan](visual-designer-error-handling.md#cancel-actions)
    + [Tindakan kritis](visual-designer-error-handling.md#critical-actions)
    + [Mengakhiri tindakan](visual-designer-error-handling.md#end-actions)
  + [Tutorial: Buat runbook menggunakan pengalaman desain visual](visual-designer-tutorial.md)
    + [Langkah 1: Arahkan ke pengalaman desain visual](visual-designer-tutorial.md#navigate-console)
    + [Langkah 2: Buat alur kerja](visual-designer-tutorial.md#create-workflow)
    + [Langkah 3: Tinjau kode yang dibuat secara otomatis](visual-designer-tutorial.md#view-generated-code)
    + [Langkah 4: Jalankan runbook baru Anda](visual-designer-tutorial.md#use-tutorial-runbook)
    + [Langkah 5: Bersihkan](visual-designer-tutorial.md#cleanup-tutorial-runbook)
+ [Menulis runbook Otomasi](automation-authoring-runbooks.md)
  + [Identifikasi kasus penggunaan Anda](automation-authoring-runbooks.md#automation-authoring-runbooks-use-case)
  + [Siapkan lingkungan pengembangan Anda](automation-authoring-runbooks.md#automation-authoring-runbooks-environment)
  + [Kembangkan konten runbook](automation-authoring-runbooks.md#automation-authoring-runbooks-developing-content)
  + [Contoh 1: Membuat runbook orangtua-anak](automation-authoring-runbooks-parent-child-example.md)
    + [Buat runbook anak](automation-authoring-runbooks-parent-child-example.md#automation-authoring-runbooks-child-runbook)
    + [Buat runbook induk](automation-authoring-runbooks-parent-child-example.md#automation-authoring-runbooks-parent-runbook)
  + [Contoh 2: Runbook berskrip](automation-authoring-runbooks-scripted-example.md)
  + [Contoh runbook tambahan](automation-document-examples.md)
    + [Deploy arsitektur VPC dan pengendali domain Microsoft Active Directory](automation-document-architecture-deployment-example.md)
    + [Kembalikan volume root dari snapshot terbaru](automation-document-instance-recovery-example.md)
    + [Buat AMI dan salinan lintas wilayah](automation-document-backup-maintenance-example.md)
+ [Membuat parameter input yang mengisi sumber daya AWS](populating-input-parameters.md)
+ [Menggunakan Document Builder untuk membuat runbook](automation-document-builder.md)
  + [Buat runbook menggunakan Document Builder](automation-document-builder.md#create-runbook)
  + [Buat runbook yang menjalankan skrip](automation-document-builder.md#create-runbook-scripts)
+ [Menggunakan skrip di runbook](automation-document-script-considerations.md)
  + [Izin untuk menggunakan runbook](automation-document-script-considerations.md#script-permissions)
  + [Menambahkan skrip ke runbook](automation-document-script-considerations.md#adding-scripts)
  + [Kendala skrip untuk runbook](automation-document-script-considerations.md#script-constraints)
+ [Menggunakan pernyataan bersyarat di runbook](automation-branch-condition.md)
  + [Bekerja dengan `aws:branch` tindakan](automation-branch-condition.md#branch-action-explained)
    + [Membuat `aws:branch` langkah dalam runbook](automation-branch-condition.md#create-branch-action)
      + [Tentang membuat variabel output](automation-branch-condition.md#branch-action-output)
    + [Contoh `aws:branch` runbook](automation-branch-condition.md#branch-runbook-examples)
    + [Membuat otomatisasi percabangan yang kompleks dengan operator](automation-branch-condition.md#branch-operators)
  + [Contoh cara menggunakan opsi bersyarat](automation-branch-condition.md#conditional-examples)
+ [Menggunakan output tindakan sebagai input](automation-action-outputs-inputs.md)
  + [Menggunakan JSONPath di runbook](automation-action-outputs-inputs.md#automation-action-json-path)
+ [Membuat integrasi webhook untuk Otomasi](creating-webhook-integrations.md)
  + [Membuat integrasi (konsol)](creating-webhook-integrations.md#creating-integrations-console)
  + [Membuat integrasi (baris perintah)](creating-webhook-integrations.md#creating-integrations-commandline)
  + [Membuat webhook untuk integrasi](creating-webhook-integrations.md#creating-webhooks)
+ [Menangani waktu habis di runbook](automation-handling-timeouts.md)

# Pengalaman desain visual untuk runbook Otomasi
<a name="automation-visual-designer"></a>

AWS Systems Manager Otomasi memberikan pengalaman desain visual kode rendah yang membantu Anda membuat runbook otomatisasi. Pengalaman desain visual menyediakan drag-and-drop antarmuka dengan opsi untuk menambahkan kode Anda sendiri sehingga Anda dapat membuat dan mengedit runbook dengan lebih mudah. Dengan pengalaman desain visual, Anda dapat melakukan hal berikut:
+ Kontrol pernyataan bersyarat.
+ Kontrol bagaimana input dan output disaring atau diubah untuk setiap tindakan.
+ Konfigurasikan penanganan kesalahan.
+ Prototipe runbook baru.
+ Gunakan runbook prototipe Anda sebagai titik awal untuk pengembangan lokal dengan. AWS Toolkit for Visual Studio Code

Saat membuat atau mengedit runbook, Anda dapat mengakses pengalaman desain visual dari [konsol Otomasi](https://console.aws.amazon.com/systems-manager/automation/home?region=us-east-1#/). Saat Anda membuat runbook, pengalaman desain visual memvalidasi pekerjaan Anda dan menghasilkan kode secara otomatis. Anda dapat meninjau kode yang dihasilkan, atau mengekspornya untuk pengembangan lokal. Setelah selesai, Anda dapat menyimpan runbook, menjalankannya, dan memeriksa hasilnya di konsol Otomasi Systems Manager. 

**Topics**
+ [Gambaran umum antarmuka](visual-designer-interface-overview.md)
+ [Menggunakan pengalaman desain visual](visual-designer-use.md)
+ [Konfigurasikan input dan output](visual-designer-action-inputs-outputs.md)
+ [Penanganan kesalahan dengan pengalaman desain visual](visual-designer-error-handling.md)
+ [Tutorial: Buat runbook menggunakan pengalaman desain visual](visual-designer-tutorial.md)

# Ikhtisar antarmuka pengalaman desain visual
<a name="visual-designer-interface-overview"></a>

Pengalaman desain visual untuk Systems Manager Automation adalah desainer alur kerja visual kode rendah yang membantu Anda membuat runbook otomatisasi.

Kenali pengalaman desain visual dengan ikhtisar komponen antarmuka:

![\[Komponen pengalaman desain visual\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/images/visual_designer_overview.png)

+ Browser **Actions** berisi tab **Actions**, **AWS APIs**, dan **Runbooks**.
+ *Kanvas* adalah tempat Anda menyeret dan melepas tindakan ke dalam grafik alur kerja Anda, mengubah urutan tindakan, dan memilih tindakan untuk dikonfigurasi atau dilihat.
+ Panel **Formulir** adalah tempat Anda dapat melihat dan mengedit properti tindakan apa pun yang Anda pilih di kanvas. Pilih sakelar **Konten** untuk melihat YAMAL atau JSON untuk runbook Anda, dengan tindakan yang dipilih saat ini disorot. 

Tautan **Info** membuka panel dengan informasi kontekstual saat Anda memerlukan bantuan. Panel ini juga menyertakan tautan ke topik terkait dalam dokumentasi Otomasi Systems Manager. 

## Browser tindakan
<a name="visual-designer-actions"></a>

Dari browser **Tindakan**, Anda dapat memilih tindakan untuk menyeret dan melepas ke grafik alur kerja Anda. Anda dapat mencari semua tindakan menggunakan bidang pencarian di bagian atas browser **Tindakan**. Browser **Actions** berisi tab berikut:
+ Tab **Tindakan** menyediakan daftar tindakan otomatisasi yang dapat Anda seret dan lepas ke grafik alur kerja buku runbook Anda di kanvas.
+ **AWS APIs**Tab menyediakan daftar AWS APIs yang dapat Anda seret dan lepas ke grafik alur kerja runbook Anda di kanvas.
+ Tab **Runbooks** menyediakan beberapa ready-to-use runbook yang dapat digunakan kembali sebagai blok bangunan yang dapat Anda gunakan untuk berbagai kasus penggunaan. Misalnya, Anda dapat menggunakan runbook untuk melakukan tugas remediasi umum di instans Amazon EC2 dalam alur kerja Anda tanpa harus membuat ulang tindakan yang sama.

![\[Peramban tindakan pengalaman desain visual\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/images/visual_designer_actions_multi_view.png)


## Kanvas
<a name="visual-designer-canvas"></a>

Setelah Anda memilih tindakan untuk ditambahkan ke otomatisasi Anda, seret ke kanvas dan jatuhkan ke grafik alur kerja Anda. Anda juga dapat menyeret dan melepas tindakan untuk memindahkannya ke tempat yang berbeda dalam alur kerja runbook Anda. Jika alur kerja Anda rumit, Anda mungkin tidak dapat melihat semuanya di panel kanvas. Gunakan kendali di bagian atas kanvas untuk memperbesar atau memperkecil. Untuk melihat bagian alur kerja yang berbeda, Anda dapat menyeret grafik alur kerja di kanvas. 

Seret tindakan dari browser **Actions**, dan taruh ke dalam grafik alur kerja runbook Anda. Baris menunjukkan tempat status akan ditempatkan di alur kerja Anda. Untuk mengubah urutan tindakan, Anda dapat menyeretnya ke tempat lain di alur kerja Anda. Tindakan baru telah ditambahkan ke alur kerja Anda, dan kodenya dibuat secara otomatis.

![\[Kanvas pengalaman desain visual\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/images/visual_designer_canvas.png)


## Formulir
<a name="visual-designer-form"></a>

Setelah menambahkan tindakan ke alur kerja runbook, Anda dapat mengonfigurasinya untuk memenuhi kasus penggunaan Anda. Pilih tindakan yang ingin Anda konfigurasikan, dan Anda akan melihat parameter dan opsinya di panel **Formulir**. Anda juga dapat melihat kode YAMAL atau JSON dengan memilih toggle **Konten**. Kode yang terkait dengan tindakan yang telah Anda pilih disorot.

![\[Panel formulir pengalaman desain visual\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/images/visual_designer_form.png)


![\[Panel konten pengalaman desain visual\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/images/visual_designer_content.png)


## Pintasan keyboard
<a name="visual-designer-keyboard-shortcuts"></a>

Pengalaman desain visual mendukung pintasan keyboard yang ditunjukkan pada tabel berikut.


| Pintasan keyboard | Fungsi | 
| --- | --- | 
| Ctrl\$1Z | Batalkan operasi terakhir. | 
| Ctrl\$1Shift\$1Z | Ulangi operasi terakhir. | 
| Alt\$1C | Pusatkan alur kerja di kanvas. | 
| Spasi Mundur | Hapus semua status yang dipilih. | 
| Delete | Hapus semua status yang dipilih. | 
| Ctrl\$1D | Gandakan status yang dipilih. | 

# Menggunakan pengalaman desain visual
<a name="visual-designer-use"></a>

Belajar membuat, mengedit, dan menjalankan alur kerja runbook menggunakan pengalaman desain visual. Setelah alur kerja Anda siap, Anda dapat menyimpannya atau mengekspornya. Anda juga dapat menggunakan pengalaman desain visual untuk pembuatan prototipe cepat. 

## Buat alur kerja runbook
<a name="visual-designer-create-runbook-workflow"></a>

1. Masuk ke [konsol Otomasi Systems Manager](https://console.aws.amazon.com/systems-manager/automation/home?region=us-east-1#/).

1. Pilih **Buat runbook**.

1. Di kotak **Nama**, masukkan nama untuk runbook Anda, misalnya,`MyNewRunbook`.

1. Di sebelah sakelar **Desain** dan **Kode**, pilih ikon pensil dan masukkan nama untuk runbook Anda.

Anda sekarang dapat merancang alur kerja untuk runbook baru Anda.

## Desain buku runbook
<a name="visual-designer-build"></a>

 Untuk mendesain alur kerja runbook menggunakan pengalaman desain visual, Anda menyeret tindakan otomatisasi dari browser **Actions** ke kanvas, menempatkannya di tempat yang Anda inginkan dalam alur kerja runbook Anda. Anda juga dapat mengatur ulang tindakan dalam alur kerja Anda dengan menyeretnya ke lokasi yang berbeda. Saat Anda menyeret tindakan ke kanvas, sebuah garis muncul di mana pun Anda dapat melepaskan tindakan dalam alur kerja Anda. Setelah tindakan dijatuhkan ke kanvas, kodenya dibuat secara otomatis dan ditambahkan di dalam konten runbook Anda.

Jika Anda tahu nama tindakan yang ingin Anda tambahkan, gunakan kotak pencarian di bagian atas browser **Tindakan** untuk menemukan tindakan.

Setelah Anda menjatuhkan tindakan ke kanvas, konfigurasikan menggunakan panel **Formulir** di sebelah kanan. Panel ini berisi tab **Umum**, **Input**, **Output**, dan **Konfigurasi** untuk setiap tindakan otomatisasi atau tindakan API yang Anda tempatkan di kanvas. Misalnya, tab **Umum** terdiri dari bagian-bagian berikut:
+ **Nama Langkah** mengidentifikasi langkah. Tentukan nilai unik untuk nama langkah.
+ **Deskripsi** membantu Anda menjelaskan tindakan yang dilakukan dalam alur kerja runbook Anda.

Tab **Input** berisi bidang yang bervariasi berdasarkan tindakan. Misalnya, tindakan `aws:executeScript` otomatisasi terdiri dari bagian-bagian berikut:
+ **Runtime** adalah bahasa yang digunakan untuk menjalankan skrip yang disediakan.
+ **Handler** adalah nama fungsi Anda. Anda harus memastikan bahwa fungsi yang didefinisikan dalam handler memiliki dua parameter: `events` dan`context`. Bagian PowerShell runtime tidak mendukung parameter ini. 
+ **Script adalah skrip** tertanam yang ingin Anda jalankan selama alur kerja.
+ (Opsional) **Lampiran** adalah untuk skrip mandiri atau file.zip yang dapat dipanggil oleh tindakan. Parameter ini diperlukan untuk runbook JSON.

Tab **Output** membantu Anda menentukan nilai yang ingin Anda keluarkan dari suatu tindakan. Anda dapat mereferensikan nilai keluaran dalam tindakan selanjutnya dari alur kerja Anda, atau menghasilkan output dari tindakan untuk tujuan pencatatan. Tidak semua tindakan akan memiliki tab **Output** karena tidak semua tindakan mendukung output. Misalnya, `aws:pause` tindakan tidak mendukung output. Untuk tindakan yang mendukung output, tab **Output** terdiri dari bagian berikut:
+ **Nama** adalah nama yang akan digunakan untuk nilai output. Anda dapat mereferensikan output dalam tindakan selanjutnya dari alur kerja Anda.
+ **Selector** adalah JSONPath string ekspresi dimulai dengan `"$."` yang digunakan untuk memilih satu atau lebih komponen dalam elemen JSON.
+ **Tipe** adalah tipe data untuk nilai output. Misalnya, tipe `Integer` data `String` atau.

Tab **Konfigurasi** berisi properti dan opsi yang dapat digunakan oleh semua tindakan otomatisasi. Tindakan ini terdiri dari bagian-bagian berikut:
+ Properti **upaya Max** adalah berapa kali tindakan mencoba lagi jika gagal.
+ Properti **detik Timeout** menentukan nilai batas waktu untuk tindakan.
+ Properti **Is critical** menentukan apakah kegagalan tindakan menghentikan seluruh otomatisasi.
+ Properti **Next step** menentukan tindakan otomatisasi berikutnya di runbook.
+ Properti **On failure** menentukan tindakan otomatisasi berikutnya di runbook jika tindakan gagal.
+ Properti **On cancel** menentukan tindakan otomatisasi berikutnya di runbook jika tindakan dibatalkan oleh pengguna.

**Untuk menghapus tindakan, Anda dapat menggunakan backspace, toolbar di atas kanvas, atau klik kanan dan pilih Hapus tindakan.**

Saat alur kerja Anda tumbuh, mungkin tidak muat di kanvas. Untuk membantu membuat alur kerja sesuai di kanvas, coba salah satu opsi berikut: 
+ Gunakan kontrol pada panel samping untuk mengubah ukuran atau menutup panel.
+ Gunakan bilah alat di bagian atas kanvas untuk memperbesar grafik alur kerja masuk atau keluar.

## Perbarui runbook Anda
<a name="visual-designer-update-runbook"></a>

Anda dapat memperbarui alur kerja runbook yang ada dengan membuat versi baru dari runbook Anda. Pembaruan untuk runbook Anda dapat dilakukan dengan menggunakan pengalaman desain visual, atau dengan mengedit kode secara langsung. Untuk memperbarui runbook yang ada, gunakan prosedur berikut:

1. Masuk ke [konsol Otomasi Systems Manager](https://console.aws.amazon.com/systems-manager/automation/home?region=us-east-1#/).

1. Pilih runbook yang ingin Anda perbarui.

1. Pilih **Buat versi baru**.

1. Pengalaman desain visual memiliki dua panel: Panel kode dan panel alur kerja visual. Pilih **Desain** di panel alur kerja visual untuk mengedit alur kerja Anda dengan pengalaman desain visual. Setelah selesai, pilih **Buat versi baru** untuk menyimpan perubahan dan keluar.

1. (Opsional) Gunakan panel kode untuk mengedit konten runbook di YAMAL atau JSON.

## Ekspor runbook Anda
<a name="visual-designer-export-runbook"></a>

Untuk mengekspor alur kerja kode YAMAL atau JSON runbook Anda, dan juga grafik alur kerja Anda, gunakan prosedur berikut: 

1. Pilih runbook Anda di konsol **Dokumen**.

1. Pilih **Buat versi baru**.

1. Di dropdown **Tindakan**, pilih apakah Anda ingin mengekspor grafik atau runbook, dan format mana yang Anda inginkan.

# Mengkonfigurasi input dan output untuk tindakan Anda
<a name="visual-designer-action-inputs-outputs"></a>

Setiap tindakan otomatisasi merespons berdasarkan masukan yang diterimanya. Dalam kebanyakan kasus, Anda kemudian meneruskan output ke tindakan selanjutnya. **Dalam pengalaman desain visual, Anda dapat mengonfigurasi data input dan output tindakan di tab **Input dan **Output**** pada panel Formulir.**

Untuk informasi rinci tentang cara mendefinisikan dan menggunakan output untuk tindakan otomatisasi, lihat[Menggunakan output tindakan sebagai input](automation-action-outputs-inputs.md). 

## Menyediakan data masukan untuk suatu tindakan
<a name="providing-input"></a>

Setiap tindakan otomatisasi memiliki satu atau lebih input yang harus Anda berikan nilainya. Nilai yang Anda berikan untuk input tindakan ditentukan oleh tipe data dan format yang diterima oleh tindakan. Misalnya, `aws:sleep` tindakan memerlukan nilai string berformat ISO 8601 untuk input. `Duration`

Umumnya, Anda menggunakan tindakan dalam alur kerja runbook yang mengembalikan output yang ingin Anda gunakan dalam tindakan selanjutnya. Penting untuk memastikan nilai input Anda benar untuk menghindari kesalahan dalam alur kerja runbook Anda. Nilai input juga penting karena menentukan apakah tindakan mengembalikan output yang diharapkan. Misalnya, saat menggunakan `aws:executeAwsApi` tindakan, Anda ingin memastikan bahwa Anda memberikan nilai yang tepat untuk operasi API.

## Tentukan data keluaran untuk suatu tindakan
<a name="defining-output"></a>

Beberapa tindakan otomatisasi mengembalikan output setelah melakukan operasi yang ditentukan. Tindakan yang mengembalikan output memiliki output yang telah ditentukan sebelumnya, atau memungkinkan Anda untuk menentukan output sendiri. Misalnya, `aws:createImage` tindakan memiliki output yang telah ditentukan sebelumnya yang `ImageId` mengembalikan dan. `ImageState` Secara komparatif, dengan `aws:executeAwsApi` tindakan, Anda dapat menentukan output yang Anda inginkan dari operasi API yang ditentukan. Akibatnya, Anda dapat mengembalikan satu atau beberapa nilai dari satu operasi API untuk digunakan dalam tindakan selanjutnya.

Mendefinisikan output Anda sendiri untuk tindakan otomatisasi mengharuskan Anda menentukan nama output, tipe data, dan nilai output. Untuk terus menggunakan `aws:executeAwsApi` tindakan sebagai contoh, katakanlah Anda memanggil operasi `DescribeInstances` API dari Amazon EC2. Dalam contoh ini, Anda ingin mengembalikan, atau mengeluarkan, instans Amazon EC2 dan cabang alur kerja runbook Anda berdasarkan output. `State` Anda memilih untuk memberi nama output**InstanceState**, dan menggunakan tipe **String** data. 

Proses untuk menentukan nilai aktual dari output berbeda, tergantung pada tindakan. Misalnya, jika Anda menggunakan `aws:executeScript` tindakan, Anda harus menggunakan `return` pernyataan dalam fungsi Anda untuk memberikan data ke output Anda. Dengan tindakan lain seperti`aws:executeAwsApi`,`aws:waitForAwsResourceProperty`, dan`aws:assertAwsResourceProperty`, a `Selector` diperlukan. The`Selector`, atau `PropertySelector` sebagai beberapa tindakan merujuk padanya, adalah JSONPath string yang digunakan untuk memproses respons JSON dari operasi API. Penting untuk memahami bagaimana objek respons JSON dari operasi API terstruktur sehingga Anda dapat memilih nilai yang benar untuk output Anda. Menggunakan operasi `DescribeInstances` API yang disebutkan sebelumnya, lihat contoh respons JSON berikut:

```
{
  "reservationSet": {
    "item": {
      "reservationId": "r-1234567890abcdef0",
      "ownerId": 123456789012,
      "groupSet": "",
      "instancesSet": {
        "item": {
          "instanceId": "i-1234567890abcdef0",
          "imageId": "ami-bff32ccc",
          "instanceState": {
            "code": 16,
            "name": "running"
          },
          "privateDnsName": "ip-192-168-1-88.eu-west-1.compute.internal",
          "dnsName": "ec2-54-194-252-215.eu-west-1.compute.amazonaws.com",
          "reason": "",
          "keyName": "my_keypair",
          "amiLaunchIndex": 0,
          "productCodes": "",
          "instanceType": "t2.micro",
          "launchTime": "2018-05-08T16:46:19.000Z",
          "placement": {
            "availabilityZone": "eu-west-1c",
            "groupName": "",
            "tenancy": "default"
          },
          "monitoring": {
            "state": "disabled"
          },
          "subnetId": "subnet-56f5f000",
          "vpcId": "vpc-11112222",
          "privateIpAddress": "192.168.1.88",
          "ipAddress": "54.194.252.215",
          "sourceDestCheck": true,
          "groupSet": {
            "item": {
              "groupId": "sg-e4076000",
              "groupName": "SecurityGroup1"
            }
          },
          "architecture": "x86_64",
          "rootDeviceType": "ebs",
          "rootDeviceName": "/dev/xvda",
          "blockDeviceMapping": {
            "item": {
              "deviceName": "/dev/xvda",
              "ebs": {
                "volumeId": "vol-1234567890abcdef0",
                "status": "attached",
                "attachTime": "2015-12-22T10:44:09.000Z",
                "deleteOnTermination": true
              }
            }
          },
          "virtualizationType": "hvm",
          "clientToken": "xMcwG14507example",
          "tagSet": {
            "item": {
              "key": "Name",
              "value": "Server_1"
            }
          },
          "hypervisor": "xen",
          "networkInterfaceSet": {
            "item": {
              "networkInterfaceId": "eni-551ba000",
              "subnetId": "subnet-56f5f000",
              "vpcId": "vpc-11112222",
              "description": "Primary network interface",
              "ownerId": 123456789012,
              "status": "in-use",
              "macAddress": "02:dd:2c:5e:01:69",
              "privateIpAddress": "192.168.1.88",
              "privateDnsName": "ip-192-168-1-88.eu-west-1.compute.internal",
              "sourceDestCheck": true,
              "groupSet": {
                "item": {
                  "groupId": "sg-e4076000",
                  "groupName": "SecurityGroup1"
                }
              },
              "attachment": {
                "attachmentId": "eni-attach-39697adc",
                "deviceIndex": 0,
                "status": "attached",
                "attachTime": "2018-05-08T16:46:19.000Z",
                "deleteOnTermination": true
              },
              "association": {
                "publicIp": "54.194.252.215",
                "publicDnsName": "ec2-54-194-252-215.eu-west-1.compute.amazonaws.com",
                "ipOwnerId": "amazon"
              },
              "privateIpAddressesSet": {
                "item": {
                  "privateIpAddress": "192.168.1.88",
                  "privateDnsName": "ip-192-168-1-88.eu-west-1.compute.internal",
                  "primary": true,
                  "association": {
                    "publicIp": "54.194.252.215",
                    "publicDnsName": "ec2-54-194-252-215.eu-west-1.compute.amazonaws.com",
                    "ipOwnerId": "amazon"
                  }
                }
              },
              "ipv6AddressesSet": {
                "item": {
                  "ipv6Address": "2001:db8:1234:1a2b::123"
                }
              }
            }
          },
          "iamInstanceProfile": {
            "arn": "arn:aws:iam::123456789012:instance-profile/AdminRole",
            "id": "ABCAJEDNCAA64SSD123AB"
          },
          "ebsOptimized": false,
          "cpuOptions": {
            "coreCount": 1,
            "threadsPerCore": 1
          }
        }
      }
    }
  }
}
```

Dalam objek respons JSON, instance `State` bersarang di `Instances` objek, yang bersarang di objek. `Reservations` Untuk mengembalikan nilai instance`State`, gunakan string berikut untuk `Selector` sehingga nilai dapat digunakan dalam output kami:**\$1.Reservations[0].Instances[0].State.Name**.

Untuk mereferensikan nilai output dalam tindakan selanjutnya dari alur kerja runbook Anda, format berikut digunakan:. `{{ StepName.NameOfOutput }}` Misalnya, **\$1\$1 GetInstanceState.InstanceState \$1\$1**. Dalam pengalaman desain visual, Anda dapat memilih nilai output untuk digunakan dalam tindakan selanjutnya menggunakan dropdown untuk input. Saat menggunakan output dalam tindakan selanjutnya, tipe data output harus cocok dengan tipe data untuk input. Dalam contoh ini, `InstanceState` outputnya adalah a`String`. Oleh karena itu, untuk menggunakan nilai dalam input tindakan selanjutnya, input harus menerima a`String`.

# Penanganan kesalahan dengan pengalaman desain visual
<a name="visual-designer-error-handling"></a>

Secara default, saat tindakan melaporkan kesalahan, Automation menghentikan alur kerja runbook sepenuhnya. Ini karena nilai default untuk `onFailure` properti pada semua tindakan adalah`Abort`. Anda dapat mengonfigurasi cara Automation menangani kesalahan dalam alur kerja runbook Anda. Bahkan jika Anda telah mengonfigurasi penanganan kesalahan, beberapa kesalahan mungkin masih menyebabkan otomatisasi gagal. Untuk informasi selengkapnya, lihat [Pemecahan masalah Otomatisasi Systems Manager](automation-troubleshooting.md). Dalam pengalaman desain visual, Anda mengonfigurasi penanganan kesalahan di panel **Konfigurasi**.

![\[Opsi penanganan kesalahan\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/images/visual_designer_error_handling.png)


## Coba lagi tindakan pada kesalahan
<a name="retry-actions"></a>

Untuk mencoba lagi tindakan jika terjadi kesalahan, tentukan nilai untuk properti **Upaya Maks**. Nilai default adalah 1. Jika Anda menentukan nilai yang lebih besar dari 1, tindakan tersebut tidak dianggap gagal sampai semua upaya percobaan ulang gagal.

## Timeout
<a name="timeout-seconds"></a>

Anda dapat mengonfigurasi batas waktu untuk tindakan untuk mengatur jumlah maksimum detik tindakan yang dapat dijalankan sebelum gagal. Untuk mengonfigurasi batas waktu, masukkan jumlah detik yang harus ditunggu tindakan Anda sebelum tindakan gagal di properti **detik Timeout**. Jika batas waktu tercapai dan tindakan memiliki nilai `Max attempts` yang lebih besar dari 1, langkah tersebut tidak dianggap telah habis waktu sampai percobaan ulang selesai.

## Tindakan yang gagal
<a name="failure-actions"></a>

Secara default, ketika suatu tindakan gagal, Automation menghentikan alur kerja runbook sepenuhnya. Anda dapat mengubah perilaku ini dengan menentukan nilai alternatif untuk properti **On failure** dari tindakan di buku runbook Anda. **Jika Anda ingin alur kerja melanjutkan ke langkah berikutnya di runbook, pilih Lanjutkan.** Jika Anda ingin alur kerja melompat ke langkah berikutnya yang berbeda di runbook, pilih **Langkah** lalu masukkan nama langkahnya.

## Tindakan yang dibatalkan
<a name="cancel-actions"></a>

Secara default, saat tindakan dibatalkan oleh pengguna, Automation menghentikan alur kerja runbook sepenuhnya. Anda dapat mengubah perilaku ini dengan menentukan nilai alternatif untuk properti **On cancel** dari tindakan di buku runbook Anda. Jika Anda ingin alur kerja melompat ke langkah berikutnya yang berbeda di runbook, pilih **Langkah** lalu masukkan nama langkahnya.

## Tindakan kritis
<a name="critical-actions"></a>

Anda dapat menetapkan suatu tindakan sebagai tindakan *penting*, artinya tindakan tersebut menentukan status pelaporan keseluruhan otomatisasi Anda. Jika langkah dengan penunjukan ini gagal, Otomasi melaporkan status akhir sebagai `Failed` terlepas dari keberhasilan tindakan lain. Untuk mengonfigurasi tindakan sebagai kritis, biarkan nilai default sebagai **True** untuk properti **Is critical**.

## Mengakhiri tindakan
<a name="end-actions"></a>

Properti **Is end** menghentikan otomatisasi pada akhir tindakan yang ditentukan. Nilai default untuk properti ini adalah`false`. Jika Anda mengonfigurasi properti ini untuk suatu tindakan, otomatisasi akan berhenti apakah tindakan berhasil atau gagal. Properti ini paling sering digunakan dengan `aws:branch` tindakan untuk menangani nilai input yang tidak terduga atau tidak ditentukan. Contoh berikut menunjukkan runbook yang mengharapkan status instance dari salah satu`running`,`stopping`, atau. `stopped` Jika sebuah instance berada dalam keadaan yang berbeda, otomatisasi berakhir.

![\[Pengalaman desain visual adalah contoh akhir\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/images/visual_designer_is_end_example.png)


# Tutorial: Buat runbook menggunakan pengalaman desain visual
<a name="visual-designer-tutorial"></a>

Dalam tutorial ini, Anda akan mempelajari dasar-dasar bekerja dengan pengalaman desain visual yang disediakan oleh Systems Manager Automation. Dalam pengalaman desain visual, Anda dapat membuat runbook yang menggunakan beberapa tindakan. Anda menggunakan fitur drag and drop untuk mengatur tindakan di kanvas. Anda juga mencari, memilih, dan mengonfigurasi tindakan ini. Kemudian, Anda dapat melihat kode YAMAL yang dibuat secara otomatis untuk alur kerja runbook Anda, keluar dari pengalaman desain visual, menjalankan runbook, dan meninjau detail eksekusi.

Tutorial ini juga menunjukkan cara memperbarui runbook dan melihat versi baru. Di akhir tutorial, Anda melakukan langkah pembersihan dan menghapus runbook Anda.

Setelah Anda menyelesaikan tutorial ini, Anda akan tahu cara menggunakan pengalaman desain visual untuk membuat runbook. Anda juga akan tahu cara memperbarui, menjalankan, dan menghapus runbook Anda.

**catatan**  
Sebelum Anda memulai tutorial ini, pastikan untuk menyelesaikannya[Menyiapkan Otomatisasi](automation-setup.md).

**Topics**
+ [Langkah 1: Arahkan ke pengalaman desain visual](#navigate-console)
+ [Langkah 2: Buat alur kerja](#create-workflow)
+ [Langkah 3: Tinjau kode yang dibuat secara otomatis](#view-generated-code)
+ [Langkah 4: Jalankan runbook baru Anda](#use-tutorial-runbook)
+ [Langkah 5: Bersihkan](#cleanup-tutorial-runbook)

## Langkah 1: Arahkan ke pengalaman desain visual
<a name="navigate-console"></a>

1. Masuk ke [konsol Otomasi Systems Manager](https://console.aws.amazon.com/systems-manager/automation/home?region=us-east-1#/).

1. Pilih **Buat runbook otomatisasi**.

## Langkah 2: Buat alur kerja
<a name="create-workflow"></a>

Dalam pengalaman desain visual, alur kerja adalah representasi grafis dari runbook Anda di kanvas. Anda dapat menggunakan pengalaman desain visual untuk menentukan, mengonfigurasi, dan memeriksa tindakan individual dari runbook Anda.

**Untuk membuat alur kerja**

1. Di sebelah sakelar **Desain** dan **Kode**, pilih ikon pensil dan masukkan nama untuk runbook Anda. Untuk tutorial ini, masukkan **VisualDesignExperienceTutorial**.  
![\[Pengalaman desain visual memberi nama runbook Anda\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/images/visual_designer_tutorial_name.png)

1. Di bagian **Atribut dokumen** pada panel **Formulir**, perluas dropdown **parameter Input**, dan pilih **Tambahkan** parameter.

   1. Di bidang **Nama parameter**, masukkan**InstanceId**.

   1. Di dropdown **Type**, pilih. **AWS::EC2::Instance**

   1. Pilih sakelar **Diperlukan**.  
![\[Buat parameter untuk runbook Anda\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/images/visual_designer_actions_tutorial_parameter.png)

1. Di **AWS APIs**browser, masukkan **DescribeInstances** di bilah pencarian.

1. Seret **Amazon EC2 — DescribeInstances** tindakan ke kanvas kosong.

1. Untuk **nama Langkah**, masukkan nilai. Untuk tutorial ini, Anda dapat menggunakan nama**GetInstanceState**.  
![\[Pilih tindakan API deskripsi instans Amazon EC2.\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/images/visual_designer_tutorial_api_action.png)

   1. Perluas tarik-turun **input tambahan**, dan di bidang **Nama input**, masukkan. **InstanceIds**

   1. Pilih tab **Input**.

   1. Di bidang **Nilai input**, pilih input **InstanceId** dokumen. Ini mereferensikan nilai parameter input yang Anda buat di awal prosedur. Karena **InstanceIds**input untuk `DescribeInstances` tindakan menerima `StringList` nilai, Anda harus membungkus **InstanceId**input dalam tanda kurung siku. YAMG untuk **nilai Input** harus cocok dengan yang berikut:**['\$1\$1 InstanceId \$1\$1']**.

   1. Di tab **Output**, pilih **Tambahkan output** dan masukkan **InstanceState** di bidang **Nama**.

   1. Di bidang **Selector**, masukkan**\$1.Reservations[0].Instances[0].State.Name**.

   1. **Di dropdown **Type**, pilih String.**

1. Seret tindakan **Branch** dari browser **Actions**, dan jatuhkan di bawah **`GetInstanceState`**langkah. 

1. Untuk **nama Langkah**, masukkan nilai. Untuk tutorial ini, gunakan namanya`BranchOnInstanceState`.

   Untuk menentukan logika percabangan, lakukan hal berikut:

   1. Pilih **`Branch`**status di kanvas. Kemudian, di bawah **Input** dan **Pilihan**, pilih ikon pensil untuk mengedit **Aturan \$11**.

   1. Pilih **Tambahkan kondisi**.

   1. Dalam kotak dialog **Conditions for rule \$11**, pilih output **GetInstanceState.InstanceState** langkah dari dropdown **Variable**.

   1. Untuk **Operator**, pilih **sama dengan**.

   1. Untuk **Nilai**, pilih **String** dari daftar dropdown. Masukkan **stopped**.  
![\[Tentukan kondisi untuk tindakan cabang.\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/images/visual_designer_tutorial_condition.png)

   1. Pilih **Simpan kondisi**.

   1. Pilih **Tambahkan aturan pilihan baru**.

   1. Pilih **Tambahkan kondisi** untuk **Aturan \$12**.

   1. Dalam kotak dialog **Conditions for rule \$12**, pilih output **GetInstanceState.InstanceState** langkah dari dropdown **Variable**.

   1. Untuk **Operator**, pilih **sama dengan**.

   1. Untuk **Nilai**, pilih **String** dari daftar dropdown. Masukkan **stopping**.

   1. Pilih **Simpan kondisi**.

   1. Pilih **Tambahkan aturan pilihan baru**.

   1. Untuk **Aturan \$13**, pilih **Tambahkan kondisi**.

   1. Dalam kotak dialog **Conditions for rule \$13**, pilih output **GetInstanceState.InstanceState** langkah dari dropdown **Variable**.

   1. Untuk **Operator**, pilih **sama dengan**.

   1. Untuk **Nilai**, pilih **String** dari daftar dropdown. Masukkan **running**.

   1. Pilih **Simpan kondisi**.

   1. Dalam **aturan Default**, pilih **Go to end** untuk **langkah Default**.

1. Seret tindakan **Change an instance state** ke kotak **Drag action here** kosong di bawah **\$1\$1 GetInstanceState. InstanceState \$1\$1 == kondisi “berhenti”**.

   1. Untuk **nama Langkah**, masukkan**StartInstance**.

   1. Di tab **Inputs**, di bawah **Instance IDs**, pilih nilai input **InstanceId**dokumen dari dropdown.

   1. Untuk **status yang diinginkan**, tentukan **`running`**.

1. Seret aksi **Tunggu AWS sumber daya** ke kotak **Drag action here** kosong di bawah **\$1\$1 GetInstanceState. InstanceState \$1\$1 == kondisi “berhenti”**.

1. Untuk **nama Langkah**, masukkan nilai. Untuk tutorial ini, gunakan namanya`WaitForInstanceStop`.

   1. Untuk bidang **Layanan**, pilih **Amazon EC2**.

   1. Untuk bidang **API**, pilih **DescribeInstances**.

   1. Untuk bidang **pemilih Properti**, masukkan**\$1.Reservations[0].Instances[0].State.Name**.

   1. Untuk parameter **Nilai yang diinginkan**, masukkan**`["stopped"]`**.

   1. Di tab **Konfigurasi **WaitForInstanceStop****tindakan, pilih **StartInstance**dari **dropdown langkah Berikutnya**.

1. Seret **perintah Jalankan pada tindakan instance** ke kotak **Drag action here** kosong di bawah **\$1\$1 GetInstanceState. InstanceState \$1\$1 == kondisi “berjalan”**.

1. Untuk **nama Langkah**, masukkan**SayHello**.

   1. Di tab **Input**, masukkan **AWS-RunShellScript** parameter **nama Dokumen**.

   1. Untuk **InstanceIds**, pilih nilai input **InstanceId**dokumen dari dropdown.

   1. **Perluas tarik-turun **input tambahan**, dan di dropdown **nama Input**, pilih Parameter.**

   1. Di bidang **Nilai input**, masukkan**`{"commands": "echo 'Hello World'"}`**.

1. Tinjau runbook yang sudah selesai di kanvas dan pilih **Create runbook** untuk menyimpan runbook tutorial.  
![\[Tinjau dan buat runbook.\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/images/visual_designer_tutorial_complete.png)

## Langkah 3: Tinjau kode yang dibuat secara otomatis
<a name="view-generated-code"></a>

Saat Anda menyeret dan melepaskan tindakan dari browser **Actions** ke kanvas, pengalaman desain visual secara otomatis menyusun konten YAMG atau JSON dari runbook Anda secara real-time. Anda dapat melihat dan mengedit kode ini. Untuk melihat kode yang dibuat secara otomatis, pilih **Kode** untuk **Desain** dan **Kode** sakelar.

## Langkah 4: Jalankan runbook baru Anda
<a name="use-tutorial-runbook"></a>

Setelah membuat runbook Anda, Anda dapat menjalankan otomatisasi.

**Untuk menjalankan runbook otomatisasi baru Anda**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Otomatisasi**, lalu pilih **Eksekusi otomatisasi**.

1. Di daftar **Dokumen otomatisasi**, pilih runbook. Pilih satu opsi atau lebih di panel **Kategori dokumen** untuk memfilter dokumen SSM sesuai dengan tujuannya. Untuk melihat runbook yang Anda miliki, pilih tab **Dimiliki oleh saya**. Untuk melihat runbook yang dibagikan dengan akun Anda, pilih tab **Dibagikan dengan saya**. Untuk melihat semua runbook, pilih tab **Semua dokumen**.
**catatan**  
Anda dapat melihat informasi tentang runbook dengan memilih nama runbook.

1. Di bagian **Detail dokumen**, verifikasi bahwa **Versi dokumen** diatur ke versi yang ingin Anda jalankan. Sistem ini termasuk pilihan versi berikut: 
   + **Versi default saat runtime** — Pilih opsi ini jika runbook Otomasi diperbarui secara berkala dan versi default baru ditetapkan.
   + **Versi terbaru saat runtime** — Pilih opsi ini jika runbook Otomasi diperbarui secara berkala, dan Anda ingin menjalankan versi yang terbaru diperbarui.
   + **1 (Default)** - Pilih opsi ini untuk menjalankan versi pertama dokumen, yang merupakan default.

1. Pilih **Berikutnya**.

1. Di bagian **Execute Automation Runbook**, pilih **Eksekusi sederhana**.

1. Di bagian **Parameter input,** tentukan input yang diperlukan. Secara opsional, Anda dapat memilih peran layanan IAM dari daftar. **AutomationAssumeRole**

1. (Opsional) Pilih CloudWatch alarm Amazon untuk diterapkan ke otomatisasi Anda untuk pemantauan. Untuk memasang CloudWatch alarm ke otomatisasi Anda, prinsipal IAM yang memulai otomatisasi harus memiliki izin untuk `iam:createServiceLinkedRole` tindakan tersebut. Untuk informasi selengkapnya tentang CloudWatch alarm, lihat [Menggunakan CloudWatch alarm Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html). Jika alarm Anda aktif, otomatisasi dihentikan. Jika Anda menggunakan AWS CloudTrail, Anda akan melihat panggilan API di jejak Anda. 

1. Pilih **Eksekusi**. 

## Langkah 5: Bersihkan
<a name="cleanup-tutorial-runbook"></a>

**Untuk menghapus runbook Anda**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Dokumen**.

1. Pilih tab **Dimiliki oleh saya**.

1. Temukan **VisualDesignExperienceTutorial**runbook.

1. Pilih tombol pada halaman kartu dokumen, lalu pilih **Hapus dokumen** dari **dropdown Tindakan**.

# Menulis runbook Otomasi
<a name="automation-authoring-runbooks"></a>

Setiap runbook di Otomasi, alat di AWS Systems Manager, mendefinisikan otomatisasi. Runbook otomatisasi menentukan tindakan yang dilakukan selama otomatisasi. Dalam konten runbook, Anda menentukan parameter input, output, dan tindakan yang dilakukan Systems Manager pada instans dan sumber daya terkelola Anda. AWS 

Otomatisasi mencakup beberapa runbook yang telah ditentukan sebelumnya yang dapat Anda gunakan untuk melakukan tugas umum seperti memulai ulang satu atau beberapa instans Amazon Elastic Compute Cloud (Amazon EC2) atau membuat (). Amazon Machine Image AMI Namun, kasus penggunaan Anda mungkin melampaui kemampuan runbook yang telah ditentukan sebelumnya. Jika ini masalahnya, Anda dapat membuat runbook Anda sendiri dan memodifikasinya sesuai kebutuhan Anda.

Runbook terdiri dari tindakan otomatisasi, parameter untuk tindakan tersebut, dan parameter input yang Anda tentukan. Konten runbook ditulis dalam YAMAL atau JSON. Jika Anda tidak terbiasa dengan YAMAL atau JSON, sebaiknya gunakan desainer visual, atau pelajari lebih lanjut tentang salah satu bahasa markup sebelum mencoba membuat buku runbook Anda sendiri. Untuk informasi lebih lanjut tentang desainer visual, lihat[Pengalaman desain visual untuk runbook Otomasi](automation-visual-designer.md).

Bagian berikut akan membantu Anda menulis runbook pertama Anda.

## Identifikasi kasus penggunaan Anda
<a name="automation-authoring-runbooks-use-case"></a>

Langkah pertama dalam membuat runbook adalah mengidentifikasi kasus penggunaan Anda. Misalnya, Anda menjadwalkan `AWS-CreateImage` runbook untuk dijalankan setiap hari di semua instans Amazon EC2 produksi Anda. Pada akhir bulan, Anda memutuskan Anda memiliki lebih banyak gambar daripada yang diperlukan untuk titik pemulihan. Ke depan, Anda ingin secara otomatis menghapus instans Amazon EC2 tertua AMI saat yang baru AMI dibuat. Untuk mencapai hal ini, Anda membuat runbook baru yang melakukan hal berikut:

1. Menjalankan `aws:createImage` tindakan dan menentukan ID instance dalam deskripsi gambar.

1. Menjalankan `aws:waitForAwsResourceProperty` tindakan untuk polling status gambar sampai itu`available`.

1. Setelah status gambar`available`, `aws:executeScript` tindakan menjalankan skrip Python kustom yang mengumpulkan ID semua gambar yang terkait dengan instans Amazon EC2 Anda. Skrip melakukan ini dengan memfilter, menggunakan ID instance dalam deskripsi gambar yang Anda tentukan saat pembuatan. Kemudian, skrip mengurutkan daftar gambar IDs berdasarkan gambar dan mengeluarkan ID yang tertuaAMI. `creationDate`

1. Terakhir, `aws:deleteImage` tindakan berjalan untuk menghapus yang tertua AMI menggunakan ID dari output dari langkah sebelumnya.

Dalam skenario ini, Anda sudah menggunakan `AWS-CreateImage` runbook tetapi menemukan bahwa kasus penggunaan Anda membutuhkan fleksibilitas yang lebih besar. Ini adalah situasi umum karena mungkin ada tumpang tindih antara runbook dan tindakan otomatisasi. Akibatnya, Anda mungkin harus menyesuaikan runbook atau tindakan yang Anda gunakan untuk mengatasi kasus penggunaan Anda.

Misalnya, `aws:invokeLambdaFunction` tindakan `aws:executeScript` dan keduanya memungkinkan Anda menjalankan skrip khusus sebagai bagian dari otomatisasi Anda. Untuk memilih di antara keduanya, Anda mungkin lebih suka `aws:invokeLambdaFunction` karena bahasa runtime tambahan yang didukung. Namun, Anda mungkin lebih suka `aws:executeScript` karena memungkinkan Anda untuk menulis konten skrip Anda secara langsung di runbook YAMAL dan menyediakan konten skrip sebagai lampiran untuk runbook JSON. Anda mungkin juga mempertimbangkan `aws:executeScript` untuk lebih sederhana dalam hal pengaturan AWS Identity and Access Management (IAM). Karena menggunakan izin yang disediakan di`AutomationAssumeRole`, `aws:executeScript` tidak memerlukan peran eksekusi AWS Lambda fungsi tambahan.

Dalam skenario tertentu, satu tindakan mungkin memberikan lebih banyak fleksibilitas, atau fungsionalitas tambahan, di atas yang lain. Oleh karena itu, kami menyarankan Anda meninjau parameter input yang tersedia untuk runbook atau tindakan yang ingin Anda gunakan untuk menentukan mana yang paling sesuai dengan kasus penggunaan dan preferensi Anda.

## Siapkan lingkungan pengembangan Anda
<a name="automation-authoring-runbooks-environment"></a>

Setelah mengidentifikasi kasus penggunaan dan runbook atau tindakan otomatisasi yang telah ditentukan sebelumnya yang ingin Anda gunakan di runbook, saatnya menyiapkan lingkungan pengembangan untuk konten runbook Anda. Untuk mengembangkan konten runbook Anda, sebaiknya gunakan konsol Documents Systems Manager, AWS Toolkit for Visual Studio Code bukan Systems Manager. 

Toolkit for VS Code adalah ekstensi open-source untuk Visual Studio Code (VS Code) yang menawarkan lebih banyak fitur daripada konsol Systems Manager Documents. Fitur bermanfaat termasuk validasi skema untuk YAMAL dan JSON, cuplikan untuk jenis tindakan otomatisasi, dan dukungan pelengkapan otomatis untuk berbagai opsi di YAMAL dan JSON. 

Untuk informasi selengkapnya tentang menginstal Toolkit for VS Code, [lihat Menginstal AWS Toolkit for Visual Studio Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/setup-toolkit.html). *Untuk informasi selengkapnya tentang penggunaan Toolkit for VS Code untuk mengembangkan runbook, [lihat Bekerja dengan dokumen Otomasi Systems Manager](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/systems-manager-automation-docs.html) di Panduan Pengguna AWS Toolkit for Visual Studio Code .*

## Kembangkan konten runbook
<a name="automation-authoring-runbooks-developing-content"></a>

Dengan kasus penggunaan yang teridentifikasi dan pengaturan lingkungan, Anda siap mengembangkan konten untuk runbook Anda. Kasus penggunaan dan preferensi Anda sebagian besar akan menentukan tindakan otomatisasi atau runbook yang Anda gunakan dalam konten runbook Anda. Beberapa tindakan hanya mendukung sebagian parameter input jika dibandingkan dengan tindakan lain yang memungkinkan Anda menyelesaikan tugas serupa. Tindakan lain memiliki output spesifik, seperti`aws:createImage`, di mana beberapa tindakan memungkinkan Anda untuk menentukan output Anda sendiri, seperti. `aws:executeAwsApi` 

Jika Anda tidak yakin cara menggunakan tindakan tertentu di runbook Anda, sebaiknya tinjau entri yang sesuai untuk tindakan di. [Referensi tindakan Otomatisasi Systems Manager](automation-actions.md) Kami juga merekomendasikan untuk meninjau konten runbook yang telah ditentukan sebelumnya untuk melihat contoh dunia nyata tentang bagaimana tindakan ini digunakan. Untuk lebih banyak contoh aplikasi runbook dunia nyata, lihat. [Contoh runbook tambahan](automation-document-examples.md)

Untuk menunjukkan perbedaan dalam kesederhanaan dan fleksibilitas yang disediakan konten runbook, tutorial berikut memberikan contoh cara menambal grup instans Amazon EC2 secara bertahap:
+ [Contoh 1: Membuat runbook orangtua-anak](automation-authoring-runbooks-parent-child-example.md)— Dalam contoh ini, dua runbook digunakan dalam hubungan orangtua-anak. Runbook induk memulai otomatisasi kontrol laju runbook anak. 
+ [Contoh 2: Runbook berskrip](automation-authoring-runbooks-scripted-example.md)— Contoh ini menunjukkan bagaimana Anda dapat menyelesaikan tugas yang sama dari Contoh 1 dengan memadatkan konten menjadi satu runbook dan menggunakan skrip di runbook Anda.

# Contoh 1: Membuat runbook orangtua-anak
<a name="automation-authoring-runbooks-parent-child-example"></a>

Contoh berikut menunjukkan cara membuat dua runbook yang menambal grup Amazon Elastic Compute Cloud (Amazon EC2) yang diberi tag secara bertahap. Runbook ini digunakan dalam hubungan orang tua-anak dengan runbook induk yang digunakan untuk memulai otomatisasi kontrol tingkat runbook anak. Untuk informasi selengkapnya tentang otomatisasi kontrol tarif, lihat[Jalankan operasi otomatis pada skala](running-automations-scale.md). Untuk informasi selengkapnya tentang tindakan otomatisasi yang digunakan dalam contoh ini, lihat[Referensi tindakan Otomatisasi Systems Manager](automation-actions.md).

## Buat runbook anak
<a name="automation-authoring-runbooks-child-runbook"></a>

Contoh runbook ini membahas skenario berikut. Emily adalah Insinyur Sistem di AnyCompany Consultants, LLC. Dia perlu mengonfigurasi penambalan untuk grup instans Amazon Elastic Compute Cloud (Amazon EC2) yang menghosting database primer dan sekunder. Aplikasi mengakses database ini 24 jam sehari, jadi salah satu instance database harus selalu tersedia. 

Dia memutuskan bahwa menambal contoh secara bertahap adalah pendekatan terbaik. Kelompok utama instance database akan ditambal terlebih dahulu, diikuti oleh kelompok sekunder instance database. Selain itu, untuk menghindari biaya tambahan dengan membiarkan instance berjalan yang sebelumnya dihentikan, Emily ingin instance yang ditambal dikembalikan ke keadaan semula sebelum penambalan terjadi. 

Emily mengidentifikasi kelompok primer dan sekunder dari instance database dengan tag yang terkait dengan instance. Dia memutuskan untuk membuat runbook induk yang memulai otomatisasi kontrol tingkat runbook anak. Dengan melakukan itu, dia dapat menargetkan tag yang terkait dengan grup instance database primer dan sekunder dan mengelola konkurensi otomatisasi anak. Setelah meninjau dokumen Systems Manager (SSM) yang tersedia untuk ditambal, ia memilih dokumen tersebut. `AWS-RunPatchBaseline` Dengan menggunakan dokumen SSM ini, rekan-rekannya dapat meninjau informasi kepatuhan patch terkait setelah operasi patching selesai.

Untuk mulai membuat konten runbook-nya, Emily meninjau tindakan otomatisasi yang tersedia dan mulai membuat konten untuk runbook anak sebagai berikut:

1. Pertama, dia memberikan nilai untuk skema dan deskripsi runbook, dan mendefinisikan parameter input untuk runbook anak.

   Dengan menggunakan `AutomationAssumeRole` parameter, Emily dan rekan-rekannya dapat menggunakan peran IAM yang ada yang memungkinkan Otomasi untuk melakukan tindakan di runbook atas nama mereka. Emily menggunakan `InstanceId` parameter untuk menentukan instance yang harus ditambal. Secara opsional, `SnapshotId` parameter `Operation``RebootOption`, dan dapat digunakan untuk memberikan nilai untuk mendokumentasikan parameter untuk`AWS-RunPatchBaseline`. Untuk mencegah nilai yang tidak valid diberikan ke parameter dokumen tersebut, dia mendefinisikan sesuai kebutuhan. `allowedValues`

------
#### [ YAML ]

   ```
   schemaVersion: '0.3'
   description: 'An example of an Automation runbook that patches groups of Amazon EC2 instances in stages.'
   assumeRole: '{{AutomationAssumeRole}}'
   parameters:
     AutomationAssumeRole:
       type: String
       description: >-
         '(Optional) The Amazon Resource Name (ARN) of the IAM role that allows Automation to perform the
         actions on your behalf. If no role is specified, Systems Manager
         Automation uses your IAM permissions to operate this runbook.'
       default: ''
     InstanceId:
       type: String
       description: >-
         '(Required) The instance you want to patch.'
     SnapshotId:
       type: String
       description: '(Optional) The snapshot ID to use to retrieve a patch baseline snapshot.'
       default: ''
     RebootOption:
       type: String
       description: '(Optional) Reboot behavior after a patch Install operation. If you choose NoReboot and patches are installed, the instance is marked as non-compliant until a subsequent reboot and scan.'
       allowedValues:
         - NoReboot
         - RebootIfNeeded
       default: RebootIfNeeded
     Operation:
       type: String
       description: '(Optional) The update or configuration to perform on the instance. The system checks if patches specified in the patch baseline are installed on the instance. The install operation installs patches missing from the baseline.'
       allowedValues:
         - Install
         - Scan
       default: Install
   ```

------
#### [ JSON ]

   ```
   {
      "schemaVersion":"0.3",
      "description":"An example of an Automation runbook that patches groups of Amazon EC2 instances in stages.",
      "assumeRole":"{{AutomationAssumeRole}}",
      "parameters":{
         "AutomationAssumeRole":{
            "type":"String",
            "description":"(Optional) The Amazon Resource Name (ARN) of the IAM role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to operate this runbook.",
            "default":""
         },
         "InstanceId":{
            "type":"String",
            "description":"(Required) The instance you want to patch."
         },
         "SnapshotId":{
            "type":"String",
            "description":"(Optional) The snapshot ID to use to retrieve a patch baseline snapshot.",
            "default":""
         },
         "RebootOption":{
            "type":"String",
            "description":"(Optional) Reboot behavior after a patch Install operation. If you choose NoReboot and patches are installed, the instance is marked as non-compliant until a subsequent reboot and scan.",
            "allowedValues":[
               "NoReboot",
               "RebootIfNeeded"
            ],
            "default":"RebootIfNeeded"
         },
         "Operation":{
            "type":"String",
            "description":"(Optional) The update or configuration to perform on the instance. The system checks if patches specified in the patch baseline are installed on the instance. The install operation installs patches missing from the baseline.",
            "allowedValues":[
               "Install",
               "Scan"
            ],
            "default":"Install"
         }
      }
   },
   ```

------

1. Dengan elemen tingkat atas yang ditentukan, Emily melanjutkan dengan membuat tindakan yang membentuk runbook. `mainSteps` Langkah pertama menampilkan status saat ini dari instance target yang ditentukan dalam parameter `InstanceId` input menggunakan `aws:executeAwsApi` tindakan. Output dari tindakan ini digunakan dalam tindakan selanjutnya.

------
#### [ YAML ]

   ```
   mainSteps:
     - name: getInstanceState
       action: 'aws:executeAwsApi'
       onFailure: Abort
       inputs:
         inputs:
         Service: ec2
         Api: DescribeInstances
         InstanceIds:
           - '{{InstanceId}}'
       outputs:
         - Name: instanceState
           Selector: '$.Reservations[0].Instances[0].State.Name'
           Type: String
       nextStep: branchOnInstanceState
   ```

------
#### [ JSON ]

   ```
   "mainSteps":[
         {
            "name":"getInstanceState",
            "action":"aws:executeAwsApi",
            "onFailure":"Abort",
            "inputs":{
               "inputs":null,
               "Service":"ec2",
               "Api":"DescribeInstances",
               "InstanceIds":[
                  "{{InstanceId}}"
               ]
            },
            "outputs":[
               {
                  "Name":"instanceState",
                  "Selector":"$.Reservations[0].Instances[0].State.Name",
                  "Type":"String"
               }
            ],
            "nextStep":"branchOnInstanceState"
         },
   ```

------

1. Daripada secara manual memulai dan melacak status asli dari setiap instance yang perlu ditambal, Emily menggunakan output dari tindakan sebelumnya untuk memcabang otomatisasi berdasarkan status instance target. Hal ini memungkinkan otomatisasi untuk menjalankan langkah-langkah yang berbeda tergantung pada kondisi yang ditentukan dalam `aws:branch` tindakan dan meningkatkan efisiensi keseluruhan otomatisasi tanpa intervensi manual.

   Jika status instance sudah`running`, otomatisasi dilanjutkan dengan menambal instance dengan `AWS-RunPatchBaseline` dokumen menggunakan tindakan. `aws:runCommand`

   Jika status instans adalah`stopping`, otomatisasi polling untuk instance untuk mencapai `stopped` status menggunakan `aws:waitForAwsResourceProperty` tindakan, memulai instance menggunakan `executeAwsApi` tindakan, dan polling untuk instance untuk mencapai `running` status sebelum menambal instance.

   Jika status instans adalah`stopped`, otomatisasi memulai instance dan polling untuk instance untuk mencapai `running` status sebelum menambal instance menggunakan tindakan yang sama.

------
#### [ YAML ]

   ```
   - name: branchOnInstanceState
       action: 'aws:branch'
       onFailure: Abort
       inputs:
         Choices:
           - NextStep: startInstance
              Variable: '{{getInstanceState.instanceState}}'
              StringEquals: stopped
            - NextStep: verifyInstanceStopped
              Variable: '{{getInstanceState.instanceState}}'
              StringEquals: stopping
            - NextStep: patchInstance
              Variable: '{{getInstanceState.instanceState}}'
              StringEquals: running
       isEnd: true
     - name: startInstance
       action: 'aws:executeAwsApi'
       onFailure: Abort
       inputs:
         Service: ec2
         Api: StartInstances
         InstanceIds:
           - '{{InstanceId}}'
       nextStep: verifyInstanceRunning
     - name: verifyInstanceRunning
       action: 'aws:waitForAwsResourceProperty'
       timeoutSeconds: 120
       inputs:
         Service: ec2
         Api: DescribeInstances
         InstanceIds:
           - '{{InstanceId}}'
         PropertySelector: '$.Reservations[0].Instances[0].State.Name'
         DesiredValues:
           - running
       nextStep: patchInstance
     - name: verifyInstanceStopped
       action: 'aws:waitForAwsResourceProperty'
       timeoutSeconds: 120
       inputs:
         Service: ec2
         Api: DescribeInstances
         InstanceIds:
           - '{{InstanceId}}'
         PropertySelector: '$.Reservations[0].Instances[0].State.Name'
         DesiredValues:
           - stopped
         nextStep: startInstance
     - name: patchInstance
       action: 'aws:runCommand'
       onFailure: Abort
       timeoutSeconds: 5400
       inputs:
         DocumentName: 'AWS-RunPatchBaseline'
         InstanceIds: 
         - '{{InstanceId}}'
         Parameters:
           SnapshotId: '{{SnapshotId}}'
           RebootOption: '{{RebootOption}}'
           Operation: '{{Operation}}'
   ```

------
#### [ JSON ]

   ```
   {
            "name":"branchOnInstanceState",
            "action":"aws:branch",
            "onFailure":"Abort",
            "inputs":{
               "Choices":[
                  {
                     "NextStep":"startInstance",
                     "Variable":"{{getInstanceState.instanceState}}",
                     "StringEquals":"stopped"
                  },
                  {
                     "Or":[
                        {
                           "Variable":"{{getInstanceState.instanceState}}",
                           "StringEquals":"stopping"
                        }
                     ],
                     "NextStep":"verifyInstanceStopped"
                  },
                  {
                     "NextStep":"patchInstance",
                     "Variable":"{{getInstanceState.instanceState}}",
                     "StringEquals":"running"
                  }
               ]
            },
            "isEnd":true
         },
         {
            "name":"startInstance",
            "action":"aws:executeAwsApi",
            "onFailure":"Abort",
            "inputs":{
               "Service":"ec2",
               "Api":"StartInstances",
               "InstanceIds":[
                  "{{InstanceId}}"
               ]
            },
            "nextStep":"verifyInstanceRunning"
         },
         {
            "name":"verifyInstanceRunning",
            "action":"aws:waitForAwsResourceProperty",
            "timeoutSeconds":120,
            "inputs":{
               "Service":"ec2",
               "Api":"DescribeInstances",
               "InstanceIds":[
                  "{{InstanceId}}"
               ],
               "PropertySelector":"$.Reservations[0].Instances[0].State.Name",
               "DesiredValues":[
                  "running"
               ]
            },
            "nextStep":"patchInstance"
         },
         {
            "name":"verifyInstanceStopped",
            "action":"aws:waitForAwsResourceProperty",
            "timeoutSeconds":120,
            "inputs":{
               "Service":"ec2",
               "Api":"DescribeInstances",
               "InstanceIds":[
                  "{{InstanceId}}"
               ],
               "PropertySelector":"$.Reservations[0].Instances[0].State.Name",
               "DesiredValues":[
                  "stopped"
               ],
               "nextStep":"startInstance"
            }
         },
         {
            "name":"patchInstance",
            "action":"aws:runCommand",
            "onFailure":"Abort",
            "timeoutSeconds":5400,
            "inputs":{
               "DocumentName":"AWS-RunPatchBaseline",
               "InstanceIds":[
                  "{{InstanceId}}"
               ],
               "Parameters":{
                  "SnapshotId":"{{SnapshotId}}",
                  "RebootOption":"{{RebootOption}}",
                  "Operation":"{{Operation}}"
               }
            }
         },
   ```

------

1. Setelah operasi penambalan selesai, Emily ingin otomatisasi mengembalikan instance target ke keadaan yang sama sebelum otomatisasi dimulai. Dia melakukan ini dengan lagi menggunakan output dari tindakan pertama. Cabang otomatisasi berdasarkan status asli instance target menggunakan `aws:branch` tindakan. Jika instance sebelumnya dalam keadaan apa pun selain`running`, instance dihentikan. Jika tidak, jika status instans`running`, otomatisasi berakhir.

------
#### [ YAML ]

   ```
   - name: branchOnOriginalInstanceState
       action: 'aws:branch'
       onFailure: Abort
       inputs:
         Choices:
           - NextStep: stopInstance
             Not: 
               Variable: '{{getInstanceState.instanceState}}'
               StringEquals: running
       isEnd: true
     - name: stopInstance
       action: 'aws:executeAwsApi'
       onFailure: Abort
       inputs:
         Service: ec2
         Api: StopInstances
         InstanceIds:
           - '{{InstanceId}}'
   ```

------
#### [ JSON ]

   ```
   {
            "name":"branchOnOriginalInstanceState",
            "action":"aws:branch",
            "onFailure":"Abort",
            "inputs":{
               "Choices":[
                  {
                     "NextStep":"stopInstance",
                     "Not":{
                        "Variable":"{{getInstanceState.instanceState}}",
                        "StringEquals":"running"
                     }
                  }
               ]
            },
            "isEnd":true
         },
         {
            "name":"stopInstance",
            "action":"aws:executeAwsApi",
            "onFailure":"Abort",
            "inputs":{
               "Service":"ec2",
               "Api":"StopInstances",
               "InstanceIds":[
                  "{{InstanceId}}"
               ]
            }
         }
      ]
   }
   ```

------

1. Emily meninjau konten runbook anak yang telah selesai dan membuat runbook dalam contoh yang sama Akun AWS dan Wilayah AWS sebagai target. Sekarang dia siap untuk melanjutkan pembuatan konten runbook induk. Berikut ini adalah konten runbook anak yang sudah selesai.

------
#### [ YAML ]

   ```
   schemaVersion: '0.3'
   description: 'An example of an Automation runbook that patches groups of Amazon EC2 instances in stages.'
   assumeRole: '{{AutomationAssumeRole}}'
   parameters:
     AutomationAssumeRole:
       type: String
       description: >-
         '(Optional) The Amazon Resource Name (ARN) of the IAM role that allows Automation to perform the
         actions on your behalf. If no role is specified, Systems Manager
         Automation uses your IAM permissions to operate this runbook.'
       default: ''
     InstanceId:
       type: String
       description: >-
         '(Required) The instance you want to patch.'
     SnapshotId:
       type: String
       description: '(Optional) The snapshot ID to use to retrieve a patch baseline snapshot.'
       default: ''
     RebootOption:
       type: String
       description: '(Optional) Reboot behavior after a patch Install operation. If you choose NoReboot and patches are installed, the instance is marked as non-compliant until a subsequent reboot and scan.'
       allowedValues:
         - NoReboot
         - RebootIfNeeded
       default: RebootIfNeeded
     Operation:
       type: String
       description: '(Optional) The update or configuration to perform on the instance. The system checks if patches specified in the patch baseline are installed on the instance. The install operation installs patches missing from the baseline.'
       allowedValues:
         - Install
         - Scan
       default: Install
   mainSteps:
     - name: getInstanceState
       action: 'aws:executeAwsApi'
       onFailure: Abort
       inputs:
         inputs:
         Service: ec2
         Api: DescribeInstances
         InstanceIds:
           - '{{InstanceId}}'
       outputs:
         - Name: instanceState
           Selector: '$.Reservations[0].Instances[0].State.Name'
           Type: String
       nextStep: branchOnInstanceState
     - name: branchOnInstanceState
       action: 'aws:branch'
       onFailure: Abort
       inputs:
         Choices:
           - NextStep: startInstance
             Variable: '{{getInstanceState.instanceState}}'
             StringEquals: stopped
           - Or:
               - Variable: '{{getInstanceState.instanceState}}'
                 StringEquals: stopping
             NextStep: verifyInstanceStopped
           - NextStep: patchInstance
             Variable: '{{getInstanceState.instanceState}}'
             StringEquals: running
       isEnd: true
     - name: startInstance
       action: 'aws:executeAwsApi'
       onFailure: Abort
       inputs:
         Service: ec2
         Api: StartInstances
         InstanceIds:
           - '{{InstanceId}}'
       nextStep: verifyInstanceRunning
     - name: verifyInstanceRunning
       action: 'aws:waitForAwsResourceProperty'
       timeoutSeconds: 120
       inputs:
         Service: ec2
         Api: DescribeInstances
         InstanceIds:
           - '{{InstanceId}}'
         PropertySelector: '$.Reservations[0].Instances[0].State.Name'
         DesiredValues:
           - running
       nextStep: patchInstance
     - name: verifyInstanceStopped
       action: 'aws:waitForAwsResourceProperty'
       timeoutSeconds: 120
       inputs:
         Service: ec2
         Api: DescribeInstances
         InstanceIds:
           - '{{InstanceId}}'
         PropertySelector: '$.Reservations[0].Instances[0].State.Name'
         DesiredValues:
           - stopped
         nextStep: startInstance
     - name: patchInstance
       action: 'aws:runCommand'
       onFailure: Abort
       timeoutSeconds: 5400
       inputs:
         DocumentName: 'AWS-RunPatchBaseline'
         InstanceIds: 
         - '{{InstanceId}}'
         Parameters:
           SnapshotId: '{{SnapshotId}}'
           RebootOption: '{{RebootOption}}'
           Operation: '{{Operation}}'
     - name: branchOnOriginalInstanceState
       action: 'aws:branch'
       onFailure: Abort
       inputs:
         Choices:
           - NextStep: stopInstance
             Not: 
               Variable: '{{getInstanceState.instanceState}}'
               StringEquals: running
       isEnd: true
     - name: stopInstance
       action: 'aws:executeAwsApi'
       onFailure: Abort
       inputs:
         Service: ec2
         Api: StopInstances
         InstanceIds:
           - '{{InstanceId}}'
   ```

------
#### [ JSON ]

   ```
   {
      "schemaVersion":"0.3",
      "description":"An example of an Automation runbook that patches groups of Amazon EC2 instances in stages.",
      "assumeRole":"{{AutomationAssumeRole}}",
      "parameters":{
         "AutomationAssumeRole":{
            "type":"String",
            "description":"'(Optional) The Amazon Resource Name (ARN) of the IAM role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to operate this runbook.'",
            "default":""
         },
         "InstanceId":{
            "type":"String",
            "description":"'(Required) The instance you want to patch.'"
         },
         "SnapshotId":{
            "type":"String",
            "description":"(Optional) The snapshot ID to use to retrieve a patch baseline snapshot.",
            "default":""
         },
         "RebootOption":{
            "type":"String",
            "description":"(Optional) Reboot behavior after a patch Install operation. If you choose NoReboot and patches are installed, the instance is marked as non-compliant until a subsequent reboot and scan.",
            "allowedValues":[
               "NoReboot",
               "RebootIfNeeded"
            ],
            "default":"RebootIfNeeded"
         },
         "Operation":{
            "type":"String",
            "description":"(Optional) The update or configuration to perform on the instance. The system checks if patches specified in the patch baseline are installed on the instance. The install operation installs patches missing from the baseline.",
            "allowedValues":[
               "Install",
               "Scan"
            ],
            "default":"Install"
         }
      },
      "mainSteps":[
         {
            "name":"getInstanceState",
            "action":"aws:executeAwsApi",
            "onFailure":"Abort",
            "inputs":{
               "inputs":null,
               "Service":"ec2",
               "Api":"DescribeInstances",
               "InstanceIds":[
                  "{{InstanceId}}"
               ]
            },
            "outputs":[
               {
                  "Name":"instanceState",
                  "Selector":"$.Reservations[0].Instances[0].State.Name",
                  "Type":"String"
               }
            ],
            "nextStep":"branchOnInstanceState"
         },
         {
            "name":"branchOnInstanceState",
            "action":"aws:branch",
            "onFailure":"Abort",
            "inputs":{
               "Choices":[
                  {
                     "NextStep":"startInstance",
                     "Variable":"{{getInstanceState.instanceState}}",
                     "StringEquals":"stopped"
                  },
                  {
                     "Or":[
                        {
                           "Variable":"{{getInstanceState.instanceState}}",
                           "StringEquals":"stopping"
                        }
                     ],
                     "NextStep":"verifyInstanceStopped"
                  },
                  {
                     "NextStep":"patchInstance",
                     "Variable":"{{getInstanceState.instanceState}}",
                     "StringEquals":"running"
                  }
               ]
            },
            "isEnd":true
         },
         {
            "name":"startInstance",
            "action":"aws:executeAwsApi",
            "onFailure":"Abort",
            "inputs":{
               "Service":"ec2",
               "Api":"StartInstances",
               "InstanceIds":[
                  "{{InstanceId}}"
               ]
            },
            "nextStep":"verifyInstanceRunning"
         },
         {
            "name":"verifyInstanceRunning",
            "action":"aws:waitForAwsResourceProperty",
            "timeoutSeconds":120,
            "inputs":{
               "Service":"ec2",
               "Api":"DescribeInstances",
               "InstanceIds":[
                  "{{InstanceId}}"
               ],
               "PropertySelector":"$.Reservations[0].Instances[0].State.Name",
               "DesiredValues":[
                  "running"
               ]
            },
            "nextStep":"patchInstance"
         },
         {
            "name":"verifyInstanceStopped",
            "action":"aws:waitForAwsResourceProperty",
            "timeoutSeconds":120,
            "inputs":{
               "Service":"ec2",
               "Api":"DescribeInstances",
               "InstanceIds":[
                  "{{InstanceId}}"
               ],
               "PropertySelector":"$.Reservations[0].Instances[0].State.Name",
               "DesiredValues":[
                  "stopped"
               ],
               "nextStep":"startInstance"
            }
         },
         {
            "name":"patchInstance",
            "action":"aws:runCommand",
            "onFailure":"Abort",
            "timeoutSeconds":5400,
            "inputs":{
               "DocumentName":"AWS-RunPatchBaseline",
               "InstanceIds":[
                  "{{InstanceId}}"
               ],
               "Parameters":{
                  "SnapshotId":"{{SnapshotId}}",
                  "RebootOption":"{{RebootOption}}",
                  "Operation":"{{Operation}}"
               }
            }
         },
         {
            "name":"branchOnOriginalInstanceState",
            "action":"aws:branch",
            "onFailure":"Abort",
            "inputs":{
               "Choices":[
                  {
                     "NextStep":"stopInstance",
                     "Not":{
                        "Variable":"{{getInstanceState.instanceState}}",
                        "StringEquals":"running"
                     }
                  }
               ]
            },
            "isEnd":true
         },
         {
            "name":"stopInstance",
            "action":"aws:executeAwsApi",
            "onFailure":"Abort",
            "inputs":{
               "Service":"ec2",
               "Api":"StopInstances",
               "InstanceIds":[
                  "{{InstanceId}}"
               ]
            }
         }
      ]
   }
   ```

------

Untuk informasi selengkapnya tentang tindakan otomatisasi yang digunakan dalam contoh ini, lihat[Referensi tindakan Otomatisasi Systems Manager](automation-actions.md).

## Buat runbook induk
<a name="automation-authoring-runbooks-parent-runbook"></a>

Contoh runbook ini melanjutkan skenario yang dijelaskan di bagian sebelumnya. Sekarang Emily telah membuat runbook anak, dia mulai menulis konten untuk runbook induk sebagai berikut:

1. Pertama, dia memberikan nilai untuk skema dan deskripsi runbook, dan mendefinisikan parameter input untuk runbook induk.

   Dengan menggunakan `AutomationAssumeRole` parameter, Emily dan rekan-rekannya dapat menggunakan peran IAM yang ada yang memungkinkan Otomasi untuk melakukan tindakan di runbook atas nama mereka. Emily menggunakan `PatchGroupPrimaryValue` parameter `PatchGroupPrimaryKey` dan untuk menentukan tag yang terkait dengan grup utama instance database yang akan ditambal. Dia menggunakan `PatchGroupSecondaryValue` parameter `PatchGroupSecondaryKey` dan untuk menentukan tag yang terkait dengan kelompok sekunder instance database yang akan ditambal.

------
#### [ YAML ]

   ```
   description: 'An example of an Automation runbook that patches groups of Amazon EC2 instances in stages.'
   schemaVersion: '0.3'
   assumeRole: '{{AutomationAssumeRole}}'
   parameters:
     AutomationAssumeRole:
       type: String
       description: '(Optional) The Amazon Resource Name (ARN) of the IAM role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to operate this runbook.'
       default: ''
     PatchGroupPrimaryKey:
       type: String
       description: '(Required) The key of the tag for the primary group of instances you want to patch.''
     PatchGroupPrimaryValue:
       type: String
       description: '(Required) The value of the tag for the primary group of instances you want to patch.'
     PatchGroupSecondaryKey:
       type: String
       description: '(Required) The key of the tag for the secondary group of instances you want to patch.'
     PatchGroupSecondaryValue:
       type: String
       description: '(Required) The value of the tag for the secondary group of instances you want to patch.'
   ```

------
#### [ JSON ]

   ```
   {
      "schemaVersion": "0.3",
      "description": "An example of an Automation runbook that patches groups of Amazon EC2 instances in stages.",
      "assumeRole": "{{AutomationAssumeRole}}",
      "parameters": {
         "AutomationAssumeRole": {
            "type": "String",
            "description": "(Optional) The Amazon Resource Name (ARN) of the IAM role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to operate this runbook.",
            "default": ""
         },
         "PatchGroupPrimaryKey": {
            "type": "String",
            "description": "(Required) The key of the tag for the primary group of instances you want to patch."
         },
         "PatchGroupPrimaryValue": {
            "type": "String",
            "description": "(Required) The value of the tag for the primary group of instances you want to patch."
         },
         "PatchGroupSecondaryKey": {
            "type": "String",
            "description": "(Required) The key of the tag for the secondary group of instances you want to patch."
         },
         "PatchGroupSecondaryValue": {
            "type": "String",
            "description": "(Required) The value of the tag for the secondary group of instances you want to patch."
         }
      }
   },
   ```

------

1. Dengan elemen tingkat atas yang ditentukan, Emily melanjutkan dengan membuat tindakan yang membentuk runbook. `mainSteps` 

   Tindakan pertama memulai otomatisasi kontrol laju menggunakan runbook anak yang baru saja dibuatnya yang menargetkan instance yang terkait dengan tag yang ditentukan dalam parameter `PatchGroupPrimaryKey` dan `PatchGroupPrimaryValue` input. Dia menggunakan nilai yang diberikan ke parameter input untuk menentukan kunci dan nilai tag yang terkait dengan kelompok utama instance database yang ingin dia tambal.

   Setelah otomatisasi pertama selesai, tindakan kedua memulai otomatisasi kontrol laju lainnya menggunakan runbook anak yang menargetkan instance yang terkait dengan tag yang ditentukan dalam parameter `PatchGroupSecondaryKey` dan `PatchGroupSecondaryValue` input. Dia menggunakan nilai yang diberikan ke parameter input untuk menentukan kunci dan nilai tag yang terkait dengan kelompok sekunder instance database yang ingin dia tambal.

------
#### [ YAML ]

   ```
   mainSteps:
     - name: patchPrimaryTargets
       action: 'aws:executeAutomation'
       onFailure: Abort
       timeoutSeconds: 7200
       inputs:
         DocumentName: RunbookTutorialChildAutomation
         Targets:
           - Key: 'tag:{{PatchGroupPrimaryKey}}'
             Values:
               - '{{PatchGroupPrimaryValue}}'
         TargetParameterName: 'InstanceId'
     - name: patchSecondaryTargets
       action: 'aws:executeAutomation'
       onFailure: Abort
       timeoutSeconds: 7200
       inputs:
         DocumentName: RunbookTutorialChildAutomation
         Targets:
           - Key: 'tag:{{PatchGroupSecondaryKey}}'
             Values:
               - '{{PatchGroupSecondaryValue}}'
         TargetParameterName: 'InstanceId'
   ```

------
#### [ JSON ]

   ```
   "mainSteps":[
         {
            "name":"patchPrimaryTargets",
            "action":"aws:executeAutomation",
            "onFailure":"Abort",
            "timeoutSeconds":7200,
            "inputs":{
               "DocumentName":"RunbookTutorialChildAutomation",
               "Targets":[
                  {
                     "Key":"tag:{{PatchGroupPrimaryKey}}",
                     "Values":[
                        "{{PatchGroupPrimaryValue}}"
                     ]
                  }
               ],
               "TargetParameterName":"InstanceId"
            }
         },
         {
            "name":"patchSecondaryTargets",
            "action":"aws:executeAutomation",
            "onFailure":"Abort",
            "timeoutSeconds":7200,
            "inputs":{
               "DocumentName":"RunbookTutorialChildAutomation",
               "Targets":[
                  {
                     "Key":"tag:{{PatchGroupSecondaryKey}}",
                     "Values":[
                        "{{PatchGroupSecondaryValue}}"
                     ]
                  }
               ],
               "TargetParameterName":"InstanceId"
            }
         }
      ]
   }
   ```

------

1. Emily meninjau konten runbook induk yang telah selesai dan membuat runbook dalam contoh yang sama Akun AWS dan Wilayah AWS sebagai target. Sekarang, dia siap untuk menguji runbook-nya untuk memastikan otomatisasi beroperasi seperti yang diinginkan sebelum menerapkannya ke dalam lingkungan produksinya. Berikut ini adalah konten runbook induk yang lengkap.

------
#### [ YAML ]

   ```
   description: An example of an Automation runbook that patches groups of Amazon EC2 instances in stages.
   schemaVersion: '0.3'
   assumeRole: '{{AutomationAssumeRole}}'
   parameters:
     AutomationAssumeRole:
       type: String
       description: '(Optional) The Amazon Resource Name (ARN) of the IAM role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to operate this runbook.'
       default: ''
     PatchGroupPrimaryKey:
       type: String
       description: (Required) The key of the tag for the primary group of instances you want to patch.
     PatchGroupPrimaryValue:
       type: String
       description: '(Required) The value of the tag for the primary group of instances you want to patch. '
     PatchGroupSecondaryKey:
       type: String
       description: (Required) The key of the tag for the secondary group of instances you want to patch.
     PatchGroupSecondaryValue:
       type: String
       description: '(Required) The value of the tag for the secondary group of instances you want to patch.  '
   mainSteps:
     - name: patchPrimaryTargets
       action: 'aws:executeAutomation'
       onFailure: Abort
       timeoutSeconds: 7200
       inputs:
         DocumentName: RunbookTutorialChildAutomation
         Targets:
           - Key: 'tag:{{PatchGroupPrimaryKey}}'
             Values:
               - '{{PatchGroupPrimaryValue}}'
         TargetParameterName: 'InstanceId'
     - name: patchSecondaryTargets
       action: 'aws:executeAutomation'
       onFailure: Abort
       timeoutSeconds: 7200
       inputs:
         DocumentName: RunbookTutorialChildAutomation
         Targets:
           - Key: 'tag:{{PatchGroupSecondaryKey}}'
             Values:
               - '{{PatchGroupSecondaryValue}}'
         TargetParameterName: 'InstanceId'
   ```

------
#### [ JSON ]

   ```
   {
      "description":"An example of an Automation runbook that patches groups of Amazon EC2 instances in stages.",
      "schemaVersion":"0.3",
      "assumeRole":"{{AutomationAssumeRole}}",
      "parameters":{
         "AutomationAssumeRole":{
            "type":"String",
            "description":"(Optional) The Amazon Resource Name (ARN) of the IAM role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to operate this runbook.",
            "default":""
         },
         "PatchGroupPrimaryKey":{
            "type":"String",
            "description":"(Required) The key of the tag for the primary group of instances you want to patch."
         },
         "PatchGroupPrimaryValue":{
            "type":"String",
            "description":"(Required) The value of the tag for the primary group of instances you want to patch. "
         },
         "PatchGroupSecondaryKey":{
            "type":"String",
            "description":"(Required) The key of the tag for the secondary group of instances you want to patch."
         },
         "PatchGroupSecondaryValue":{
            "type":"String",
            "description":"(Required) The value of the tag for the secondary group of instances you want to patch.  "
         }
      },
      "mainSteps":[
         {
            "name":"patchPrimaryTargets",
            "action":"aws:executeAutomation",
            "onFailure":"Abort",
            "timeoutSeconds":7200,
            "inputs":{
               "DocumentName":"RunbookTutorialChildAutomation",
               "Targets":[
                  {
                     "Key":"tag:{{PatchGroupPrimaryKey}}",
                     "Values":[
                        "{{PatchGroupPrimaryValue}}"
                     ]
                  }
               ],
               "TargetParameterName":"InstanceId"
            }
         },
         {
            "name":"patchSecondaryTargets",
            "action":"aws:executeAutomation",
            "onFailure":"Abort",
            "timeoutSeconds":7200,
            "inputs":{
               "DocumentName":"RunbookTutorialChildAutomation",
               "Targets":[
                  {
                     "Key":"tag:{{PatchGroupSecondaryKey}}",
                     "Values":[
                        "{{PatchGroupSecondaryValue}}"
                     ]
                  }
               ],
               "TargetParameterName":"InstanceId"
            }
         }
      ]
   }
   ```

------

Untuk informasi selengkapnya tentang tindakan otomatisasi yang digunakan dalam contoh ini, lihat[Referensi tindakan Otomatisasi Systems Manager](automation-actions.md).

# Contoh 2: Runbook berskrip
<a name="automation-authoring-runbooks-scripted-example"></a>

Contoh runbook ini membahas skenario berikut. Emily adalah Insinyur Sistem di AnyCompany Consultants, LLC. Dia sebelumnya membuat dua runbook yang digunakan dalam hubungan orangtua-anak untuk menambal grup instans Amazon Elastic Compute Cloud (Amazon EC2) yang menampung database primer dan sekunder. Aplikasi mengakses database ini 24 jam sehari, jadi salah satu instance database harus selalu tersedia. 

Berdasarkan persyaratan ini, ia membangun solusi yang menambal instance secara bertahap menggunakan dokumen `AWS-RunPatchBaseline` Systems Manager (SSM). Dengan menggunakan dokumen SSM ini, rekan-rekannya dapat meninjau informasi kepatuhan patch terkait setelah operasi patching selesai. 

Kelompok utama instance database ditambal terlebih dahulu, diikuti oleh kelompok sekunder instance database. Selain itu, untuk menghindari biaya tambahan dengan membiarkan instance berjalan yang sebelumnya dihentikan, Emily memastikan bahwa otomatisasi mengembalikan instance yang ditambal ke keadaan semula sebelum penambalan terjadi. Emily menggunakan tag yang terkait dengan grup instance database primer dan sekunder untuk mengidentifikasi instance mana yang harus ditambal dalam urutan yang diinginkannya.

Solusi otomatisnya yang ada berfungsi, tetapi dia ingin meningkatkan solusinya jika memungkinkan. Untuk membantu pemeliharaan konten runbook dan untuk memudahkan upaya pemecahan masalah, ia ingin memadatkan otomatisasi menjadi satu runbook dan menyederhanakan jumlah parameter input. Juga, dia ingin menghindari membuat beberapa otomatisasi anak. 

Setelah Emily meninjau tindakan otomatisasi yang tersedia, dia menentukan bahwa dia dapat meningkatkan solusinya dengan menggunakan `aws:executeScript` tindakan untuk menjalankan skrip Python kustomnya. Dia sekarang mulai menulis konten untuk runbook sebagai berikut:

1. Pertama, dia memberikan nilai untuk skema dan deskripsi runbook, dan mendefinisikan parameter input untuk runbook induk.

   Dengan menggunakan `AutomationAssumeRole` parameter, Emily dan rekan-rekannya dapat menggunakan peran IAM yang ada yang memungkinkan Otomasi untuk melakukan tindakan di runbook atas nama mereka. Tidak seperti [Contoh 1](automation-authoring-runbooks-parent-child-example.md), `AutomationAssumeRole` parameter sekarang diperlukan daripada opsional. Karena runbook ini menyertakan `aws:executeScript` tindakan, peran layanan AWS Identity and Access Management (IAM) (atau mengambil peran) selalu diperlukan. Persyaratan ini diperlukan karena beberapa skrip Python yang ditentukan untuk tindakan memanggil AWS operasi API.

   Emily menggunakan `SecondaryPatchGroupTag` parameter `PrimaryPatchGroupTag` dan untuk menentukan tag yang terkait dengan kelompok contoh database primer dan sekunder yang akan ditambal. Untuk menyederhanakan parameter input yang diperlukan, dia memutuskan untuk menggunakan `StringMap` parameter daripada menggunakan beberapa `String` parameter seperti yang dia gunakan dalam runbook Contoh 1. Secara opsional, `SnapshotId` parameter `Operation``RebootOption`, dan dapat digunakan untuk memberikan nilai untuk mendokumentasikan parameter untuk`AWS-RunPatchBaseline`. Untuk mencegah nilai yang tidak valid diberikan ke parameter dokumen tersebut, dia mendefinisikan sesuai kebutuhan. `allowedValues`

------
#### [ YAML ]

   ```
   description: 'An example of an Automation runbook that patches groups of Amazon EC2 instances in stages.'
   schemaVersion: '0.3'
   assumeRole: '{{AutomationAssumeRole}}'
   parameters:
     AutomationAssumeRole:
       type: String
       description: '(Required) The Amazon Resource Name (ARN) of the IAM role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to operate this runbook.'
     PrimaryPatchGroupTag:
       type: StringMap
       description: '(Required) The tag for the primary group of instances you want to patch. Specify a key-value pair. Example: {"key" : "value"}'
     SecondaryPatchGroupTag:
       type: StringMap
       description: '(Required) The tag for the secondary group of instances you want to patch. Specify a key-value pair. Example: {"key" : "value"}'
     SnapshotId:
       type: String
       description: '(Optional) The snapshot ID to use to retrieve a patch baseline snapshot.'
       default: ''
     RebootOption:
       type: String
       description: '(Optional) Reboot behavior after a patch Install operation. If you choose NoReboot and patches are installed, the instance is marked as non-compliant until a subsequent reboot and scan.'
       allowedValues:
         - NoReboot
         - RebootIfNeeded
       default: RebootIfNeeded
     Operation:
       type: String
       description: '(Optional) The update or configuration to perform on the instance. The system checks if patches specified in the patch baseline are installed on the instance. The install operation installs patches missing from the baseline.'
       allowedValues:
         - Install
         - Scan
       default: Install
   ```

------
#### [ JSON ]

   ```
   {
      "description":"An example of an Automation runbook that patches groups of Amazon EC2 instances in stages.",
      "schemaVersion":"0.3",
      "assumeRole":"{{AutomationAssumeRole}}",
      "parameters":{
         "AutomationAssumeRole":{
            "type":"String",
            "description":"(Required) The Amazon Resource Name (ARN) of the IAM role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to operate this runbook."
         },
         "PrimaryPatchGroupTag":{
            "type":"StringMap",
            "description":"(Required) The tag for the primary group of instances you want to patch. Specify a key-value pair. Example: {\"key\" : \"value\"}"
         },
         "SecondaryPatchGroupTag":{
            "type":"StringMap",
            "description":"(Required) The tag for the secondary group of instances you want to patch. Specify a key-value pair. Example: {\"key\" : \"value\"}"
         },
         "SnapshotId":{
            "type":"String",
            "description":"(Optional) The snapshot ID to use to retrieve a patch baseline snapshot.",
            "default":""
         },
         "RebootOption":{
            "type":"String",
            "description":"(Optional) Reboot behavior after a patch Install operation. If you choose NoReboot and patches are installed, the instance is marked as non-compliant until a subsequent reboot and scan.",
            "allowedValues":[
               "NoReboot",
               "RebootIfNeeded"
            ],
            "default":"RebootIfNeeded"
         },
         "Operation":{
            "type":"String",
            "description":"(Optional) The update or configuration to perform on the instance. The system checks if patches specified in the patch baseline are installed on the instance. The install operation installs patches missing from the baseline.",
            "allowedValues":[
               "Install",
               "Scan"
            ],
            "default":"Install"
         }
      }
   },
   ```

------

1. Dengan elemen tingkat atas yang ditentukan, Emily melanjutkan dengan membuat tindakan yang membentuk runbook. `mainSteps` Langkah pertama mengumpulkan semua instance IDs yang terkait dengan tag yang ditentukan dalam `PrimaryPatchGroupTag` parameter dan mengeluarkan `StringMap` parameter yang berisi ID instance dan status saat ini dari instance. Output dari tindakan ini digunakan dalam tindakan selanjutnya. 

   Perhatikan bahwa parameter `script` input tidak didukung untuk runbook JSON. Runbook JSON harus menyediakan konten skrip menggunakan parameter `attachment` input.

------
#### [ YAML ]

   ```
   mainSteps:
     - name: getPrimaryInstanceState
       action: 'aws:executeScript'
       timeoutSeconds: 120
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: getInstanceStates
         InputPayload:
           primaryTag: '{{PrimaryPatchGroupTag}}'
         Script: |-
           def getInstanceStates(events,context):
             import boto3
   
             #Initialize client
             ec2 = boto3.client('ec2')
             tag = events['primaryTag']
             tagKey, tagValue = list(tag.items())[0]
             instanceQuery = ec2.describe_instances(
             Filters=[
                 {
                     "Name": "tag:" + tagKey,
                     "Values": [tagValue]
                 }]
             )
             if not instanceQuery['Reservations']:
                 noInstancesForTagString = "No instances found for specified tag."
                 return({ 'noInstancesFound' : noInstancesForTagString })
             else:
                 queryResponse = instanceQuery['Reservations']
                 originalInstanceStates = {}
                 for results in queryResponse:
                     instanceSet = results['Instances']
                     for instance in instanceSet:
                         instanceId = instance['InstanceId']
                         originalInstanceStates[instanceId] = instance['State']['Name']
                 return originalInstanceStates
       outputs:
         - Name: originalInstanceStates
           Selector: $.Payload
           Type: StringMap
       nextStep: verifyPrimaryInstancesRunning
   ```

------
#### [ JSON ]

   ```
   "mainSteps":[
         {
            "name":"getPrimaryInstanceState",
            "action":"aws:executeScript",
            "timeoutSeconds":120,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"getInstanceStates",
               "InputPayload":{
                  "primaryTag":"{{PrimaryPatchGroupTag}}"
               },
               "Script":"..."
            },
            "outputs":[
               {
                  "Name":"originalInstanceStates",
                  "Selector":"$.Payload",
                  "Type":"StringMap"
               }
            ],
            "nextStep":"verifyPrimaryInstancesRunning"
         },
   ```

------

1. Emily menggunakan output dari tindakan sebelumnya dalam `aws:executeScript` tindakan lain untuk memverifikasi semua instance yang terkait dengan tag yang ditentukan dalam `PrimaryPatchGroupTag` parameter berada dalam keadaan. `running`

   Jika status instance sudah `running` atau`shutting-down`, skrip terus mengulang melalui instance yang tersisa.

   Jika status instance adalah`stopping`, script polling untuk instance untuk mencapai `stopped` status dan memulai instance.

   Jika keadaan instance adalah`stopped`, skrip memulai instance.

------
#### [ YAML ]

   ```
   - name: verifyPrimaryInstancesRunning
       action: 'aws:executeScript'
       timeoutSeconds: 600
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: verifyInstancesRunning
         InputPayload:
           targetInstances: '{{getPrimaryInstanceState.originalInstanceStates}}'
         Script: |-
           def verifyInstancesRunning(events,context):
             import boto3
   
             #Initialize client
             ec2 = boto3.client('ec2')
             instanceDict = events['targetInstances']
             for instance in instanceDict:
               if instanceDict[instance] == 'stopped':
                   print("The target instance " + instance + " is stopped. The instance will now be started.")
                   ec2.start_instances(
                       InstanceIds=[instance]
                       )
               elif instanceDict[instance] == 'stopping':
                   print("The target instance " + instance + " is stopping. Polling for instance to reach stopped state.")
                   while instanceDict[instance] != 'stopped':
                       poll = ec2.get_waiter('instance_stopped')
                       poll.wait(
                           InstanceIds=[instance]
                       )
                   ec2.start_instances(
                       InstanceIds=[instance]
                   )
               else:
                 pass
       nextStep: waitForPrimaryRunningInstances
   ```

------
#### [ JSON ]

   ```
   {
            "name":"verifyPrimaryInstancesRunning",
            "action":"aws:executeScript",
            "timeoutSeconds":600,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"verifyInstancesRunning",
               "InputPayload":{
                  "targetInstances":"{{getPrimaryInstanceState.originalInstanceStates}}"
               },
               "Script":"..."
            },
            "nextStep":"waitForPrimaryRunningInstances"
         },
   ```

------

1. Emily memverifikasi bahwa semua instance yang terkait dengan tag yang ditentukan dalam `PrimaryPatchGroupTag` parameter telah dimulai atau sudah dalam keadaan. `running` Kemudian dia menggunakan skrip lain untuk memverifikasi bahwa semua contoh, termasuk yang dimulai pada tindakan sebelumnya, telah mencapai `running` keadaan.

------
#### [ YAML ]

   ```
   - name: waitForPrimaryRunningInstances
       action: 'aws:executeScript'
       timeoutSeconds: 300
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: waitForRunningInstances
         InputPayload:
           targetInstances: '{{getPrimaryInstanceState.originalInstanceStates}}'
         Script: |-
           def waitForRunningInstances(events,context):
             import boto3
   
             #Initialize client
             ec2 = boto3.client('ec2')
             instanceDict = events['targetInstances']
             for instance in instanceDict:
                 poll = ec2.get_waiter('instance_running')
                 poll.wait(
                     InstanceIds=[instance]
                 )
       nextStep: returnPrimaryTagKey
   ```

------
#### [ JSON ]

   ```
   {
            "name":"waitForPrimaryRunningInstances",
            "action":"aws:executeScript",
            "timeoutSeconds":300,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"waitForRunningInstances",
               "InputPayload":{
                  "targetInstances":"{{getPrimaryInstanceState.originalInstanceStates}}"
               },
               "Script":"..."
            },
            "nextStep":"returnPrimaryTagKey"
         },
   ```

------

1. Emily menggunakan dua skrip lagi untuk mengembalikan `String` nilai individual dari kunci dan nilai tag yang ditentukan dalam parameter. `PrimaryPatchGroupTag` Nilai yang dikembalikan oleh tindakan ini memungkinkannya untuk memberikan nilai langsung ke `Targets` parameter untuk `AWS-RunPatchBaseline` dokumen. Otomatisasi kemudian dilanjutkan dengan menambal instance dengan `AWS-RunPatchBaseline` dokumen menggunakan tindakan. `aws:runCommand`

------
#### [ YAML ]

   ```
   - name: returnPrimaryTagKey
       action: 'aws:executeScript'
       timeoutSeconds: 120
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: returnTagValues
         InputPayload:
           primaryTag: '{{PrimaryPatchGroupTag}}'
         Script: |-
           def returnTagValues(events,context):
             tag = events['primaryTag']
             tagKey = list(tag)[0]
             stringKey = "tag:" + tagKey
             return {'tagKey' : stringKey}
       outputs:
         - Name: Payload
           Selector: $.Payload
           Type: StringMap
         - Name: primaryPatchGroupKey
           Selector: $.Payload.tagKey
           Type: String
       nextStep: returnPrimaryTagValue
     - name: returnPrimaryTagValue
       action: 'aws:executeScript'
       timeoutSeconds: 120
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: returnTagValues
         InputPayload:
           primaryTag: '{{PrimaryPatchGroupTag}}'
         Script: |-
           def returnTagValues(events,context):
             tag = events['primaryTag']
             tagKey = list(tag)[0]
             tagValue = tag[tagKey]
             return {'tagValue' : tagValue}
       outputs:
         - Name: Payload
           Selector: $.Payload
           Type: StringMap
         - Name: primaryPatchGroupValue
           Selector: $.Payload.tagValue
           Type: String
       nextStep: patchPrimaryInstances
     - name: patchPrimaryInstances
       action: 'aws:runCommand'
       onFailure: Abort
       timeoutSeconds: 7200
       inputs:
         DocumentName: AWS-RunPatchBaseline
         Parameters:
           SnapshotId: '{{SnapshotId}}'
           RebootOption: '{{RebootOption}}'
           Operation: '{{Operation}}'
         Targets:
           - Key: '{{returnPrimaryTagKey.primaryPatchGroupKey}}'
             Values:
               - '{{returnPrimaryTagValue.primaryPatchGroupValue}}'
         MaxConcurrency: 10%
         MaxErrors: 10%
       nextStep: returnPrimaryToOriginalState
   ```

------
#### [ JSON ]

   ```
   {
            "name":"returnPrimaryTagKey",
            "action":"aws:executeScript",
            "timeoutSeconds":120,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"returnTagValues",
               "InputPayload":{
                  "primaryTag":"{{PrimaryPatchGroupTag}}"
               },
               "Script":"..."
            },
            "outputs":[
               {
                  "Name":"Payload",
                  "Selector":"$.Payload",
                  "Type":"StringMap"
               },
               {
                  "Name":"primaryPatchGroupKey",
                  "Selector":"$.Payload.tagKey",
                  "Type":"String"
               }
            ],
            "nextStep":"returnPrimaryTagValue"
         },
         {
            "name":"returnPrimaryTagValue",
            "action":"aws:executeScript",
            "timeoutSeconds":120,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"returnTagValues",
               "InputPayload":{
                  "primaryTag":"{{PrimaryPatchGroupTag}}"
               },
               "Script":"..."
            },
            "outputs":[
               {
                  "Name":"Payload",
                  "Selector":"$.Payload",
                  "Type":"StringMap"
               },
               {
                  "Name":"primaryPatchGroupValue",
                  "Selector":"$.Payload.tagValue",
                  "Type":"String"
               }
            ],
            "nextStep":"patchPrimaryInstances"
         },
         {
            "name":"patchPrimaryInstances",
            "action":"aws:runCommand",
            "onFailure":"Abort",
            "timeoutSeconds":7200,
            "inputs":{
               "DocumentName":"AWS-RunPatchBaseline",
               "Parameters":{
                  "SnapshotId":"{{SnapshotId}}",
                  "RebootOption":"{{RebootOption}}",
                  "Operation":"{{Operation}}"
               },
               "Targets":[
                  {
                     "Key":"{{returnPrimaryTagKey.primaryPatchGroupKey}}",
                     "Values":[
                        "{{returnPrimaryTagValue.primaryPatchGroupValue}}"
                     ]
                  }
               ],
               "MaxConcurrency":"10%",
               "MaxErrors":"10%"
            },
            "nextStep":"returnPrimaryToOriginalState"
         },
   ```

------

1. Setelah operasi penambalan selesai, Emily ingin otomatisasi mengembalikan instance target yang terkait dengan tag yang ditentukan dalam `PrimaryPatchGroupTag` parameter ke keadaan yang sama sebelum otomatisasi dimulai. Dia melakukan ini dengan lagi menggunakan output dari tindakan pertama dalam skrip. Berdasarkan status asli instance target, jika instance sebelumnya dalam keadaan apa pun selain`running`, instance dihentikan. Jika tidak, jika status instance adalah`running`, skrip terus mengulang melalui instance yang tersisa.

------
#### [ YAML ]

   ```
   - name: returnPrimaryToOriginalState
       action: 'aws:executeScript'
       timeoutSeconds: 600
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: returnToOriginalState
         InputPayload:
           targetInstances: '{{getPrimaryInstanceState.originalInstanceStates}}'
         Script: |-
           def returnToOriginalState(events,context):
             import boto3
   
             #Initialize client
             ec2 = boto3.client('ec2')
             instanceDict = events['targetInstances']
             for instance in instanceDict:
               if instanceDict[instance] == 'stopped' or instanceDict[instance] == 'stopping':
                   ec2.stop_instances(
                       InstanceIds=[instance]
                       )
               else:
                 pass
       nextStep: getSecondaryInstanceState
   ```

------
#### [ JSON ]

   ```
   {
            "name":"returnPrimaryToOriginalState",
            "action":"aws:executeScript",
            "timeoutSeconds":600,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"returnToOriginalState",
               "InputPayload":{
                  "targetInstances":"{{getPrimaryInstanceState.originalInstanceStates}}"
               },
               "Script":"..."
            },
            "nextStep":"getSecondaryInstanceState"
         },
   ```

------

1. Operasi penambalan selesai untuk instance yang terkait dengan tag yang ditentukan dalam parameter. `PrimaryPatchGroupTag` Sekarang Emily menduplikasi semua tindakan sebelumnya dalam konten runbook-nya untuk menargetkan instance yang terkait dengan tag yang ditentukan dalam parameter. `SecondaryPatchGroupTag`

------
#### [ YAML ]

   ```
   - name: getSecondaryInstanceState
       action: 'aws:executeScript'
       timeoutSeconds: 120
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: getInstanceStates
         InputPayload:
           secondaryTag: '{{SecondaryPatchGroupTag}}'
         Script: |-
           def getInstanceStates(events,context):
             import boto3
   
             #Initialize client
             ec2 = boto3.client('ec2')
             tag = events['secondaryTag']
             tagKey, tagValue = list(tag.items())[0]
             instanceQuery = ec2.describe_instances(
             Filters=[
                 {
                     "Name": "tag:" + tagKey,
                     "Values": [tagValue]
                 }]
             )
             if not instanceQuery['Reservations']:
                 noInstancesForTagString = "No instances found for specified tag."
                 return({ 'noInstancesFound' : noInstancesForTagString })
             else:
                 queryResponse = instanceQuery['Reservations']
                 originalInstanceStates = {}
                 for results in queryResponse:
                     instanceSet = results['Instances']
                     for instance in instanceSet:
                         instanceId = instance['InstanceId']
                         originalInstanceStates[instanceId] = instance['State']['Name']
                 return originalInstanceStates
       outputs:
         - Name: originalInstanceStates
           Selector: $.Payload
           Type: StringMap
       nextStep: verifySecondaryInstancesRunning
     - name: verifySecondaryInstancesRunning
       action: 'aws:executeScript'
       timeoutSeconds: 600
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: verifyInstancesRunning
         InputPayload:
           targetInstances: '{{getSecondaryInstanceState.originalInstanceStates}}'
         Script: |-
           def verifyInstancesRunning(events,context):
             import boto3
   
             #Initialize client
             ec2 = boto3.client('ec2')
             instanceDict = events['targetInstances']
             for instance in instanceDict:
               if instanceDict[instance] == 'stopped':
                   print("The target instance " + instance + " is stopped. The instance will now be started.")
                   ec2.start_instances(
                       InstanceIds=[instance]
                       )
               elif instanceDict[instance] == 'stopping':
                   print("The target instance " + instance + " is stopping. Polling for instance to reach stopped state.")
                   while instanceDict[instance] != 'stopped':
                       poll = ec2.get_waiter('instance_stopped')
                       poll.wait(
                           InstanceIds=[instance]
                       )
                   ec2.start_instances(
                       InstanceIds=[instance]
                   )
               else:
                 pass
       nextStep: waitForSecondaryRunningInstances
     - name: waitForSecondaryRunningInstances
       action: 'aws:executeScript'
       timeoutSeconds: 300
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: waitForRunningInstances
         InputPayload:
           targetInstances: '{{getSecondaryInstanceState.originalInstanceStates}}'
         Script: |-
           def waitForRunningInstances(events,context):
             import boto3
   
             #Initialize client
             ec2 = boto3.client('ec2')
             instanceDict = events['targetInstances']
             for instance in instanceDict:
                 poll = ec2.get_waiter('instance_running')
                 poll.wait(
                     InstanceIds=[instance]
                 )
       nextStep: returnSecondaryTagKey
     - name: returnSecondaryTagKey
       action: 'aws:executeScript'
       timeoutSeconds: 120
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: returnTagValues
         InputPayload:
           secondaryTag: '{{SecondaryPatchGroupTag}}'
         Script: |-
           def returnTagValues(events,context):
             tag = events['secondaryTag']
             tagKey = list(tag)[0]
             stringKey = "tag:" + tagKey
             return {'tagKey' : stringKey}
       outputs:
         - Name: Payload
           Selector: $.Payload
           Type: StringMap
         - Name: secondaryPatchGroupKey
           Selector: $.Payload.tagKey
           Type: String
       nextStep: returnSecondaryTagValue
     - name: returnSecondaryTagValue
       action: 'aws:executeScript'
       timeoutSeconds: 120
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: returnTagValues
         InputPayload:
           secondaryTag: '{{SecondaryPatchGroupTag}}'
         Script: |-
           def returnTagValues(events,context):
             tag = events['secondaryTag']
             tagKey = list(tag)[0]
             tagValue = tag[tagKey]
             return {'tagValue' : tagValue}
       outputs:
         - Name: Payload
           Selector: $.Payload
           Type: StringMap
         - Name: secondaryPatchGroupValue
           Selector: $.Payload.tagValue
           Type: String
       nextStep: patchSecondaryInstances
     - name: patchSecondaryInstances
       action: 'aws:runCommand'
       onFailure: Abort
       timeoutSeconds: 7200
       inputs:
         DocumentName: AWS-RunPatchBaseline
         Parameters:
           SnapshotId: '{{SnapshotId}}'
           RebootOption: '{{RebootOption}}'
           Operation: '{{Operation}}'
         Targets:
           - Key: '{{returnSecondaryTagKey.secondaryPatchGroupKey}}'
             Values:
             - '{{returnSecondaryTagValue.secondaryPatchGroupValue}}'
         MaxConcurrency: 10%
         MaxErrors: 10%
       nextStep: returnSecondaryToOriginalState
     - name: returnSecondaryToOriginalState
       action: 'aws:executeScript'
       timeoutSeconds: 600
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: returnToOriginalState
         InputPayload:
           targetInstances: '{{getSecondaryInstanceState.originalInstanceStates}}'
         Script: |-
           def returnToOriginalState(events,context):
             import boto3
   
             #Initialize client
             ec2 = boto3.client('ec2')
             instanceDict = events['targetInstances']
             for instance in instanceDict:
               if instanceDict[instance] == 'stopped' or instanceDict[instance] == 'stopping':
                   ec2.stop_instances(
                       InstanceIds=[instance]
                       )
               else:
                 pass
   ```

------
#### [ JSON ]

   ```
   {
            "name":"getSecondaryInstanceState",
            "action":"aws:executeScript",
            "timeoutSeconds":120,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"getInstanceStates",
               "InputPayload":{
                  "secondaryTag":"{{SecondaryPatchGroupTag}}"
               },
               "Script":"..."
            },
            "outputs":[
               {
                  "Name":"originalInstanceStates",
                  "Selector":"$.Payload",
                  "Type":"StringMap"
               }
            ],
            "nextStep":"verifySecondaryInstancesRunning"
         },
         {
            "name":"verifySecondaryInstancesRunning",
            "action":"aws:executeScript",
            "timeoutSeconds":600,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"verifyInstancesRunning",
               "InputPayload":{
                  "targetInstances":"{{getSecondaryInstanceState.originalInstanceStates}}"
               },
               "Script":"..."
            },
            "nextStep":"waitForSecondaryRunningInstances"
         },
         {
            "name":"waitForSecondaryRunningInstances",
            "action":"aws:executeScript",
            "timeoutSeconds":300,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"waitForRunningInstances",
               "InputPayload":{
                  "targetInstances":"{{getSecondaryInstanceState.originalInstanceStates}}"
               },
               "Script":"..."
            },
            "nextStep":"returnSecondaryTagKey"
         },
         {
            "name":"returnSecondaryTagKey",
            "action":"aws:executeScript",
            "timeoutSeconds":120,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"returnTagValues",
               "InputPayload":{
                  "secondaryTag":"{{SecondaryPatchGroupTag}}"
               },
               "Script":"..."
            },
            "outputs":[
               {
                  "Name":"Payload",
                  "Selector":"$.Payload",
                  "Type":"StringMap"
               },
               {
                  "Name":"secondaryPatchGroupKey",
                  "Selector":"$.Payload.tagKey",
                  "Type":"String"
               }
            ],
            "nextStep":"returnSecondaryTagValue"
         },
         {
            "name":"returnSecondaryTagValue",
            "action":"aws:executeScript",
            "timeoutSeconds":120,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"returnTagValues",
               "InputPayload":{
                  "secondaryTag":"{{SecondaryPatchGroupTag}}"
               },
               "Script":"..."
            },
            "outputs":[
               {
                  "Name":"Payload",
                  "Selector":"$.Payload",
                  "Type":"StringMap"
               },
               {
                  "Name":"secondaryPatchGroupValue",
                  "Selector":"$.Payload.tagValue",
                  "Type":"String"
               }
            ],
            "nextStep":"patchSecondaryInstances"
         },
         {
            "name":"patchSecondaryInstances",
            "action":"aws:runCommand",
            "onFailure":"Abort",
            "timeoutSeconds":7200,
            "inputs":{
               "DocumentName":"AWS-RunPatchBaseline",
               "Parameters":{
                  "SnapshotId":"{{SnapshotId}}",
                  "RebootOption":"{{RebootOption}}",
                  "Operation":"{{Operation}}"
               },
               "Targets":[
                  {
                     "Key":"{{returnSecondaryTagKey.secondaryPatchGroupKey}}",
                     "Values":[
                        "{{returnSecondaryTagValue.secondaryPatchGroupValue}}"
                     ]
                  }
               ],
               "MaxConcurrency":"10%",
               "MaxErrors":"10%"
            },
            "nextStep":"returnSecondaryToOriginalState"
         },
         {
            "name":"returnSecondaryToOriginalState",
            "action":"aws:executeScript",
            "timeoutSeconds":600,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"returnToOriginalState",
               "InputPayload":{
                  "targetInstances":"{{getSecondaryInstanceState.originalInstanceStates}}"
               },
               "Script":"..."
            }
         }
      ]
   }
   ```

------

1. Emily meninjau konten runbook skrip yang telah selesai dan membuat runbook dalam contoh yang sama Akun AWS dan Wilayah AWS sebagai target. Sekarang dia siap untuk menguji runbook-nya untuk memastikan otomatisasi beroperasi seperti yang diinginkan sebelum menerapkannya ke lingkungan produksinya. Berikut ini adalah konten runbook skrip yang sudah selesai.

------
#### [ YAML ]

   ```
   description: An example of an Automation runbook that patches groups of Amazon EC2 instances in stages.
   schemaVersion: '0.3'
   assumeRole: '{{AutomationAssumeRole}}'
   parameters:
     AutomationAssumeRole:
       type: String
       description: '(Required) The Amazon Resource Name (ARN) of the IAM role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to operate this runbook.'
     PrimaryPatchGroupTag:
       type: StringMap
       description: '(Required) The tag for the primary group of instances you want to patch. Specify a key-value pair. Example: {"key" : "value"}'
     SecondaryPatchGroupTag:
       type: StringMap
       description: '(Required) The tag for the secondary group of instances you want to patch. Specify a key-value pair. Example: {"key" : "value"}'
     SnapshotId:
       type: String
       description: '(Optional) The snapshot ID to use to retrieve a patch baseline snapshot.'
       default: ''
     RebootOption:
       type: String
       description: '(Optional) Reboot behavior after a patch Install operation. If you choose NoReboot and patches are installed, the instance is marked as non-compliant until a subsequent reboot and scan.'
       allowedValues:
         - NoReboot
         - RebootIfNeeded
       default: RebootIfNeeded
     Operation:
       type: String
       description: '(Optional) The update or configuration to perform on the instance. The system checks if patches specified in the patch baseline are installed on the instance. The install operation installs patches missing from the baseline.'
       allowedValues:
         - Install
         - Scan
       default: Install
   mainSteps:
     - name: getPrimaryInstanceState
       action: 'aws:executeScript'
       timeoutSeconds: 120
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: getInstanceStates
         InputPayload:
           primaryTag: '{{PrimaryPatchGroupTag}}'
         Script: |-
           def getInstanceStates(events,context):
             import boto3
   
             #Initialize client
             ec2 = boto3.client('ec2')
             tag = events['primaryTag']
             tagKey, tagValue = list(tag.items())[0]
             instanceQuery = ec2.describe_instances(
             Filters=[
                 {
                     "Name": "tag:" + tagKey,
                     "Values": [tagValue]
                 }]
             )
             if not instanceQuery['Reservations']:
                 noInstancesForTagString = "No instances found for specified tag."
                 return({ 'noInstancesFound' : noInstancesForTagString })
             else:
                 queryResponse = instanceQuery['Reservations']
                 originalInstanceStates = {}
                 for results in queryResponse:
                     instanceSet = results['Instances']
                     for instance in instanceSet:
                         instanceId = instance['InstanceId']
                         originalInstanceStates[instanceId] = instance['State']['Name']
                 return originalInstanceStates
       outputs:
         - Name: originalInstanceStates
           Selector: $.Payload
           Type: StringMap
       nextStep: verifyPrimaryInstancesRunning
     - name: verifyPrimaryInstancesRunning
       action: 'aws:executeScript'
       timeoutSeconds: 600
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: verifyInstancesRunning
         InputPayload:
           targetInstances: '{{getPrimaryInstanceState.originalInstanceStates}}'
         Script: |-
           def verifyInstancesRunning(events,context):
             import boto3
   
             #Initialize client
             ec2 = boto3.client('ec2')
             instanceDict = events['targetInstances']
             for instance in instanceDict:
               if instanceDict[instance] == 'stopped':
                   print("The target instance " + instance + " is stopped. The instance will now be started.")
                   ec2.start_instances(
                       InstanceIds=[instance]
                       )
               elif instanceDict[instance] == 'stopping':
                   print("The target instance " + instance + " is stopping. Polling for instance to reach stopped state.")
                   while instanceDict[instance] != 'stopped':
                       poll = ec2.get_waiter('instance_stopped')
                       poll.wait(
                           InstanceIds=[instance]
                       )
                   ec2.start_instances(
                       InstanceIds=[instance]
                   )
               else:
                 pass
       nextStep: waitForPrimaryRunningInstances
     - name: waitForPrimaryRunningInstances
       action: 'aws:executeScript'
       timeoutSeconds: 300
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: waitForRunningInstances
         InputPayload:
           targetInstances: '{{getPrimaryInstanceState.originalInstanceStates}}'
         Script: |-
           def waitForRunningInstances(events,context):
             import boto3
   
             #Initialize client
             ec2 = boto3.client('ec2')
             instanceDict = events['targetInstances']
             for instance in instanceDict:
                 poll = ec2.get_waiter('instance_running')
                 poll.wait(
                     InstanceIds=[instance]
                 )
       nextStep: returnPrimaryTagKey
     - name: returnPrimaryTagKey
       action: 'aws:executeScript'
       timeoutSeconds: 120
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: returnTagValues
         InputPayload:
           primaryTag: '{{PrimaryPatchGroupTag}}'
         Script: |-
           def returnTagValues(events,context):
             tag = events['primaryTag']
             tagKey = list(tag)[0]
             stringKey = "tag:" + tagKey
             return {'tagKey' : stringKey}
       outputs:
         - Name: Payload
           Selector: $.Payload
           Type: StringMap
         - Name: primaryPatchGroupKey
           Selector: $.Payload.tagKey
           Type: String
       nextStep: returnPrimaryTagValue
     - name: returnPrimaryTagValue
       action: 'aws:executeScript'
       timeoutSeconds: 120
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: returnTagValues
         InputPayload:
           primaryTag: '{{PrimaryPatchGroupTag}}'
         Script: |-
           def returnTagValues(events,context):
             tag = events['primaryTag']
             tagKey = list(tag)[0]
             tagValue = tag[tagKey]
             return {'tagValue' : tagValue}
       outputs:
         - Name: Payload
           Selector: $.Payload
           Type: StringMap
         - Name: primaryPatchGroupValue
           Selector: $.Payload.tagValue
           Type: String
       nextStep: patchPrimaryInstances
     - name: patchPrimaryInstances
       action: 'aws:runCommand'
       onFailure: Abort
       timeoutSeconds: 7200
       inputs:
         DocumentName: AWS-RunPatchBaseline
         Parameters:
           SnapshotId: '{{SnapshotId}}'
           RebootOption: '{{RebootOption}}'
           Operation: '{{Operation}}'
         Targets:
           - Key: '{{returnPrimaryTagKey.primaryPatchGroupKey}}'
             Values:
               - '{{returnPrimaryTagValue.primaryPatchGroupValue}}'
         MaxConcurrency: 10%
         MaxErrors: 10%
       nextStep: returnPrimaryToOriginalState
     - name: returnPrimaryToOriginalState
       action: 'aws:executeScript'
       timeoutSeconds: 600
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: returnToOriginalState
         InputPayload:
           targetInstances: '{{getPrimaryInstanceState.originalInstanceStates}}'
         Script: |-
           def returnToOriginalState(events,context):
             import boto3
   
             #Initialize client
             ec2 = boto3.client('ec2')
             instanceDict = events['targetInstances']
             for instance in instanceDict:
               if instanceDict[instance] == 'stopped' or instanceDict[instance] == 'stopping':
                   ec2.stop_instances(
                       InstanceIds=[instance]
                       )
               else:
                 pass
       nextStep: getSecondaryInstanceState
     - name: getSecondaryInstanceState
       action: 'aws:executeScript'
       timeoutSeconds: 120
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: getInstanceStates
         InputPayload:
           secondaryTag: '{{SecondaryPatchGroupTag}}'
         Script: |-
           def getInstanceStates(events,context):
             import boto3
   
             #Initialize client
             ec2 = boto3.client('ec2')
             tag = events['secondaryTag']
             tagKey, tagValue = list(tag.items())[0]
             instanceQuery = ec2.describe_instances(
             Filters=[
                 {
                     "Name": "tag:" + tagKey,
                     "Values": [tagValue]
                 }]
             )
             if not instanceQuery['Reservations']:
                 noInstancesForTagString = "No instances found for specified tag."
                 return({ 'noInstancesFound' : noInstancesForTagString })
             else:
                 queryResponse = instanceQuery['Reservations']
                 originalInstanceStates = {}
                 for results in queryResponse:
                     instanceSet = results['Instances']
                     for instance in instanceSet:
                         instanceId = instance['InstanceId']
                         originalInstanceStates[instanceId] = instance['State']['Name']
                 return originalInstanceStates
       outputs:
         - Name: originalInstanceStates
           Selector: $.Payload
           Type: StringMap
       nextStep: verifySecondaryInstancesRunning
     - name: verifySecondaryInstancesRunning
       action: 'aws:executeScript'
       timeoutSeconds: 600
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: verifyInstancesRunning
         InputPayload:
           targetInstances: '{{getSecondaryInstanceState.originalInstanceStates}}'
         Script: |-
           def verifyInstancesRunning(events,context):
             import boto3
   
             #Initialize client
             ec2 = boto3.client('ec2')
             instanceDict = events['targetInstances']
             for instance in instanceDict:
               if instanceDict[instance] == 'stopped':
                   print("The target instance " + instance + " is stopped. The instance will now be started.")
                   ec2.start_instances(
                       InstanceIds=[instance]
                       )
               elif instanceDict[instance] == 'stopping':
                   print("The target instance " + instance + " is stopping. Polling for instance to reach stopped state.")
                   while instanceDict[instance] != 'stopped':
                       poll = ec2.get_waiter('instance_stopped')
                       poll.wait(
                           InstanceIds=[instance]
                       )
                   ec2.start_instances(
                       InstanceIds=[instance]
                   )
               else:
                 pass
       nextStep: waitForSecondaryRunningInstances
     - name: waitForSecondaryRunningInstances
       action: 'aws:executeScript'
       timeoutSeconds: 300
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: waitForRunningInstances
         InputPayload:
           targetInstances: '{{getSecondaryInstanceState.originalInstanceStates}}'
         Script: |-
           def waitForRunningInstances(events,context):
             import boto3
   
             #Initialize client
             ec2 = boto3.client('ec2')
             instanceDict = events['targetInstances']
             for instance in instanceDict:
                 poll = ec2.get_waiter('instance_running')
                 poll.wait(
                     InstanceIds=[instance]
                 )
       nextStep: returnSecondaryTagKey
     - name: returnSecondaryTagKey
       action: 'aws:executeScript'
       timeoutSeconds: 120
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: returnTagValues
         InputPayload:
           secondaryTag: '{{SecondaryPatchGroupTag}}'
         Script: |-
           def returnTagValues(events,context):
             tag = events['secondaryTag']
             tagKey = list(tag)[0]
             stringKey = "tag:" + tagKey
             return {'tagKey' : stringKey}
       outputs:
         - Name: Payload
           Selector: $.Payload
           Type: StringMap
         - Name: secondaryPatchGroupKey
           Selector: $.Payload.tagKey
           Type: String
       nextStep: returnSecondaryTagValue
     - name: returnSecondaryTagValue
       action: 'aws:executeScript'
       timeoutSeconds: 120
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: returnTagValues
         InputPayload:
           secondaryTag: '{{SecondaryPatchGroupTag}}'
         Script: |-
           def returnTagValues(events,context):
             tag = events['secondaryTag']
             tagKey = list(tag)[0]
             tagValue = tag[tagKey]
             return {'tagValue' : tagValue}
       outputs:
         - Name: Payload
           Selector: $.Payload
           Type: StringMap
         - Name: secondaryPatchGroupValue
           Selector: $.Payload.tagValue
           Type: String
       nextStep: patchSecondaryInstances
     - name: patchSecondaryInstances
       action: 'aws:runCommand'
       onFailure: Abort
       timeoutSeconds: 7200
       inputs:
         DocumentName: AWS-RunPatchBaseline
         Parameters:
           SnapshotId: '{{SnapshotId}}'
           RebootOption: '{{RebootOption}}'
           Operation: '{{Operation}}'
         Targets:
           - Key: '{{returnSecondaryTagKey.secondaryPatchGroupKey}}'
             Values:
             - '{{returnSecondaryTagValue.secondaryPatchGroupValue}}'
         MaxConcurrency: 10%
         MaxErrors: 10%
       nextStep: returnSecondaryToOriginalState
     - name: returnSecondaryToOriginalState
       action: 'aws:executeScript'
       timeoutSeconds: 600
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: returnToOriginalState
         InputPayload:
           targetInstances: '{{getSecondaryInstanceState.originalInstanceStates}}'
         Script: |-
           def returnToOriginalState(events,context):
             import boto3
   
             #Initialize client
             ec2 = boto3.client('ec2')
             instanceDict = events['targetInstances']
             for instance in instanceDict:
               if instanceDict[instance] == 'stopped' or instanceDict[instance] == 'stopping':
                   ec2.stop_instances(
                       InstanceIds=[instance]
                       )
               else:
                 pass
   ```

------
#### [ JSON ]

   ```
   {
      "description":"An example of an Automation runbook that patches groups of Amazon EC2 instances in stages.",
      "schemaVersion":"0.3",
      "assumeRole":"{{AutomationAssumeRole}}",
      "parameters":{
         "AutomationAssumeRole":{
            "type":"String",
            "description":"(Required) The Amazon Resource Name (ARN) of the IAM role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to operate this runbook."
         },
         "PrimaryPatchGroupTag":{
            "type":"StringMap",
            "description":"(Required) The tag for the primary group of instances you want to patch. Specify a key-value pair. Example: {\"key\" : \"value\"}"
         },
         "SecondaryPatchGroupTag":{
            "type":"StringMap",
            "description":"(Required) The tag for the secondary group of instances you want to patch. Specify a key-value pair. Example: {\"key\" : \"value\"}"
         },
         "SnapshotId":{
            "type":"String",
            "description":"(Optional) The snapshot ID to use to retrieve a patch baseline snapshot.",
            "default":""
         },
         "RebootOption":{
            "type":"String",
            "description":"(Optional) Reboot behavior after a patch Install operation. If you choose NoReboot and patches are installed, the instance is marked as non-compliant until a subsequent reboot and scan.",
            "allowedValues":[
               "NoReboot",
               "RebootIfNeeded"
            ],
            "default":"RebootIfNeeded"
         },
         "Operation":{
            "type":"String",
            "description":"(Optional) The update or configuration to perform on the instance. The system checks if patches specified in the patch baseline are installed on the instance. The install operation installs patches missing from the baseline.",
            "allowedValues":[
               "Install",
               "Scan"
            ],
            "default":"Install"
         }
      },
      "mainSteps":[
         {
            "name":"getPrimaryInstanceState",
            "action":"aws:executeScript",
            "timeoutSeconds":120,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"getInstanceStates",
               "InputPayload":{
                  "primaryTag":"{{PrimaryPatchGroupTag}}"
               },
               "Script":"..."
            },
            "outputs":[
               {
                  "Name":"originalInstanceStates",
                  "Selector":"$.Payload",
                  "Type":"StringMap"
               }
            ],
            "nextStep":"verifyPrimaryInstancesRunning"
         },
         {
            "name":"verifyPrimaryInstancesRunning",
            "action":"aws:executeScript",
            "timeoutSeconds":600,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"verifyInstancesRunning",
               "InputPayload":{
                  "targetInstances":"{{getPrimaryInstanceState.originalInstanceStates}}"
               },
               "Script":"..."
            },
            "nextStep":"waitForPrimaryRunningInstances"
         },
         {
            "name":"waitForPrimaryRunningInstances",
            "action":"aws:executeScript",
            "timeoutSeconds":300,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"waitForRunningInstances",
               "InputPayload":{
                  "targetInstances":"{{getPrimaryInstanceState.originalInstanceStates}}"
               },
               "Script":"..."
            },
            "nextStep":"returnPrimaryTagKey"
         },
         {
            "name":"returnPrimaryTagKey",
            "action":"aws:executeScript",
            "timeoutSeconds":120,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"returnTagValues",
               "InputPayload":{
                  "primaryTag":"{{PrimaryPatchGroupTag}}"
               },
               "Script":"..."
            },
            "outputs":[
               {
                  "Name":"Payload",
                  "Selector":"$.Payload",
                  "Type":"StringMap"
               },
               {
                  "Name":"primaryPatchGroupKey",
                  "Selector":"$.Payload.tagKey",
                  "Type":"String"
               }
            ],
            "nextStep":"returnPrimaryTagValue"
         },
         {
            "name":"returnPrimaryTagValue",
            "action":"aws:executeScript",
            "timeoutSeconds":120,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"returnTagValues",
               "InputPayload":{
                  "primaryTag":"{{PrimaryPatchGroupTag}}"
               },
               "Script":"..."
            },
            "outputs":[
               {
                  "Name":"Payload",
                  "Selector":"$.Payload",
                  "Type":"StringMap"
               },
               {
                  "Name":"primaryPatchGroupValue",
                  "Selector":"$.Payload.tagValue",
                  "Type":"String"
               }
            ],
            "nextStep":"patchPrimaryInstances"
         },
         {
            "name":"patchPrimaryInstances",
            "action":"aws:runCommand",
            "onFailure":"Abort",
            "timeoutSeconds":7200,
            "inputs":{
               "DocumentName":"AWS-RunPatchBaseline",
               "Parameters":{
                  "SnapshotId":"{{SnapshotId}}",
                  "RebootOption":"{{RebootOption}}",
                  "Operation":"{{Operation}}"
               },
               "Targets":[
                  {
                     "Key":"{{returnPrimaryTagKey.primaryPatchGroupKey}}",
                     "Values":[
                        "{{returnPrimaryTagValue.primaryPatchGroupValue}}"
                     ]
                  }
               ],
               "MaxConcurrency":"10%",
               "MaxErrors":"10%"
            },
            "nextStep":"returnPrimaryToOriginalState"
         },
         {
            "name":"returnPrimaryToOriginalState",
            "action":"aws:executeScript",
            "timeoutSeconds":600,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"returnToOriginalState",
               "InputPayload":{
                  "targetInstances":"{{getPrimaryInstanceState.originalInstanceStates}}"
               },
               "Script":"..."
            },
            "nextStep":"getSecondaryInstanceState"
         },
         {
            "name":"getSecondaryInstanceState",
            "action":"aws:executeScript",
            "timeoutSeconds":120,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"getInstanceStates",
               "InputPayload":{
                  "secondaryTag":"{{SecondaryPatchGroupTag}}"
               },
               "Script":"..."
            },
            "outputs":[
               {
                  "Name":"originalInstanceStates",
                  "Selector":"$.Payload",
                  "Type":"StringMap"
               }
            ],
            "nextStep":"verifySecondaryInstancesRunning"
         },
         {
            "name":"verifySecondaryInstancesRunning",
            "action":"aws:executeScript",
            "timeoutSeconds":600,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"verifyInstancesRunning",
               "InputPayload":{
                  "targetInstances":"{{getSecondaryInstanceState.originalInstanceStates}}"
               },
               "Script":"..."
            },
            "nextStep":"waitForSecondaryRunningInstances"
         },
         {
            "name":"waitForSecondaryRunningInstances",
            "action":"aws:executeScript",
            "timeoutSeconds":300,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"waitForRunningInstances",
               "InputPayload":{
                  "targetInstances":"{{getSecondaryInstanceState.originalInstanceStates}}"
               },
               "Script":"..."
            },
            "nextStep":"returnSecondaryTagKey"
         },
         {
            "name":"returnSecondaryTagKey",
            "action":"aws:executeScript",
            "timeoutSeconds":120,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"returnTagValues",
               "InputPayload":{
                  "secondaryTag":"{{SecondaryPatchGroupTag}}"
               },
               "Script":"..."
            },
            "outputs":[
               {
                  "Name":"Payload",
                  "Selector":"$.Payload",
                  "Type":"StringMap"
               },
               {
                  "Name":"secondaryPatchGroupKey",
                  "Selector":"$.Payload.tagKey",
                  "Type":"String"
               }
            ],
            "nextStep":"returnSecondaryTagValue"
         },
         {
            "name":"returnSecondaryTagValue",
            "action":"aws:executeScript",
            "timeoutSeconds":120,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"returnTagValues",
               "InputPayload":{
                  "secondaryTag":"{{SecondaryPatchGroupTag}}"
               },
               "Script":"..."
            },
            "outputs":[
               {
                  "Name":"Payload",
                  "Selector":"$.Payload",
                  "Type":"StringMap"
               },
               {
                  "Name":"secondaryPatchGroupValue",
                  "Selector":"$.Payload.tagValue",
                  "Type":"String"
               }
            ],
            "nextStep":"patchSecondaryInstances"
         },
         {
            "name":"patchSecondaryInstances",
            "action":"aws:runCommand",
            "onFailure":"Abort",
            "timeoutSeconds":7200,
            "inputs":{
               "DocumentName":"AWS-RunPatchBaseline",
               "Parameters":{
                  "SnapshotId":"{{SnapshotId}}",
                  "RebootOption":"{{RebootOption}}",
                  "Operation":"{{Operation}}"
               },
               "Targets":[
                  {
                     "Key":"{{returnSecondaryTagKey.secondaryPatchGroupKey}}",
                     "Values":[
                        "{{returnSecondaryTagValue.secondaryPatchGroupValue}}"
                     ]
                  }
               ],
               "MaxConcurrency":"10%",
               "MaxErrors":"10%"
            },
            "nextStep":"returnSecondaryToOriginalState"
         },
         {
            "name":"returnSecondaryToOriginalState",
            "action":"aws:executeScript",
            "timeoutSeconds":600,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"returnToOriginalState",
               "InputPayload":{
                  "targetInstances":"{{getSecondaryInstanceState.originalInstanceStates}}"
               },
               "Script":"..."
            }
         }
      ]
   }
   ```

------

Untuk informasi selengkapnya tentang tindakan otomatisasi yang digunakan dalam contoh ini, lihat[Referensi tindakan Otomatisasi Systems Manager](automation-actions.md).

# Contoh runbook tambahan
<a name="automation-document-examples"></a>

Contoh runbook berikut menunjukkan bagaimana Anda dapat menggunakan tindakan AWS Systems Manager otomatisasi untuk mengotomatiskan tugas penerapan, pemecahan masalah, dan pemeliharaan umum.

**catatan**  
Contoh runbook di bagian ini disediakan untuk menunjukkan bagaimana Anda dapat membuat runbook khusus untuk mendukung kebutuhan operasional spesifik Anda. Runbook ini tidak dirancang untuk digunakan di lingkungan produksi sebagaimana adanya. Namun, Anda dapat menyesuaikannya untuk penggunaan Anda sendiri.

**Topics**
+ [Deploy arsitektur VPC dan pengendali domain Microsoft Active Directory](automation-document-architecture-deployment-example.md)
+ [Kembalikan volume root dari snapshot terbaru](automation-document-instance-recovery-example.md)
+ [Buat AMI dan salinan lintas wilayah](automation-document-backup-maintenance-example.md)

# Deploy arsitektur VPC dan pengendali domain Microsoft Active Directory
<a name="automation-document-architecture-deployment-example"></a>

Untuk meningkatkan efisiensi dan menstandarisasi tugas umum, Anda dapat memilih untuk mengotomatiskan deployment. Ini berguna jika Anda secara teratur menerapkan arsitektur yang sama di beberapa akun dan Wilayah AWS. Mengotomatiskan penerapan arsitektur juga dapat mengurangi potensi kesalahan manusia yang dapat terjadi saat menerapkan arsitektur secara manual. AWS Systems Manager Tindakan otomatisasi dapat membantu Anda mencapai hal ini. Otomasi adalah alat dalam AWS Systems Manager.

Contoh AWS Systems Manager runbook berikut melakukan tindakan ini:
+ Mengambil Windows Server 2016 Amazon Machine Image (AMI) terbaru menggunakan Systems Manager Parameter Store untuk digunakan saat meluncurkan instans EC2 yang akan dikonfigurasi sebagai pengontrol domain. Parameter Storeadalah alat di AWS Systems Manager.
+ Menggunakan tindakan `aws:executeAwsApi` otomatisasi untuk memanggil beberapa operasi AWS API untuk membuat arsitektur VPC. Contoh kontroler domain diluncurkan di subnet pribadi, dan terhubung ke internet menggunakan gateway NAT. Hal ini memungkinkan SSM Agent pada instans untuk mengakses endpoint Systems Manager yang diperlukan.
+ Menggunakan tindakan `aws:waitForAwsResourceProperty` otomatisasi untuk mengonfirmasi instans yang diluncurkan oleh tindakan sebelumnya adalah `Online` untuk AWS Systems Manager.
+ Menggunakan `aws:runCommand` tindakan otomatisasi untuk mengonfigurasi contoh yang diluncurkan sebagai pengendali domain Microsoft Active Directory.

------
#### [ YAML ]

```
    ---
    description: Custom Automation Deployment Example
    schemaVersion: '0.3'
    parameters:
      AutomationAssumeRole:
        type: String
        default: ''
        description: >-
          (Optional) The ARN of the role that allows Automation to perform the
          actions on your behalf. If no role is specified, Systems Manager
          Automation uses your IAM permissions to run this runbook.
    mainSteps:
      - name: getLatestWindowsAmi
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ssm
          Api: GetParameter
          Name: >-
            /aws/service/ami-windows-latest/Windows_Server-2016-English-Full-Base
        outputs:
          - Name: amiId
            Selector: $.Parameter.Value
            Type: String
        nextStep: createSSMInstanceRole
      - name: createSSMInstanceRole
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: iam
          Api: CreateRole
          AssumeRolePolicyDocument: >-
            {"Version": "2012-10-17",		 	 	 "Statement":[{"Effect":"Allow","Principal":{"Service":["ec2.amazonaws.com"]},"Action":["sts:AssumeRole"]}]}
          RoleName: sampleSSMInstanceRole
        nextStep: attachManagedSSMPolicy
      - name: attachManagedSSMPolicy
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: iam
          Api: AttachRolePolicy
          PolicyArn: 'arn:aws:iam::aws:policy/service-role/AmazonSSMManagedInstanceCore'
          RoleName: sampleSSMInstanceRole
        nextStep: createSSMInstanceProfile
      - name: createSSMInstanceProfile
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: iam
          Api: CreateInstanceProfile
          InstanceProfileName: sampleSSMInstanceRole
        outputs:
          - Name: instanceProfileArn
            Selector: $.InstanceProfile.Arn
            Type: String
        nextStep: addSSMInstanceRoleToProfile
      - name: addSSMInstanceRoleToProfile
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: iam
          Api: AddRoleToInstanceProfile
          InstanceProfileName: sampleSSMInstanceRole
          RoleName: sampleSSMInstanceRole
        nextStep: createVpc
      - name: createVpc
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: CreateVpc
          CidrBlock: 10.0.100.0/22
        outputs:
          - Name: vpcId
            Selector: $.Vpc.VpcId
            Type: String
        nextStep: getMainRtb
      - name: getMainRtb
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: DescribeRouteTables
          Filters:
            - Name: vpc-id
              Values:
                - '{{ createVpc.vpcId }}'
        outputs:
          - Name: mainRtbId
            Selector: '$.RouteTables[0].RouteTableId'
            Type: String
        nextStep: verifyMainRtb
      - name: verifyMainRtb
        action: aws:assertAwsResourceProperty
        onFailure: Abort
        inputs:
          Service: ec2
          Api: DescribeRouteTables
          RouteTableIds:
            - '{{ getMainRtb.mainRtbId }}'
          PropertySelector: '$.RouteTables[0].Associations[0].Main'
          DesiredValues:
            - 'True'
        nextStep: createPubSubnet
      - name: createPubSubnet
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: CreateSubnet
          CidrBlock: 10.0.103.0/24
          AvailabilityZone: us-west-2c
          VpcId: '{{ createVpc.vpcId }}'
        outputs:
          - Name: pubSubnetId
            Selector: $.Subnet.SubnetId
            Type: String
        nextStep: createPubRtb
      - name: createPubRtb
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: CreateRouteTable
          VpcId: '{{ createVpc.vpcId }}'
        outputs:
          - Name: pubRtbId
            Selector: $.RouteTable.RouteTableId
            Type: String
        nextStep: createIgw
      - name: createIgw
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: CreateInternetGateway
        outputs:
          - Name: igwId
            Selector: $.InternetGateway.InternetGatewayId
            Type: String
        nextStep: attachIgw
      - name: attachIgw
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: AttachInternetGateway
          InternetGatewayId: '{{ createIgw.igwId }}'
          VpcId: '{{ createVpc.vpcId }}'
        nextStep: allocateEip
      - name: allocateEip
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: AllocateAddress
          Domain: vpc
        outputs:
          - Name: eipAllocationId
            Selector: $.AllocationId
            Type: String
        nextStep: createNatGw
      - name: createNatGw
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: CreateNatGateway
          AllocationId: '{{ allocateEip.eipAllocationId }}'
          SubnetId: '{{ createPubSubnet.pubSubnetId }}'
        outputs:
          - Name: natGwId
            Selector: $.NatGateway.NatGatewayId
            Type: String
        nextStep: verifyNatGwAvailable
      - name: verifyNatGwAvailable
        action: aws:waitForAwsResourceProperty
        timeoutSeconds: 150
        inputs:
          Service: ec2
          Api: DescribeNatGateways
          NatGatewayIds:
            - '{{ createNatGw.natGwId }}'
          PropertySelector: '$.NatGateways[0].State'
          DesiredValues:
            - available
        nextStep: createNatRoute
      - name: createNatRoute
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: CreateRoute
          DestinationCidrBlock: 0.0.0.0/0
          NatGatewayId: '{{ createNatGw.natGwId }}'
          RouteTableId: '{{ getMainRtb.mainRtbId }}'
        nextStep: createPubRoute
      - name: createPubRoute
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: CreateRoute
          DestinationCidrBlock: 0.0.0.0/0
          GatewayId: '{{ createIgw.igwId }}'
          RouteTableId: '{{ createPubRtb.pubRtbId }}'
        nextStep: setPubSubAssoc
      - name: setPubSubAssoc
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: AssociateRouteTable
          RouteTableId: '{{ createPubRtb.pubRtbId }}'
          SubnetId: '{{ createPubSubnet.pubSubnetId }}'
      - name: createDhcpOptions
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: CreateDhcpOptions
          DhcpConfigurations:
            - Key: domain-name-servers
              Values:
                - '10.0.100.50,10.0.101.50'
            - Key: domain-name
              Values:
                - sample.com
        outputs:
          - Name: dhcpOptionsId
            Selector: $.DhcpOptions.DhcpOptionsId
            Type: String
        nextStep: createDCSubnet1
      - name: createDCSubnet1
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: CreateSubnet
          CidrBlock: 10.0.100.0/24
          AvailabilityZone: us-west-2a
          VpcId: '{{ createVpc.vpcId }}'
        outputs:
          - Name: firstSubnetId
            Selector: $.Subnet.SubnetId
            Type: String
        nextStep: createDCSubnet2
      - name: createDCSubnet2
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: CreateSubnet
          CidrBlock: 10.0.101.0/24
          AvailabilityZone: us-west-2b
          VpcId: '{{ createVpc.vpcId }}'
        outputs:
          - Name: secondSubnetId
            Selector: $.Subnet.SubnetId
            Type: String
        nextStep: createDCSecGroup
      - name: createDCSecGroup
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: CreateSecurityGroup
          GroupName: SampleDCSecGroup
          Description: Security Group for Sample Domain Controllers
          VpcId: '{{ createVpc.vpcId }}'
        outputs:
          - Name: dcSecGroupId
            Selector: $.GroupId
            Type: String
        nextStep: authIngressDCTraffic
      - name: authIngressDCTraffic
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: AuthorizeSecurityGroupIngress
          GroupId: '{{ createDCSecGroup.dcSecGroupId }}'
          IpPermissions:
            - FromPort: -1
              IpProtocol: '-1'
              IpRanges:
                - CidrIp: 0.0.0.0/0
                  Description: Allow all traffic between Domain Controllers
        nextStep: verifyInstanceProfile
      - name: verifyInstanceProfile
        action: aws:waitForAwsResourceProperty
        maxAttempts: 5
        onFailure: Abort
        inputs:
          Service: iam
          Api: ListInstanceProfilesForRole
          RoleName: sampleSSMInstanceRole
          PropertySelector: '$.InstanceProfiles[0].Arn'
          DesiredValues:
            - '{{ createSSMInstanceProfile.instanceProfileArn }}'
        nextStep: iamEventualConsistency
      - name: iamEventualConsistency
        action: aws:sleep
        inputs:
          Duration: PT2M
        nextStep: launchDC1
      - name: launchDC1
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: RunInstances
          BlockDeviceMappings:
            - DeviceName: /dev/sda1
              Ebs:
                DeleteOnTermination: true
                VolumeSize: 50
                VolumeType: gp2
            - DeviceName: xvdf
              Ebs:
                DeleteOnTermination: true
                VolumeSize: 100
                VolumeType: gp2
          IamInstanceProfile:
            Arn: '{{ createSSMInstanceProfile.instanceProfileArn }}'
          ImageId: '{{ getLatestWindowsAmi.amiId }}'
          InstanceType: t2.micro
          MaxCount: 1
          MinCount: 1
          PrivateIpAddress: 10.0.100.50
          SecurityGroupIds:
            - '{{ createDCSecGroup.dcSecGroupId }}'
          SubnetId: '{{ createDCSubnet1.firstSubnetId }}'
          TagSpecifications:
            - ResourceType: instance
              Tags:
                - Key: Name
                  Value: SampleDC1
        outputs:
          - Name: pdcInstanceId
            Selector: '$.Instances[0].InstanceId'
            Type: String
        nextStep: launchDC2
      - name: launchDC2
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: RunInstances
          BlockDeviceMappings:
            - DeviceName: /dev/sda1
              Ebs:
                DeleteOnTermination: true
                VolumeSize: 50
                VolumeType: gp2
            - DeviceName: xvdf
              Ebs:
                DeleteOnTermination: true
                VolumeSize: 100
                VolumeType: gp2
          IamInstanceProfile:
            Arn: '{{ createSSMInstanceProfile.instanceProfileArn }}'
          ImageId: '{{ getLatestWindowsAmi.amiId }}'
          InstanceType: t2.micro
          MaxCount: 1
          MinCount: 1
          PrivateIpAddress: 10.0.101.50
          SecurityGroupIds:
            - '{{ createDCSecGroup.dcSecGroupId }}'
          SubnetId: '{{ createDCSubnet2.secondSubnetId }}'
          TagSpecifications:
            - ResourceType: instance
              Tags:
                - Key: Name
                  Value: SampleDC2
        outputs:
          - Name: adcInstanceId
            Selector: '$.Instances[0].InstanceId'
            Type: String
        nextStep: verifyDCInstanceState
      - name: verifyDCInstanceState
        action: aws:waitForAwsResourceProperty
        inputs:
          Service: ec2
          Api: DescribeInstanceStatus
          IncludeAllInstances: true
          InstanceIds:
            - '{{ launchDC1.pdcInstanceId }}'
            - '{{ launchDC2.adcInstanceId }}'
          PropertySelector: '$.InstanceStatuses..InstanceState.Name'
          DesiredValues:
            - running
        nextStep: verifyInstancesOnlineSSM
      - name: verifyInstancesOnlineSSM
        action: aws:waitForAwsResourceProperty
        timeoutSeconds: 600
        inputs:
          Service: ssm
          Api: DescribeInstanceInformation
          InstanceInformationFilterList:
            - key: InstanceIds
              valueSet:
                - '{{ launchDC1.pdcInstanceId }}'
                - '{{ launchDC2.adcInstanceId }}'
          PropertySelector: '$.InstanceInformationList..PingStatus'
          DesiredValues:
            - Online
        nextStep: installADRoles
      - name: installADRoles
        action: aws:runCommand
        inputs:
          DocumentName: AWS-RunPowerShellScript
          InstanceIds:
            - '{{ launchDC1.pdcInstanceId }}'
            - '{{ launchDC2.adcInstanceId }}'
          Parameters:
            commands: |-
              try {
                  Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
              }
              catch {
                  Write-Error "Failed to install ADDS Role."
              }
        nextStep: setAdminPassword
      - name: setAdminPassword
        action: aws:runCommand
        inputs:
          DocumentName: AWS-RunPowerShellScript
          InstanceIds:
            - '{{ launchDC1.pdcInstanceId }}'
          Parameters:
            commands:
              - net user Administrator "sampleAdminPass123!"
        nextStep: createForest
      - name: createForest
        action: aws:runCommand
        inputs:
          DocumentName: AWS-RunPowerShellScript
          InstanceIds:
            - '{{ launchDC1.pdcInstanceId }}'
          Parameters:
            commands: |-
              $dsrmPass = 'sample123!' | ConvertTo-SecureString -asPlainText -Force
              try {
                  Install-ADDSForest -DomainName "sample.com" -DomainMode 6 -ForestMode 6 -InstallDNS -DatabasePath "D:\NTDS" -SysvolPath "D:\SYSVOL" -SafeModeAdministratorPassword $dsrmPass -Force
              }
              catch {
                  Write-Error $_
              }
              try {
                  Add-DnsServerForwarder -IPAddress "10.0.100.2"
              }
              catch {
                  Write-Error $_
              }
        nextStep: associateDhcpOptions
      - name: associateDhcpOptions
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: AssociateDhcpOptions
          DhcpOptionsId: '{{ createDhcpOptions.dhcpOptionsId }}'
          VpcId: '{{ createVpc.vpcId }}'
        nextStep: waitForADServices
      - name: waitForADServices
        action: aws:sleep
        inputs:
          Duration: PT1M
        nextStep: promoteADC
      - name: promoteADC
        action: aws:runCommand
        inputs:
          DocumentName: AWS-RunPowerShellScript
          InstanceIds:
            - '{{ launchDC2.adcInstanceId }}'
          Parameters:
            commands: |-
              ipconfig /renew
              $dsrmPass = 'sample123!' | ConvertTo-SecureString -asPlainText -Force
              $domAdminUser = "sample\Administrator"
              $domAdminPass = "sampleAdminPass123!" | ConvertTo-SecureString -asPlainText -Force
              $domAdminCred = New-Object System.Management.Automation.PSCredential($domAdminUser,$domAdminPass)
    
              try {
                  Install-ADDSDomainController -DomainName "sample.com" -InstallDNS -DatabasePath "D:\NTDS" -SysvolPath "D:\SYSVOL" -SafeModeAdministratorPassword $dsrmPass -Credential $domAdminCred -Force
              }
              catch {
                  Write-Error $_
              }
```

------
#### [ JSON ]

```
{
      "description": "Custom Automation Deployment Example",
      "schemaVersion": "0.3",
      "assumeRole": "{{ AutomationAssumeRole }}",
      "parameters": {
        "AutomationAssumeRole": {
          "type": "String",
          "description": "(Optional) The ARN of the role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to run this runbook.",
          "default": ""
        }
      },
      "mainSteps": [
        {
          "name": "getLatestWindowsAmi",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ssm",
            "Api": "GetParameter",
            "Name": "/aws/service/ami-windows-latest/Windows_Server-2016-English-Full-Base"
          },
          "outputs": [
            {
              "Name": "amiId",
              "Selector": "$.Parameter.Value",
              "Type": "String"
            }
          ],
          "nextStep": "createSSMInstanceRole"
        },
        {
          "name": "createSSMInstanceRole",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "iam",
            "Api": "CreateRole",
            "AssumeRolePolicyDocument": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"ec2.amazonaws.com\"]},\"Action\":[\"sts:AssumeRole\"]}]}",
            "RoleName": "sampleSSMInstanceRole"
          },
          "nextStep": "attachManagedSSMPolicy"
        },
        {
          "name": "attachManagedSSMPolicy",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "iam",
            "Api": "AttachRolePolicy",
            "PolicyArn": "arn:aws:iam::aws:policy/service-role/AmazonSSMManagedInstanceCore",
            "RoleName": "sampleSSMInstanceRole"
          },
          "nextStep": "createSSMInstanceProfile"
        },
        {
          "name": "createSSMInstanceProfile",
          "action":"aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "iam",
            "Api": "CreateInstanceProfile",
            "InstanceProfileName": "sampleSSMInstanceRole"
          },
          "outputs": [
            {
              "Name": "instanceProfileArn",
              "Selector": "$.InstanceProfile.Arn",
              "Type": "String"
            }
          ],
          "nextStep": "addSSMInstanceRoleToProfile"
        },
        {
          "name": "addSSMInstanceRoleToProfile",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "iam",
            "Api": "AddRoleToInstanceProfile",
            "InstanceProfileName": "sampleSSMInstanceRole",
            "RoleName": "sampleSSMInstanceRole"
          },
          "nextStep": "createVpc"
        },
        {
          "name": "createVpc",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "CreateVpc",
            "CidrBlock": "10.0.100.0/22"
          },
          "outputs": [
            {
              "Name": "vpcId",
              "Selector": "$.Vpc.VpcId",
              "Type": "String"
            }
          ],
          "nextStep": "getMainRtb"
        },
        {
          "name": "getMainRtb",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "DescribeRouteTables",
            "Filters": [
              {
                "Name": "vpc-id",
                "Values": ["{{ createVpc.vpcId }}"]
              }
            ]
          },
          "outputs": [
            {
              "Name": "mainRtbId",
              "Selector": "$.RouteTables[0].RouteTableId",
              "Type": "String"
            }
          ],
          "nextStep": "verifyMainRtb"
        },
        {
          "name": "verifyMainRtb",
          "action": "aws:assertAwsResourceProperty",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "DescribeRouteTables",
            "RouteTableIds": ["{{ getMainRtb.mainRtbId }}"],
            "PropertySelector": "$.RouteTables[0].Associations[0].Main",
            "DesiredValues": ["True"]
          },
          "nextStep": "createPubSubnet"
        },
        {
          "name": "createPubSubnet",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "CreateSubnet",
            "CidrBlock": "10.0.103.0/24",
            "AvailabilityZone": "us-west-2c",
            "VpcId": "{{ createVpc.vpcId }}"
          },
          "outputs":[
            {
              "Name": "pubSubnetId",
              "Selector": "$.Subnet.SubnetId",
              "Type": "String"
            }
          ],
          "nextStep": "createPubRtb"
        },
        {
          "name": "createPubRtb",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "CreateRouteTable",
            "VpcId": "{{ createVpc.vpcId }}"
          },
          "outputs": [
            {
              "Name": "pubRtbId",
              "Selector": "$.RouteTable.RouteTableId",
              "Type": "String"
            }
          ],
          "nextStep": "createIgw"
        },
        {
          "name": "createIgw",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "CreateInternetGateway"
          },
          "outputs": [
            {
              "Name": "igwId",
              "Selector": "$.InternetGateway.InternetGatewayId",
              "Type": "String"
            }
          ],
          "nextStep": "attachIgw"
        },
        {
          "name": "attachIgw",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "AttachInternetGateway",
            "InternetGatewayId": "{{ createIgw.igwId }}",
            "VpcId": "{{ createVpc.vpcId }}"
          },
          "nextStep": "allocateEip"
        },
        {
          "name": "allocateEip",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "AllocateAddress",
            "Domain": "vpc"
          },
          "outputs": [
            {
              "Name": "eipAllocationId",
              "Selector": "$.AllocationId",
              "Type": "String"
            }
          ],
          "nextStep": "createNatGw"
        },
        {
          "name": "createNatGw",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "CreateNatGateway",
            "AllocationId": "{{ allocateEip.eipAllocationId }}",
            "SubnetId": "{{ createPubSubnet.pubSubnetId }}"
          },
          "outputs":[
            {
              "Name": "natGwId",
              "Selector": "$.NatGateway.NatGatewayId",
              "Type": "String"
            }
          ],
          "nextStep": "verifyNatGwAvailable"
        },
        {
          "name": "verifyNatGwAvailable",
          "action": "aws:waitForAwsResourceProperty",
          "timeoutSeconds": 150,
          "inputs": {
            "Service": "ec2",
            "Api": "DescribeNatGateways",
            "NatGatewayIds": [
              "{{ createNatGw.natGwId }}"
            ],
            "PropertySelector": "$.NatGateways[0].State",
            "DesiredValues": [
              "available"
            ]
          },
          "nextStep": "createNatRoute"
        },
        {
          "name": "createNatRoute",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "CreateRoute",
            "DestinationCidrBlock": "0.0.0.0/0",
            "NatGatewayId": "{{ createNatGw.natGwId }}",
            "RouteTableId": "{{ getMainRtb.mainRtbId }}"
          },
          "nextStep": "createPubRoute"
        },
        {
          "name": "createPubRoute",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "CreateRoute",
            "DestinationCidrBlock": "0.0.0.0/0",
            "GatewayId": "{{ createIgw.igwId }}",
            "RouteTableId": "{{ createPubRtb.pubRtbId }}"
          },
          "nextStep": "setPubSubAssoc"
        },
        {
          "name": "setPubSubAssoc",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "AssociateRouteTable",
            "RouteTableId": "{{ createPubRtb.pubRtbId }}",
            "SubnetId": "{{ createPubSubnet.pubSubnetId }}"
          }
        },
        {
          "name": "createDhcpOptions",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "CreateDhcpOptions",
            "DhcpConfigurations": [
              {
                "Key": "domain-name-servers",
                "Values": ["10.0.100.50,10.0.101.50"]
              },
              {
                "Key": "domain-name",
                "Values": ["sample.com"]
              }
            ]
          },
          "outputs": [
            {
              "Name": "dhcpOptionsId",
              "Selector": "$.DhcpOptions.DhcpOptionsId",
              "Type": "String"
            }
          ],
          "nextStep": "createDCSubnet1"
        },
        {
          "name": "createDCSubnet1",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "CreateSubnet",
            "CidrBlock": "10.0.100.0/24",
            "AvailabilityZone": "us-west-2a",
            "VpcId": "{{ createVpc.vpcId }}"
          },
          "outputs": [
            {
              "Name": "firstSubnetId",
              "Selector": "$.Subnet.SubnetId",
              "Type": "String"
            }
          ],
          "nextStep": "createDCSubnet2"
        },
        {
          "name": "createDCSubnet2",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "CreateSubnet",
            "CidrBlock": "10.0.101.0/24",
            "AvailabilityZone": "us-west-2b",
            "VpcId": "{{ createVpc.vpcId }}"
          },
          "outputs": [
            {
              "Name": "secondSubnetId",
              "Selector": "$.Subnet.SubnetId",
              "Type": "String"
            }
          ],
          "nextStep": "createDCSecGroup"
        },
        {
          "name": "createDCSecGroup",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "CreateSecurityGroup",
            "GroupName": "SampleDCSecGroup",
            "Description": "Security Group for Example Domain Controllers",
            "VpcId": "{{ createVpc.vpcId }}"
          },
          "outputs": [
            {
              "Name": "dcSecGroupId",
              "Selector": "$.GroupId",
              "Type": "String"
            }
          ],
          "nextStep": "authIngressDCTraffic"
        },
        {
          "name": "authIngressDCTraffic",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "AuthorizeSecurityGroupIngress",
            "GroupId": "{{ createDCSecGroup.dcSecGroupId }}",
            "IpPermissions": [
              {
                "FromPort": -1,
                "IpProtocol": "-1",
                "IpRanges": [
                  {
                    "CidrIp": "0.0.0.0/0",
                    "Description": "Allow all traffic between Domain Controllers"
                  }
                ]
              }
            ]
          },
          "nextStep": "verifyInstanceProfile"
        },
        {
          "name": "verifyInstanceProfile",
          "action": "aws:waitForAwsResourceProperty",
          "maxAttempts": 5,
          "onFailure": "Abort",
          "inputs": {
            "Service": "iam",
            "Api": "ListInstanceProfilesForRole",
            "RoleName": "sampleSSMInstanceRole",
            "PropertySelector": "$.InstanceProfiles[0].Arn",
            "DesiredValues": [
              "{{ createSSMInstanceProfile.instanceProfileArn }}"
            ]
          },
          "nextStep": "iamEventualConsistency"
        },
        {
          "name": "iamEventualConsistency",
          "action": "aws:sleep",
          "inputs": {
            "Duration": "PT2M"
          },
          "nextStep": "launchDC1"
        },
        {
          "name": "launchDC1",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "RunInstances",
            "BlockDeviceMappings": [
              {
                "DeviceName": "/dev/sda1",
                "Ebs": {
                  "DeleteOnTermination": true,
                  "VolumeSize": 50,
                  "VolumeType": "gp2"
                }
              },
              {
                "DeviceName": "xvdf",
                "Ebs": {
                  "DeleteOnTermination": true,
                  "VolumeSize": 100,
                  "VolumeType": "gp2"
                }
              }
            ],
            "IamInstanceProfile": {
              "Arn": "{{ createSSMInstanceProfile.instanceProfileArn }}"
            },
            "ImageId": "{{ getLatestWindowsAmi.amiId }}",
            "InstanceType": "t2.micro",
            "MaxCount": 1,
            "MinCount": 1,
            "PrivateIpAddress": "10.0.100.50",
            "SecurityGroupIds": [
              "{{ createDCSecGroup.dcSecGroupId }}"
            ],
            "SubnetId": "{{ createDCSubnet1.firstSubnetId }}",
            "TagSpecifications": [
              {
                "ResourceType": "instance",
                "Tags": [
                  {
                    "Key": "Name",
                    "Value": "SampleDC1"
                  }
                ]
              }
            ]
          },
          "outputs": [
            {
              "Name": "pdcInstanceId",
              "Selector": "$.Instances[0].InstanceId",
              "Type": "String"
            }
          ],
          "nextStep": "launchDC2"
        },
        {
          "name": "launchDC2",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "RunInstances",
            "BlockDeviceMappings": [
              {
                "DeviceName": "/dev/sda1",
                "Ebs": {
                  "DeleteOnTermination": true,
                  "VolumeSize": 50,
                  "VolumeType": "gp2"
                }
              },
              {
                "DeviceName": "xvdf",
                "Ebs": {
                  "DeleteOnTermination": true,
                  "VolumeSize": 100,
                  "VolumeType": "gp2"
                }
              }
            ],
            "IamInstanceProfile": {
              "Arn": "{{ createSSMInstanceProfile.instanceProfileArn }}"
            },
            "ImageId": "{{ getLatestWindowsAmi.amiId }}",
            "InstanceType": "t2.micro",
            "MaxCount": 1,
            "MinCount": 1,
            "PrivateIpAddress": "10.0.101.50",
            "SecurityGroupIds": [
              "{{ createDCSecGroup.dcSecGroupId }}"
            ],
            "SubnetId": "{{ createDCSubnet2.secondSubnetId }}",
            "TagSpecifications": [
              {
                "ResourceType": "instance",
                "Tags": [
                  {
                    "Key": "Name",
                    "Value": "SampleDC2"
                  }
                ]
              }
            ]
          },
          "outputs": [
            {
              "Name": "adcInstanceId",
              "Selector": "$.Instances[0].InstanceId",
              "Type": "String"
            }
          ],
          "nextStep": "verifyDCInstanceState"
        },
        {
          "name": "verifyDCInstanceState",
          "action": "aws:waitForAwsResourceProperty",
          "inputs": {
            "Service": "ec2",
            "Api": "DescribeInstanceStatus",
            "IncludeAllInstances": true,
            "InstanceIds": [
              "{{ launchDC1.pdcInstanceId }}",
              "{{ launchDC2.adcInstanceId }}"
            ],
            "PropertySelector": "$.InstanceStatuses[0].InstanceState.Name",
            "DesiredValues": [
              "running"
            ]
          },
          "nextStep": "verifyInstancesOnlineSSM"
        },
        {
          "name": "verifyInstancesOnlineSSM",
          "action": "aws:waitForAwsResourceProperty",
          "timeoutSeconds": 600,
          "inputs": {
            "Service": "ssm",
            "Api": "DescribeInstanceInformation",
            "InstanceInformationFilterList": [
              {
                "key": "InstanceIds",
                "valueSet": [
                  "{{ launchDC1.pdcInstanceId }}",
                  "{{ launchDC2.adcInstanceId }}"
                ]
              }
            ],
            "PropertySelector": "$.InstanceInformationList[0].PingStatus",
            "DesiredValues": [
              "Online"
            ]
          },
          "nextStep": "installADRoles"
        },
        {
          "name": "installADRoles",
          "action": "aws:runCommand",
          "inputs": {
            "DocumentName": "AWS-RunPowerShellScript",
            "InstanceIds": [
              "{{ launchDC1.pdcInstanceId }}",
              "{{ launchDC2.adcInstanceId }}"
            ],
            "Parameters": {
              "commands": [
                "try {",
                "  Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools",
                "}",
                "catch {",
                "  Write-Error \"Failed to install ADDS Role.\"",
                "}"
              ]
            }
          },
          "nextStep": "setAdminPassword"
        },
        {
          "name": "setAdminPassword",
          "action": "aws:runCommand",
          "inputs": {
            "DocumentName": "AWS-RunPowerShellScript",
            "InstanceIds": [
              "{{ launchDC1.pdcInstanceId }}"
            ],
            "Parameters": {
              "commands": [
                "net user Administrator \"sampleAdminPass123!\""
              ]
            }
          },
          "nextStep": "createForest"
        },
        {
          "name": "createForest",
          "action": "aws:runCommand",
          "inputs": {
            "DocumentName": "AWS-RunPowerShellScript",
            "InstanceIds": [
              "{{ launchDC1.pdcInstanceId }}"
            ],
            "Parameters": {
              "commands": [
                "$dsrmPass = 'sample123!' | ConvertTo-SecureString -asPlainText -Force",
                "try {",
                "   Install-ADDSForest -DomainName \"sample.com\" -DomainMode 6 -ForestMode 6 -InstallDNS -DatabasePath \"D:\\NTDS\" -SysvolPath \"D:\\SYSVOL\" -SafeModeAdministratorPassword $dsrmPass -Force",
                "}",
                "catch {",
                "   Write-Error $_",
                "}",
                "try {",
                "   Add-DnsServerForwarder -IPAddress \"10.0.100.2\"",
                "}",
                "catch {",
                "   Write-Error $_",
                "}"
              ]
            }
          },
          "nextStep": "associateDhcpOptions"
        },
        {
          "name": "associateDhcpOptions",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "AssociateDhcpOptions",
            "DhcpOptionsId": "{{ createDhcpOptions.dhcpOptionsId }}",
            "VpcId": "{{ createVpc.vpcId }}"
          },
          "nextStep": "waitForADServices"
        },
        {
          "name": "waitForADServices",
          "action": "aws:sleep",
          "inputs": {
            "Duration": "PT1M"
          },
          "nextStep": "promoteADC"
        },
        {
          "name": "promoteADC",
          "action": "aws:runCommand",
          "inputs": {
            "DocumentName": "AWS-RunPowerShellScript",
            "InstanceIds": [
              "{{ launchDC2.adcInstanceId }}"
            ],
            "Parameters": {
              "commands": [
                "ipconfig /renew",
                "$dsrmPass = 'sample123!' | ConvertTo-SecureString -asPlainText -Force",
                "$domAdminUser = \"sample\\Administrator\"",
                "$domAdminPass = \"sampleAdminPass123!\" | ConvertTo-SecureString -asPlainText -Force",
                "$domAdminCred = New-Object System.Management.Automation.PSCredential($domAdminUser,$domAdminPass)",
                "try {",
                "   Install-ADDSDomainController -DomainName \"sample.com\" -InstallDNS -DatabasePath \"D:\\NTDS\" -SysvolPath \"D:\\SYSVOL\" -SafeModeAdministratorPassword $dsrmPass -Credential $domAdminCred -Force",
                "}",
                "catch {",
                "   Write-Error $_",
                "}"
              ]
            }
          }
        }
      ]
    }
```

------

# Kembalikan volume root dari snapshot terbaru
<a name="automation-document-instance-recovery-example"></a>

Sistem operasi pada volume akar dapat rusak karena berbagai alasan. Misalnya, setelah operasi patching, instance mungkin gagal boot dengan sukses karena kernel atau registri rusak. Mengotomatiskan tugas pemecahan masalah umum, seperti memulihkan volume root dari snapshot terbaru yang diambil sebelum operasi penambalan, dapat mengurangi waktu henti dan mempercepat upaya pemecahan masalah Anda. AWS Systems Manager Tindakan otomatisasi dapat membantu Anda mencapai hal ini. Otomasi adalah alat dalam AWS Systems Manager.

Contoh AWS Systems Manager runbook berikut melakukan tindakan ini: 
+ Menggunakan `aws:executeAwsApi` tindakan otomatisasi untuk mengambil detail dari volume akar instans.
+ Menggunakan `aws:executeScript` tindakan otomatisasi untuk mengambil snapshot terbaru untuk volume akar.
+ Menggunakan `aws:branch` otomatisasi tindakan untuk melanjutkan otomatisasi jika snapshot ditemukan untuk volume akar.

------
#### [ YAML ]

```
    ---
    description: Custom Automation Troubleshooting Example
    schemaVersion: '0.3'
    assumeRole: "{{ AutomationAssumeRole }}"
    parameters:
      AutomationAssumeRole:
        type: String
        description: "(Required) The ARN of the role that allows Automation to perform
          the actions on your behalf. If no role is specified, Systems Manager Automation
          uses your IAM permissions to use this runbook."
        default: ''
      InstanceId:
          type: String
          description: "(Required) The Instance Id whose root EBS volume you want to restore the latest Snapshot."
          default: ''
    mainSteps:
    - name: getInstanceDetails
      action: aws:executeAwsApi
      onFailure: Abort
      inputs:
        Service: ec2
        Api: DescribeInstances
        InstanceIds:
        - "{{ InstanceId }}"
      outputs:
        - Name: availabilityZone
          Selector: "$.Reservations[0].Instances[0].Placement.AvailabilityZone"
          Type: String
        - Name: rootDeviceName
          Selector: "$.Reservations[0].Instances[0].RootDeviceName"
          Type: String
      nextStep: getRootVolumeId
    - name: getRootVolumeId
      action: aws:executeAwsApi
      onFailure: Abort
      inputs:
        Service: ec2
        Api: DescribeVolumes
        Filters:
        -  Name: attachment.device
           Values: ["{{ getInstanceDetails.rootDeviceName }}"]
        -  Name: attachment.instance-id
           Values: ["{{ InstanceId }}"]
      outputs:
        - Name: rootVolumeId
          Selector: "$.Volumes[0].VolumeId"
          Type: String
      nextStep: getSnapshotsByStartTime
    - name: getSnapshotsByStartTime
      action: aws:executeScript
      timeoutSeconds: 45
      onFailure: Abort
      inputs:
        Runtime: python3.11
        Handler: getSnapshotsByStartTime
        InputPayload:
          rootVolumeId : "{{ getRootVolumeId.rootVolumeId }}"
        Script: |-
          def getSnapshotsByStartTime(events,context):
            import boto3
    
            #Initialize client
            ec2 = boto3.client('ec2')
            rootVolumeId = events['rootVolumeId']
            snapshotsQuery = ec2.describe_snapshots(
              Filters=[
                {
                  "Name": "volume-id",
                  "Values": [rootVolumeId]
                }
              ]
            )
            if not snapshotsQuery['Snapshots']:
              noSnapshotFoundString = "NoSnapshotFound"
              return { 'noSnapshotFound' : noSnapshotFoundString }
            else:
              jsonSnapshots = snapshotsQuery['Snapshots']
              sortedSnapshots = sorted(jsonSnapshots, key=lambda k: k['StartTime'], reverse=True)
              latestSortedSnapshotId = sortedSnapshots[0]['SnapshotId']
              return { 'latestSnapshotId' : latestSortedSnapshotId }
      outputs:
      - Name: Payload
        Selector: $.Payload
        Type: StringMap
      - Name: latestSnapshotId
        Selector: $.Payload.latestSnapshotId
        Type: String
      - Name: noSnapshotFound
        Selector: $.Payload.noSnapshotFound
        Type: String 
      nextStep: branchFromResults
    - name: branchFromResults
      action: aws:branch
      onFailure: Abort
      inputs:
        Choices:
        - NextStep: createNewRootVolumeFromSnapshot
          Not:
            Variable: "{{ getSnapshotsByStartTime.noSnapshotFound }}"
            StringEquals: "NoSnapshotFound"
      isEnd: true
    - name: createNewRootVolumeFromSnapshot
      action: aws:executeAwsApi
      onFailure: Abort
      inputs:
        Service: ec2
        Api: CreateVolume
        AvailabilityZone: "{{ getInstanceDetails.availabilityZone }}"
        SnapshotId: "{{ getSnapshotsByStartTime.latestSnapshotId }}"
      outputs:
        - Name: newRootVolumeId
          Selector: "$.VolumeId"
          Type: String
      nextStep: stopInstance
    - name: stopInstance
      action: aws:executeAwsApi
      onFailure: Abort
      inputs:
        Service: ec2
        Api: StopInstances
        InstanceIds:
        - "{{ InstanceId }}"
      nextStep: verifyVolumeAvailability
    - name: verifyVolumeAvailability
      action: aws:waitForAwsResourceProperty
      timeoutSeconds: 120
      inputs:
        Service: ec2
        Api: DescribeVolumes
        VolumeIds:
        - "{{ createNewRootVolumeFromSnapshot.newRootVolumeId }}"
        PropertySelector: "$.Volumes[0].State"
        DesiredValues:
        - "available"
      nextStep: verifyInstanceStopped
    - name: verifyInstanceStopped
      action: aws:waitForAwsResourceProperty
      timeoutSeconds: 120
      inputs:
        Service: ec2
        Api: DescribeInstances
        InstanceIds:
        - "{{ InstanceId }}"
        PropertySelector: "$.Reservations[0].Instances[0].State.Name"
        DesiredValues:
        - "stopped"
      nextStep: detachRootVolume
    - name: detachRootVolume
      action: aws:executeAwsApi
      onFailure: Abort
      inputs:
        Service: ec2
        Api: DetachVolume
        VolumeId: "{{ getRootVolumeId.rootVolumeId }}"
      nextStep: verifyRootVolumeDetached
    - name: verifyRootVolumeDetached
      action: aws:waitForAwsResourceProperty
      timeoutSeconds: 30
      inputs:
        Service: ec2
        Api: DescribeVolumes
        VolumeIds:
        - "{{ getRootVolumeId.rootVolumeId }}"
        PropertySelector: "$.Volumes[0].State"
        DesiredValues:
        - "available"
      nextStep: attachNewRootVolume
    - name: attachNewRootVolume
      action: aws:executeAwsApi
      onFailure: Abort
      inputs:
        Service: ec2
        Api: AttachVolume
        Device: "{{ getInstanceDetails.rootDeviceName }}"
        InstanceId: "{{ InstanceId }}"
        VolumeId: "{{ createNewRootVolumeFromSnapshot.newRootVolumeId }}"
      nextStep: verifyNewRootVolumeAttached
    - name: verifyNewRootVolumeAttached
      action: aws:waitForAwsResourceProperty
      timeoutSeconds: 30
      inputs:
        Service: ec2
        Api: DescribeVolumes
        VolumeIds:
        - "{{ createNewRootVolumeFromSnapshot.newRootVolumeId }}"
        PropertySelector: "$.Volumes[0].Attachments[0].State"
        DesiredValues:
        - "attached"
      nextStep: startInstance
    - name: startInstance
      action: aws:executeAwsApi
      onFailure: Abort
      inputs:
        Service: ec2
        Api: StartInstances
        InstanceIds:
        - "{{ InstanceId }}"
```

------
#### [ JSON ]

```
    {
       "description": "Custom Automation Troubleshooting Example",
       "schemaVersion": "0.3",
       "assumeRole": "{{ AutomationAssumeRole }}",
       "parameters": {
          "AutomationAssumeRole": {
             "type": "String",
             "description": "(Required) The ARN of the role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to run this runbook.",
             "default": ""
          },
          "InstanceId": {
             "type": "String",
             "description": "(Required) The Instance Id whose root EBS volume you want to restore the latest Snapshot.",
             "default": ""
          }
       },
       "mainSteps": [
          {
             "name": "getInstanceDetails",
             "action": "aws:executeAwsApi",
             "onFailure": "Abort",
             "inputs": {
                "Service": "ec2",
                "Api": "DescribeInstances",
                "InstanceIds": [
                   "{{ InstanceId }}"
                ]
             },
             "outputs": [
                {
                   "Name": "availabilityZone",
                   "Selector": "$.Reservations[0].Instances[0].Placement.AvailabilityZone",
                   "Type": "String"
                },
                {
                   "Name": "rootDeviceName",
                   "Selector": "$.Reservations[0].Instances[0].RootDeviceName",
                   "Type": "String"
                }
             ],
             "nextStep": "getRootVolumeId"
          },
          {
             "name": "getRootVolumeId",
             "action": "aws:executeAwsApi",
             "onFailure": "Abort",
             "inputs": {
                "Service": "ec2",
                "Api": "DescribeVolumes",
                "Filters": [
                   {
                      "Name": "attachment.device",
                      "Values": [
                         "{{ getInstanceDetails.rootDeviceName }}"
                      ]
                   },
                   {
                      "Name": "attachment.instance-id",
                      "Values": [
                         "{{ InstanceId }}"
                      ]
                   }
                ]
             },
             "outputs": [
                {
                   "Name": "rootVolumeId",
                   "Selector": "$.Volumes[0].VolumeId",
                   "Type": "String"
                }
             ],
             "nextStep": "getSnapshotsByStartTime"
          },
          {
             "name": "getSnapshotsByStartTime",
             "action": "aws:executeScript",
             "timeoutSeconds": 45,
             "onFailure": "Continue",
             "inputs": {
                "Runtime": "python3.11",
                "Handler": "getSnapshotsByStartTime",
                "InputPayload": {
                   "rootVolumeId": "{{ getRootVolumeId.rootVolumeId }}"
                },
                "Attachment": "getSnapshotsByStartTime.py"
             },
             "outputs": [
                {
                   "Name": "Payload",
                   "Selector": "$.Payload",
                   "Type": "StringMap"
                },
                {
                   "Name": "latestSnapshotId",
                   "Selector": "$.Payload.latestSnapshotId",
                   "Type": "String"
                },
                {
                   "Name": "noSnapshotFound",
                   "Selector": "$.Payload.noSnapshotFound",
                   "Type": "String"
                }
             ],
             "nextStep": "branchFromResults"
          },
          {
             "name": "branchFromResults",
             "action": "aws:branch",
             "onFailure": "Abort",
             "inputs": {
                "Choices": [
                   {
                      "NextStep": "createNewRootVolumeFromSnapshot",
                      "Not": {
                         "Variable": "{{ getSnapshotsByStartTime.noSnapshotFound }}",
                         "StringEquals": "NoSnapshotFound"
                      }
                   }
                ]
             },
             "isEnd": true
          },
          {
             "name": "createNewRootVolumeFromSnapshot",
             "action": "aws:executeAwsApi",
             "onFailure": "Abort",
             "inputs": {
                "Service": "ec2",
                "Api": "CreateVolume",
                "AvailabilityZone": "{{ getInstanceDetails.availabilityZone }}",
                "SnapshotId": "{{ getSnapshotsByStartTime.latestSnapshotId }}"
             },
             "outputs": [
                {
                   "Name": "newRootVolumeId",
                   "Selector": "$.VolumeId",
                   "Type": "String"
                }
             ],
             "nextStep": "stopInstance"
          },
          {
             "name": "stopInstance",
             "action": "aws:executeAwsApi",
             "onFailure": "Abort",
             "inputs": {
                "Service": "ec2",
                "Api": "StopInstances",
                "InstanceIds": [
                   "{{ InstanceId }}"
                ]
             },
             "nextStep": "verifyVolumeAvailability"
          },
          {
             "name": "verifyVolumeAvailability",
             "action": "aws:waitForAwsResourceProperty",
             "timeoutSeconds": 120,
             "inputs": {
                "Service": "ec2",
                "Api": "DescribeVolumes",
                "VolumeIds": [
                   "{{ createNewRootVolumeFromSnapshot.newRootVolumeId }}"
                ],
                "PropertySelector": "$.Volumes[0].State",
                "DesiredValues": [
                   "available"
                ]
             },
             "nextStep": "verifyInstanceStopped"
          },
          {
             "name": "verifyInstanceStopped",
             "action": "aws:waitForAwsResourceProperty",
             "timeoutSeconds": 120,
             "inputs": {
                "Service": "ec2",
                "Api": "DescribeInstances",
                "InstanceIds": [
                   "{{ InstanceId }}"
                ],
                "PropertySelector": "$.Reservations[0].Instances[0].State.Name",
                "DesiredValues": [
                   "stopped"
                ]
             },
             "nextStep": "detachRootVolume"
          },
          {
             "name": "detachRootVolume",
             "action": "aws:executeAwsApi",
             "onFailure": "Abort",
             "inputs": {
                "Service": "ec2",
                "Api": "DetachVolume",
                "VolumeId": "{{ getRootVolumeId.rootVolumeId }}"
             },
             "nextStep": "verifyRootVolumeDetached"
          },
          {
             "name": "verifyRootVolumeDetached",
             "action": "aws:waitForAwsResourceProperty",
             "timeoutSeconds": 30,
             "inputs": {
                "Service": "ec2",
                "Api": "DescribeVolumes",
                "VolumeIds": [
                   "{{ getRootVolumeId.rootVolumeId }}"
                ],
                "PropertySelector": "$.Volumes[0].State",
                "DesiredValues": [
                   "available"
                ]
             },
             "nextStep": "attachNewRootVolume"
          },
          {
             "name": "attachNewRootVolume",
             "action": "aws:executeAwsApi",
             "onFailure": "Abort",
             "inputs": {
                "Service": "ec2",
                "Api": "AttachVolume",
                "Device": "{{ getInstanceDetails.rootDeviceName }}",
                "InstanceId": "{{ InstanceId }}",
                "VolumeId": "{{ createNewRootVolumeFromSnapshot.newRootVolumeId }}"
             },
             "nextStep": "verifyNewRootVolumeAttached"
          },
          {
             "name": "verifyNewRootVolumeAttached",
             "action": "aws:waitForAwsResourceProperty",
             "timeoutSeconds": 30,
             "inputs": {
                "Service": "ec2",
                "Api": "DescribeVolumes",
                "VolumeIds": [
                   "{{ createNewRootVolumeFromSnapshot.newRootVolumeId }}"
                ],
                "PropertySelector": "$.Volumes[0].Attachments[0].State",
                "DesiredValues": [
                   "attached"
                ]
             },
             "nextStep": "startInstance"
          },
          {
             "name": "startInstance",
             "action": "aws:executeAwsApi",
             "onFailure": "Abort",
             "inputs": {
                "Service": "ec2",
                "Api": "StartInstances",
                "InstanceIds": [
                   "{{ InstanceId }}"
                ]
             }
          }
       ],
       "files": {
            "getSnapshotsByStartTime.py": {
                "checksums": {
                    "sha256": "sampleETagValue"
                }
            }
        }
    }
```

------

# Buat AMI dan salinan lintas wilayah
<a name="automation-document-backup-maintenance-example"></a>

Membuat Amazon Machine Image (AMI) dari sebuah instans adalah proses umum yang digunakan dalam backup dan recovery. Anda juga dapat memilih untuk menyalin AMI ke yang lain Wilayah AWS sebagai bagian dari arsitektur pemulihan bencana. Mengotomatiskan tugas pemeliharaan umum dapat mengurangi waktu henti jika masalah memerlukan failover. AWS Systems Manager Tindakan otomatisasi dapat membantu Anda mencapai hal ini. Otomasi adalah alat dalam AWS Systems Manager.

Contoh AWS Systems Manager runbook berikut melakukan tindakan ini:
+ Menggunakan `aws:executeAwsApi` tindakan otomatisasi untuk membuat AMI.
+ Menggunakan `aws:waitForAwsResourceProperty` tindakan otomatisasi untuk mengonfirmasi ketersediaan AMI.
+ Menggunakan `aws:executeScript` tindakan otomatisasi untuk menyalin AMI ke wilayah tujuan.

------
#### [ YAML ]

```
    ---
    description: Custom Automation Backup and Recovery Example
    schemaVersion: '0.3'
    assumeRole: "{{ AutomationAssumeRole }}"
    parameters:
      AutomationAssumeRole:
        type: String
        description: "(Required) The ARN of the role that allows Automation to perform
          the actions on your behalf. If no role is specified, Systems Manager Automation
          uses your IAM permissions to use this runbook."
        default: ''
      InstanceId:
        type: String
        description: "(Required) The ID of the EC2 instance."
        default: ''
    mainSteps:
    - name: createImage
      action: aws:executeAwsApi
      onFailure: Abort
      inputs:
        Service: ec2
        Api: CreateImage
        InstanceId: "{{ InstanceId }}"
        Name: "Automation Image for {{ InstanceId }}"
        NoReboot: false
      outputs:
        - Name: newImageId
          Selector: "$.ImageId"
          Type: String
      nextStep: verifyImageAvailability
    - name: verifyImageAvailability
      action: aws:waitForAwsResourceProperty
      timeoutSeconds: 600
      inputs:
        Service: ec2
        Api: DescribeImages
        ImageIds:
        - "{{ createImage.newImageId }}"
        PropertySelector: "$.Images[0].State"
        DesiredValues:
        - available
      nextStep: copyImage
    - name: copyImage
      action: aws:executeScript
      timeoutSeconds: 45
      onFailure: Abort
      inputs:
        Runtime: python3.11
        Handler: crossRegionImageCopy
        InputPayload:
          newImageId : "{{ createImage.newImageId }}"
        Script: |-
          def crossRegionImageCopy(events,context):
            import boto3
    
            #Initialize client
            ec2 = boto3.client('ec2', region_name='us-east-1')
            newImageId = events['newImageId']
    
            ec2.copy_image(
              Name='DR Copy for ' + newImageId,
              SourceImageId=newImageId,
              SourceRegion='us-west-2'
            )
```

------
#### [ JSON ]

```
    {
       "description": "Custom Automation Backup and Recovery Example",
       "schemaVersion": "0.3",
       "assumeRole": "{{ AutomationAssumeRole }}",
       "parameters": {
          "AutomationAssumeRole": {
             "type": "String",
             "description": "(Required) The ARN of the role that allows Automation to perform\nthe actions on your behalf. If no role is specified, Systems Manager Automation\nuses your IAM permissions to run this runbook.",
             "default": ""
          },
          "InstanceId": {
             "type": "String",
             "description": "(Required) The ID of the EC2 instance.",
             "default": ""
          }
       },
       "mainSteps": [
          {
             "name": "createImage",
             "action": "aws:executeAwsApi",
             "onFailure": "Abort",
             "inputs": {
                "Service": "ec2",
                "Api": "CreateImage",
                "InstanceId": "{{ InstanceId }}",
                "Name": "Automation Image for {{ InstanceId }}",
                "NoReboot": false
             },
             "outputs": [
                {
                   "Name": "newImageId",
                   "Selector": "$.ImageId",
                   "Type": "String"
                }
             ],
             "nextStep": "verifyImageAvailability"
          },
          {
             "name": "verifyImageAvailability",
             "action": "aws:waitForAwsResourceProperty",
             "timeoutSeconds": 600,
             "inputs": {
                "Service": "ec2",
                "Api": "DescribeImages",
                "ImageIds": [
                   "{{ createImage.newImageId }}"
                ],
                "PropertySelector": "$.Images[0].State",
                "DesiredValues": [
                   "available"
                ]
             },
             "nextStep": "copyImage"
          },
          {
             "name": "copyImage",
             "action": "aws:executeScript",
             "timeoutSeconds": 45,
             "onFailure": "Abort",
             "inputs": {
                "Runtime": "python3.11",
                "Handler": "crossRegionImageCopy",
                "InputPayload": {
                   "newImageId": "{{ createImage.newImageId }}"
                },
                "Attachment": "crossRegionImageCopy.py"
             }
          }
       ],
       "files": {
            "crossRegionImageCopy.py": {
                "checksums": {
                    "sha256": "sampleETagValue"
                }
            }
        }
    }
```

------

# Membuat parameter input yang mengisi sumber daya AWS
<a name="populating-input-parameters"></a>

Automation, alat di Systems Manager, mengisi AWS sumber daya Konsol Manajemen AWS yang cocok dengan jenis sumber daya yang Anda tentukan untuk parameter input. Sumber daya dalam Anda Akun AWS yang cocok dengan jenis sumber daya ditampilkan dalam daftar dropdown untuk Anda pilih. Anda dapat menentukan jenis parameter input untuk instance Amazon Elastic Compute Cloud (Amazon EC2), bucket Amazon Simple Storage Service (Amazon S3), dan (IAM). AWS Identity and Access Management Definisi tipe yang didukung dan ekspresi reguler yang digunakan untuk menemukan sumber daya yang cocok adalah sebagai berikut:
+ `AWS::EC2::Instance::Id` - `^m?i-([a-z0-9]{8}|[a-z0-9]{17})$`
+ `List<AWS::EC2::Instance::Id>` - `^m?i-([a-z0-9]{8}|[a-z0-9]{17})$`
+ `AWS::S3::Bucket::Name` - `^[0-9a-z][a-z0-9\\-\\.]{3,63}$`
+ `List<AWS::S3::Bucket::Name>` - `^[0-9a-z][a-z0-9\\-\\.]{3,63}$`
+ `AWS::IAM::Role::Arn` - `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*$`
+ `List<AWS::IAM::Role::Arn>` - `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*$`

Berikut ini adalah contoh jenis parameter masukan yang didefinisikan dalam konten runbook.

------
#### [ YAML ]

```
description: Enables encryption on an Amazon S3 bucket
schemaVersion: '0.3'
assumeRole: '{{ AutomationAssumeRole }}'
parameters:
  BucketName:
    type: 'AWS::S3::Bucket::Name'
    description: (Required) The name of the Amazon S3 bucket you want to encrypt.
  SSEAlgorithm:
    type: String
    description: (Optional) The server-side encryption algorithm to use for the default encryption.
    default: AES256
  AutomationAssumeRole:
    type: 'AWS::IAM::Role::Arn'
    description: (Optional) The Amazon Resource Name (ARN) of the role that allows Automation to perform the actions on your behalf.
    default: ''
mainSteps:
  - name: enableBucketEncryption
    action: 'aws:executeAwsApi'
    inputs:
      Service: s3
      Api: PutBucketEncryption
      Bucket: '{{BucketName}}'
      ServerSideEncryptionConfiguration:
        Rules:
          - ApplyServerSideEncryptionByDefault:
              SSEAlgorithm: '{{SSEAlgorithm}}'
    isEnd: true
```

------
#### [ JSON ]

```
{
   "description": "Enables encryption on an Amazon S3 bucket",
   "schemaVersion": "0.3",
   "assumeRole": "{{ AutomationAssumeRole }}",
   "parameters": {
      "BucketName": {
         "type": "AWS::S3::Bucket::Name",
         "description": "(Required) The name of the Amazon S3 bucket you want to encrypt."
      },
      "SSEAlgorithm": {
         "type": "String",
         "description": "(Optional) The server-side encryption algorithm to use for the default encryption.",
         "default": "AES256"
      },
      "AutomationAssumeRole": {
         "type": "AWS::IAM::Role::Arn",
         "description": "(Optional) The Amazon Resource Name (ARN) of the role that allows Automation to perform the actions on your behalf.",
         "default": ""
      }
   },
   "mainSteps": [
      {
         "name": "enableBucketEncryption",
         "action": "aws:executeAwsApi",
         "inputs": {
            "Service": "s3",
            "Api": "PutBucketEncryption",
            "Bucket": "{{BucketName}}",
            "ServerSideEncryptionConfiguration": {
               "Rules": [
                  {
                     "ApplyServerSideEncryptionByDefault": {
                        "SSEAlgorithm": "{{SSEAlgorithm}}"
                     }
                  }
               ]
            }
         },
         "isEnd": true
      }
   ]
}
```

------

# Menggunakan Document Builder untuk membuat runbook
<a name="automation-document-builder"></a>

Jika runbook AWS Systems Manager publik tidak mendukung semua tindakan yang ingin Anda lakukan pada AWS sumber daya Anda, Anda dapat membuat runbook sendiri. Untuk membuat runbook kustom, Anda dapat membuat file format YAMAL atau JSON lokal secara manual dengan tindakan otomatisasi yang sesuai. Atau, Anda dapat menggunakan Document Builder di konsol Automation Systems Manager untuk membuat runbook kustom.

Menggunakan Document Builder, Anda dapat menambahkan tindakan otomatisasi ke runbook kustom Anda dan memberikan parameter yang diperlukan tanpa harus menggunakan sintaks JSON atau YAMAL. Setelah Anda menambahkan langkah-langkah dan membuat runbook, sistem mengubah tindakan yang telah ditambahkan ke dalam format YAML yang dapat digunakan Systems Manager untuk menjalankan otomatisasi.

Runbooks mendukung penggunaan penurunan harga, bahasa markup, yang memungkinkan Anda menambahkan deskripsi gaya wiki ke runbook dan langkah-langkah individual dalam runbook. Untuk informasi lebih lanjut tentang penggunaan penurunan harga, lihat [Menggunakan Markdown di AWS](https://docs.aws.amazon.com/general/latest/gr/aws-markdown.html).

## Buat runbook menggunakan Document Builder
<a name="create-runbook"></a>

**Sebelum Anda mulai**  
Kami menyarankan Anda membaca tentang berbagai tindakan yang dapat Anda gunakan dalam runbook. Untuk informasi selengkapnya, lihat [Referensi tindakan Otomatisasi Systems Manager](automation-actions.md).

**Untuk membuat runbook menggunakan Pembuat Dokumen**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Dokumen**.

1. Pilih **Buat otomatisasi**.

1. Untuk **Nama**, masukkan nama deskriptif untuk runbook.

1. Untuk **Deskripsi dokumen**, berikan deskripsi gaya penurunan harga untuk runbook. Anda dapat memberikan petunjuk untuk menggunakan runbook, langkah-langkah bernomor, atau jenis informasi lainnya untuk menggambarkan runbook. Lihat teks default untuk informasi tentang memformat konten Anda.
**Tip**  
Alihkan antara **Sembunyikan pratinjau** dan **Tampilkan pratinjau** untuk melihat seperti apa konten deskripsi Anda yang Anda tulis.

1. (Opsional) Untuk **Peran asumsi**, masukkan nama atau ARN peran layanan untuk melakukan tindakan atas nama Anda. Jika Anda tidak menentukan peran, Otomatisasi menggunakan izin akses pengguna yang menjalankan otomatisasi.
**penting**  
Untuk runbook yang tidak dimiliki oleh Amazon yang menggunakan `aws:executeScript` tindakan, peran harus ditentukan. Untuk informasi, lihat [Izin untuk menggunakan runbook](automation-document-script-considerations.md#script-permissions).

1. (Opsional) Untuk **Keluaran**, masukkan output apapun untuk otomatisasi runbook ini supaya bisa melakukan proses lainnya. 

   Misalnya, jika runbook Anda membuat AMI baru, Anda dapat menentukan [”. CreateImage ImageId“], dan kemudian gunakan output ini untuk membuat instance baru dalam otomatisasi berikutnya.

1. (Opsional) Perluas bagian **Parameter input** dan lakukan hal-hal berikut ini.

   1. Untuk **Nama parameter**, masukkan nama deskriptif untuk parameter runbook yang Anda buat.

   1. Untuk **Jenis**, pilih jenis untuk parameter, seperti `String` atau `MapList`.

   1. Untuk **Yang dibutuhkan**, lakukan salah satu hal berikut ini: 
      + Pilih **Ya** jika nilai untuk parameter runbook ini harus diberikan pada saat waktu aktif.
      + Pilih **Tidak** jika parameter tidak diperlukan, dan masukkan nilai parameter default di **Nilai default** (opsional).

   1. Di **Deskripsi**, masukkan deskripsi untuk parameter runbook.
**catatan**  
Untuk menambahkan parameter runbook lainnya, pilih **Tambahkan parameter**. Untuk menghapus parameter runbook, pilih tombol **X** (Hapus).

1. (Opsional) Perluas **Jenis target** dan pilih jenis target untuk menentukan lokasi jenis sumber daya otomatisasi dapat berjalan. Misalnya, untuk menggunakan runbook pada instans EC2, pilih `/AWS::EC2::Instance`.
**catatan**  
Jika Anda menentukan nilai '`/`', runbook dapat berjalan pada semua jenis sumber daya. Untuk daftar jenis sumber daya yang valid, lihat [AWS Referensi Jenis Sumber Daya](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) di *AWS CloudFormation Panduan Pengguna*.

1. Perluas bagian **Tag dokumen** dan masukkan satu tag kunci-nilai pasangan atau lebih untuk diterapkan ke runbook (opsional). Tag membuatnya lebih mudah untuk mengidentifikasi, mengatur, dan mencari sumber daya.

1. Di bagian **Langkah 1**, berikan informasi berikut.
   + Untuk **Nama langkah**, masukkan nama deskriptif untuk langkah pertama otomatisasi.
   + Untuk **Jenis tindakan**, pilih jenis tindakan yang akan digunakan untuk langkah ini.

     Untuk daftar dan informasi tentang jenis tindakan yang tersedia, lihat [Referensi tindakan Otomatisasi Systems Manager](automation-actions.md).
   + Untuk **Deskripsi**, masukkan deskripsi alangkah otomatisasi. Anda dapat menggunakan penurunan harga untuk memformat teks Anda.
   + Tergantung pada **Jenis tindakan** yang dipilih, masukkan input yang diperlukan untuk jenis tindakan di bagian **Input langkah**. Misalnya, jika Anda memilih tindakan `aws:approve`, Anda harus menentukan nilai untuk `Approvers` properti.

     Untuk informasi tentang bidang input langkah, lihat entri di [Referensi tindakan Otomatisasi Systems Manager](automation-actions.md) untuk jenis tindakan yang Anda pilih. Sebagai contoh: [`aws:executeStateMachine`— Jalankan mesin AWS Step Functions negara](automation-action-executeStateMachine.md).
   + (Opsional) Untuk **Input tambahan**, berikan nilai masukan tambahan yang diperlukan untuk runbook Anda. Jenis input yang tersedia bergantung pada jenis tindakan yang Anda pilih untuk langkah tersebut. (Perhatikan bahwa beberapa jenis tindakan memerlukan nilai input.)
**catatan**  
Untuk menambahkan input lainnya, pilih **Tambahkan input opsional**. Untuk menghapus input, pilih tombol **X** (Hapus).
   + (Opsional) Untuk **O**utput, masukkan output apapun untuk langkah ini supaya bisa melakukan proses lainnya.
**catatan**  
**Output** tidak tersedia untuk semua jenis tindakan.
   + Perluas bagian **Properti umum** (opsional) dan tentukan properti untuk tindakan yang umum di semua tindakan otomatisasi. Misalnya, untuk **detik waktu habis**, Anda dapat memberikan nilai dalam hitungan detik untuk menentukan berapa lama langkah dapat berjalan sebelum berhenti.

     Untuk informasi selengkapnya, lihat [Properti dibagi oleh semua tindakan](automation-actions.md#automation-common).
**catatan**  
Untuk menambahkan langkah lainnya, pilih **Tambahkan langkah** dan ulangi prosedur untuk membuat langkah. Untuk menghapus langkah, pilih **Hapus langkah**.

1. Pilih **Buat Otomatisasi** untuk menyimpan runbook.

## Buat runbook yang menjalankan skrip
<a name="create-runbook-scripts"></a>

Prosedur berikut menunjukkan cara menggunakan Document Builder di konsol AWS Systems Manager Automation untuk membuat runbook kustom yang menjalankan skrip.

Langkah pertama dari runbook yang Anda buat menjalankan skrip untuk meluncurkan instans Amazon Elastic Compute Cloud (Amazon EC2). Langkah kedua menjalankan skrip lain untuk memantau pemeriksaan status instans untuk mengubah ke `ok`. Kemudian, status keseluruhan `Success` dilaporkan untuk otomatisasi.

**Sebelum Anda mulai**  
Pastikan Anda telah menyelesaikan langkah-langkah berikut:
+ Verifikasi bahwa Anda memiliki hak administrator, atau bahwa Anda telah diberikan izin yang sesuai untuk mengakses Systems Manager in AWS Identity and Access Management (IAM). 

  Untuk informasi, lihat [Memverifikasi akses pengguna untuk runbook](automation-setup.md#automation-setup-user-access).
+ Verifikasi bahwa Anda memiliki peran layanan IAM untuk Otomatisasi (juga dikenal sebagai *peran asumsi*) di Akun AWS. Peran ini diperlukan karena panduan ini menggunakan `aws:executeScript` tindakan. 

  Untuk informasi lebih lanjut tentang pembuatan peran, lihat [Mengonfigurasi akses peran layanan (peran asumsi) untuk otomatisasi](automation-setup.md#automation-setup-configure-role). 

  Untuk informasi tentang persyaratan peran layanan IAM untuk menjalanka n`aws:executeScript`, lihat [Izin untuk menggunakan runbook](automation-document-script-considerations.md#script-permissions).
+ Verifikasi bahwa Anda memiliki izin untuk meluncurkan Instans EC2. 

  Untuk selengkapnya, lihat [IAM dan Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UsingIAM.html#intro-to-iam) EC2 di Panduan Pengguna *Amazon EC2*.

**Untuk membuat runbook kustom yang menjalankan skrip menggunakan Document Builder**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Dokumen**.

1. Pilih **Buat otomatisasi**.

1. Untuk **Nama**, ketik nama deskriptif ini untuk runbook:. **LaunchInstanceAndCheckStatus**

1. (Opsional) Untuk **Deskripsi dokumen**, ganti teks default dengan deskripsi untuk runbook ini, menggunakan Markdown. Berikut adalah contohnya.

   ```
   ##Title: LaunchInstanceAndCheckState
       -----
       **Purpose**: This runbook first launches an EC2 instance using the AMI ID provided in the parameter ```imageId```. The second step of this runbook continuously checks the instance status check value for the launched instance until the status ```ok``` is returned.
       
       ##Parameters:
       -----
       Name | Type | Description | Default Value
       ------------- | ------------- | ------------- | -------------
       assumeRole | String | (Optional) The ARN of the role that allows Automation to perform the actions on your behalf. | -
       imageId  | String | (Optional) The AMI ID to use for launching the instance. The default value uses the latest Amazon Linux 2023 AMI ID available. | {{ ssm:/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-arm64 }}
   ```

1. Untuk **Peran asumsi**, masukkan ARN peran layanan IAM untuk Otomatisasi (Peran asumsi) untuk otomatisasi, dalam format **arn:aws:iam::111122223333:role/AutomationServiceRole**. Ganti Akun AWS ID Anda dengan 111122223333.

   Peran yang Anda tentukan digunakan untuk memberikan izin yang diperlukan untuk memulai otomatisasi.
**penting**  
Untuk runbook yang tidak dimiliki oleh Amazon yang menggunakan `aws:executeScript` tindakan, peran harus ditentukan. Untuk informasi, lihat [Izin untuk menggunakan runbook](automation-document-script-considerations.md#script-permissions).

1. Perluas **Parameter input** dan lakukan hal berikut.

   1. Untuk **Nama parameter**, masukkan **imageId**.

   1. Untuk **Jenis**, pilih **String**.

   1. Untuk **yang diperlukan**, pilih `No`. 

   1. Untuk **Nilai default**, masukkan berikut ini.

      ```
      {{ ssm:/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-arm64 }}
      ```
**catatan**  
Nilai ini meluncurkan instans Amazon EC2 menggunakan ID Amazon Linux Amazon Machine Image 2023 AMI () terbaru. Jika Anda ingin menggunakan yang berbeda AMI, ganti nilai dengan AMI ID.

   1. Untuk **Deskripsi**, masukkan yang berikut ini.

      ```
      (Optional) The AMI ID to use for launching the instance. The default value uses the latest released Amazon Linux 2023 AMI ID.
      ```

1. Pilih **Tambahkan parameter** untuk membuat parameter kedua, **tagValue**, dan masukkan yang berikut ini.

   1. Untuk **Nama parameter**, masukkan **tagValue**.

   1. Untuk **Jenis**, pilih **String**.

   1. Untuk **yang diperlukan**, pilih `No`. 

   1. Untuk **Nilai default**, masukkan **LaunchedBySsmAutomation**. Ini menambahkan nilai kunci-pasangan tag `Name:LaunchedBySsmAutomation` ke instans.

   1. Untuk **Deskripsi**, masukkan yang berikut ini.

      ```
      (Optional) The tag value to add to the instance. The default value is LaunchedBySsmAutomation.
      ```

1. Pilih **Tambahkan parameter** untuk membuat parameter ketiga, **instanceType**, dan masukkan informasi berikut ini.

   1. Untuk **Nama parameter**, masukkan **instanceType**.

   1. Untuk **Jenis**, pilih **String**.

   1. Untuk **yang diperlukan**, pilih `No`. 

   1. Untuk **Nilai default**, masukkan **t2.micro**.

   1. Untuk **Deskripsi parameter**, masukkan yang berikut ini.

      ```
      (Optional) The instance type to use for the instance. The default value is t2.micro.
      ```

1. Perluas **Jenis target** dan pilih **"/"**.

1. (Opsional) Perluas **Tag dokumen** untuk menerapkan tag sumber daya ke runbook Anda. Untuk **Kunci tag**, masukkan **Purpose**, dan untuk **Nilai tag**, masukkan **LaunchInstanceAndCheckState**.

1. Di bagian **Langkah 1**, selesaikan langkah berikut.

   1. Untuk **Nama langkah**, masukkan nama langkah deskriptif untuk langkah pertama otomatisasi: **LaunchEc2Instance**.

   1. Untuk **Jenis tindakan**, pilih **Jalankan skrip** (**aws:executeScript**).

   1. Untuk **Deskripsi**, masukkan deskripsi langkah otomatisasi, seperti berikut.

      ```
      **About This Step**
          
          This step first launches an EC2 instance using the ```aws:executeScript``` action and the provided script.
      ```

   1. Perluas **input**.

   1. Untuk **Waktu aktif**, pilih bahasa waktu aktif untuk digunakan dalam menjalankan skrip yang disediakan.

   1. Untuk **Handler**, masukkan **launch\$1instance**. Ini adalah nama fungsi yang dinyatakan dalam skrip berikut.
**catatan**  
Ini tidak diperlukan untuk PowerShell.

   1. Untuk **Skrip**, ganti isi default dengan berikut ini. Pastikan untuk mencocokkan skrip dengan nilai waktu aktif yang sesuai.

------
#### [ Python ]

      ```
      def launch_instance(events, context):
            import boto3
            ec2 = boto3.client('ec2')
          
            image_id = events['image_id']
            tag_value = events['tag_value']
            instance_type = events['instance_type']
          
            tag_config = {'ResourceType': 'instance', 'Tags': [{'Key':'Name', 'Value':tag_value}]}
          
            res = ec2.run_instances(ImageId=image_id, InstanceType=instance_type, MaxCount=1, MinCount=1, TagSpecifications=[tag_config])
          
            instance_id = res['Instances'][0]['InstanceId']
          
            print('[INFO] 1 EC2 instance is successfully launched', instance_id)
          
            return { 'InstanceId' : instance_id }
      ```

------
#### [ PowerShell ]

      ```
      Install-Module AWS.Tools.EC2 -Force
          Import-Module AWS.Tools.EC2
          
          $payload = $env:InputPayload | ConvertFrom-Json
          
          $imageid = $payload.image_id
          
          $tagvalue = $payload.tag_value
          
          $instanceType = $payload.instance_type
          
          $type = New-Object Amazon.EC2.InstanceType -ArgumentList $instanceType
          
          $resource = New-Object Amazon.EC2.ResourceType -ArgumentList 'instance'
          
          $tag = @{Key='Name';Value=$tagValue}
          
          $tagSpecs = New-Object Amazon.EC2.Model.TagSpecification
          
          $tagSpecs.ResourceType = $resource
          
          $tagSpecs.Tags.Add($tag)
          
          $res = New-EC2Instance -ImageId $imageId -MinCount 1 -MaxCount 1 -InstanceType $type -TagSpecification $tagSpecs
          
          return @{'InstanceId'=$res.Instances.InstanceId}
      ```

------

   1. Perluas **Input tambahan**. 

   1. Untuk **nama Input**, pilih **InputPayload**. Untuk **Nilai input**, masukkan data YAML berikut. 

      ```
      image_id: "{{ imageId }}"
          tag_value: "{{ tagValue }}"
          instance_type: "{{ instanceType }}"
      ```

1. Perluas **Output** dan lakukan hal berikut:
   + Untuk **Nama**, masukkan **payload**.
   + Untuk **Pemilih**, masukkan **\$1.Payload**.
   + Untuk **Jenis**, pilih `StringMap`.

1. Pilih **Tambahkan langkah** untuk menambahkan langkah kedua untuk runbook. Langkah kedua mengkueri status instans yang diluncurkan pada Langkah 1 dan menunggu sampai status kembali `ok`.

1. Di bagian **Langkah 2**, lakukan hal berikut.

   1. Untuk **Nama langkah**, masukkan nama deskriptif ini untuk langkah kedua otomatisasi: **WaitForInstanceStatusOk**.

   1. Untuk **Jenis tindakan**, pilih **Jalankan skrip** (**aws:executeScript**).

   1. Untuk **Deskripsi**, masukkan deskripsi langkah otomatisasi, seperti berikut.

      ```
      **About This Step**
          
          The script continuously polls the instance status check value for the instance launched in Step 1 until the ```ok``` status is returned.
      ```

   1. Untuk **Waktu aktif**, pilih bahasa waktu aktif yang akan digunakan untuk mengeksekusi skrip yang disediakan.

   1. Untuk **Handler**, masukkan **poll\$1instance**. Ini adalah nama fungsi yang dinyatakan dalam skrip berikut.
**catatan**  
Ini tidak diperlukan untuk PowerShell.

   1. Untuk **Skrip**, ganti isi default dengan berikut ini. Pastikan untuk mencocokkan skrip dengan nilai waktu aktif yang sesuai.

------
#### [ Python ]

      ```
      def poll_instance(events, context):
            import boto3
            import time
          
            ec2 = boto3.client('ec2')
          
            instance_id = events['InstanceId']
          
            print('[INFO] Waiting for instance status check to report ok', instance_id)
          
            instance_status = "null"
          
            while True:
              res = ec2.describe_instance_status(InstanceIds=[instance_id])
          
              if len(res['InstanceStatuses']) == 0:
                print("Instance status information is not available yet")
                time.sleep(5)
                continue
          
              instance_status = res['InstanceStatuses'][0]['InstanceStatus']['Status']
          
              print('[INFO] Polling to get status of the instance', instance_status)
          
              if instance_status == 'ok':
                break
          
              time.sleep(10)
          
            return {'Status': instance_status, 'InstanceId': instance_id}
      ```

------
#### [ PowerShell ]

      ```
          Install-Module AWS.Tools.EC2 -Force
          
          $inputPayload = $env:InputPayload | ConvertFrom-Json
          
          $instanceId = $inputPayload.payload.InstanceId
          
          $status = Get-EC2InstanceStatus -InstanceId $instanceId
          
          while ($status.Status.Status -ne 'ok'){
             Write-Host 'Polling get status of the instance', $instanceId
          
             Start-Sleep -Seconds 5
          
             $status = Get-EC2InstanceStatus -InstanceId $instanceId
          }
          
          return @{Status = $status.Status.Status; InstanceId = $instanceId}
      ```

------

   1. Perluas **Input tambahan**. 

   1. Untuk **nama Input**, pilih **InputPayload**. Untuk **Nilai input**, masukkan berikut ini:

      ```
      {{ LaunchEc2Instance.payload }}
      ```

1. Pilih **Buat Otomatisasi** untuk menyimpan runbook.

# Menggunakan skrip di runbook
<a name="automation-document-script-considerations"></a>

Otomatisasi runbook mendukung menjalankan skrip sebagai bagian dari otomatisasi. Otomasi adalah alat dalam AWS Systems Manager. Dengan menggunakan runbook, Anda dapat menjalankan skrip secara langsung di AWS tanpa membuat lingkungan komputasi terpisah untuk menjalankan skrip Anda. Karena runbook dapat menjalankan langkah-langkah skrip bersama dengan jenis langkah otomatisasi lainnya, seperti persetujuan, Anda dapat berpartisipasi langsung dalam situasi kritis atau ambigu. Anda dapat mengirim output dari `aws:executeScript` tindakan di runbook Anda ke Amazon CloudWatch Logs. Untuk informasi selengkapnya, lihat [Keluaran tindakan Otomasi Pencatatan dengan CloudWatch Log](automation-action-logging.md).

## Izin untuk menggunakan runbook
<a name="script-permissions"></a>

Untuk menggunakan runbook, Systems Manager harus menggunakan izin peran AWS Identity and Access Management (IAM). Metode yang menggunakan otomatisasi untuk menentukan peran izin yang digunakan tergantung pada beberapa faktor, dan apakah langkah menggunakan `aws:executeScript` tindakan. 

Untuk runbook yang tidak menggunakan `aws:executeScript`, Otomatisasi menggunakan salah satu dari dua sumber izin:
+ Izin peran layanan IAM, atau Peran asumsi, yang ditentukan dalam runbook atau diteruskan sebagai parameter.
+ Jika tidak ada peran layanan IAM yang ditentukan, izin pengguna yang memulai otomatisasi. 

Namun, ketika langkah dalam runbook menyertakan `aws:executeScript` tindakan, peran layanan IAM (Asumsikan peran) selalu diperlukan jika Python atau PowerShell skrip yang ditentukan untuk tindakan tersebut memanggil operasi API apa pun. AWS Otomatisasi memeriksa peran ini dalam urutan berikut:
+ Izin peran layanan IAM, atau Peran asumsi, yang ditentukan dalam runbook atau diteruskan sebagai parameter.
+ Jika tidak ada peran yang ditemukan, Automation mencoba menjalankan Python atau PowerShell skrip yang ditentukan untuk `aws:executeScript` tanpa izin apa pun. Jika skrip memanggil operasi AWS API (misalnya operasi Amazon EC2`CreateImage`), atau mencoba menindaklanjuti AWS sumber daya (seperti instans EC2), langkah yang berisi skrip gagal, dan Systems Manager menampilkan pesan kesalahan yang melaporkan kegagalan tersebut. 

## Menambahkan skrip ke runbook
<a name="adding-scripts"></a>

Anda dapat menambahkan skrip untuk runbook dengan memasukkan skrip sebaris sebagai bagian dari langkah dalam runbook. Anda juga dapat melampirkan skrip ke runbook dengan mengunggah skrip dari mesin lokal atau dengan menentukan bucket Amazon Simple Storage Service (Amazon S3) tempat skrip berada. Setelah langkah yang menjalankan skrip selesai, output dari skrip tersedia sebagai objek JSON, yang kemudian dapat Anda gunakan sebagai masukan untuk langkah-langkah berikutnya dalam runbook Anda. Untuk informasi selengkapnya tentang `aws:executeScript` tindakan dan cara menggunakan lampiran untuk skrip, lihat. [`aws:executeScript` – Jalankan skrip](automation-action-executeScript.md)

## Kendala skrip untuk runbook
<a name="script-constraints"></a>

Runbook menetapkan batas lima lampiran file. Skrip dapat berupa skrip Python (.py), skrip Core (.ps1), PowerShell atau dilampirkan sebagai konten dalam file.zip.

# Menggunakan pernyataan bersyarat di runbook
<a name="automation-branch-condition"></a>

Secara default, langkah-langkah yang Anda tentukan di bagian `mainSteps` runbook yang dijalankan secara berurutan. Setelah satu tindakan selesai, tindakan berikutnya ditentukan dalam `mainSteps` bagian dimulai. Selain itu, jika tindakan gagal dijalankan, seluruh otomatisasi gagal (secara default). Anda dapat menggunakan `aws:branch` tindakan otomasi dan opsi runbook yang dijelaskan di bagian ini untuk membuat otomatisasi yang berkinerja *Percabangan bersyarat*. Buat otomatisasi yang melompat ke langkah yang berbeda setelah mengevaluasi pilihan yang berbeda atau yang secara dinamis menanggapi perubahan ketika langkah selesai. Berikut adalah daftar opsi yang dapat Anda gunakan untuk membuat otomatisasi dinamis:
+ **`aws:branch`**: Tindakan ini mengizinkan Anda membuat otomatisasi dinamis yang mengevaluasi pilihan yang berbeda dalam satu langkah dan kemudian melompat ke langkah di runbook yang berbeda berdasarkan hasil evaluasi tersebut.
+ **`nextStep`**: Opsi ini menentukan langkah otomatisasi mana yang harus diproses setelah berhasil menyelesaikan langkah. 
+ **`isEnd`**: Opsi ini menghentikan otomatisasi pada akhir langkah tertentu. Nilai default opsi ini adalah palsu.
+ **`isCritical`**: Opsi ini menunjukkan langkah sebagai kepentingan untuk berhasil menyelesaikan otomatisasi. Jika langkah dengan penunjukan ini gagal, maka Otomatisasi melaporkan status akhir otomatisasi sebagai `Failed`. Nilai default opsi ini adalah `true`.
+ **`onFailure`**: Opsi ini menunjukkan apakah otomatisasi harus berhenti, melanjutkan, atau meneruskan ke langkah kegagalan yang berbeda. Nilai default untuk opsi ini adalah batalkan.

Bagian berikut menjelaskan `aws:branch` tindakan otomatisi. Untuk informasi lebih lanjut tentang pilihan `nextStep`, `isEnd`, `isCritical`, dan `onFailure`, lihat [Contoh `aws:branch` runbook](#branch-runbook-examples).

## Bekerja dengan `aws:branch` tindakan
<a name="branch-action-explained"></a>

Tindakan `aws:branch` tersebut menawarkan opsi percabangan bersyarat yang paling dinamis untuk otomatisasi. Seperti disebutkan sebelumnya, tindakan ini mengizinkan otomatisasi Anda untuk mengevaluasi beberapa kondisi dalam satu langkah dan kemudian melompat ke langkah baru berdasarkan hasil evaluasi tersebut. Tindakan `aws:branch` berfungsi seperti `IF-ELIF-ELSE` pernyataan dalam pemrograman.

Berikut adalah contoh YAML dari `aws:branch` langkah.

```
- name: ChooseOSforCommands
  action: aws:branch
  inputs:
    Choices:
    - NextStep: runPowerShellCommand
      Variable: "{{GetInstance.platform}}"
      StringEquals: Windows
    - NextStep: runShellCommand
      Variable: "{{GetInstance.platform}}"
      StringEquals: Linux
    Default:
      PostProcessing
```

Bila Anda menentukan `aws:branch` tindakan untuk sebuah langkah, Anda menentukan `Choices` bahwa otomatisasi harus mengevaluasi. Otomatisasi dapat mengevaluasi `Choices` berdasarkan nilai parameter yang Anda tentukan dalam `Parameters` bagian runbook tersebut. Otomatisasi juga dapat mengevaluasi `Choices` berdasarkan output dari langkah sebelumnya.

Otomatisasi mengevaluasi setiap pilihan dengan menggunakan ekspresi Boolean. Jika evaluasi menentukan bahwa pilihan pertama adalah `true`, maka otomatisasi melompat ke langkah yang ditetapkan di pilihan tersebut. Jika evaluasi menentukan bahwa pilihan pertama adalah `false`, maka otomatisasi mengevaluasi pilihan berikutnya. Jika langkah Anda mencakup tiga atau lebih `Choices`, maka otomatisasi menilai setiap pilihan dalam urutan yang tepat sehingga otomatisasi menilai pilihan yang `true`. Selanjutnya, otomatisasi melompat ke langkah yang ditetapkan untuk pilihan `true` tersebut.

Jika tidak ada pilihan `Choices` yang `true`, otomatisasi memeriksa untuk melihat apakah langkah berisi `Default` nilai. Nilai `Default` menentukan langkah yang harus dilakukan otomatisasi jika tidak ada pilihan yang `true`. Jika tidak ada `Default` nilai yang ditentukan untuk langkah, otomatisasi akan memproses langkah berikutnya dalam runbook.

Berikut adalah `aws:branch` langkah dalam YAMAL bernama **pilih OSfrom Parameter**. Langkahnya mencakup dua `Choices`: (`NextStep: runWindowsCommand`) dan (`NextStep: runLinuxCommand`). Otomatisasi mengevaluasi ini `Choices` untuk menentukan perintah mana yang dijalankan untuk sistem operasi yang sesuai. `Variable` untuk setiap pilihan menggunakan `{{OSName}}`, yang merupakan parameter yang ditentukan oleh penulis runbook `Parameters` di bagian runbook.

```
mainSteps:
- name: chooseOSfromParameter
  action: aws:branch
  inputs:
    Choices:
    - NextStep: runWindowsCommand
      Variable: "{{OSName}}"
      StringEquals: Windows
    - NextStep: runLinuxCommand
      Variable: "{{OSName}}"
      StringEquals: Linux
```

Berikut adalah `aws:branch` langkah dalam YAMAL bernama **pilih OSfrom Output**. Langkahnya mencakup dua `Choices`: (`NextStep: runPowerShellCommand`) dan (`NextStep: runShellCommand`). Otomatisasi mengevaluasi ini `Choices` untuk menentukan perintah mana yang dijalankan untuk sistem operasi yang sesuai. `Variable` untuk setiap pilihan menggunakan `{{GetInstance.platform}}`, yang merupakan output dari langkah sebelumnya di runbook. Contoh ini juga mencakup opsi yang disebut `Default`. Jika otomatisasi mengevaluasi keduanya `Choices`, dan tidak ada pilihan `true`, maka otomatisasi melompat ke langkah yang bernama `PostProcessing`.

```
mainSteps:
- name: chooseOSfromOutput
  action: aws:branch
  inputs:
    Choices:
    - NextStep: runPowerShellCommand
      Variable: "{{GetInstance.platform}}"
      StringEquals: Windows
    - NextStep: runShellCommand
      Variable: "{{GetInstance.platform}}"
      StringEquals: Linux
    Default:
      PostProcessing
```

### Membuat `aws:branch` langkah dalam runbook
<a name="create-branch-action"></a>

Saat Anda membuat `aws:branch` langkah dalam runbook, Anda menentukan `Choices` otomatisasi harus mengevaluasi untuk menentukan langkah mana lagi yang harus dilalui otomatisasi. Seperti disebutkan sebelumnya, `Choices` dievaluasi dengan menggunakan ekspresi Boolean. Setiap templat menyertakan menentukan opsi berikut:
+ **NextStep**: Langkah selanjutnya dalam runbook untuk memproses jika pilihan yang ditunjuk adalah`true`.
+ **Variabel**: Tentukan nama parameter yang didefinisikan di `Parameters` bagian runbook, variabel yang didefinisikan di `Variables` bagian, atau tentukan objek keluaran dari langkah sebelumnya.

  Tentukan nilai variabel dengan menggunakan formulir berikut.

  `Variable: "{{variable name}}"`

  Tentukan nilai parameter dengan menggunakan formulir berikut.

  `Variable: "{{parameter name}}"`

  Tentukan variabel objek output dengan menggunakan formulir berikut.

  `Variable: "{{previousStepName.outputName}}"`
**catatan**  
Membuat variabel output dijelaskan secara lebih detail pada bagian berikutnya, [Tentang membuat variabel output](#branch-action-output).
+ **Operasi**: Kriteria yang digunakan untuk mengevaluasi pilihan, seperti `StringEquals: Linux`. Tindakan `aws:branch` tersebut mendukung operasi berikut:

**Operasi String**
  + StringEquals
  + EqualsIgnoreCase
  + StartsWith
  + EndsWith
  + Berisi

**Operasi numerik**
  + NumericEquals
  + NumericGreater
  + NumericLesser
  + NumericGreaterOrEquals
  + NumericLesser
  + NumericLesserOrEquals

**Operasi Boolean**
  + BooleanEquals
**penting**  
Ketika Anda membuat runbook, sistem memvalidasi setiap operasi di runbook. Jika operasi tidak didukung, sistem akan mengembalikan kesalahan saat Anda mencoba membuat runbook.
+ **Default**: Tentukan langkah mundur yang harus dilewati otomatisasi jika tidak ada `Choices` adalah `true`.
**catatan**  
Jika Anda tidak ingin menentukan `Default` nilai, maka Anda dapat menentukan `isEnd` pilihan. Jika tidak ada `Choices` adalah `true` dan tidak ada `Default` nilai yang ditentukan, maka otomatisasi berhenti di akhir langkah.

Gunakan template berikut untuk membantu Anda membangun `aws:branch` langkah dalam runbook Anda. Ganti masing-masing *example resource placeholder* dengan informasi Anda sendiri.

------
#### [ YAML ]

```
mainSteps:
- name: step name
  action: aws:branch
  inputs:
    Choices:
    - NextStep: step to jump to if evaluation for this choice is true
      Variable: "{{parameter name or output from previous step}}"
      Operation type: Operation value
    - NextStep: step to jump to if evaluation for this choice is true
      Variable: "{{parameter name or output from previous step}}"
      Operation type: Operation value
    Default:
      step to jump to if all choices are false
```

------
#### [ JSON ]

```
{
   "mainSteps":[
      {
         "name":"a name for the step",
         "action":"aws:branch",
         "inputs":{
            "Choices":[
               {
                  "NextStep":"step to jump to if evaluation for this choice is true",
                  "Variable":"{{parameter name or output from previous step}}",
                  "Operation type":"Operation value"
               },
               {
                  "NextStep":"step to jump to if evaluation for this choice is true",
                  "Variable":"{{parameter name or output from previous step}}",
                  "Operation type":"Operation value"
               }
            ],
            "Default":"step to jump to if all choices are false"
         }
      }
   ]
}
```

------

#### Tentang membuat variabel output
<a name="branch-action-output"></a>

Untuk membuat `aws:branch` pilihan yang mereferensikan output dari langkah sebelumnya, Anda perlu mengidentifikasi nama langkah sebelumnya dan namabidang output. Anda kemudian menggabungkan nama-nama langkah dan bidang dengan menggunakan format berikut.

`Variable: "{{previousStepName.outputName}}"`

Sebagai contoh, langkah pertama dalam contoh berikut bernama `GetInstance`. Dan kemudian, di bawah `outputs`, terdapat sebuah bidang yang disebut `platform`. Pada langkah kedua (`ChooseOSforCommands`), penulis ingin mereferensikan output dari bidang platform sebagai variabel. Untuk membuat variabel, cukup gabungkan nama langkah (GetInstance) dan nama bidang output (platform) untuk membuat`Variable: "{{GetInstance.platform}}"`.

```
mainSteps:
- Name: GetInstance
  action: aws:executeAwsApi
  inputs:
    Service: ssm
    Api: DescribeInstanceInformation
    Filters:
    - Key: InstanceIds
      Values: ["{{ InstanceId }}"]
  outputs:
  - Name: myInstance
    Selector: "$.InstanceInformationList[0].InstanceId"
    Type: String
  - Name: platform
    Selector: "$.InstanceInformationList[0].PlatformType"
    Type: String
- name: ChooseOSforCommands
  action: aws:branch
  inputs:
    Choices:
    - NextStep: runPowerShellCommand
      Variable: "{{GetInstance.platform}}"
      StringEquals: Windows
    - NextStep: runShellCommand
      Variable: "{{GetInstance.platform}}"
      StringEquals: Linux
    Default:
      Sleep
```

Berikut adalah contoh yang menunjukkan bagaimana *"Variable": "\$1\$1 describeInstance.Platform \$1\$1"* dibuat dari langkah sebelumnya dan output.

```
- name: describeInstance
  action: aws:executeAwsApi
  onFailure: Abort
  inputs:
    Service: ec2
    Api: DescribeInstances
    InstanceIds:
    - "{{ InstanceId }}"
  outputs:
  - Name: Platform
    Selector: "$.Reservations[0].Instances[0].Platform"
    Type: String
  nextStep: branchOnInstancePlatform
- name: branchOnInstancePlatform
  action: aws:branch
  inputs:
    Choices:
    - NextStep: runEC2RescueForWindows
      Variable: "{{ describeInstance.Platform }}"
      StringEquals: windows
    Default: runEC2RescueForLinux
```

### Contoh `aws:branch` runbook
<a name="branch-runbook-examples"></a>

Berikut adalah beberapa contoh runbook yang menggunakan `aws:branch`.

**Contoh 1: Menggunakan `aws:branch` dengan variabel output untuk menjalankan perintah berdasarkan jenis sistem operasi**

Pada langkah pertama contoh ini (`GetInstance`), penulis runbook menggunakan `aws:executeAwsApi` tindakan untuk memanggil `ssm` `DescribeInstanceInformation` Operasi API. Penulis menggunakan tindakan ini untuk menentukan jenis sistem operasi yang digunakan oleh sebuah contoh. Tindakan `aws:executeAwsApi` tersebut mengeluarkan instans ID dan jenis platform.

Pada langkah kedua (`ChooseOSforCommands`), penulis menggunakan `aws:branch` tindakan dengan dua `Choices` (`NextStep: runPowerShellCommand`) dan (`NextStep: runShellCommand`). Otomatisasi mengevaluasi sistem operasi instans dengan menggunakan output dari langkah sebelumnya (`Variable: "{{GetInstance.platform}}"`). Otomatisasi melompat ke langkah untuk sistem operasi yang ditunjuk.

```
---
schemaVersion: '0.3'
assumeRole: "{{AutomationAssumeRole}}"
parameters:
  AutomationAssumeRole:
    default: ""
    type: String
mainSteps:
- name: GetInstance
  action: aws:executeAwsApi
  inputs:
    Service: ssm
    Api: DescribeInstanceInformation
  outputs:
  - Name: myInstance
    Selector: "$.InstanceInformationList[0].InstanceId"
    Type: String
  - Name: platform
    Selector: "$.InstanceInformationList[0].PlatformType"
    Type: String
- name: ChooseOSforCommands
  action: aws:branch
  inputs:
    Choices:
    - NextStep: runPowerShellCommand
      Variable: "{{GetInstance.platform}}"
      StringEquals: Windows
    - NextStep: runShellCommand
      Variable: "{{GetInstance.platform}}"
      StringEquals: Linux
    Default:
      Sleep
- name: runShellCommand
  action: aws:runCommand
  inputs:
    DocumentName: AWS-RunShellScript
    InstanceIds:
    - "{{GetInstance.myInstance}}"
    Parameters:
      commands:
      - ls
  isEnd: true
- name: runPowerShellCommand
  action: aws:runCommand
  inputs:
    DocumentName: AWS-RunPowerShellScript
    InstanceIds:
    - "{{GetInstance.myInstance}}"
    Parameters:
      commands:
      - ls
  isEnd: true
- name: Sleep
  action: aws:sleep
  inputs:
    Duration: PT3S
```

**Contoh 2: Menggunakan `aws:branch` dengan variabel parameter untuk menjalankan perintah berdasarkan jenis sistem operasi**

Penulis runbook mendefinisikan beberapa pilihan parameter pada awal runbook di `parameters` bagian. Satu parameter bernama `OperatingSystemName`. Pada langkah pertama (`ChooseOS`), penulis menggunakan `aws:branch` tindakan dengan dua `Choices` (`NextStep: runWindowsCommand`) dan (`NextStep: runLinuxCommand`). Variabel untuk ini `Choices` mereferensikan opsi parameter yang ditentukan dalam bagian parameter (`Variable: "{{OperatingSystemName}}"`). Ketika pengguna menjalankan runbook ini, mereka menentukan nilai pada saat waktu aktif untuk `OperatingSystemName`. Otomatisasi menggunakan parameter waktu aktif selama `Choices` evaluasi. Otomatisasi melanjutkan ke langkah untuk sistem operasi yang ditunjuk berdasarkan parameter waktu aktif yang ditentukan untuk `OperatingSystemName`.

```
---
schemaVersion: '0.3'
assumeRole: "{{AutomationAssumeRole}}"
parameters:
  AutomationAssumeRole:
    default: ""
    type: String
  OperatingSystemName:
    type: String
  LinuxInstanceId:
    type: String
  WindowsInstanceId:
    type: String
mainSteps:
- name: ChooseOS
  action: aws:branch
  inputs:
    Choices:
    - NextStep: runWindowsCommand
      Variable: "{{OperatingSystemName}}"
      StringEquals: windows
    - NextStep: runLinuxCommand
      Variable: "{{OperatingSystemName}}"
      StringEquals: linux
    Default:
      Sleep
- name: runLinuxCommand
  action: aws:runCommand
  inputs:
    DocumentName: "AWS-RunShellScript"
    InstanceIds:
    - "{{LinuxInstanceId}}"
    Parameters:
      commands:
      - ls
  isEnd: true
- name: runWindowsCommand
  action: aws:runCommand
  inputs:
    DocumentName: "AWS-RunPowerShellScript"
    InstanceIds:
    - "{{WindowsInstanceId}}"
    Parameters:
      commands:
      - date
  isEnd: true
- name: Sleep
  action: aws:sleep
  inputs:
    Duration: PT3S
```

### Membuat otomatisasi percabangan yang kompleks dengan operator
<a name="branch-operators"></a>

Anda dapat membuat otomatisasi percabangan kompleks dengan menggunakan `And`, `Or`, dan `Not` operator di `aws:branch` langkah.

**Operator 'Dan'**  
Gunakan `And` operator ketika Anda ingin beberapa variabel menjadi `true` untuk sebuah pilihan. Pada contoh berikut, pilihan pertama mengevaluasi apakah instans adalah `running` dan menggunakan`Windows` sistem operasi. Jika evaluasi *kedua* variabel ini benar, maka otomasi melompat ke `runPowerShellCommand` langkah. Jika satu atau beberapa variabel tersebut `false`, maka otomatisasi mengevaluasi variabel untuk pilihan kedua.

```
mainSteps:
- name: switch2
  action: aws:branch
  inputs:
    Choices:
    - And:
      - Variable: "{{GetInstance.pingStatus}}"
        StringEquals: running
      - Variable: "{{GetInstance.platform}}"
        StringEquals: Windows
      NextStep: runPowerShellCommand

    - And:
      - Variable: "{{GetInstance.pingStatus}}"
        StringEquals: running
      - Variable: "{{GetInstance.platform}}"
        StringEquals: Linux
      NextStep: runShellCommand
    Default:
      sleep3
```

**Operator 'Atau'**  
Gunakan `Or` operator ketika Anda ingin *salah satu dari* beberapa variabel menjadi benar untuk suatu pilihan. Pada contoh berikut, pilihan pertama mengevaluasi apakah string parameter adalah `Windows` dan apakah output dari AWS Lambda langkah adalah benar. Jika evaluasi menentukan bahwa *salah satu dari dua* variabel ini benar, maka otomasi melompat ke `RunPowerShellCommand` langkah. Jika kedua variabel tersebut salah, maka otomatisasi mengevaluasi variabel untuk pilihan kedua.

```
- Or:
  - Variable: "{{parameter1}}"
    StringEquals: Windows
  - Variable: "{{BooleanParam1}}"
    BooleanEquals: true
  NextStep: RunPowershellCommand
- Or:
  - Variable: "{{parameter2}}"
    StringEquals: Linux
  - Variable: "{{BooleanParam2}}"
    BooleanEquals: true
  NextStep: RunShellScript
```

**Operator 'Tidak'**  
Gunakan `Not` operator ketika Anda ingin melompat ke langkah yang didefinisikan ketika variabel *tidak* benar. Pada contoh berikut, pilihan pertama mengevaluasi apakah string parameter adalah `Not Linux`. Jika evaluasi menentukan bahwa itu adalah Linux, maka otomasi melompat ke `sleep2` langkah. Jika evaluasi pilihan pertama menentukan bahwa itu *adalah* Linux, maka otomatisasi mengevaluasi pilihan berikutnya.

```
mainSteps:
- name: switch
  action: aws:branch
  inputs:
    Choices:
    - NextStep: sleep2
      Not:
        Variable: "{{testParam}}"
        StringEquals: Linux
    - NextStep: sleep1
      Variable: "{{testParam}}"
      StringEquals: Windows
    Default:
      sleep3
```

## Contoh cara menggunakan opsi bersyarat
<a name="conditional-examples"></a>

Bagian ini mencakup contoh yang berbeda tentang cara menggunakan opsi dinamis dalam runbook. Setiap contoh di bagian ini memperluas runbook berikut. Runbook ini memiliki dua tindakan. Tindakan pertama bernama `InstallMsiPackage`. Menggunakan perintah `aws:runCommand` tindakan untuk menginstal aplikasi pada Windows Server instans. Tindakan kedua bernama `TestInstall`. Menggunakan `aws:invokeLambdaFunction` tindakan untuk melakukan tes aplikasi yang diinstal jika aplikasi berhasil diinstal. Langkah satu menentukan `onFailure: Abort`. Ini berarti bahwa jika aplikasi tidak berhasil diinstal, otomatisasi berhenti sebelum langkah kedua.

**Contoh 1: Runbook dengan dua tindakan linier**

```
---
schemaVersion: '0.3'
description: Install MSI package and run validation.
assumeRole: "{{automationAssumeRole}}"
parameters:
  automationAssumeRole:
    type: String
    description: "(Required) Assume role."
  packageName:
    type: String
    description: "(Required) MSI package to be installed."
  instanceIds:
    type: String
    description: "(Required) Comma separated list of instances."
mainSteps:
- name: InstallMsiPackage
  action: aws:runCommand
  maxAttempts: 2
  onFailure: Abort
  inputs:
    InstanceIds:
    - "{{instanceIds}}"
    DocumentName: AWS-RunPowerShellScript
    Parameters:
      commands:
      - msiexec /i {{packageName}}
- name: TestInstall
  action: aws:invokeLambdaFunction
  maxAttempts: 1
  timeoutSeconds: 500
  inputs:
    FunctionName: TestLambdaFunction
...
```

**Membuat otomatisasi dinamis yang melompat ke langkah yang berbeda dengan menggunakan opsi `onFailure`**

Contoh berikut menggunakan `onFailure: step:step name`, `nextStep`, dan `isEnd` pilihan untuk membuat otomatisasi dinamis. Dengan contoh ini, jika `InstallMsiPackage` tindakan gagal, maka otomatisasi melompat ke tindakan yang disebut *PostFailure*(`onFailure: step:PostFailure`) untuk menjalankan AWS Lambda fungsi untuk melakukan beberapa tindakan jika penginstalan gagal. Jika instalasi berhasil, maka otomatisasi melompat ke TestInstall action ()`nextStep: TestInstall`. Kedua langkah `TestInstall` dan `PostFailure` menggunakan `isEnd` pilihan (`isEnd: true`) sehingga otomatisasi selesai ketika salah satu dari langkah tersebut selesai.

**catatan**  
Menggunakan `isEnd` pilihan di langkah terakhir `mainSteps` bagian adalah opsional. Jika langkah terakhir tidak melompat ke langkah lain, maka otomatisasi berhenti setelah menjalankan tindakan di langkah terakhir.

**Contoh 2: Otomatisasi dinamis yang melompat ke berbagai langkah**

```
mainSteps
- name: InstallMsiPackage
  action: aws:runCommand
  onFailure: step:PostFailure
  maxAttempts: 2
  inputs:
    InstanceIds:
    - "{{instanceIds}}"
    DocumentName: AWS-RunPowerShellScript
    Parameters:
      commands:
      - msiexec /i {{packageName}}
  nextStep: TestInstall
- name: TestInstall
  action: aws:invokeLambdaFunction
  maxAttempts: 1
  timeoutSeconds: 500
  inputs:
    FunctionName: TestLambdaFunction
  isEnd: true
- name: PostFailure
  action: aws:invokeLambdaFunction
  maxAttempts: 1
  timeoutSeconds: 500
  inputs:
    FunctionName: PostFailureRecoveryLambdaFunction
  isEnd: true
...
```

**catatan**  
Sebelum memproses runbook, sistem memverifikasi bahwa runbook tidak membuat perulangan tak terbatas. Jika perulangan tak terbatas terdeteksi, Otomatisasi mengembalikan kesalahan dan jejak lingkaran yang menunjukkan langkah mana yang membuat perulangan.

**Membuat otomatisasi dinamis yang mendefinisikan langkah-langkah penting**

Anda dapat menentukan bahwa langkah sangat penting untuk keberhasilan otomatisasi secara keseluruhan. Jika langkah kritis gagal, maka otomatisasi melaporkan status otomatisasi sebagai `Failed`, bahkan jika satu langkah atau lebih berjalan dengan sukses. Dalam contoh berikut, pengguna mengidentifikasi *VerifyDependencies*langkah jika *InstallMsiPackage*langkah gagal (`onFailure: step:VerifyDependencies`). Pengguna menentukan bahwa `InstallMsiPackage` langkah ini tidak penting (`isCritical: false`). Dalam contoh ini, jika aplikasi gagal untuk menginstal, Otomatisasi memproses `VerifyDependencies` langkah untuk menentukan apakah satu dependensi atau lebih hilang, yang oleh karena itu menyebabkan penginstalan aplikasi gagal. 

**Contoh 3: Mendefinisikan langkah-langkah penting untuk otomatisasi**

```
---
name: InstallMsiPackage
action: aws:runCommand
onFailure: step:VerifyDependencies
isCritical: false
maxAttempts: 2
inputs:
  InstanceIds:
  - "{{instanceIds}}"
  DocumentName: AWS-RunPowerShellScript
  Parameters:
    commands:
    - msiexec /i {{packageName}}
nextStep: TestPackage
...
```

# Menggunakan output tindakan sebagai input
<a name="automation-action-outputs-inputs"></a>

Beberapa tindakan otomatisasi mengembalikan output yang telah ditentukan sebelumnya. Anda dapat meneruskan output ini sebagai input ke langkah selanjutnya di runbook Anda menggunakan format. `{{stepName.outputName}}` Anda juga dapat menentukan output khusus untuk tindakan otomatisasi di runbook Anda. Ini memungkinkan Anda menjalankan skrip, atau menjalankan operasi API untuk yang lain Layanan AWS sekali sehingga Anda dapat menggunakan kembali nilai sebagai input dalam tindakan selanjutnya. Jenis parameter dalam runbook bersifat statis. Ini berarti jenis parameter tidak dapat diubah setelah ditentukan. Untuk menentukan output langkah menyediakan bidang-bidang berikut:
+ Nama: (Wajib) Nama keluaran yang digunakan untuk mereferensikan nilai output di langkah selanjutnya.
+ Selector: (Wajib) JSONPath Ekspresi yang digunakan untuk menentukan nilai output.
+ Jenis: (Opsional) Tipe data dari nilai yang dikembalikan oleh bidang pemilih. Nilai tipe yang valid adalah`String`,`Integer`,`Boolean`,`StringList`,`StringMap`,`MapList`. Nilai default-nya adalah `String`.

Jika nilai output tidak cocok dengan tipe data yang Anda tentukan, Automation mencoba mengonversi tipe data. Misalnya, jika nilai yang dikembalikan adalah`Integer`, tetapi yang `Type` ditentukan adalah`String`, nilai output akhir adalah `String` nilai. Jenis konversi berikut didukung:
+ `String`nilai dapat dikonversi ke`StringList`, `Integer` dan`Boolean`.
+ `Integer`nilai dapat dikonversi ke `String` dan`StringList`.
+ `Boolean`nilai dapat dikonversi ke `String` dan`StringList`.
+ `StringList`,`IntegerList`, atau `BooleanList` nilai-nilai yang mengandung satu elemen dapat dikonversi ke`String`,`Integer`, atau`Boolean`.

Saat menggunakan parameter atau output dengan tindakan otomatisasi, tipe data tidak dapat diubah secara dinamis dalam input tindakan.

Berikut adalah contoh runbook yang menunjukkan cara mendefinisikan output tindakan, dan referensi nilai sebagai input untuk tindakan selanjutnya. Runbook melakukan hal berikut:
+ Menggunakan `aws:executeAwsApi` tindakan untuk memanggil operasi Amazon EC2 DescribeImages API untuk mendapatkan nama Windows Server 2016 tertentu. AMI Ini menampilkan ID gambar sebagai `ImageId`.
+ Menggunakan `aws:executeAwsApi` tindakan untuk memanggil operasi Amazon EC2 RunInstances API untuk meluncurkan satu instance yang menggunakan `ImageId` dari langkah sebelumnya. Ini menampilkan instans ID sebagai `InstanceId`.
+ Menggunakan ` aws:waitForAwsResourceProperty` tindakan untuk melakukan polling operasi Amazon EC2 DescribeInstanceStatus API untuk menunggu instans mencapai status. `running` Tindakan akan berakhir dalam 60 detik. Langkah berakhir jika status instans gagal mencapai `running` setelah 60 detik polling.
+ Menggunakan `aws:assertAwsResourceProperty` tindakan untuk memanggil operasi API Amazon EC2 `DescribeInstanceStatus` untuk menegaskan bahwa instans ada dalam `running` status. Langkah gagal jika status instans tidak `running`.

```
---
description: Sample runbook using AWS API operations
schemaVersion: '0.3'
assumeRole: "{{ AutomationAssumeRole }}"
parameters:
  AutomationAssumeRole:
    type: String
    description: "(Optional) The ARN of the role that allows Automation to perform the actions on your behalf."
    default: ''
  ImageName:
    type: String
    description: "(Optional) Image Name to launch EC2 instance with."
    default: "Windows_Server-2022-English-Full-Base*"
mainSteps:
- name: getImageId
  action: aws:executeAwsApi
  inputs:
    Service: ec2
    Api: DescribeImages
    Filters:  
    - Name: "name"
      Values: 
      - "{{ ImageName }}"
  outputs:
  - Name: ImageId
    Selector: "$.Images[0].ImageId"
    Type: "String"
- name: launchOneInstance
  action: aws:executeAwsApi
  inputs:
    Service: ec2
    Api: RunInstances
    ImageId: "{{ getImageId.ImageId }}"
    MaxCount: 1
    MinCount: 1
  outputs:
  - Name: InstanceId
    Selector: "$.Instances[0].InstanceId"
    Type: "String"
- name: waitUntilInstanceStateRunning
  action: aws:waitForAwsResourceProperty
  timeoutSeconds: 60
  inputs:
    Service: ec2
    Api: DescribeInstanceStatus
    InstanceIds:
    - "{{ launchOneInstance.InstanceId }}"
    PropertySelector: "$.InstanceStatuses[0].InstanceState.Name"
    DesiredValues:
    - running
- name: assertInstanceStateRunning
  action: aws:assertAwsResourceProperty
  inputs:
    Service: ec2
    Api: DescribeInstanceStatus
    InstanceIds:
    - "{{ launchOneInstance.InstanceId }}"
    PropertySelector: "$.InstanceStatuses[0].InstanceState.Name"
    DesiredValues:
    - running
outputs:
- "launchOneInstance.InstanceId"
...
```

Setiap tindakan otomatisasi yang dijelaskan sebelumnya mengizinkan Anda memanggil operasi API tertentu dengan menentukan namespace layanan, nama operasi API, parameter input, dan parameter output. Input didefinisikan oleh operasi API yang Anda pilih. Anda dapat melihat operasi API (juga disebut metode) dengan memilih layanan di navigasi kiri pada halaman [Referensi Layanan](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html). Pilih metode di bagian **Klien** untuk layanan yang ingin Anda jalankan. Misalnya, semua operasi API (metode) untuk Amazon Relational Database Service (Amazon RDS) tercantum di halaman berikut: [Metode Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html).

Anda dapat melihat skema untuk setiap tindakan otomatisasi di beberapa lokasi berikut:
+ [`aws:assertAwsResourceProperty`— Menegaskan status AWS sumber daya atau status acara](automation-action-assertAwsResourceProperty.md)
+ [`aws:executeAwsApi`— Panggil dan jalankan operasi AWS API](automation-action-executeAwsApi.md)
+ [`aws:waitForAwsResourceProperty`— Tunggu properti AWS sumber daya](automation-action-waitForAwsResourceProperty.md)

Skema termasuk deskripsi dari bidang yang diperlukan untuk menggunakan setiap tindakan.

**Menggunakan Selector/PropertySelector bidang**  
Setiap tindakan otomatisasi mengharuskan Anda menentukan output `Selector` (untuk `aws:executeAwsApi`) atau `PropertySelector` (untuk `aws:assertAwsResourceProperty` dan `aws:waitForAwsResourceProperty`). Bidang ini digunakan untuk memproses respons JSON dari operasi AWS API. Bidang ini menggunakan JSONPath sintaks.

Berikut adalah contoh untuk membantu menggambarkan konsep ini untuk `aws:executeAwsAPi` tindakan.

```
---
mainSteps:
- name: getImageId
  action: aws:executeAwsApi
  inputs:
    Service: ec2
    Api: DescribeImages
    Filters:  
      - Name: "name"
        Values: 
          - "{{ ImageName }}"
  outputs:
    - Name: ImageId
      Selector: "$.Images[0].ImageId"
      Type: "String"
...
```

Di `aws:executeAwsApi` langkah `getImageId`, otomatisasi menjalankan `DescribeImages` operasi API dan menerima respon dari `ec2`. Otomatisasi kemudian berlaku `Selector - "$.Images[0].ImageId"` ke respon API dan memberikan nilai yang dipilih ke variabel `ImageId` output. Beberapa langkah lain dalam otomatisasi yang sama dapat menggunakan nilai `ImageId` dengan menentukan `"{{ getImageId.ImageId }}"`.

Berikut adalah contoh untuk membantu menggambarkan konsep ini untuk `aws:waitForAwsResourceProperty` tindakan.

```
---
- name: waitUntilInstanceStateRunning
  action: aws:waitForAwsResourceProperty
  # timeout is strongly encouraged for action - aws:waitForAwsResourceProperty
  timeoutSeconds: 60
  inputs:
    Service: ec2
    Api: DescribeInstanceStatus
    InstanceIds:
    - "{{ launchOneInstance.InstanceId }}"
    PropertySelector: "$.InstanceStatuses[0].InstanceState.Name"
    DesiredValues:
    - running
...
```

Di `aws:waitForAwsResourceProperty` langkah `waitUntilInstanceStateRunning`, otomatisasi menjalankan `DescribeInstanceStatus` operasi API dan menerima respon dari `ec2`. Otomatisasi kemudian berlaku `PropertySelector - "$.InstanceStatuses[0].InstanceState.Name"` untuk respon dan memeriksa apakah nilai yang dikembalikan dan sudah ditentukan cocok dengan nilai dalam `DesiredValues` daftar (dalam hal ini `running`). Langkah tersebut mengulangi proses sampai respon mengembalikan status instans `running`. 

## Menggunakan JSONPath di runbook
<a name="automation-action-json-path"></a>

 JSONPath Ekspresi adalah string yang dimulai dengan “\$1.” yang digunakan untuk memilih salah satu komponen yang lebih dalam elemen JSON. Daftar berikut mencakup informasi tentang JSONPath operator yang didukung oleh Systems Manager Automation:
+ **Anak dot-notated (.)**: Gunakan dengan objek JSON. Operator ini memilih nilai kunci tertentu.
+ **Deep-scan (..)**: Gunakan dengan elemen JSON. Operator ini memindai tingkat demi tingkat elemen JSON dan memilih daftar nilai dengan kunci tertentu. Jenis kembalinya operator ini selalu array JSON. Dalam konteks jenis keluaran tindakan otomatisasi, operator dapat berupa StringList atau MapList.
+ **Indeks Array ([ ])**: Gunakan dengan array JSON. Operator ini mendapat nilai indeks tertentu.
+ **Filter ([? (*expression*)])**: Gunakan dengan array JSON. Operator ini memfilter nilai array JSON yang cocok dengan kriteria yang ditentukan dalam ekspresi filter. Ekspresi filter hanya dapat menggunakan operator berikut: ==,\$1 =, >, <, >=, atau <=. Menggabungkan beberapa ekspresi filter dengan AND (&&) atau OR (\$1\$1) tidak didukung. Jenis kembalinya operator ini selalu array JSON. 

Untuk lebih memahami JSONPath operator, tinjau respons JSON berikut dari operasi `DescribeInstances` API ec2. Berikut respon ini adalah beberapa contoh yang menunjukkan hasil yang berbeda dengan menerapkan JSONPath ekspresi yang berbeda untuk respon dari operasi `DescribeInstances` API.

```
{
    "NextToken": "abcdefg",
    "Reservations": [
        {
            "OwnerId": "123456789012",
            "ReservationId": "r-abcd12345678910",
            "Instances": [
                {
                    "ImageId": "ami-12345678",
                    "BlockDeviceMappings": [
                        {
                            "Ebs": {
                                "DeleteOnTermination": true,
                                "Status": "attached",
                                "VolumeId": "vol-000000000000"
                            },
                            "DeviceName": "/dev/xvda"
                        }
                    ],
                    "State": {
                        "Code": 16,
                        "Name": "running"
                    }
                }
            ],
            "Groups": []
        },
        {
            "OwnerId": "123456789012",
            "ReservationId": "r-12345678910abcd",
            "Instances": [
                {
                    "ImageId": "ami-12345678",
                    "BlockDeviceMappings": [
                        {
                            "Ebs": {
                                "DeleteOnTermination": true,
                                "Status": "attached",
                                "VolumeId": "vol-111111111111"
                            },
                            "DeviceName": "/dev/xvda"
                        }
                    ],
                    "State": {
                        "Code": 80,
                        "Name": "stopped"
                    }
                }
            ],
            "Groups": []
        }
    ]
}
```

**JSONPath Contoh 1: Dapatkan String tertentu dari respons JSON**

```
JSONPath: 
$.Reservations[0].Instances[0].ImageId 

Returns:
"ami-12345678"

Type: String
```

**JSONPath Contoh 2: Dapatkan Boolean tertentu dari respons JSON**

```
JSONPath:
$.Reservations[0].Instances[0].BlockDeviceMappings[0].Ebs.DeleteOnTermination
        
Returns:
true

Type: Boolean
```

**JSONPath Contoh 3: Dapatkan Integer tertentu dari respons JSON**

```
JSONPath:
$.Reservations[0].Instances[0].State.Code
        
Returns:
16

Type: Integer
```

**JSONPath Contoh 4: Memindai respons JSON secara mendalam, lalu dapatkan semua nilai VolumeId sebagai StringList** 

```
JSONPath:
$.Reservations..BlockDeviceMappings..VolumeId
        
Returns:
[
   "vol-000000000000",
   "vol-111111111111"
]

Type: StringList
```

**JSONPath Contoh 5: Dapatkan BlockDeviceMappings objek tertentu sebagai StringMap**

```
JSONPath:
$.Reservations[0].Instances[0].BlockDeviceMappings[0]
        
Returns:
{
   "Ebs" : {
      "DeleteOnTermination" : true,
      "Status" : "attached",
      "VolumeId" : "vol-000000000000"
   },
   "DeviceName" : "/dev/xvda"
}

Type: StringMap
```

**JSONPath Contoh 6: Memindai respons JSON secara mendalam, lalu dapatkan semua objek State sebagai MapList**

```
JSONPath:
$.Reservations..Instances..State 
    
Returns:
[
   {
      "Code" : 16,
      "Name" : "running"
   },
   {
      "Code" : 80,
      "Name" : "stopped"
   }
]

Type: MapList
```

**JSONPath Contoh 7: Filter untuk instance di negara bagian `running`**

```
JSONPath:
$.Reservations..Instances[?(@.State.Name == 'running')]

Returns:
[
  {
    "ImageId": "ami-12345678",
    "BlockDeviceMappings": [
      {
        "Ebs": {
          "DeleteOnTermination": true,
          "Status": "attached",
          "VolumeId": "vol-000000000000"
        },
        "DeviceName": "/dev/xvda"
      }
    ],
    "State": {
      "Code": 16,
      "Name": "running"
    }
  }
]

Type: MapList
```

**JSONPath Contoh 8: Kembalikan instance yang tidak dalam status `ImageId` `running`**

```
JSONPath:
$.Reservations..Instances[?(@.State.Name != 'running')].ImageId

Returns:
[
  "ami-12345678"
]

Type: StringList | String
```

# Membuat integrasi webhook untuk Otomasi
<a name="creating-webhook-integrations"></a>

Untuk mengirim pesan menggunakan webhook selama otomatisasi, buat integrasi. Integrasi dapat dipanggil selama otomatisasi dengan menggunakan `aws:invokeWebhook` tindakan di runbook Anda. Jika Anda belum membuat webhook, lihat[Membuat webhook untuk integrasi](#creating-webhooks). Untuk mempelajari lebih lanjut tentang `aws:invokeWebhook` tindakan, lihat[`aws:invokeWebhook`— Memanggil integrasi webhook Otomasi](invoke-webhook.md).

Seperti yang ditunjukkan dalam prosedur berikut, Anda dapat membuat integrasi dengan menggunakan konsol Otomasi Systems Manager atau alat baris perintah pilihan Anda. 

## Membuat integrasi (konsol)
<a name="creating-integrations-console"></a>

**Untuk membuat integrasi untuk Otomasi (konsol)**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Pada panel navigasi, pilih **Otomatisasi**.

1. Pilih tab **Integrasi**.

1. Pilih **Tambahkan integrasi**, dan pilih **Webhook**.

1. Masukkan nilai yang diperlukan dan nilai opsional apa pun yang ingin Anda sertakan untuk integrasi.

1. Pilih **Tambah** untuk membuat integrasi.

## Membuat integrasi (baris perintah)
<a name="creating-integrations-commandline"></a>

Untuk membuat integrasi menggunakan alat baris perintah, Anda harus membuat `SecureString` parameter yang diperlukan untuk integrasi. Automation menggunakan namespace yang dicadangkan diParameter Store, alat di Systems Manager, untuk menyimpan informasi tentang integrasi Anda. Jika Anda membuat integrasi menggunakan Konsol Manajemen AWS, Automation menangani proses ini untuk Anda. Mengikuti namespace, Anda harus menentukan jenis integrasi yang ingin Anda buat dan kemudian nama integrasi Anda. Saat ini, Otomasi mendukung integrasi `webhook` tipe.

Bidang yang didukung untuk integrasi `webhook` tipe adalah sebagai berikut:
+ Deskripsi
+ headers
+ payload
+ URL

**Sebelum Anda mulai**  
Jika Anda belum melakukannya, instal dan konfigurasikan AWS Command Line Interface (AWS CLI) atau file Alat AWS untuk PowerShell. Untuk selengkapnya, lihat [Menginstal atau memperbarui versi terbaru AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) dan [Menginstal Alat AWS untuk PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html).

**Untuk membuat integrasi untuk Otomasi (baris perintah)**
+ Jalankan perintah berikut untuk membuat `SecureString` parameter yang diperlukan untuk integrasi. Ganti masing-masing *example resource placeholder* dengan informasi Anda sendiri. `/d9d01087-4a3f-49e0-b0b4-d568d7826553/ssm/integrations/webhook/`Namespace dicadangkan Parameter Store untuk integrasi. Nama parameter Anda harus menggunakan namespace ini diikuti dengan nama integrasi Anda. Sebagai contoh, `/d9d01087-4a3f-49e0-b0b4-d568d7826553/ssm/integrations/webhook/myWebhookIntegration`.

------
#### [ Linux & macOS ]

  ```
  aws ssm put-parameter \
      --name "/d9d01087-4a3f-49e0-b0b4-d568d7826553/ssm/integrations/webhook/myWebhookIntegration" \
      --type "SecureString" \
      --data-type "aws:ssm:integration" \
      --value '{"description": "My first webhook integration for Automation.", "url": "myWebHookURL"}'
  ```

------
#### [ Windows ]

  ```
  aws ssm put-parameter ^
      --name "/d9d01087-4a3f-49e0-b0b4-d568d7826553/ssm/integrations/webhook/myWebhookIntegration" ^
      --type "SecureString" ^
      --data-type "aws:ssm:integration" ^
      --value  "{\"description\":\"My first webhook integration for Automation.\",\"url\":\"myWebHookURL\"}"
  ```

------
#### [ PowerShell ]

  ```
  Write-SSMParameter `
      -Name "/d9d01087-4a3f-49e0-b0b4-d568d7826553/ssm/integrations/webhook/myWebhookIntegration" `
      -Type "SecureString"
      -DataType "aws:ssm:integration"
      -Value '{"description": "My first webhook integration for Automation.", "url": "myWebHookURL"}'
  ```

------

## Membuat webhook untuk integrasi
<a name="creating-webhooks"></a>

Saat membuat webhook dengan penyedia Anda, perhatikan hal berikut:
+ Protokol harus HTTPS.
+ Header permintaan khusus didukung.
+ Sebuah badan permintaan default dapat ditentukan.
+ Badan permintaan default dapat diganti ketika integrasi dipanggil dengan menggunakan tindakan. `aws:invokeWebhook`

# Menangani waktu habis di runbook
<a name="automation-handling-timeouts"></a>

Properti `timeoutSeconds` dibagi oleh semua tindakan otomatisasi. Anda dapat menggunakan properti ini untuk menentukan nilai batas waktu eksekusi untuk suatu tindakan. Selanjutnya, Anda dapat mengubah bagaimana waktu tunggu tindakan memengaruhi otomatisasi dan status eksekusi secara keseluruhan. Anda dapat melakukan ini dengan juga mendefinisikan `onFailure` dan `isCritical` properti bersama untuk suatu tindakan.

Misalnya, bergantung pada kasus penggunaan Anda, Anda mungkin ingin otomatisasi Anda melanjutkan ke tindakan yang berbeda dan tidak memengaruhi status otomatisasi secara keseluruhan jika waktu tindakan habis. Dalam contoh ini, Anda menentukan lama waktu untuk menunggu sebelum waktu tindakan habis menggunakan `timeoutSeconds` properti. Kemudian Anda menentukan tindakan, atau langkah yang harus dilakukan otomatisasi jika waktu habis. Tentukan nilai menggunakan format `step:step name` untuk `onFailure` properti daripada nilai default dari `Abort`. Secara default, jika waktu tindakan habis, status eksekusi otomatisasi akan menjadi `Timed Out`. Agar waktu habis tidak mempengaruhi status eksekusi otomatisasi, tentukan `false` untuk `isCritical` properti.

Contoh berikut menunjukkan cara menentukan properti bersama untuk tindakan yang dijelaskan dalam skenario ini.

------
#### [ YAML ]

```
- name: verifyImageAvailability
  action: 'aws:waitForAwsResourceProperty'
  timeoutSeconds: 600
  isCritical: false
  onFailure: 'step:getCurrentImageState'
  inputs:
    Service: ec2
    Api: DescribeImages
    ImageIds:
      - '{{ createImage.newImageId }}'
    PropertySelector: '$.Images[0].State'
    DesiredValues:
      - available
  nextStep: copyImage
```

------
#### [ JSON ]

```
{
    "name": "verifyImageAvailability",
    "action": "aws:waitForAwsResourceProperty",
    "timeoutSeconds": 600,
    "isCritical": false,
    "onFailure": "step:getCurrentImageState",
    "inputs": {
        "Service": "ec2",
        "Api": "DescribeImages",
        "ImageIds": [
            "{{ createImage.newImageId }}"
        ],
        "PropertySelector": "$.Images[0].State",
        "DesiredValues": [
            "available"
        ]
    },
    "nextStep": "copyImage"
}
```

------

Untuk informasi lebih lanjut tentang properti bersama oleh semua tindakan otomatisasi, lihat [Properti dibagi oleh semua tindakan](automation-actions.md#automation-common).

# Referensi Runbook Otomasi Systems Manager
<a name="automation-documents-reference"></a>

Untuk membantu Anda memulai dengan cepat, AWS Systems Manager sediakan runbook yang telah ditentukan sebelumnya. Runbook ini dikelola oleh Amazon Web Services, AWS Dukungan, dan AWS Config. Referensi Runbook menjelaskan setiap runbook standar yang disediakan oleh Systems Manager,, Dukungan dan. AWS Config Untuk informasi selengkapnya, lihat [Referensi Buku Runbook Otomasi Systems Manager](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide).

# Tutorial
<a name="automation-tutorials"></a>

Tutorial berikut membantu Anda menggunakan AWS Systems Manager Otomasi untuk mengatasi kasus penggunaan umum. Tutorial ini menunjukkan cara menggunakan runbook Anda sendiri, runbook standar yang disediakan oleh Automation, dan alat Systems Manager lainnya dengan yang lain. Layanan AWS

**Contents**
+ [Memperbarui AMIs](automation-tutorial-update-ami.md)
  + [Perbarui Linux AMI](automation-tutorial-update-patch-linux-ami.md)
  + [Perbarui Linux AMI (AWS CLI)](automation-tutorial-update-ami.md#update-patch-linux-ami-cli)
  + [Perbarui a Windows Server AMI](automation-tutorial-update-patch-windows-ami.md)
  + [Perbarui emas AMI menggunakan Otomasi, AWS Lambda, dan Parameter Store](automation-tutorial-update-patch-golden-ami.md)
    + [Tugas 1: Buat parameter di Systems Manager Parameter Store](automation-tutorial-update-patch-golden-ami.md#create-parameter-ami)
    + [Tugas 2: Buat peran IAM untuk AWS Lambda](automation-tutorial-update-patch-golden-ami.md#create-lambda-role)
    + [Tugas 3: Buat AWS Lambda fungsi](automation-tutorial-update-patch-golden-ami.md#create-lambda-function)
    + [Tugas 4: Buat runbook dan tambal AMI](automation-tutorial-update-patch-golden-ami.md#create-custom-ami-update-runbook)
  + [Memperbarui AMIs menggunakan Otomasi dan Jenkins](automation-tutorial-update-patch-ami-jenkins-integration.md)
  + [Memperbarui AMIs untuk grup Auto Scaling](automation-tutorial-update-patch-windows-ami-autoscaling.md)
    + [Buat runbook **Patch AMIAnd UpdateASG**](automation-tutorial-update-patch-windows-ami-autoscaling.md#create-autoscaling-update-runbook)
+ [Menggunakan AWS Dukungan runbook swalayan](automation-tutorial-support-runbooks.md)
  + [Jalankan alat EC2 Penyelamatan pada instance yang tidak dapat dijangkau](automation-ec2rescue.md)
    + [Cara kerjanya](automation-ec2rescue.md#automation-ec2rescue-how)
    + [Sebelum Anda memulai](automation-ec2rescue.md#automation-ec2rescue-begin)
      + [Memberikan `AWSSupport-EC2Rescue` izin untuk melakukan tindakan pada instans Anda](automation-ec2rescue.md#automation-ec2rescue-access)
        + [Memberikan izin menggunakan kebijakan IAM](automation-ec2rescue.md#automation-ec2rescue-access-iam)
        + [Memberikan izin dengan menggunakan template CloudFormation](automation-ec2rescue.md#automation-ec2rescue-access-cfn)
    + [Menjalankan Otomatisasi](automation-ec2rescue.md#automation-ec2rescue-executing)
  + [Reset password dan kunci SSH pada Instans EC2](automation-ec2reset.md)
    + [Cara kerjanya](automation-ec2reset.md#automation-ec2reset-how)
    + [Sebelum Anda mulai](automation-ec2reset.md#automation-ec2reset-begin)
      + [Memberikan izin AWSSupport-EC 2Rescue untuk melakukan tindakan pada instans Anda](automation-ec2reset.md#automation-ec2reset-access)
        + [Memberikan izin menggunakan kebijakan IAM](automation-ec2reset.md#automation-ec2reset-access-iam)
        + [Memberikan izin dengan menggunakan template CloudFormation](automation-ec2reset.md#automation-ec2reset-access-cfn)
    + [Menjalankan Otomatisasi](automation-ec2reset.md#automation-ec2reset-executing)
+ [Meneruskan data ke Otomasi menggunakan transformator input](automation-tutorial-eventbridge-input-transformers.md)

# Memperbarui AMIs
<a name="automation-tutorial-update-ami"></a>

Tutorial berikut menjelaskan cara memperbarui Amazon Machine Image (AMIs) untuk menyertakan tambalan terbaru.

**Topics**
+ [Perbarui Linux AMI](automation-tutorial-update-patch-linux-ami.md)
+ [Perbarui Linux AMI (AWS CLI)](#update-patch-linux-ami-cli)
+ [Perbarui a Windows Server AMI](automation-tutorial-update-patch-windows-ami.md)
+ [Perbarui emas AMI menggunakan Otomasi, AWS Lambda, dan Parameter Store](automation-tutorial-update-patch-golden-ami.md)
+ [Memperbarui AMIs menggunakan Otomasi dan Jenkins](automation-tutorial-update-patch-ami-jenkins-integration.md)
+ [Memperbarui AMIs untuk grup Auto Scaling](automation-tutorial-update-patch-windows-ami-autoscaling.md)

# Perbarui Linux AMI
<a name="automation-tutorial-update-patch-linux-ami"></a>

Panduan Otomasi Systems Manager ini menunjukkan cara menggunakan konsol atau AWS CLI `AWS-UpdateLinuxAmi` runbook untuk memperbarui AMI Linux dengan tambalan paket terbaru yang Anda tentukan. Otomasi adalah alat dalam AWS Systems Manager. `AWS-UpdateLinuxAmi` runbook juga mengotomatiskan instalasi paket dan konfigurasi khusus situs tambahan. Anda dapat memperbarui berbagai distribusi Linux menggunakan panduan ini, termasuk, Red Hat Enterprise Linux (RHEL)Ubuntu Server, atau Amazon Linux. AMIs Untuk daftar lengkap versi Linux yang didukung, lihat [Prasyarat Patch Manager](patch-manager-prerequisites.md).

`AWS-UpdateLinuxAmi`Runbook memungkinkan Anda untuk mengotomatiskan tugas pemeliharaan gambar tanpa harus membuat runbook di JSON atau YAMAL. Anda dapat menggunakan `AWS-UpdateLinuxAmi` runbook untuk melakukan jenis tugas berikut.
+ Tingkatkan semua paket distribusi dan perangkat lunak Amazon di Amazon Linux,Red Hat Enterprise Linux, atau Ubuntu Server Amazon Machine Image (AMI). Ini adalah perilaku runbook default.
+ Instal AWS Systems Manager SSM Agent pada gambar yang ada untuk mengaktifkan alat Systems Manager, seperti menjalankan perintah jarak jauh menggunakan AWS Systems Manager Run Command atau pengumpulan inventaris perangkat lunak menggunakan Inventaris.
+ Instal paket perangkat lunak tambahan.

**Sebelum Anda mulai**  
Sebelum Anda mulai bekerja dengan runbook, konfigurasikan peran dan, secara opsional, EventBridge untuk Otomasi. Untuk informasi selengkapnya, lihat [Menyiapkan Otomatisasi](automation-setup.md). Panduan ini juga mengharuskan Anda menentukan nama profil instance AWS Identity and Access Management (IAM). Untuk informasi selengkapnya tentang membuat profil instans IAM, lihat [Mengonfigurasi izin instans yang diperlukan untuk Systems Manager](setup-instance-permissions.md).

`AWS-UpdateLinuxAmi` runbook menerima parameter masukan berikut.


****  

| Parameter | Jenis | Deskripsi | 
| --- | --- | --- | 
|  SourceAmiId  |  String  |  (Diperlukan) Sumber AMI ID.  | 
|  IamInstanceProfileName  |  String  |  (Wajib) Nama peran profil instans IAM yang Anda buat di [Konfigurasi izin instans yang diperlukan untuk Systems Manager](setup-instance-permissions.md). Peran profil instans memberikan izin otomatisasi untuk melakukan tindakan pada instans Anda, seperti menjalankan perintah atau memulai dan menghentikan layanan. Runbook hanya menggunakan nama peran profil instans. Jika Anda menentukan Amazon Resource Name (ARN), otomatisasi akan gagal.  | 
|  AutomationAssumeRole  |  String  |  (Wajib) Nama peran layanan IAM yang Anda buat di [Menyiapkan Otomatisasi](automation-setup.md). Peran layanan (juga disebut peran asumsi) memberikan izin Otomatisasi untuk menganggap IAM role Anda dan melakukan tindakan atas nama Anda. Sebagai contoh, peran layanan mengizinkan Otomatisasi untuk membuat baru AMI ketika menjalankan `aws:createImage` tindakan dalam runbook. Untuk parameter ini, ARN lengkap mesti ditentukan.  | 
|  TargetAmiName  |  String  |  (Opsional) Nama baru AMI setelah dibuat. Nama default adalah string yang dihasilkan sistem yang mencakup sumber AMI ID, serta waktu pembuatan dan tanggal.  | 
|  InstanceType  |  String  |  (Opsional) Jenis instans yang akan diluncurkan sebagai host ruang kerja. Jenis instans bervariasi menurut wilayah. Jenis default adalah t2.micro.  | 
|  PreUpdateScript  |  String  |  (Opsional) URL skrip untuk berjalan sebelum pembaruan diterapkan. Default (\$1"none\$1") adalah untuk tidak menjalankan skrip.  | 
|  PostUpdateScript  |  String  |  (Opsional) URL skrip yang dijalankan setelah menerapkan pembaruan paket. Default (\$1"none\$1") adalah untuk tidak menjalankan skrip.  | 
|  IncludePackages  |  String  |  (Opsional) Hanya perbarui paket dengan nama ini. Secara default (\$1"all\$1"), semua pembaruan yang tersedia diterapkan.  | 
|  ExcludePackages  |  String  |  (Opsional) Nama paket untuk menahan pembaruan, dalam semua kondisi. Secara default (\$1"none\$1"), tidak ada paket yang dikecualikan.  | 

**Langkah Otomatisasi**  
`AWS-UpdateLinuxAmi` runbook mencakup tindakan otomatisasi berikut, secara default.

**Langkah 1: launchInstance (`aws:runInstances` tindakan) **  
Langkah ini meluncurkan instans menggunakan data pengguna Amazon Elastic Compute Cloud (Amazon EC2) dan peran profil instans IAM. Userdata menginstal yang sesuaiSSM Agent, berdasarkan sistem operasi. Instalasi SSM Agent memungkinkan Anda untuk menggunakan alat Systems Manager sepertiRun Command,State Manager, dan Inventaris.

**Langkah 2: perbarui OSSoftware (`aws:runCommand`tindakan) **  
Langkah ini menjalankan perintah berikut pada instans yang diluncurkan:  
+ Unduh skrip pembaruan dari Amazon S3.
+ Menjalankan skrip pra-pembaruan opsional.
+ Memperbarui paket distribusi dan perangkat lunak Amazon.
+ Menjalankan skrip pasca-pembaruan opsional.
Log eksekusi disimpan dalam folder/tmp agar pengguna dapat melihat nanti.  
Jika Anda ingin meningkatkan paket tertentu, Anda dapat menyediakan daftar menggunakan `IncludePackages` parameter. Ketika disediakan, sistem mencoba untuk memperbarui paket ini saja dan dependensinya. Tidak ada pembaruan lain yang dilakukan. Secara default, bila tidak ada paket *penyertaan* yang ditentukan, program memperbarui semua paket yang tersedia.  
Jika Anda ingin mengecualikan peningkatan paket tertentu, Anda dapat menyediakan daftar menggunakan `ExcludePackages` parameter. Jika tersedia, paket ini tetap pada versi mereka saat ini, terlepas dari pilihan lain yang ditentukan. Secara default, bila tidak ada paket *penyertaan* yang ditentukan, tidak ada paket yang dikecualikan.

**Langkah 3: stopInstance (`aws:changeInstanceState` tindakan)**  
Langkah ini menghentikan instans yang diperbarui.

**Langkah 4: CreateImage (`aws:createImage` tindakan) **  
Langkah ini menciptakan AMI baru dengan nama deskriptif yang menghubungkannya ke ID sumber dan waktu pembuatan. Misalnya: “AMIDihasilkan oleh EC2 Automation on \$1\$1global:Date\$1time\$1\$1 from \$1\$1\$1SourceAmiId\$1” di mana DATE\$1TIME dan SourceID mewakili variabel Otomasi.

**Langkah 5: terminateInstance (`aws:changeInstanceState` tindakan) **  
Langkah ini membersihkan otomatisasi dengan mengakhiri instans berjalan.

**Output**  
Otomatisasi mengembalikan AMI ID baru sebagai output.

**catatan**  
Secara default, ketika Otomatisasi menjalankan `AWS-UpdateLinuxAmi` runbook, sistem menciptakan instans sementara dalam VPC default (172.30.0.0/16). Jika Anda menghapus VPC default, Anda akan menerima kesalahan berikut:  
`VPC not defined 400`  
Untuk mengatasi masalah ini, Anda harus membuat salinan `AWS-UpdateLinuxAmi` runbook dan menentukan ID subnet. Untuk informasi selengkapnya, lihat [VPC tidak didefinisikan 400](automation-troubleshooting.md#automation-trbl-common-vpc).

**Untuk membuat patch AMI menggunakan Otomatisasi (AWS Systems Manager)**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Pada panel navigasi, pilih **Otomatisasi**.

1. Pilih **Eksekusi otomatisasi**.

1. Di daftar **Dokumen Otomatisasi**, pilih `AWS-UpdateLinuxAmi`.

1. Di bagian **Detail dokumen**, verifikasi bahwa **Versi dokumen** diatur ke **Versi default saat waktu aktif**.

1. Pilih **Berikutnya**.

1. Dalam bagian **Mode Eksekusi**, pilih **Eksekusi sederhana**.

1. Di bagian **Parameter input**, masukkan informasi yang Anda kumpulkan di bagian **Sebelum Anda memulai**.

1. Pilih **Eksekusi**. Konsol menampilkan status eksekusi Otomatisasi.

Setelah otomatisasi selesai, luncurkan instans uji dari yang diperbarui AMI untuk memverifikasi perubahan.

**catatan**  
Jika setiap langkah dalam otomatisasi gagal, informasi tentang kegagalan tercantum pada halaman **Eksekusi Otomatisasi**. Otomatisasi dirancang untuk mengakhiri instans sementara setelah berhasil menyelesaikan semua tugas. Jika langkah gagal, sistem mungkin tidak mengakhiri instans. Jadi jika langkah gagal, akhiri instans sementara secara manual.

## Perbarui Linux AMI (AWS CLI)
<a name="update-patch-linux-ami-cli"></a>

Panduan AWS Systems Manager Otomasi ini menunjukkan cara menggunakan `AWS-UpdateLinuxAmi` runbook AWS Command Line Interface (AWS CLI) dan Systems Manager untuk secara otomatis menambal Linux Amazon Machine Image (AMI) dengan versi paket terbaru yang Anda tentukan. Otomasi adalah alat dalam AWS Systems Manager. `AWS-UpdateLinuxAmi` runbook juga mengotomatiskan instalasi paket dan konfigurasi khusus situs tambahan. Anda dapat memperbarui berbagai distribusi Linux menggunakan panduan ini, termasuk, Red Hat Enterprise Linux (RHEL)Ubuntu Server, atau Amazon Linux. AMIs Untuk daftar lengkap versi Linux yang didukung, lihat [Prasyarat Patch Manager](patch-manager-prerequisites.md).

`AWS-UpdateLinuxAmi`Runbook memungkinkan Anda untuk mengotomatiskan tugas pemeliharaan gambar tanpa harus membuat runbook di JSON atau YAMM. Anda dapat menggunakan `AWS-UpdateLinuxAmi` runbook untuk melakukan jenis tugas berikut.
+ Tingkatkan semua paket distribusi dan perangkat lunak Amazon di Amazon Linux,RHEL, atau Ubuntu Server Amazon Machine Image (AMI). Ini adalah perilaku runbook default.
+ Instal AWS Systems Manager SSM Agent pada gambar yang ada untuk mengaktifkan kemampuan Systems Manager, seperti menjalankan perintah jarak jauh menggunakan AWS Systems Manager Run Command atau pengumpulan inventaris perangkat lunak menggunakan Inventaris.
+ Instal paket perangkat lunak tambahan.

**Sebelum Anda mulai**  
Sebelum Anda mulai bekerja dengan runbook, konfigurasikan peran dan, secara opsional, EventBridge untuk Otomasi. Untuk informasi selengkapnya, lihat [Menyiapkan Otomatisasi](automation-setup.md). Panduan ini juga mengharuskan Anda menentukan nama profil instance AWS Identity and Access Management (IAM). Untuk informasi selengkapnya tentang membuat profil instans IAM, lihat [Mengonfigurasi izin instans yang diperlukan untuk Systems Manager](setup-instance-permissions.md).

`AWS-UpdateLinuxAmi` runbook menerima parameter masukan berikut.


****  

| Parameter | Jenis | Deskripsi | 
| --- | --- | --- | 
|  SourceAmiId  |  String  |  (Diperlukan) Sumber AMI ID. Anda dapat secara otomatis mereferensikan ID terbaru Amazon EC2 AMI untuk Linux dengan menggunakan parameter AWS Systems Manager Parameter Store *publik*. Untuk informasi selengkapnya, lihat [Kueri untuk Amazon Linux terbaru yang AMI IDs digunakan AWS Systems ManagerParameter Store](https://aws.amazon.com/blogs/compute/query-for-the-latest-amazon-linux-ami-ids-using-aws-systems-manager-parameter-store/).  | 
|  IamInstanceProfileName  |  String  |  (Wajib) Nama peran profil instans IAM yang Anda buat di [Konfigurasi izin instans yang diperlukan untuk Systems Manager](setup-instance-permissions.md). Peran profil instans memberikan izin otomatisasi untuk melakukan tindakan pada instans Anda, seperti menjalankan perintah atau memulai dan menghentikan layanan. Runbook hanya menggunakan nama peran profil instans.  | 
|  AutomationAssumeRole  |  String  |  (Wajib) Nama peran layanan IAM yang Anda buat di [Menyiapkan Otomatisasi](automation-setup.md). Peran layanan (juga disebut peran asumsi) memberikan izin Otomatisasi untuk menganggap IAM role Anda dan melakukan tindakan atas nama Anda. Sebagai contoh, peran layanan mengizinkan Otomatisasi untuk membuat baru AMI ketika menjalankan `aws:createImage` tindakan dalam runbook. Untuk parameter ini, ARN lengkap mesti ditentukan.  | 
|  TargetAmiName  |  String  |  (Opsional) Nama baru AMI setelah dibuat. Nama default adalah string yang dihasilkan sistem yang mencakup sumber AMI ID, serta waktu pembuatan dan tanggal.  | 
|  InstanceType  |  String  |  (Opsional) Jenis instans yang akan diluncurkan sebagai host ruang kerja. Jenis instans bervariaso menurut Wilayah. Jenis default adalah t2.micro.  | 
|  PreUpdateScript  |  String  |  (Opsional) URL skrip untuk berjalan sebelum pembaruan diterapkan. Default (\$1"none\$1") adalah untuk tidak menjalankan skrip.  | 
|  PostUpdateScript  |  String  |  (Opsional) URL skrip yang dijalankan setelah menerapkan pembaruan paket. Default (\$1"none\$1") adalah untuk tidak menjalankan skrip.  | 
|  IncludePackages  |  String  |  (Opsional) Hanya perbarui paket dengan nama ini. Secara default (\$1"all\$1"), semua pembaruan yang tersedia diterapkan.  | 
|  ExcludePackages  |  String  |  (Opsional) Nama paket untuk menahan pembaruan, dalam semua kondisi. Secara default (\$1"none\$1"), tidak ada paket yang dikecualikan.  | 

**Langkah Otomatisasi**  
`AWS-UpdateLinuxAmi` runbook mencakup beberapa langkah berikut, secara default.

**Langkah 1: launchInstance (`aws:runInstances` tindakan) **  
Langkah ini meluncurkan instance menggunakan data pengguna Amazon Elastic Compute Cloud EC2 (Amazon) dan peran profil instans IAM. Data pengguna menginstal Agen SSM yang sesuai, berdasarkan sistem operasi. Instalasi SSM Agent memungkinkan Anda untuk menggunakan alat Systems Manager sepertiRun Command,State Manager, dan Inventaris.

**Langkah 2: perbarui OSSoftware (`aws:runCommand`tindakan) **  
Langkah ini menjalankan perintah berikut pada instans yang diluncurkan:  
+ Unduh skrip pembaruan dari Amazon Simple Storage Service (Amazon S3).
+ Menjalankan skrip pra-pembaruan opsional.
+ Memperbarui paket distribusi dan perangkat lunak Amazon.
+ Menjalankan skrip pasca-pembaruan opsional.
Log eksekusi disimpan dalam folder/tmp agar pengguna dapat melihat nanti.  
Jika Anda ingin meningkatkan paket tertentu, Anda dapat menyediakan daftar menggunakan `IncludePackages` parameter. Ketika disediakan, sistem mencoba untuk memperbarui paket ini saja dan dependensinya. Tidak ada pembaruan lain yang dilakukan. Secara default, bila tidak ada paket *penyertaan* yang ditentukan, program memperbarui semua paket yang tersedia.  
Jika Anda ingin mengecualikan peningkatan paket tertentu, Anda dapat menyediakan daftar menggunakan `ExcludePackages` parameter. Jika tersedia, paket ini tetap pada versi mereka saat ini, terlepas dari pilihan lain yang ditentukan. Secara default, bila tidak ada paket *penyertaan* yang ditentukan, tidak ada paket yang dikecualikan.

**Langkah 3: stopInstance (`aws:changeInstanceState` tindakan)**  
Langkah ini menghentikan instans yang diperbarui.

**Langkah 4: CreateImage (`aws:createImage` tindakan) **  
Langkah ini menciptakan AMI baru dengan nama deskriptif yang menghubungkannya ke ID sumber dan waktu pembuatan. Misalnya: “AMI Dihasilkan oleh EC2 Otomasi di \$1\$1global:Date\$1time\$1\$1 from \$1\$1\$1SourceAmiId\$1” di mana DATE\$1TIME dan SourceID mewakili variabel Otomasi.

**Langkah 5: terminateInstance (`aws:changeInstanceState` tindakan) **  
Langkah ini membersihkan otomatisasi dengan mengakhiri instans berjalan.

**Output**  
Otomatisasi mengembalikan AMI ID baru sebagai output.

**catatan**  
Secara default, ketika Otomatisasi menjalankan `AWS-UpdateLinuxAmi` runbook, sistem menciptakan instans sementara dalam VPC default (172.30.0.0/16). Jika Anda menghapus VPC default, Anda akan menerima kesalahan berikut:  
`VPC not defined 400`  
Untuk mengatasi masalah ini, Anda harus membuat salinan `AWS-UpdateLinuxAmi` runbook dan menentukan ID subnet. Untuk informasi selengkapnya, lihat [VPC tidak didefinisikan 400](automation-troubleshooting.md#automation-trbl-common-vpc).

**Untuk membuat patch AMI menggunakan Otomatisasi**

1. Instal dan konfigurasikan AWS Command Line Interface (AWS CLI), jika Anda belum melakukannya.

   Untuk selengkapnya, lihat [Menginstal atau memperbarui versi terbaru AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

1. Jalankan perintah berikut untuk menjalankan `AWS-UpdateLinuxAmi` runbook. Ganti masing-masing *example resource placeholder* dengan informasi Anda sendiri.

   ```
   aws ssm start-automation-execution \
       --document-name "AWS-UpdateLinuxAmi" \
       --parameters \
       SourceAmiId=AMI ID, \
       IamInstanceProfileName=IAM instance profile, \
       AutomationAssumeRole='arn:aws:iam::{{global:ACCOUNT_ID}}:role/AutomationServiceRole'
   ```

   Perintah mengembalikan ID eksekusi. Salin ID ini ke clipboard. Anda akan menggunakan ID ini untuk melihat status otomatisasi.

   ```
   {
       "AutomationExecutionId": "automation execution ID"
   }
   ```

1. Untuk melihat otomatisasi menggunakan AWS CLI, jalankan perintah berikut:

   ```
   aws ssm describe-automation-executions
   ```

1. Untuk melihat detail tentang kemajuan otomatisasi, jalankan perintah berikut. Ganti *automation execution ID* dengan informasi Anda sendiri.

   ```
   aws ssm get-automation-execution --automation-execution-id automation execution ID
   ```

   Proses pembaruan dapat memakan waktu 30 menit atau lebih untuk diselesaikan.
**catatan**  
Anda juga dapat memantau status otomatisasi di konsol. Dalam daftar, pilih otomatisasi yang baru saja Anda jalankan dan pilih tab **Langkah**. Tab ini memperlihatkan kepada Anda status tindakan otomatisasi.

Setelah otomatisasi selesai, luncurkan instans uji dari yang diperbarui AMI untuk memverifikasi perubahan.

**catatan**  
Jika setiap langkah dalam otomatisasi gagal, informasi tentang kegagalan tercantum pada halaman **Eksekusi Otomatisasi**. Otomatisasi dirancang untuk mengakhiri instans sementara setelah berhasil menyelesaikan semua tugas. Jika langkah gagal, sistem mungkin tidak mengakhiri instans. Jadi jika langkah gagal, akhiri instans sementara secara manual.

# Perbarui a Windows Server AMI
<a name="automation-tutorial-update-patch-windows-ami"></a>

`AWS-UpdateWindowsAmi`Runbook memungkinkan Anda untuk mengotomatiskan tugas pemeliharaan gambar di Amazon Windows Amazon Machine Image (AMI) Anda tanpa harus membuat runbook di JSON atau YAMB. Runbook ini didukung untuk Windows Server 2008 R2 atau yang lebih baru. Anda dapat menggunakan `AWS-UpdateWindowsAmi` runbook untuk melakukan jenis tugas berikut.
+ Instal semua pembaruan Windows dan tingkatkan perangkat lunak Amazon (perilaku default).
+ Instal pembaruan Windows tertentu dan tingkatkan perangkat lunak Amazon.
+ Sesuaikan AMI menggunakan skrip Anda.

**Sebelum Anda memulai**  
Sebelum Anda mulai bekerja dengan runbook, [konfigurasikan peran untuk Otomatisasi](automation-setup-iam.md) guna menambahkan `iam:PassRole` kebijakan yang mereferensikan ARN profil instans yang ingin Anda berikan akses. Secara opsional, konfigurasikan Amazon EventBridge untuk Otomasi, alat di AWS Systems Manager. Untuk informasi selengkapnya, lihat [Menyiapkan Otomatisasi](automation-setup.md). Panduan ini juga mengharuskan Anda menentukan nama profil instance AWS Identity and Access Management (IAM). Untuk informasi selengkapnya tentang membuat profil instans IAM, lihat [Mengonfigurasi izin instans yang diperlukan untuk Systems Manager](setup-instance-permissions.md).

**catatan**  
Pembaruan AWS Systems Manager SSM Agent biasanya diluncurkan ke berbagai wilayah pada waktu yang berbeda. Saat Anda menyesuaikan atau memperbarui AMI, gunakan hanya sumber yang AMIs dipublikasikan untuk wilayah tempat Anda bekerja. Ini akan memastikan bahwa Anda bekerja dengan SSM Agent rilis terbaru untuk wilayah itu dan menghindari masalah kompatibilitas.

`AWS-UpdateWindowsAmi` runbook menerima parameter masukan berikut.


****  

| Parameter | Jenis | Deskripsi | 
| --- | --- | --- | 
|  SourceAmiId  |  String  |  (Diperlukan) Sumber AMI ID. Anda dapat secara otomatis mereferensikan AMI ID Windows Server terbaru dengan menggunakan parameter Parameter Store *publik* Systems Manager. Untuk informasi selengkapnya, lihat [Kueri untuk AMI IDs menggunakan Windows terbaru AWS Systems ManagerParameter Store](https://aws.amazon.com/blogs/mt/query-for-the-latest-windows-ami-using-systems-manager-parameter-store/).  | 
|  SubnetId  |  String  |  (Opsional) Subnet yang ingin Anda luncurkan instance sementara. Anda harus menentukan nilai untuk parameter ini jika Anda telah menghapus VPC default Anda.  | 
|  IamInstanceProfileName  |  String  |  (Wajib) Nama peran profil instans IAM yang Anda buat di [Konfigurasi izin instans yang diperlukan untuk Systems Manager](setup-instance-permissions.md). Peran profil instans memberikan izin otomatisasi untuk melakukan tindakan pada instans Anda, seperti menjalankan perintah atau memulai dan menghentikan layanan. Runbook hanya menggunakan nama peran profil instans.  | 
|  AutomationAssumeRole  |  String  |  (Wajib) Nama peran layanan IAM yang Anda buat di [Menyiapkan Otomatisasi](automation-setup.md). Peran layanan (juga disebut peran asumsi) memberikan izin Otomatisasi untuk menganggap IAM role Anda dan melakukan tindakan atas nama Anda. Sebagai contoh, peran layanan mengizinkan Otomatisasi untuk membuat baru AMI ketika menjalankan `aws:createImage` tindakan dalam runbook. Untuk parameter ini, ARN lengkap mesti ditentukan.  | 
|  TargetAmiName  |  String  |  (Opsional) Nama baru AMI setelah dibuat. Nama default adalah string yang dihasilkan sistem yang mencakup sumber AMI ID, serta waktu pembuatan dan tanggal.  | 
|  InstanceType  |  String  |  (Opsional) Jenis instans yang akan diluncurkan sebagai host ruang kerja. Jenis instans bervariasi menurut wilayah. Jenis default adalah t2.medium.  | 
|  PreUpdateScript  |  String  |  (Opsional) Skrip yang dijalankan sebelum memperbarui AMI. Masukkan skrip dalam runbook atau pada saat waktu aktif sebagai parameter.  | 
|  PostUpdateScript  |  String  |  (Opsional) Skrip yang akan dijalankan setelah memperbarui AMI. Masukkan skrip dalam runbook atau pada saat waktu aktif sebagai parameter.  | 
|  IncludeKbs  |  String  |  (Opsional) Tentukan satu atau beberapa artikel Pangkalan Pengetahuan Microsoft (KB) IDs yang akan disertakan. Anda dapat menginstal beberapa IDs menggunakan nilai yang dipisahkan koma. Format yang valid: KB9876543 atau 9876543.  | 
|  ExcludeKbs  |  String  |  (Opsional) Tentukan satu atau beberapa artikel Pangkalan Pengetahuan Microsoft (KB) IDs untuk dikecualikan. Anda dapat mengecualikan beberapa IDs menggunakan nilai yang dipisahkan koma. Format yang valid: KB9876543 atau 9876543.  | 
|  Kategori  |  String  |  (Opsional)Tentukan satu kategori pembaruan atau lebih. Anda dapat memfilter kategori menggunakan nilai yang dipisahkan koma. Opsi: Pembaruan Kritis, Pembaruan Keamanan, Pembaruan Definisi, Batal Pembaruan, Paket Layanan, Alat, Pembaruan, atau Driver. Format yang valid mencakup satu entri, misalnya: Pembaruan Kritis. Atau, Anda dapat menentukan daftar yang dipisahkan koma: Pembaruan Kritis,Pembaruan Keamanan,Pembaruan Definisi.  | 
|  SeverityLevels  |  String  |  (Opsional) Tentukan satu tingkat keparahan MSRC atau lebih yang terkait dengan pembaruan. Anda dapat memfilter tingkat keparahan menggunakan nilai yang dipisahkan koma. Pilihan: Kritis, Penting, Rendah, Sedang atau Tidak Ditentukan. Format yang valid mencakup satu entri, misalnya: Kritis. Atau, Anda dapat menentukan daftar yang dipisahkan koma: Kritis,Penting,Rendah.  | 

**Langkah Otomatisasi**  
`AWS-UpdateWindowsAmi` runbook mencakup beberapa langkah berikut, secara default.

**Langkah 1: launchInstance (`aws:runInstances` tindakan)**  
Langkah ini meluncurkan sebuah instans dengan peran profil instans IAM dari yang ditentukan `SourceAmiID`.

**Langkah 2: runPreUpdate Script (`aws:runCommand`tindakan)**  
Langkah ini memungkinkan Anda untuk menentukan skrip sebagai string yang berjalan sebelum pembaruan diinstal.

**Langkah 3: perbarui EC2 Config (tindakan) `aws:runCommand`**  
Langkah ini menggunakan `AWS-InstallPowerShellModule` runbook untuk mengunduh PowerShell modul AWS publik. Systems Manager memverifikasi integritas modul dengan menggunakan hash SHA-256. Systems Manager kemudian memeriksa sistem operasi untuk menentukan apakah akan memperbarui EC2 Config atau EC2 Launch. EC2Config berjalan pada Windows Server 2008 R2 melalui Windows Server 2012 R2. EC2Peluncuran berjalan pada Windows Server 2016.

**Langkah 4: perbarui SSMAgent (`aws:runCommand`tindakan)**  
Langkah ini diperbarui SSM Agent dengan menggunakan `AWS-UpdateSSMAgent` runbook.

**Langkah 5: perbarui AWSPVDriver (`aws:runCommand`tindakan)**  
Langkah ini memperbarui driver AWS PV dengan menggunakan `AWS-ConfigureAWSPackage` runbook.

**Langkah 6: updateAwsEna NetworkDriver (`aws:runCommand`tindakan)**  
Langkah ini memperbarui driver AWS ENA Network dengan menggunakan `AWS-ConfigureAWSPackage` runbook.

**Langkah 7: installWindowsUpdates (`aws:runCommand`tindakan) **  
Langkah ini menginstal pembaruan Windows dengan menggunakan `AWS-InstallWindowsUpdates` runbook. Secara default, Systems Manager mencari dan menginstal semua pembaruan yang hilang. Anda dapat mengubah perilaku default dengan menentukan salah satu parameter berikut: `IncludeKbs`, `ExcludeKbs`, `Categories`, atau `SeverityLevels`. 

**Langkah 8: runPostUpdate Script (`aws:runCommand`tindakan)**  
Langkah ini memungkinkan Anda untuk menentukan skrip sebagai string yang berjalan setelah pembaruan diinstal.

**Langkah 9: runSysprepGeneralize (`aws:runCommand`tindakan) **  
Langkah ini menggunakan `AWS-InstallPowerShellModule` runbook untuk mengunduh PowerShell modul AWS publik. Systems Manager memverifikasi integritas modul dengan menggunakan hash SHA-256. Systems Manager kemudian menjalankan sysprep menggunakan metode yang AWS didukung untuk EC2 Launch (Windows Server 2016) atau EC2 Config (Windows Server 2008 R2 hingga 2012 R2).

**Langkah 10: stopInstance (`aws:changeInstanceState` tindakan) **  
Langkah ini menghentikan instans yang diperbarui. 

**Langkah 11: CreateImage (`aws:createImage` tindakan) **  
Langkah ini menciptakan AMI baru dengan nama deskriptif yang menghubungkannya ke ID sumber dan waktu pembuatan. Misalnya: “AMI Dihasilkan oleh EC2 Automation on \$1\$1global:Date\$1time\$1\$1 from \$1\$1\$1SourceAmiId\$1” dimana DATE\$1TIME dan SourceID mewakili variabel Automation.

**Langkah 12: TerminateInstance (`aws:changeInstanceState`tindakan) **  
Langkah ini membersihkan otomatisasi dengan mengakhiri instans berjalan. 

**Output**  
Bagian ini memungkinkan Anda untuk menunjuk output dari berbagai langkah atau nilai parameter apa pun sebagai output Otomasi. Secara default, output adalah ID dari Windows yang diperbarui AMI yang diciptakan oleh otomatisasi.

**catatan**  
Secara default, ketika Otomatisasi menjalankan `AWS-UpdateWindowsAmi` runbook dan membuat instans sementara, sistem menggunakan VPC default (172.30.0.0/16). Jika Anda menghapus VPC default, Anda akan menerima kesalahan berikut:  
VPC tidak didefinisikan 400  
Untuk mengatasi masalah ini, Anda harus membuat salinan `AWS-UpdateWindowsAmi` runbook dan menentukan ID subnet. Untuk informasi selengkapnya, lihat [VPC tidak didefinisikan 400](automation-troubleshooting.md#automation-trbl-common-vpc).

**Untuk membuat Windows yang di-patch AMI dengan menggunakan Otomatisasi**

1. Instal dan konfigurasikan AWS Command Line Interface (AWS CLI), jika Anda belum melakukannya.

   Untuk selengkapnya, lihat [Menginstal atau memperbarui versi terbaru AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

1. Jalankan perintah berikut untuk menjalankan `AWS-UpdateWindowsAmi` runbook. Ganti masing-masing *example resource placeholder* dengan informasi Anda sendiri. Contoh perintah di bawah ini menggunakan Amazon EC2 terbaru AMI untuk meminimalkan jumlah tambalan yang perlu diterapkan. Jika Anda menjalankan perintah ini lebih dari sekali, Anda harus menentukan nilai unik untuk `targetAMIname`. AMI nama harus unik.

   ```
   aws ssm start-automation-execution \
       --document-name="AWS-UpdateWindowsAmi" \
       --parameters SourceAmiId='AMI ID',IamInstanceProfileName='IAM instance profile',AutomationAssumeRole='arn:aws:iam::{{global:ACCOUNT_ID}}:role/AutomationServiceRole'
   ```

   Perintah mengembalikan ID eksekusi. Salin ID ini ke clipboard. Anda akan menggunakan ID ini untuk melihat status otomatisasi.

   ```
   {
       "AutomationExecutionId": "automation execution ID"
   }
   ```

1. Untuk melihat otomatisasi menggunakan AWS CLI, jalankan perintah berikut:

   ```
   aws ssm describe-automation-executions
   ```

1. Untuk melihat detail tentang kemajuan otomatisasi, jalankan perintah berikut.

   ```
   aws ssm get-automation-execution 
       --automation-execution-id automation execution ID
   ```

**catatan**  
Tergantung pada jumlah patch yang diterapkan, untuk menyelesaikan proses patch Windows berjalan dalam otomatisasi sampel ini membutuhkan waktu 30 menit atau lebih.

# Perbarui emas AMI menggunakan Otomasi, AWS Lambda, dan Parameter Store
<a name="automation-tutorial-update-patch-golden-ami"></a>

Contoh berikut menggunakan model di mana organisasi memelihara dan secara berkala menambal milik mereka sendiri AMIs daripada membangun dari Amazon Elastic Compute Cloud (Amazon EC2). AMIs

Prosedur berikut menunjukkan cara menerapkan tambalan sistem operasi (OS) secara otomatis ke tambalan AMI yang sudah dianggap paling up-to-date atau *terbaru*AMI. Dalam contoh, nilai default parameter `SourceAmiId` ditentukan oleh AWS Systems Manager Parameter Store parameter yang disebut`latestAmi`. Nilai diperbarui `latestAmi` oleh AWS Lambda fungsi yang dipanggil pada akhir otomatisasi. Sebagai hasil dari proses Otomasi ini, waktu dan upaya yang dihabiskan untuk menambal AMIs diminimalkan karena penambalan selalu diterapkan secara maksimal. up-to-date AMI Parameter Storedan otomatisasi adalah alat AWS Systems Manager.

**Sebelum Anda mulai**  
Konfigurasikan peran Otomasi dan, secara opsional, Amazon EventBridge untuk Otomasi. Untuk informasi selengkapnya, lihat [Menyiapkan Otomatisasi](automation-setup.md).

**Topics**
+ [Tugas 1: Buat parameter di Systems Manager Parameter Store](#create-parameter-ami)
+ [Tugas 2: Buat peran IAM untuk AWS Lambda](#create-lambda-role)
+ [Tugas 3: Buat AWS Lambda fungsi](#create-lambda-function)
+ [Tugas 4: Buat runbook dan tambal AMI](#create-custom-ami-update-runbook)

## Tugas 1: Buat parameter di Systems Manager Parameter Store
<a name="create-parameter-ami"></a>

Buat parameter string Parameter Store yang menggunakan informasi berikut:
+ **Nama**: `latestAmi`.
+ **Nilai**: Sebuah AMI ID. Misalnya:` ami-188d6e0e`.

Untuk informasi tentang cara membuat parameter Parameter Store string, lihat[Membuat Parameter Store parameter di Systems Manager](sysman-paramstore-su-create.md).

## Tugas 2: Buat peran IAM untuk AWS Lambda
<a name="create-lambda-role"></a>

Gunakan prosedur berikut untuk membuat peran layanan IAM untuk AWS Lambda. Kebijakan ini memberikan izin Lambda untuk memperbarui nilai `latestAmi` parameter menggunakan fungsi Lambda dan Systems Manager.

**Untuk membuat peran layanan IAM untuk Lambda**

1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Pada panel navigasi, pilih **Kebijakan**, lalu pilih **Buat kebijakan**.

1. Pilih tab **JSON**.

1. Ganti konten default dengan kebijakan berikut. Ganti masing-masing *example resource placeholder* dengan informasi Anda sendiri.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "logs:CreateLogGroup",
               "Resource": "arn:aws:logs:us-east-1:111122223333:*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "logs:CreateLogStream",
                   "logs:PutLogEvents"
               ],
               "Resource": [
                   "arn:aws:logs:us-east-1:111122223333:log-group:/aws/lambda/function name:*"
               ]
           }
       ]
   }
   ```

------

1. Pilih **Berikutnya: Tanda**.

1. (Opsional) Tambahkan satu atau beberapa pasangan nilai kunci tag untuk mengatur, melacak, atau mengontrol akses kebijakan ini. 

1. Pilih **Berikutnya: Tinjauan**.

1. Pada halaman **Tinjau kebijakan**, untuk **Nama**, masukkan nama untuk kebijakan inline, seperti **amiLambda**.

1. Pilih **Buat kebijakan**.

1. Ulangi langkah 2 dan 3.

1. Tempel kebijakan berikut. Ganti masing-masing *example resource placeholder* dengan informasi Anda sendiri.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "ssm:PutParameter",
               "Resource": "arn:aws:ssm:us-east-1:111122223333:parameter/latestAmi"
           },
           {
               "Effect": "Allow",
               "Action": "ssm:DescribeParameters",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Pilih **Berikutnya: Tanda**.

1. (Opsional) Tambahkan satu atau beberapa pasangan nilai kunci tag untuk mengatur, melacak, atau mengontrol akses kebijakan ini. 

1. Pilih **Berikutnya: Tinjauan**.

1. Pada halaman **Tinjau kebijakan**, untuk **Nama**, masukkan nama untuk kebijakan inline, seperti **amiParameter**.

1. Pilih **Buat kebijakan**.

1. Di panel navigasi, pilih **Peran**, lalu pilih **Buat peran**.

1. **Segera di bawah **Kasus penggunaan**, pilih **Lambda**, lalu pilih Berikutnya.**

1. Pada halaman **Tambahkan izin**, gunakan bidang **Pencarian** untuk menemukan dua kebijakan yang Anda buat sebelumnya.

1. Pilih kotak centang di samping kebijakan, lalu pilih **Berikutnya**.

1. Untuk **Nama peran**, masukkan nama untuk peran baru Anda, seperti **lambda-ssm-role** atau nama lain yang Anda inginkan. 
**catatan**  
Karena berbagai entitas mungkin mereferensikan peran, Anda tidak dapat mengubah nama peran setelah dibuat.

1. (Opsional) Tambahkan satu atau beberapa pasangan nilai kunci tag untuk mengatur, melacak, atau mengontrol akses untuk peran ini, lalu pilih **Buat** peran.

## Tugas 3: Buat AWS Lambda fungsi
<a name="create-lambda-function"></a>

Gunakan prosedur berikut untuk membuat fungsi Lambda yang secara otomatis memperbarui nilai `latestAmi` parameter.

**Untuk membuat fungsi Lambda**

1. Masuk ke Konsol Manajemen AWS dan buka AWS Lambda konsol di [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Pilih **Buat fungsi**.

1. Pilih halaman **Buat fungsi**, pilih **Penulis dari scratch**.

1. Untuk **Nama fungsi**, masukkan **Automation-UpdateSsmParam**.

1. Untuk **Runtime**, pilih **Python 3.11**.

1. **Untuk **Arsitektur**, pilih jenis prosesor komputer untuk Lambda untuk digunakan untuk menjalankan fungsi, **x86\$164** atau arm64,** 

1. Di bagian **Izin, perluas** **Ubah peran eksekusi default**.

1. Pilih **Gunakan peran yang sudah ada**, dan kemudian pilih peran layanan untuk Lambda yang Anda buat di Tugas 2.

1. Pilih **Buat fungsi**.

1. Di area **sumber Kode**, pada tab **lambda\$1function**, hapus kode yang telah diisi sebelumnya di bidang, lalu tempel contoh kode berikut.

   ```
   from __future__ import print_function
   
   import json
   import boto3
   
   print('Loading function')
   
   
   #Updates an SSM parameter
   #Expects parameterName, parameterValue
   def lambda_handler(event, context):
       print("Received event: " + json.dumps(event, indent=2))
   
       # get SSM client
       client = boto3.client('ssm')
   
       #confirm  parameter exists before updating it
       response = client.describe_parameters(
          Filters=[
             {
              'Key': 'Name',
              'Values': [ event['parameterName'] ]
             },
           ]
       )
   
       if not response['Parameters']:
           print('No such parameter')
           return 'SSM parameter not found.'
   
       #if parameter has a Description field, update it PLUS the Value
       if 'Description' in response['Parameters'][0]:
           description = response['Parameters'][0]['Description']
           
           response = client.put_parameter(
             Name=event['parameterName'],
             Value=event['parameterValue'],
             Description=description,
             Type='String',
             Overwrite=True
           )
       
       #otherwise just update Value
       else:
           response = client.put_parameter(
             Name=event['parameterName'],
             Value=event['parameterValue'],
             Type='String',
             Overwrite=True
           )
           
       responseString = 'Updated parameter %s with value %s.' % (event['parameterName'], event['parameterValue'])
           
       return responseString
   ```

1. Pilih **File, Simpan**.

1. Untuk menguji fungsi Lambda, dari menu **Test**, pilih **Configure test event**.

1. Untuk **Nama peristiwa**, masukkan nama untuk peristiwa pengujian, seperti **MyTestEvent**.

1. Ganti teks yang ada dengan JSON berikut. Ganti *AMI ID* dengan informasi Anda sendiri untuk mengatur nilai `latestAmi` parameter Anda.

   ```
   {
      "parameterName":"latestAmi",
      "parameterValue":"AMI ID"
   }
   ```

1. Pilih **Simpan**.

1. Pilih **Uji** untuk menguji fungsi. Pada tab **Hasil eksekusi**, status harus dilaporkan sebagai **Berhasil,** bersama dengan detail lain tentang pembaruan.

## Tugas 4: Buat runbook dan tambal AMI
<a name="create-custom-ami-update-runbook"></a>

Gunakan prosedur berikut untuk membuat dan menjalankan runbook yang mem-patch AMI yang Anda tentukan untuk parameter **latestAmi**. Setelah otomatisasi selesai, nilai **LatEstami** diperbarui dengan ID yang baru ditambal. AMI Otomatisasi berikutnya menggunakan AMI yang dibuat oleh eksekusi sebelumnya.

**Untuk membuat dan menjalankan runbook**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Dokumen**.

1. Untuk **Buat dokumen**, pilih **Otomasi**.

1. Untuk **Nama**, masukkan **UpdateMyLatestWindowsAmi**.

1. Pilih tab **Editor**, dan kemudian pilih **Edit**.

1. Pilih **OK** saat diminta.

1. Di bidang **editor Dokumen**, ganti konten default dengan konten runbook sampel YAMAL berikut.

   ```
   ---
   description: Systems Manager Automation Demo - Patch AMI and Update ASG
   schemaVersion: '0.3'
   assumeRole: '{{ AutomationAssumeRole }}'
   parameters:
     AutomationAssumeRole:
       type: String
       description: '(Required) The ARN of the role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to execute this document.'
       default: ''
     SourceAMI:
       type: String
       description: The ID of the AMI you want to patch.
       default: '{{ ssm:latestAmi }}'
     SubnetId:
       type: String
       description: The ID of the subnet where the instance from the SourceAMI parameter is launched.
     SecurityGroupIds:
       type: StringList
       description: The IDs of the security groups to associate with the instance that's launched from the SourceAMI parameter.
     NewAMI:
       type: String
       description: The name of of newly patched AMI.
       default: 'patchedAMI-{{global:DATE_TIME}}'
     InstanceProfile:
       type: String
       description: The name of the IAM instance profile you want the source instance to use.
     SnapshotId:
       type: String
       description: (Optional) The snapshot ID to use to retrieve a patch baseline snapshot.
       default: ''
     RebootOption:
       type: String
       description: '(Optional) Reboot behavior after a patch Install operation. If you choose NoReboot and patches are installed, the instance is marked as non-compliant until a subsequent reboot and scan.'
       allowedValues:
         - NoReboot
         - RebootIfNeeded
       default: RebootIfNeeded
     Operation:
       type: String
       description: (Optional) The update or configuration to perform on the instance. The system checks if patches specified in the patch baseline are installed on the instance. The install operation installs patches missing from the baseline.
       allowedValues:
         - Install
         - Scan
       default: Install
   mainSteps:
     - name: startInstances
       action: 'aws:runInstances'
       timeoutSeconds: 1200
       maxAttempts: 1
       onFailure: Abort
       inputs:
         ImageId: '{{ SourceAMI }}'
         InstanceType: m5.large
         MinInstanceCount: 1
         MaxInstanceCount: 1
         IamInstanceProfileName: '{{ InstanceProfile }}'
         SubnetId: '{{ SubnetId }}'
         SecurityGroupIds: '{{ SecurityGroupIds }}'
     - name: verifyInstanceManaged
       action: 'aws:waitForAwsResourceProperty'
       timeoutSeconds: 600
       inputs:
         Service: ssm
         Api: DescribeInstanceInformation
         InstanceInformationFilterList:
           - key: InstanceIds
             valueSet:
               - '{{ startInstances.InstanceIds }}'
         PropertySelector: '$.InstanceInformationList[0].PingStatus'
         DesiredValues:
           - Online
       onFailure: 'step:terminateInstance'
     - name: installPatches
       action: 'aws:runCommand'
       timeoutSeconds: 7200
       onFailure: Abort
       inputs:
         DocumentName: AWS-RunPatchBaseline
         Parameters:
           SnapshotId: '{{SnapshotId}}'
           RebootOption: '{{RebootOption}}'
           Operation: '{{Operation}}'
         InstanceIds:
           - '{{ startInstances.InstanceIds }}'
     - name: stopInstance
       action: 'aws:changeInstanceState'
       maxAttempts: 1
       onFailure: Continue
       inputs:
         InstanceIds:
           - '{{ startInstances.InstanceIds }}'
         DesiredState: stopped
     - name: createImage
       action: 'aws:createImage'
       maxAttempts: 1
       onFailure: Continue
       inputs:
         InstanceId: '{{ startInstances.InstanceIds }}'
         ImageName: '{{ NewAMI }}'
         NoReboot: false
         ImageDescription: Patched AMI created by Automation
     - name: terminateInstance
       action: 'aws:changeInstanceState'
       maxAttempts: 1
       onFailure: Continue
       inputs:
         InstanceIds:
           - '{{ startInstances.InstanceIds }}'
         DesiredState: terminated
     - name: updateSsmParam
       action: aws:invokeLambdaFunction
       timeoutSeconds: 1200
       maxAttempts: 1
       onFailure: Abort
       inputs:
           FunctionName: Automation-UpdateSsmParam
           Payload: '{"parameterName":"latestAmi", "parameterValue":"{{createImage.ImageId}}"}'
   outputs:
   - createImage.ImageId
   ```

1. Pilih **Buat otomatisasi**.

1. Di panel navigasi, pilih **Otomatisasi**, lalu pilih **Eksekusi otomatisasi**.

1. Di halaman **Pilih dokumen**, pilih tab **Dimiliki oleh saya**.

1. Cari **UpdateMyLatestWindowsAmi**runbook, dan pilih tombol di **UpdateMyLatestWindowsAmi**kartu.

1. Pilih **Berikutnya**.

1. Pilih **Eksekusi sederhana**.

1. Tentukan nilai untuk parameter input.

1. Pilih **Eksekusi**.

1. Setelah otomatisasi selesai, pilih **Parameter Store**di panel navigasi dan konfirmasikan bahwa nilai baru untuk `latestAmi` cocok dengan nilai yang dikembalikan oleh otomatisasi. Anda juga dapat memverifikasi AMI ID baru cocok dengan output Otomasi di **AMIs**bagian konsol Amazon EC2.

# Memperbarui AMIs menggunakan Otomasi dan Jenkins
<a name="automation-tutorial-update-patch-ami-jenkins-integration"></a>

Jika organisasi Anda menggunakan Jenkins perangkat lunak dalam CI/CD pipeline, Anda dapat menambahkan Automation sebagai langkah pasca-build untuk pra-instal rilis aplikasi ke Amazon Machine Images ()AMIs. Otomasi adalah alat dalam AWS Systems Manager. Anda juga dapat menggunakan fitur Jenkins penjadwalan untuk memanggil Otomasi dan membuat irama patching sistem operasi (OS) Anda sendiri.

Contoh di bawah ini menunjukkan cara memanggil Otomasi dari Jenkins server yang berjalan baik lokal atau di Amazon Elastic Compute Cloud (Amazon EC2). Untuk otentikasi, Jenkins server menggunakan AWS kredensional berdasarkan kebijakan IAM yang Anda buat dalam contoh dan lampirkan ke profil instans Anda.

**catatan**  
Pastikan untuk mengikuti praktik terbaik Jenkins keamanan saat mengonfigurasi instans Anda.

**Sebelum Anda mulai**  
Selesaikan tugas-tugas berikut sebelum Anda mengonfigurasi Otomasi denganJenkins:
+ Selesaikan [Perbarui emas AMI menggunakan Otomasi, AWS Lambda, dan Parameter Store](automation-tutorial-update-patch-golden-ami.md) contoh. Contoh berikut menggunakan **UpdateMyLatestWindowsAmi**runbook yang dibuat dalam contoh itu.
+ Konfigurasikan IAM role untuk Otomatisasi. Systems Manager memerlukan peran profil instans dan peran layanan ARN untuk memproses otomatisasi. Untuk informasi selengkapnya, lihat [Menyiapkan Otomatisasi](automation-setup.md).

**Untuk membuat kebijakan IAM untuk server Jenkins**

1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Pada panel navigasi, pilih **Kebijakan**, lalu pilih **Buat kebijakan**.

1. Pilih tab **JSON**.

1. Ganti masing-masing *example resource placeholder* dengan informasi Anda sendiri.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "ssm:StartAutomationExecution",
               "Resource": [
                   "arn:aws:ssm:us-east-1:111122223333:document/UpdateMyLatestWindowsAmi",
                   "arn:aws:ssm:us-east-1:111122223333:automation-execution/*"
               ]
           }
       ]
   }
   ```

------

1. Pilih **Tinjau kebijakan**.

1. Pada halaman **Tinjau kebijakan**, untuk **Nama**, masukkan nama untuk kebijakan inline, seperti **JenkinsPolicy**.

1. Pilih **Buat kebijakan**.

1. Di panel navigasi, pilih **Peran**.

1. Pilih profil instance yang dilampirkan ke Jenkins server Anda.

1. Di tab **Izin**, pilih **Tambahkan izin** dan pilih **Lampirkan** kebijakan.

1. Di bagian **Kebijakan izin lainnya**, masukkan nama kebijakan yang Anda buat di langkah sebelumnya. Misalnya, **JenkinsPolicy**.

1. Pilih kotak centang di samping kebijakan Anda, lalu pilih **Lampirkan kebijakan**.

Gunakan prosedur berikut untuk mengkonfigurasi AWS CLI pada Jenkins server Anda.

**Untuk mengkonfigurasi Jenkins server untuk Otomasi**

1. Connect ke Jenkins server Anda pada port 8080 menggunakan browser pilihan Anda untuk mengakses antarmuka manajemen.

1. Masukkan kata sandi yang ditemukan di `/var/lib/jenkins/secrets/initialAdminPassword`. Untuk menampilkan kata sandi Anda, jalankan perintah berikut.

   ```
   sudo cat /var/lib/jenkins/secrets/initialAdminPassword
   ```

1. Skrip Jenkins instalasi mengarahkan Anda ke Jenkins halaman **Customize**. Pilih **Pasang plugin yang disarankan**.

1. **Setelah instalasi selesai, pilih **Administrator Credentials, pilih **Save Credentials****, dan kemudian pilih Start Using. Jenkins**

1. Di panel navigasi kiri, pilih **KelolaJenkins, lalu pilih Kelola** **Plugin**.

1. Pilih tab **Tersedia**, dan kemudian masukkan **Amazon EC2 plugin**.

1. Pilih kotak centang untuk **Amazon EC2 plugin**, dan kemudian pilih **Instal tanpa memulai ulang**.

1. Ketika instalasi selesai, pilih **Kembali ke halaman atas**.

1. Pilih **Kelola Jenkins**, lalu pilih **Kelola node dan awan**.

1. Di bagian **Konfigurasi Awan**, pilih **Tambahkan cloud baru**, lalu pilih **Amazon EC2**.

1. Masukkan informasi Anda di bidang yang tersisa. Pastikan Anda memilih opsi **Gunakan profil instans EC2 untuk mendapatkan kredensi**.

Gunakan prosedur berikut untuk mengonfigurasi Jenkins proyek Anda untuk menjalankan Otomasi.

**Untuk mengonfigurasi Jenkins server Anda untuk memanggil Otomasi**

1. Buka Jenkins konsol di browser web.

1. Pilih proyek yang ingin Anda konfigurasikan dengan Otomatisasi, lalu pilih **Konfigurasi**.

1. Pada tab **Membangun**tab, pilih**Tambah Langkah Bangun**.

1. Pilih **Eksekusi shell** atau **Eksekusi perintah batch Windows**(tergantung pada sistem operasi Anda).

1. Di bidang **Command**, jalankan AWS CLI perintah seperti berikut ini. Ganti masing-masing *example resource placeholder* dengan informasi Anda sendiri.

   ```
   aws ssm start-automation-execution \
           --document-name runbook name \
           --region Wilayah AWS of your source AMI \
           --parameters runbook parameters
   ```

   Perintah contoh berikut menggunakan **UpdateMyLatestWindowsAmi**runbook dan Parameter Systems Manager yang `latestAmi` dibuat di[Perbarui emas AMI menggunakan Otomasi, AWS Lambda, dan Parameter Store](automation-tutorial-update-patch-golden-ami.md).

   ```
   aws ssm start-automation-execution \
           --document-name UpdateMyLatestWindowsAmi \
           --parameters \
               "sourceAMIid='{{ssm:latestAmi}}'"
           --region region
   ```

   DalamJenkins, perintah terlihat seperti contoh di screenshot berikut.  
![\[Contoh perintah dalam Jenkins perangkat lunak.\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/images/sysman-ami-jenkins2.png)

1. Dalam Jenkins proyek, pilih **Build Now**. Jenkinsmengembalikan output mirip dengan contoh berikut.  
![\[Contoh output perintah dalam Jenkins perangkat lunak.\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/images/sysman-ami-jenkins.png)

# Memperbarui AMIs untuk grup Auto Scaling
<a name="automation-tutorial-update-patch-windows-ami-autoscaling"></a>

Contoh berikut memperbarui grup Auto Scaling dengan yang baru ditambal. AMI Pendekatan ini memastikan bahwa gambar baru yang dibuat secara otomatis tersedia untuk lingkungan komputasi yang berbeda yang menggunakan grup Auto Scaling.

Langkah terakhir dari otomatisasi dalam contoh ini menggunakan fungsi Python untuk membuat template peluncuran baru yang menggunakan yang baru ditambal. AMI Kemudian grup Auto Scaling diperbarui untuk menggunakan template peluncuran baru. Dalam jenis skenario Auto Scaling, pengguna dapat mengakhiri instans yang ada di grup Auto Scaling untuk memaksa instans baru memulai yang menggunakan gambar baru. Atau, pengguna dapat menunggu dan mengizinkan peristiwa scale-in atau scale-out untuk meluncurkan instans baru secara alami.

**Sebelum Anda memulai**  
Selesaikan tugas-tugas berikut sebelum Anda mulai contoh ini.
+ Konfigurasikan peran IAM untuk Otomasi, alat di AWS Systems Manager. Systems Manager memerlukan peran profil instans dan peran layanan ARN untuk memproses otomatisasi. Untuk informasi selengkapnya, lihat [Menyiapkan Otomatisasi](automation-setup.md).

## Buat runbook **Patch AMIAnd UpdateASG**
<a name="create-autoscaling-update-runbook"></a>

**Gunakan prosedur berikut untuk membuat runbook **Patch AMIAnd UpdateASG** yang menambal yang AMI Anda tentukan untuk parameter SourceAmi.** Runbook juga memperbarui grup Auto Scaling untuk menggunakan yang terbaru, ditambal. AMI

**Untuk membuat dan menjalankan runbook**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Dokumen**.

1. **Di menu tarik-turun **Buat dokumen**, pilih Otomasi.**

1. Di bidang **Nama**, masukkan **PatchAMIAndUpdateASG**.

1. Pilih tab **Editor**, dan pilih **Edit**.

1. Pilih **OK** saat diminta, dan hapus konten di bidang **Editor dokumen**.

1. Di bidang **Editor dokumen**, tempel konten runbook sampel YAMG berikut.

   ```
   ---
   description: Systems Manager Automation Demo - Patch AMI and Update ASG
   schemaVersion: '0.3'
   assumeRole: '{{ AutomationAssumeRole }}'
   parameters:
     AutomationAssumeRole:
       type: String
       description: '(Required) The ARN of the role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to execute this document.'
       default: ''
     SourceAMI:
       type: String
       description: '(Required) The ID of the AMI you want to patch.'
     SubnetId:
       type: String
       description: '(Required) The ID of the subnet where the instance from the SourceAMI parameter is launched.'
     SecurityGroupIds:
       type: StringList
       description: '(Required) The IDs of the security groups to associate with the instance launched from the SourceAMI parameter.'
     NewAMI:
       type: String
       description: '(Optional) The name of of newly patched AMI.'
       default: 'patchedAMI-{{global:DATE_TIME}}'
     TargetASG:
       type: String
       description: '(Required) The name of the Auto Scaling group you want to update.'
     InstanceProfile:
       type: String
       description: '(Required) The name of the IAM instance profile you want the source instance to use.'
     SnapshotId:
       type: String
       description: (Optional) The snapshot ID to use to retrieve a patch baseline snapshot.
       default: ''
     RebootOption:
       type: String
       description: '(Optional) Reboot behavior after a patch Install operation. If you choose NoReboot and patches are installed, the instance is marked as non-compliant until a subsequent reboot and scan.'
       allowedValues:
         - NoReboot
         - RebootIfNeeded
       default: RebootIfNeeded
     Operation:
       type: String
       description: (Optional) The update or configuration to perform on the instance. The system checks if patches specified in the patch baseline are installed on the instance. The install operation installs patches missing from the baseline.
       allowedValues:
         - Install
         - Scan
       default: Install
   mainSteps:
     - name: startInstances
       action: 'aws:runInstances'
       timeoutSeconds: 1200
       maxAttempts: 1
       onFailure: Abort
       inputs:
         ImageId: '{{ SourceAMI }}'
         InstanceType: m5.large
         MinInstanceCount: 1
         MaxInstanceCount: 1
         IamInstanceProfileName: '{{ InstanceProfile }}'
         SubnetId: '{{ SubnetId }}'
         SecurityGroupIds: '{{ SecurityGroupIds }}'
     - name: verifyInstanceManaged
       action: 'aws:waitForAwsResourceProperty'
       timeoutSeconds: 600
       inputs:
         Service: ssm
         Api: DescribeInstanceInformation
         InstanceInformationFilterList:
           - key: InstanceIds
             valueSet:
               - '{{ startInstances.InstanceIds }}'
         PropertySelector: '$.InstanceInformationList[0].PingStatus'
         DesiredValues:
           - Online
       onFailure: 'step:terminateInstance'
     - name: installPatches
       action: 'aws:runCommand'
       timeoutSeconds: 7200
       onFailure: Abort
       inputs:
         DocumentName: AWS-RunPatchBaseline
         Parameters:
           SnapshotId: '{{SnapshotId}}'
           RebootOption: '{{RebootOption}}'
           Operation: '{{Operation}}'
         InstanceIds:
           - '{{ startInstances.InstanceIds }}'
     - name: stopInstance
       action: 'aws:changeInstanceState'
       maxAttempts: 1
       onFailure: Continue
       inputs:
         InstanceIds:
           - '{{ startInstances.InstanceIds }}'
         DesiredState: stopped
     - name: createImage
       action: 'aws:createImage'
       maxAttempts: 1
       onFailure: Continue
       inputs:
         InstanceId: '{{ startInstances.InstanceIds }}'
         ImageName: '{{ NewAMI }}'
         NoReboot: false
         ImageDescription: Patched AMI created by Automation
     - name: terminateInstance
       action: 'aws:changeInstanceState'
       maxAttempts: 1
       onFailure: Continue
       inputs:
         InstanceIds:
           - '{{ startInstances.InstanceIds }}'
         DesiredState: terminated
     - name: updateASG
       action: 'aws:executeScript'
       timeoutSeconds: 300
       maxAttempts: 1
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: update_asg
         InputPayload:
           TargetASG: '{{TargetASG}}'
           NewAMI: '{{createImage.ImageId}}'
         Script: |-
           from __future__ import print_function
           import datetime
           import json
           import time
           import boto3
   
           # create auto scaling and ec2 client
           asg = boto3.client('autoscaling')
           ec2 = boto3.client('ec2')
   
           def update_asg(event, context):
               print("Received event: " + json.dumps(event, indent=2))
   
               target_asg = event['TargetASG']
               new_ami = event['NewAMI']
   
               # get object for the ASG we're going to update, filter by name of target ASG
               asg_query = asg.describe_auto_scaling_groups(AutoScalingGroupNames=[target_asg])
               if 'AutoScalingGroups' not in asg_query or not asg_query['AutoScalingGroups']:
                   return 'No ASG found matching the value you specified.'
   
               # gets details of an instance from the ASG that we'll use to model the new launch template after
               source_instance_id = asg_query.get('AutoScalingGroups')[0]['Instances'][0]['InstanceId']
               instance_properties = ec2.describe_instances(
                   InstanceIds=[source_instance_id]
               )
               source_instance = instance_properties['Reservations'][0]['Instances'][0]
   
               # create list of security group IDs
               security_groups = []
               for group in source_instance['SecurityGroups']:
                   security_groups.append(group['GroupId'])
   
               # create a list of dictionary objects for block device mappings
               mappings = []
               for block in source_instance['BlockDeviceMappings']:
                   volume_query = ec2.describe_volumes(
                       VolumeIds=[block['Ebs']['VolumeId']]
                   )
                   volume_details = volume_query['Volumes']
                   device_name = block['DeviceName']
                   volume_size = volume_details[0]['Size']
                   volume_type = volume_details[0]['VolumeType']
                   device = {'DeviceName': device_name, 'Ebs': {'VolumeSize': volume_size, 'VolumeType': volume_type}}
                   mappings.append(device)
   
               # create new launch template using details returned from instance in the ASG and specify the newly patched AMI
               time_stamp = time.time()
               time_stamp_string = datetime.datetime.fromtimestamp(time_stamp).strftime('%m-%d-%Y_%H-%M-%S')
               new_template_name = f'{new_ami}_{time_stamp_string}'
               try:
                   ec2.create_launch_template(
                       LaunchTemplateName=new_template_name,
                       LaunchTemplateData={
                           'BlockDeviceMappings': mappings,
                           'ImageId': new_ami,
                           'InstanceType': source_instance['InstanceType'],
                           'IamInstanceProfile': {
                               'Arn': source_instance['IamInstanceProfile']['Arn']
                           },
                           'KeyName': source_instance['KeyName'],
                           'SecurityGroupIds': security_groups
                       }
                   )
               except Exception as e:
                   return f'Exception caught: {str(e)}'
               else:
                   # update ASG to use new launch template
                   asg.update_auto_scaling_group(
                       AutoScalingGroupName=target_asg,
                       LaunchTemplate={
                           'LaunchTemplateName': new_template_name
                       }
                   )
                   return f'Updated ASG {target_asg} with new launch template {new_template_name} which uses AMI {new_ami}.'
   outputs:
   - createImage.ImageId
   ```

1. Pilih **Buat otomatisasi**.

1. Di panel navigasi, pilih **Otomatisasi**, lalu pilih **Eksekusi otomatisasi**.

1. Di halaman **Pilih dokumen**, pilih tab **Dimiliki oleh saya**.

1. **Cari runbook **Patch AMIAnd UpdateASG**, dan pilih tombol di kartu Patch UpdateASG. AMIAnd**

1. Pilih **Berikutnya**.

1. Pilih **Eksekusi sederhana**.

1. Tentukan nilai untuk parameter input. Pastikan `SubnetId` dan `SecurityGroupIds` Anda menentukan mengizinkan akses ke titik akhir Systems Manager publik, atau titik akhir antarmuka Anda untuk Systems Manager.

1. Pilih **Eksekusi**.

1. **Setelah otomatisasi selesai, di konsol Amazon EC2, pilih **Auto Scaling**, lalu pilih Luncurkan Template.** Verifikasi bahwa Anda melihat template peluncuran baru, dan menggunakan yang baruAMI.

1. Pilih **Auto Scaling**, lalu pilih **Grup Auto Scaling**. Verifikasi bahwa grup Auto Scaling menggunakan template peluncuran baru.

1. Akhiri satu atau beberapa instans dalam grup Auto Scaling Anda. Instans penggantian akan diluncurkan menggunakan yang baruAMI.

# Menggunakan AWS Dukungan runbook swalayan
<a name="automation-tutorial-support-runbooks"></a>

Bagian ini menjelaskan cara menggunakan beberapa otomatisasi swalayan yang dibuat oleh tim. AWS Dukungan Otomatisasi ini membantu Anda mengelola AWS sumber daya Anda.

**Support Alur kerja Otomatisasi**  
Support Automation Workflows (SAW) adalah runbook otomatisasi yang ditulis dan dikelola oleh tim. AWS Dukungan Runbook ini membantu Anda memecahkan masalah umum dengan AWS sumber daya Anda, secara proaktif memantau dan mengidentifikasi masalah jaringan, mengumpulkan dan menganalisis log, dan banyak lagi.

Runbook SAW menggunakan **`AWSSupport`**awalan. Misalnya, [https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-awssupport-activatewindowswithamazonlicense.html](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-awssupport-activatewindowswithamazonlicense.html).

Selain itu, pelanggan dengan Business Support\$1 dan paket AWS Support yang lebih tinggi juga memiliki akses ke runbook yang menggunakan awalan. **`AWSPremiumSupport`** Misalnya, [https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-awspremiumsupport-troubleshootEC2diskusage.html](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-awspremiumsupport-troubleshootEC2diskusage.html).

Untuk mempelajari lebih lanjut AWS Dukungan, lihat [Memulai dengan AWS Dukungan](https://docs.aws.amazon.com/awssupport/latest/user/getting-started.html).

**Topics**
+ [Jalankan alat EC2 Penyelamatan pada instance yang tidak dapat dijangkau](automation-ec2rescue.md)
+ [Reset password dan kunci SSH pada Instans EC2](automation-ec2reset.md)

# Jalankan alat EC2 Penyelamatan pada instance yang tidak dapat dijangkau
<a name="automation-ec2rescue"></a>

EC2Rescue dapat membantu Anda mendiagnosis dan memecahkan masalah di instans Amazon Elastic Compute Cloud (Amazon EC2) untuk Linux dan Windows Server. Anda dapat menjalankan alat secara manual, seperti yang dijelaskan dalam [Menggunakan EC2 Penyelamatan untuk Server Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Linux-Server-EC2Rescue.html) dan [Menggunakan EC2 Penyelamatan untuk Windows Server](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/Windows-Server-EC2Rescue.html). Atau, Anda dapat menjalankan alat secara otomatis dengan menggunakan Systems Manager Automation dan **`AWSSupport-ExecuteEC2Rescue`**runbook. Otomasi adalah alat dalam AWS Systems Manager. **`AWSSupport-ExecuteEC2Rescue`**Runbook dirancang untuk melakukan kombinasi tindakan, CloudFormation tindakan, dan fungsi Lambda Systems Manager yang mengotomatiskan langkah-langkah yang biasanya diperlukan untuk menggunakan Rescue. EC2 

Anda dapat menggunakan **`AWSSupport-ExecuteEC2Rescue`**runbook untuk memecahkan masalah dan berpotensi memulihkan berbagai jenis masalah sistem operasi (OS). Instans dengan volume root terenkripsi tidak didukung. Lihat topik berikut untuk daftar lengkap:

**Windows**: Lihat *Tindakan Penyelamatan* dalam [Menggunakan EC2 Penyelamatan untuk Windows Server dengan Baris Perintah](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2rw-cli.html#ec2rw-rescue).

**Linux** dan **macOS**: Beberapa modul EC2 Rescue for Linux mendeteksi dan mencoba memperbaiki masalah. Untuk informasi selengkapnya, lihat [https://github.com/awslabs/aws-ec2rescue-linux/tree/master/docs](https://github.com/awslabs/aws-ec2rescue-linux/tree/master/docs)dokumentasi untuk setiap modul diGitHub.

## Cara kerjanya
<a name="automation-ec2rescue-how"></a>

Pemecahan masalah instans dengan otomatisasi dan **`AWSSupport-ExecuteEC2Rescue`** runbook bekerja sebagai berikut:
+ Anda menentukan ID instans yang tidak dapat dijangkau dan memulai runbook.
+ Sistem menciptakan VPC sementara, dan kemudian menjalankan serangkaian fungsi Lambda untuk mengonfigurasi VPC.
+ Sistem mengidentifikasi subnet untuk VPC sementara Anda di Availability Zone yang sama dengan instans asli Anda.
+ Sistem meluncurkan instans pembantu berkemampuan SSM sementara.
+ Sistem mengentikan instans asli Anda, dan membuat cadangan. Selanjutanya, sistem akan melampirkan volume akar asli untuk instans pembantu.
+ Sistem ini menggunakan Run Command untuk menjalankan EC2 Rescue pada instance helper. EC2Rescue mengidentifikasi dan mencoba memperbaiki masalah pada volume root asli yang terlampir. Setelah selesai, EC2 Rescue memasang kembali volume root ke instance aslinya.
+ Sistem memulai ulang instans asli Anda, dan mengakhiri instans sementara. Sistem ini juga menghentikan VPC sementara dan fungsi Lambda yang dibuat pada permulaan otomatisasi.

## Sebelum Anda memulai
<a name="automation-ec2rescue-begin"></a>

Sebelum Anda menjalankan otomatisasi berikut, lakukan solusi berikut:
+ Salin ID instans dari instans yang tidak terjangkau. Anda akan menentukan ID ini dalam prosedur.
+ Opsional, kumpulkan ID subnet di zona ketersediaan yang sama sebagai instans yang dapat dijangkau. Instance EC2 Rescue akan dibuat di subnet ini. Jika Anda tidak menentukan subnet, maka Automation membuat VPC sementara baru di Anda. Akun AWS Verifikasi bahwa Anda Akun AWS memiliki setidaknya satu VPC yang tersedia. Secara default, Anda dapat membuat lima VPCs di Wilayah. Jika Anda sudah membuat lima VPCs di Wilayah, otomatisasi gagal tanpa membuat perubahan pada instans Anda. Untuk informasi selengkapnya tentang kuota Amazon VPC, lihat [VPC dan Subnet](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-vpcs-subnets) di *Panduan Pengguna Amazon VPC*.
+ Secara opsional, Anda dapat membuat dan menentukan peran AWS Identity and Access Management (IAM) untuk Otomasi. Jika Anda tidak menentukan peran ini, Otomatisasi beroperasi dalam konteks pengguna yang dipanggil otomatisasi.

### Memberikan `AWSSupport-EC2Rescue` izin untuk melakukan tindakan pada instans Anda
<a name="automation-ec2rescue-access"></a>

EC2Penyelamatan memerlukan izin untuk melakukan serangkaian tindakan pada instans Anda selama otomatisasi. Tindakan ini meminta layanan AWS Lambda, IAM, dan Amazon EC2 untuk mencoba memperbaiki masalah dengan instans Anda dengan aman dan aman. Jika Anda memiliki izin tingkat Administrator di dan/atau Akun AWS VPC, Anda mungkin dapat menjalankan otomatisasi tanpa mengonfigurasi izin, seperti yang dijelaskan di bagian ini. Jika Anda tidak memiliki izin tingkat administrator, maka Anda atau administrator harus mengonfigurasi izin dengan menggunakan salah satu opsi berikut.
+ [Memberikan izin menggunakan kebijakan IAM](#automation-ec2rescue-access-iam)
+ [Memberikan izin dengan menggunakan template CloudFormation](#automation-ec2rescue-access-cfn)

#### Memberikan izin menggunakan kebijakan IAM
<a name="automation-ec2rescue-access-iam"></a>

Anda dapat melampirkan kebijakan IAM berikut ke pengguna, grup, atau peran Anda sebagai kebijakan inline; atau, Anda dapat membuat kebijakan terkelola IAM baru dan melampirkannya ke pengguna, grup, atau peran Anda. Untuk informasi selengkapnya tentang menambahkan kebijakan sebaris ke pengguna, grup, atau peran Anda, lihat [Bekerja Dengan Kebijakan Sebaris](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_inline-using.html). Untuk informasi lebih lanjut tentang membuat kebijakan terkelola baru, lihat [Bekerja Dengan Kebijakan Terkelola](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-using.html).

**catatan**  
Jika Anda membuat kebijakan terkelola IAM baru, Anda juga harus melampirkan kebijakan terkelola **SSMAutomationPeran Amazon** agar instans Anda dapat berkomunikasi dengan Systems Manager API.

**Kebijakan IAM untuk AWSSupport-EC 2Rescue**

Ganti *account ID* dengan informasi Anda sendiri.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "lambda:InvokeFunction",
                "lambda:DeleteFunction",
                "lambda:GetFunction"
            ],
            "Resource": "arn:aws:lambda:*:111122223333:function:AWSSupport-EC2Rescue-*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": [
                "arn:aws:s3:::awssupport-ssm.*/*.template",
                "arn:aws:s3:::awssupport-ssm.*/*.zip"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "iam:CreateRole",
                "iam:CreateInstanceProfile",
                "iam:GetRole",
                "iam:GetInstanceProfile",
                "iam:PutRolePolicy",
                "iam:DetachRolePolicy",
                "iam:AttachRolePolicy",
                "iam:PassRole",
                "iam:AddRoleToInstanceProfile",
                "iam:RemoveRoleFromInstanceProfile",
                "iam:DeleteRole",
                "iam:DeleteRolePolicy",
                "iam:DeleteInstanceProfile"
            ],
            "Resource": [
                "arn:aws:iam::111122223333:role/AWSSupport-EC2Rescue-*",
                "arn:aws:iam::111122223333:instance-profile/AWSSupport-EC2Rescue-*"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "lambda:CreateFunction",
                "ec2:CreateVpc",
                "ec2:ModifyVpcAttribute",
                "ec2:DeleteVpc",
                "ec2:CreateInternetGateway",
                "ec2:AttachInternetGateway",
                "ec2:DetachInternetGateway",
                "ec2:DeleteInternetGateway",
                "ec2:CreateSubnet",
                "ec2:DeleteSubnet",
                "ec2:CreateRoute",
                "ec2:DeleteRoute",
                "ec2:CreateRouteTable",
                "ec2:AssociateRouteTable",
                "ec2:DisassociateRouteTable",
                "ec2:DeleteRouteTable",
                "ec2:CreateVpcEndpoint",
                "ec2:DeleteVpcEndpoints",
                "ec2:ModifyVpcEndpoint",
                "ec2:Describe*",
                "autoscaling:DescribeAutoScalingInstances"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}
```

------

#### Memberikan izin dengan menggunakan template CloudFormation
<a name="automation-ec2rescue-access-cfn"></a>

CloudFormation mengotomatiskan proses pembuatan peran dan kebijakan IAM dengan menggunakan templat yang telah dikonfigurasi sebelumnya. Gunakan prosedur berikut untuk membuat peran dan kebijakan IAM yang diperlukan untuk Otomasi EC2 Penyelamatan dengan menggunakan CloudFormation.

**Untuk membuat peran dan kebijakan IAM yang diperlukan untuk Penyelamatan EC2**

1. Unduh [https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/AWSSupport-EC2RescueRole.zip](https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/AWSSupport-EC2RescueRole.zip) dan ekstrak `AWSSupport-EC2RescueRole.json` file ke direktori pada mesin lokal Anda.

1. Jika Anda Akun AWS berada di partisi khusus, edit template untuk mengubah nilai ARN ke yang untuk partisi Anda.

   Misalnya, untuk Wilayah Cina, ubah semua kasus `arn:aws` ke `arn:aws-cn`.

1. Masuk ke Konsol Manajemen AWS dan buka CloudFormation konsol di [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Pilih **Buat tumpukan**, **Dengan sumber daya baru (standar)**.

1. Pada halaman **Buat tumpukan**, untuk **Prasyarat - Siapkan templat**, pilih **Templat sudah siap**.

1. Untuk **Tentukan templat**, pilih **Unggah file templat**.

1. Pilih **Pilih file**, lalu telusuri ke dan pilih `AWSSupport-EC2RescueRole.json` file dari direktori tempat Anda mengekstraknya.

1. Pilih **Berikutnya**.

1. Pada halaman **Tentukan detail tumpukan**, untuk bidang **Nama tumpukan**, masukkan nama untuk mengidentifikasi tumpukan ini, dan kemudian pilih **Berikutnya**.

1. (Opsional) Di area **Tag**, terapkan satu atau beberapa name/value pasangan kunci tag ke tumpukan.

   Tag adalah metadata opsional yang Anda tetapkan ke sumber daya. Tanda memungkinkan Anda untuk mengategorikan sumber daya dengan berbagai cara, seperti berdasarkan tujuan, pemilik, atau lingkungan. Misalnya, Anda mungkin ingin menandai tumpukan untuk mengidentifikasi jenis tugas yang dijalankannya, jenis target atau sumber daya lainnya, dan lingkungan tempat ia dijalankan.

1. Pilih **Berikutnya**

1. Pada halaman **Ulasan**, tinjau detail tumpukan, lalu gulir ke bawah dan pilih opsi **Saya akui yang CloudFormation mungkin membuat sumber daya IAM**.

1. Pilih **Buat tumpukan**.

   CloudFormation menunjukkan status **CREATE\$1IN\$1PROGRESS selama beberapa menit**. Status berubah menjadi **CREATE\$1COMPLETE** setelah tumpukan dibuat. Anda juga dapat memilih ikon refresh untuk memeriksa status proses pembuatan.

1. Di daftar **Tumpukan**, pilih tombol pilihan tumpukan yang baru saja Anda buat, dan kemudian pilih kotak tab **Output**.

1. Catat **Nilai**. Itu adalah ARN dari. AssumeRole Anda menentukan ARN ini ketika menjalankan otomatisasi dalam prosedur berikutnya, [Menjalankan Otomatisasi](#automation-ec2rescue-executing). 

## Menjalankan Otomatisasi
<a name="automation-ec2rescue-executing"></a>

**penting**  
Otomatisasi berikut menghentikan instans yang tidak dapat dijangkau. Menghentikan contoh dapat mengakibatkan hilangnya data pada volume penyimpanan instans terlampir (jika ada). Menghentikan instans juga dapat menyebabkan IP publik berubah, jika tidak ada Elastic IP terkait.

**Untuk menjalankan `AWSSupport-ExecuteEC2Rescue` Otomatisasi**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Pada panel navigasi, pilih **Otomatisasi**.

1. Pilih **Eksekusi otomatisasi**.

1. Di bagian **Dokumen otomatisasi**, pilih **Dimiliki oleh Amazon** dari daftar.

1. Dalam daftar runbook, pilih tombol di kartu untuk `AWSSupport-ExecuteEC2Rescue`, lalu pilih **Berikutnya**.

1. Pada halaman **Eksekusi dokumen otomatisasi,** pilih **Eksekusi sederhana**.

1. Di bagian **Detail dokumen** verifikasi bahwa **Versi dokumen diatur** ke versi default tertinggi. Misalnya, **\$1DEFAULT** atau **3 (default)**.

1. Di bagian **Parameter input**, tentukan parameter berikut: 

   1. Untuk **UnreachableInstanceId**, tentukan ID dari instance yang tidak dapat dijangkau. 

   1. (Opsional) Untuk **EC2RescueInstanceType**, tentukan jenis instance untuk instance EC2 Rescue. Nilai instans default adalah `t2.medium`.

   1. Untuk **AutomationAssumeRole**, jika Anda membuat peran untuk Otomasi ini dengan menggunakan CloudFormation prosedur yang dijelaskan sebelumnya dalam topik ini, lalu pilih ARN dari AssumeRole yang Anda buat di CloudFormation konsol.

   1. (Opsional) Untuk **LogDestination**, tentukan bucket S3 jika Anda ingin mengumpulkan log tingkat sistem operasi saat memecahkan masalah instance Anda. Log secara otomatis diunggah ke bucket yang ditentukan.

   1. Untuk **SubnetId**, tentukan subnet di VPC yang ada di zona ketersediaan yang sama dengan instance yang tidak dapat dijangkau. Secara default, Systems Manager menciptakan VPC baru, tetapi Anda dapat menentukan subnet di VPC yang ada jika Anda ingin.
**catatan**  
Jika Anda tidak melihat opsi untuk menentukan bucket atau ID subnet, verifikasi bahwa Anda menggunakan versi **Default** terbaru dari runbook.

1. (Opsional) Di area **Tag**, terapkan satu atau beberapa name/value pasangan kunci tag untuk membantu mengidentifikasi otomatisasi, misalnya`Key=Purpose,Value=EC2Rescue`.

1. Pilih **Eksekusi**.

Runbook membuat cadangan AMI sebagai bagian dari otomatisasi. Semua sumber daya lain yang dibuat oleh otomatisasi dihapus secara otomatis, tetapi AMI ini tetap ada di akun Anda. AMI Dinamai menggunakan konvensi berikut:

Backup AMI: AWSSupport-EC 2Rescue: *UnreachableInstanceId*

Anda dapat menemukan ini AMI di konsol Amazon EC2 dengan mencari ID eksekusi Otomatisasi.

# Reset password dan kunci SSH pada Instans EC2
<a name="automation-ec2reset"></a>

Anda dapat menggunakan `AWSSupport-ResetAccess` runbook untuk mengaktifkan kembali pembuatan kata sandi Administrator lokal secara otomatis di instans Amazon Elastic Compute Cloud (Amazon EC2) Windows Server untuk dan untuk menghasilkan kunci SSH baru pada instans EC2 untuk Linux. `AWSSupport-ResetAccess`Runbook dirancang untuk melakukan kombinasi AWS Systems Manager tindakan, AWS CloudFormation tindakan, dan AWS Lambda fungsi yang mengotomatiskan langkah-langkah yang biasanya diperlukan untuk mengatur ulang kata sandi administrator lokal.

Anda dapat menggunakan Otomasi, alat di AWS Systems Manager, dengan `AWSSupport-ResetAccess` runbook untuk memecahkan masalah berikut:

**Windows**

*Anda kehilangan key pair EC2*: Untuk mengatasi masalah ini, Anda dapat menggunakan **AWSSupport-ResetAccess**runbook untuk membuat sandi yang diaktifkan AMI dari instans Anda saat ini, meluncurkan instance baru dari AMI, dan memilih key pair yang Anda miliki.

*Anda kehilangan kata sandi Administrator lokal*: Untuk mengatasi masalah ini, Anda dapat menggunakan `AWSSupport-ResetAccess` runbook untuk menghasilkan kata sandi baru yang dapat Anda dekripsi dengan pasangan kunci EC2 saat ini.

**Linux**

*Anda kehilangan key pair EC2 Anda, atau Anda mengonfigurasi akses SSH ke instance dengan kunci yang hilang*: Untuk mengatasi masalah ini, Anda dapat menggunakan `AWSSupport-ResetAccess` runbook untuk membuat kunci SSH baru untuk instans Anda saat ini, yang memungkinkan Anda untuk terhubung ke instance lagi.

**catatan**  
Jika instans EC2 Anda Windows Server dikonfigurasi untuk Systems Manager, Anda juga dapat mengatur ulang kata sandi Administrator lokal Anda dengan menggunakan EC2 Rescue dan AWS Systems Manager Run Command. Untuk informasi selengkapnya, lihat [Menggunakan EC2 Rescue untuk Windows Server dengan Systems Manager Run Command](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2rw-ssm.html) di *Panduan Pengguna Amazon EC2*.

**Informasi terkait**  
[Connect ke instans Linux Anda dari Windows menggunakan PuTTY](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html) di Panduan Pengguna *Amazon EC2*

## Cara kerjanya
<a name="automation-ec2reset-how"></a>

Pemecahan masalah instans dengan otomatisasi dan `AWSSupport-ResetAccess` runbook bekerja sebagai berikut:
+ Anda menentukan ID instans yang tidak dapat dijangkau dan menjalankan runbook.
+ Sistem menciptakan VPC sementara, dan kemudian menjalankan serangkaian fungsi Lambda untuk mengonfigurasi VPC.
+ Sistem mengidentifikasi subnet untuk VPC sementara Anda di Availability Zone yang sama dengan instans asli Anda.
+ Sistem meluncurkan instans pembantu berkemampuan SSM sementara.
+ Sistem mengentikan instans asli Anda, dan membuat cadangan. Selanjutanya, sistem akan melampirkan volume akar asli untuk instans pembantu.
+ Sistem ini menggunakan Run Command untuk menjalankan EC2 Rescue pada instance helper. Di Windows, EC2 Rescue memungkinkan pembuatan kata sandi untuk Administrator lokal dengan menggunakan EC2 Config atau EC2 Launch pada volume root asli yang terlampir. Di Linux, EC2 Rescue menghasilkan dan menyuntikkan kunci SSH baru dan menyimpan kunci privat, dienkripsi, di. Parameter Store Setelah selesai, EC2 Rescue memasang kembali volume root ke instance aslinya.
+ Sistem membuat Amazon Machine Image (AMI) baru dari instance Anda, sekarang pembuatan kata sandi diaktifkan. Anda dapat menggunakan ini AMI untuk membuat instans EC2 baru, dan mengasosiasikan pasangan kunci baru jika diperlukan.
+ Sistem memulai ulang instans asli Anda, dan mengakhiri instans sementara. Sistem ini juga menghentikan VPC sementara dan fungsi Lambda yang dibuat pada permulaan otomatisasi.
+ **Windows**: Instans Anda menghasilkan kata sandi baru yang kodenya dapat Anda pecahkan dari konsol Amazon EC2 menggunakan pasangan kunci saat ditugaskan untuk instans.

  **Linux**: Anda dapat SSH ke instance dengan menggunakan kunci SSH yang disimpan di Systems Manager Parameter Store sebagai **/ec2rl/openssh/ *instance ID* /key**.

## Sebelum Anda mulai
<a name="automation-ec2reset-begin"></a>

Sebelum Anda menjalankan otomatisasi berikut, lakukan solusi berikut:
+ Salin ID instans tempat Anda ingin menyetel ulang kata sandi Administrator. Anda akan menentukan ID ini dalam prosedur.
+ Opsional, kumpulkan ID subnet di zona ketersediaan yang sama sebagai instans yang dapat dijangkau. Instance EC2 Rescue akan dibuat di subnet ini. Jika Anda tidak menentukan subnet, maka Automation membuat VPC sementara baru di Anda. Akun AWS Verifikasi bahwa Anda Akun AWS memiliki setidaknya satu VPC yang tersedia. Secara default, Anda dapat membuat lima VPCs di Wilayah. Jika Anda sudah membuat lima VPCs di Wilayah, otomatisasi gagal tanpa membuat perubahan pada instans Anda. Untuk informasi selengkapnya tentang kuota Amazon VPC, lihat [VPC dan Subnet](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-vpcs-subnets) di *Panduan Pengguna Amazon VPC*.
+ Secara opsional, Anda dapat membuat dan menentukan peran AWS Identity and Access Management (IAM) untuk Otomasi. Jika Anda tidak menentukan peran ini, Otomatisasi beroperasi dalam konteks pengguna yang dipanggil otomatisasi.

### Memberikan izin AWSSupport-EC 2Rescue untuk melakukan tindakan pada instans Anda
<a name="automation-ec2reset-access"></a>

EC2Penyelamatan memerlukan izin untuk melakukan serangkaian tindakan pada instans Anda selama otomatisasi. Tindakan ini meminta layanan AWS Lambda, IAM, dan Amazon EC2 untuk mencoba memperbaiki masalah dengan instans Anda dengan aman dan aman. Jika Anda memiliki izin tingkat Administrator di dan/atau Akun AWS VPC, Anda mungkin dapat menjalankan otomatisasi tanpa mengonfigurasi izin, seperti yang dijelaskan di bagian ini. Jika Anda tidak memiliki izin tingkat administrator, maka Anda atau administrator harus mengonfigurasi izin dengan menggunakan salah satu opsi berikut.
+ [Memberikan izin menggunakan kebijakan IAM](#automation-ec2reset-access-iam)
+ [Memberikan izin dengan menggunakan template CloudFormation](#automation-ec2reset-access-cfn)

#### Memberikan izin menggunakan kebijakan IAM
<a name="automation-ec2reset-access-iam"></a>

Anda dapat melampirkan kebijakan IAM berikut ke pengguna, grup, atau peran Anda sebagai kebijakan inline; atau, Anda dapat membuat kebijakan terkelola IAM baru dan melampirkannya ke pengguna, grup, atau peran Anda. Untuk informasi selengkapnya tentang menambahkan kebijakan sebaris ke pengguna, grup, atau peran Anda, lihat [Bekerja Dengan Kebijakan Sebaris](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_inline-using.html). Untuk informasi lebih lanjut tentang membuat kebijakan terkelola baru, lihat [Bekerja Dengan Kebijakan Terkelola](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-using.html).

**catatan**  
Jika Anda membuat kebijakan terkelola IAM baru, Anda juga harus melampirkan kebijakan terkelola **SSMAutomationPeran Amazon** agar instans Anda dapat berkomunikasi dengan Systems Manager API.

**Kebijakan IAM untuk `AWSSupport-ResetAccess`**

Ganti *account ID* dengan informasi Anda sendiri.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "lambda:InvokeFunction",
                "lambda:DeleteFunction",
                "lambda:GetFunction"
            ],
            "Resource": "arn:aws:lambda:*:111122223333:function:AWSSupport-EC2Rescue-*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": [
                "arn:aws:s3:::awssupport-ssm.*/*.template",
                "arn:aws:s3:::awssupport-ssm.*/*.zip"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "iam:CreateRole",
                "iam:CreateInstanceProfile",
                "iam:GetRole",
                "iam:GetInstanceProfile",
                "iam:PutRolePolicy",
                "iam:DetachRolePolicy",
                "iam:AttachRolePolicy",
                "iam:PassRole",
                "iam:AddRoleToInstanceProfile",
                "iam:RemoveRoleFromInstanceProfile",
                "iam:DeleteRole",
                "iam:DeleteRolePolicy",
                "iam:DeleteInstanceProfile"
            ],
            "Resource": [
                "arn:aws:iam::111122223333:role/AWSSupport-EC2Rescue-*",
                "arn:aws:iam::111122223333:instance-profile/AWSSupport-EC2Rescue-*"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "lambda:CreateFunction",
                "ec2:CreateVpc",
                "ec2:ModifyVpcAttribute",
                "ec2:DeleteVpc",
                "ec2:CreateInternetGateway",
                "ec2:AttachInternetGateway",
                "ec2:DetachInternetGateway",
                "ec2:DeleteInternetGateway",
                "ec2:CreateSubnet",
                "ec2:DeleteSubnet",
                "ec2:CreateRoute",
                "ec2:DeleteRoute",
                "ec2:CreateRouteTable",
                "ec2:AssociateRouteTable",
                "ec2:DisassociateRouteTable",
                "ec2:DeleteRouteTable",
                "ec2:CreateVpcEndpoint",
                "ec2:DeleteVpcEndpoints",
                "ec2:ModifyVpcEndpoint",
                "ec2:Describe*"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}
```

------

#### Memberikan izin dengan menggunakan template CloudFormation
<a name="automation-ec2reset-access-cfn"></a>

CloudFormation mengotomatiskan proses pembuatan peran dan kebijakan IAM dengan menggunakan templat yang telah dikonfigurasi sebelumnya. Gunakan prosedur berikut untuk membuat peran dan kebijakan IAM yang diperlukan untuk Otomasi EC2 Penyelamatan dengan menggunakan CloudFormation.

**Untuk membuat peran dan kebijakan IAM yang diperlukan untuk Penyelamatan EC2**

1. Unduh [https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/AWSSupport-EC2RescueRole.zip](https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/AWSSupport-EC2RescueRole.zip) dan ekstrak `AWSSupport-EC2RescueRole.json` file ke direktori pada mesin lokal Anda.

1. Jika Anda Akun AWS berada di partisi khusus, edit template untuk mengubah nilai ARN ke yang untuk partisi Anda.

   Misalnya, untuk Wilayah Cina, ubah semua kasus `arn:aws` ke `arn:aws-cn`.

1. Masuk ke Konsol Manajemen AWS dan buka CloudFormation konsol di [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Pilih **Buat tumpukan**, **Dengan sumber daya baru (standar)**.

1. Pada halaman **Buat tumpukan**, untuk **Prasyarat - Siapkan templat**, pilih **Templat sudah siap**.

1. Untuk **Tentukan templat**, pilih **Unggah file templat**.

1. Pilih **Pilih file**, lalu telusuri ke dan pilih `AWSSupport-EC2RescueRole.json` file dari direktori tempat Anda mengekstraknya.

1. Pilih **Berikutnya**.

1. Pada halaman **Tentukan detail tumpukan**, untuk bidang **Nama tumpukan**, masukkan nama untuk mengidentifikasi tumpukan ini, dan kemudian pilih **Berikutnya**.

1. (Opsional) Di area **Tag**, terapkan satu atau beberapa name/value pasangan kunci tag ke tumpukan.

   Tag adalah metadata opsional yang Anda tetapkan ke sumber daya. Tanda memungkinkan Anda untuk mengategorikan sumber daya dengan berbagai cara, seperti berdasarkan tujuan, pemilik, atau lingkungan. Misalnya, Anda mungkin ingin menandai tumpukan untuk mengidentifikasi jenis tugas yang dijalankannya, jenis target atau sumber daya lainnya, dan lingkungan tempat ia dijalankan.

1. Pilih **Berikutnya**

1. Pada halaman **Ulasan**, tinjau detail tumpukan, lalu gulir ke bawah dan pilih opsi **Saya akui yang CloudFormation mungkin membuat sumber daya IAM**.

1. CloudFormation menunjukkan status **CREATE\$1IN\$1PROGRESS selama beberapa menit**. Status berubah menjadi **CREATE\$1COMPLETE** setelah tumpukan dibuat. Anda juga dapat memilih ikon refresh untuk memeriksa status proses pembuatan.

1. Dalam daftar tumpukan, pilih opsi di samping tumpukan yang baru saja Anda buat, lalu pilih tab **Output**.

1. Salin **Nilai**. Itu adalah ARN dari. AssumeRole Anda akan menentukan ARN ini ketika menjalankan otomatisasi dalam prosedur berikutnya. 

## Menjalankan Otomatisasi
<a name="automation-ec2reset-executing"></a>

Prosedur berikut menjelaskan cara menjalankan `AWSSupport-ResetAccess` runbook dengan menggunakan AWS Systems Manager konsol.

**penting**  
Otomatisasi berikut menghentikan instans. Menghentikan contoh dapat mengakibatkan hilangnya data pada volume penyimpanan instans terlampir (jika ada). Menghentikan instans juga dapat menyebabkan IP publik berubah, jika tidak ada Elastic IP terkait. Untuk menghindari perubahan konfigurasi ini, gunakan Run Command untuk mengatur ulang akses. Untuk informasi selengkapnya, lihat [Menggunakan EC2 Rescue untuk Windows Server dengan Systems Manager Run Command](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2rw-ssm.html) di *Panduan Pengguna Amazon EC2*.

**Untuk menjalankan AWSSupport-ResetAccess Otomasi**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Pada panel navigasi, pilih **Otomatisasi**.

1. Pilih **Eksekusi otomatisasi**.

1. Di bagian **Dokumen otomatisasi**, pilih **Dimiliki oleh Amazon** dari daftar.

1. Dalam daftar runbook, pilih tombol di kartu untuk **AWSSupport-ResetAccess**, lalu pilih **Berikutnya**.

1. Pada halaman **Eksekusi dokumen otomatisasi,** pilih **Eksekusi sederhana**.

1. Di bagian **Detail dokumen** verifikasi bahwa **Versi dokumen diatur** ke versi default tertinggi. Misalnya, **\$1DEFAULT** atau **3 (default)**.

1. Di bagian **Parameter input**, tentukan parameter berikut: 

   1. Untuk **InstanceID**, tentukan ID instans yang tidak terjangkau. 

   1. Untuk **SubnetId**, tentukan subnet di VPC yang ada di zona ketersediaan yang sama dengan instance yang Anda tentukan. Secara default, Systems Manager menciptakan VPC baru, tetapi Anda dapat menentukan subnet di VPC yang ada jika Anda ingin.
**catatan**  
Jika Anda tidak melihat opsi untuk menentukan ID subnet, verifikasi bahwa Anda menggunakan versi **Default** terbaru dari runbook.

   1. Untuk **EC2RescueInstanceType**, tentukan jenis instance untuk instance EC2 Rescue. Nilai instans default adalah `t2.medium`.

   1. Untuk **AssumeRole**, jika Anda membuat peran untuk Otomasi ini dengan menggunakan CloudFormation prosedur yang dijelaskan sebelumnya dalam topik ini, maka tentukan AssumeRole ARN yang Anda catat di CloudFormation konsol.

1. (Opsional) Di area **Tag**, terapkan satu atau beberapa name/value pasangan kunci tag untuk membantu mengidentifikasi otomatisasi, misalnya`Key=Purpose,Value=ResetAccess`.

1. Pilih **Eksekusi**.

1. Untuk memantau kemajuan otomatisasi, pilih otomatisasi berjalan, dan kemudian pilih tab **Langkah**. Setelah otomatisasi selesai, pilih tab **Deskripsi**, dan kemudian pilih **Tampilkan output** untuk melihat hasilnya. Untuk menampilkan output langkah-langkah individual, pilih tab **Langkah**, dan kemudian pilih **Tampilkan Output** di samping satu langkah.

Runbook membuat cadangan AMI dan kata sandi yang diaktifkan AMI sebagai bagian dari otomatisasi. Semua sumber lain yang dibuat oleh otomatisasi dihapus secara otomatis, tetapi ini AMIs tetap ada di akun Anda. AMIs Dinamai menggunakan konvensi berikut:
+ Backup AMI: `AWSSupport-EC2Rescue:InstanceID`
+ AMI yang diaktifkan kata sandi AWSSupport-EC: 2Rescue: AMI yang diaktifkan kata sandi dari *Instance ID*

Anda dapat menemukan ini AMIs dengan mencari ID eksekusi Otomatisasi.

Untuk Linux, kunci pribadi SSH baru untuk instans Anda disimpan, dienkripsi, di. Parameter Store Nama parameter adalah **/ec2rl/openssh/ *instance ID* /key**.

# Meneruskan data ke Otomasi menggunakan transformator input
<a name="automation-tutorial-eventbridge-input-transformers"></a>

Tutorial AWS Systems Manager Otomasi ini menunjukkan cara menggunakan fitur transformator input Amazon EventBridge untuk mengekstrak instance Amazon Elastic Compute Cloud (Amazon EC2) dari peristiwa perubahan status instans. `instance-id` Otomasi adalah alat dalam AWS Systems Manager. Kami menggunakan trafo input untuk menyampaikan data tersebut ke `AWS-CreateImage` target runbook sebagai `InstanceId` parameter input. Aturan dipicu ketika setiap instance berubah ke `stopped` status.

Untuk informasi selengkapnya tentang bekerja dengan transformator input, lihat [Tutorial: Menggunakan Transformator Input untuk Menyesuaikan Apa yang Diteruskan ke Target Acara](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-input-transformer-tutorial.html) di * EventBridge Panduan Pengguna Amazon*.

**Sebelum Anda mulai**  
Pastikan Anda menambahkan izin dan kebijakan kepercayaan yang diperlukan EventBridge untuk peran layanan Otomasi Systems Manager Anda. Untuk informasi selengkapnya, lihat [Ringkasan Mengelola Izin Akses ke EventBridge Sumber Daya Anda](https://docs.aws.amazon.com/eventbridge/latest/userguide/iam-access-control-identity-based-eventbridge.html) di *Panduan EventBridge Pengguna Amazon*.

**Cara menggunakan transformator input dengan Otomatisasi**

1. Buka EventBridge konsol Amazon di [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/).

1. Di panel navigasi, pilih **Aturan**.

1. Pilih **Buat aturan**.

1. 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.

1. 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.

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

1. Pilih **Selanjutnya**.

1. Untuk **sumber Acara**, pilih **AWS acara atau acara EventBridge mitra**.

1. Di bagian **Pola acara**, pilih **Gunakan formulir pola**.

1. Untuk **Sumber peristiwa**, pilih **Layanan AWS **.

1. Untuk **AWS layanan**, pilih **EC2**.

1. Untuk **Tipe peristiwa**, pilih **Notifikasi State-change Instans EC2**.

1. Untuk **Spesifikasi Jenis Peristiwa 1**, pilih **Status spesifik**, lalu pilih **berhenti**.

1. Untuk **Spesifikasi Jenis Peristiwa 2**, pilih **Setiap contoh**, atau pilih **Id instance Spesifik** dan masukkan instance IDs yang akan dipantau.

1. Pilih **Berikutnya**.

1. Untuk **Jenis target**, pilih **Layanan AWS **.

1. Untuk **Pilih target**, pilih **Systems Manager Automation**.

1. Untuk **Dokumen**, pilih **AWS- CreateImage**.

1. Di bagian **Konfigurasi parameter otomatisasi**, pilih **Input Transformer**.

1. Untuk **jalur Input**, masukkan**\$1"instance":"\$1.detail.instance-id"\$1**.

1. Untuk **Template**, masukkan**\$1"InstanceId":[<instance>]\$1**.

1. Untuk **peran Eksekusi**, pilih **Gunakan peran yang ada** dan pilih peran layanan Otomasi Anda.

1. Pilih **Berikutnya**.

1. (Opsional) Masukkan satu atau lebih tanda untuk aturan. Untuk informasi selengkapnya, lihat [Menandai EventBridge Sumber Daya Amazon Anda](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-tagging.html) di *Panduan EventBridge Pengguna Amazon*.

1. Pilih **Berikutnya**.

1. Tinjau detail aturan dan pilih **Buat aturan**.

# Pelajari tentang status yang dikembalikan oleh Systems Manager Automation
<a name="automation-statuses"></a>

AWS Systems Manager Otomasi melaporkan informasi status terperinci tentang berbagai status yang dilalui tindakan atau langkah otomatisasi saat Anda menjalankan otomatisasi dan untuk otomatisasi keseluruhan. Otomasi adalah alat dalam AWS Systems Manager. Anda dapat memantau status otomatisasi menggunakan metode berikut:
+ Pantau **Status eksekusi** di konsol Otomatisasi Systems Manager.
+ Gunakan alat baris perintah pilihan Anda. Untuk AWS Command Line Interface (AWS CLI), Anda dapat menggunakan [describe-automation-step-executions](https://docs.aws.amazon.com/cli/latest/reference/ssm/describe-automation-step-executions.html)atau [get-automation-execution](https://docs.aws.amazon.com/cli/latest/reference/ssm/get-automation-execution.html). Untuk itu AWS Tools for Windows PowerShell, Anda dapat menggunakan [Get- SSMAutomation StepExecution](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-SSMAutomationStepExecution.html) atau [Get- SSMAutomation Execution](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-SSMAutomationExecution.html).
+ Konfigurasikan Amazon EventBridge untuk merespons tindakan atau perubahan status otomatisasi.

Untuk informasi selengkapnya tentang penanganan batas waktu dalam otomatisasi, lihat[Menangani waktu habis di runbook](automation-handling-timeouts.md).

## Tentang status otomatisasi
<a name="automation-statuses-about"></a>

Otomatisasi melaporkan detail status untuk tindakan otomatisasi individu selain otomatisasi keseluruhan.

Status otomatisasi keseluruhan dapat berbeda dari status yang dilaporkan oleh tindakan individu atau langkah seperti yang tercantum dalam tabel berikut.


**Status mendetail untuk tindakan**  

| Status | Detail | 
| --- | --- | 
| Tertunda | Langkahnya belum mulai berjalan. Jika otomatisasi Anda menggunakan tindakan bersyarat, langkah-langkah tetap dalam keadaan ini setelah otomatisasi selesai jika kondisi tidak bisa menjalankan langkah. Langkah-langkah juga tetap dalam keadaan ini jika otomatisasi dibatalkan sebelum langkah berjalan. | 
| InProgress | Langkah sedang berjalan. | 
| Menunggu | Langkahnya sedang menunggu masukan. | 
| Sukses | Langkah berhasil diselesaikan. Ini adalah status terakhir. | 
| TimedOut | Langkah atau persetujuan tidak diselesaikan sebelum periode batas waktu yang ditentukan. Ini adalah status terakhir. | 
| Membatalkan | Langkahnya adalah dalam proses berhenti setelah dibatalkan oleh pemohon. | 
| Dibatalkan | Langkah tersebut dihentikan oleh pemohon sebelum selesai. Ini adalah status terakhir. | 
| Gagal |  Langkahnya tidak berhasil diselesaikan. Ini adalah status terakhir.  | 
| Keluar |  Hanya dikembalikan oleh `aws:loop` aksi. Loop tidak sepenuhnya selesai. Sebuah langkah di dalam loop dipindahkan ke langkah luar menggunakan`nextStep`,`onCancel`, atau `onFailure` properti.  | 


**Status mendetail untuk otomatisasi**  

| Status | Detail | 
| --- | --- | 
| Tertunda | Otomatisasi belum mulai berjalan. | 
| InProgress | Otomatisasi sedang berjalan. | 
| Menunggu | Otomatisasi sedang menunggu masukan. | 
| Sukses | Otomatisasi berhasil diselesaikan. Ini adalah status terakhir. | 
| TimedOut | Langkah atau persetujuan tidak diselesaikan sebelum periode batas waktu yang ditentukan. Ini adalah status terakhir. | 
| Membatalkan | Otomatisasi sedang dalam proses berhenti setelah dibatalkan oleh pemohon. | 
| Dibatalkan | Otomatisasi dihentikan oleh pemohon sebelum selesai. Ini adalah status terakhir. | 
| Gagal |  Otomatisasi tidak berhasil diselesaikan. Ini adalah status terakhir.  | 

# Pemecahan masalah Otomatisasi Systems Manager
<a name="automation-troubleshooting"></a>

Gunakan informasi berikut untuk membantu Anda memecahkan masalah dengan AWS Systems Manager Otomasi, alat di. AWS Systems Manager Topik ini mencakup tugas khusus untuk menyelesaikan masalah yang didasarkan pada pesan kesalahan Otomatisasi.

**Topics**
+ [Kesalahan Otomatisasi umum](#automation-trbl-common)
+ [Eksekusi otomatisasi gagal dimulai](#automation-trbl-access)
+ [Eksekusi dimulai, tetapi status gagal](#automation-trbl-exstrt)
+ [Eksekusi dimulai, tapi habis waktu](#automation-trbl-to)

## Kesalahan Otomatisasi umum
<a name="automation-trbl-common"></a>

Bagian ini mencakup informasi tentang kesalahan otomatisasi umum.

### VPC tidak didefinisikan 400
<a name="automation-trbl-common-vpc"></a>

Secara default, ketika otomatisasi menjalankan `AWS-UpdateLinuxAmi` runbook atau `AWS-UpdateWindowsAmi` runbook, sistem menciptakan instans sementara dalam VPC default (172.30.0.0/16). Jika Anda menghapus VPC default, Anda akan menerima kesalahan berikut:

`VPC not defined 400`

Untuk mengatasi masalah ini, Anda harus menentukan nilai `SubnetId` parameter input.

## Eksekusi otomatisasi gagal dimulai
<a name="automation-trbl-access"></a>

Otomatisasi dapat gagal dengan kesalahan akses ditolak atau kesalahan peran asumsi yang tidak valid jika Anda belum mengonfigurasi peran AWS Identity and Access Management (IAM) dengan benar, dan kebijakan untuk Otomasi.

### Akses ditolak
<a name="automation-trbl-access-denied"></a>

Contoh berikut menjelaskan situasi ketika otomatisasi gagal memulai dengan kesalahan akses ditolak.

**Akses Ditolak ke API Systems Manager**  
**Pesan kesalahan**: `User: user arn isn't authorized to perform: ssm:StartAutomationExecution on resource: document arn (Service: AWSSimpleSystemsManagement; Status Code: 400; Error Code: AccessDeniedException; Request ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)`
+ Kemungkinan penyebab 1: Pengguna yang mencoba memulai otomatisasi tidak memiliki izin untuk menjalankan API. `StartAutomationExecution` Untuk mengatasi masalah ini, lampirkan kebijakan IAM yang diperlukan kepada pengguna yang digunakan untuk memulai otomatisasi. 
+ Kemungkinan penyebab 2: Pengguna yang mencoba memulai otomatisasi memiliki izin untuk menjalankan `StartAutomationExecution` API tetapi tidak memiliki izin untuk menjalankan API dengan menggunakan runbook tertentu. Untuk mengatasi masalah ini, lampirkan kebijakan IAM yang diperlukan kepada pengguna yang digunakan untuk memulai otomatisasi. 

**Akses ditolak karena PassRole izin yang hilang**  
**Pesan kesalahan**: `User: user arn isn't authorized to perform: iam:PassRole on resource: automation assume role arn (Service: AWSSimpleSystemsManagement; Status Code: 400; Error Code: AccessDeniedException; Request ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)`

Pengguna yang mencoba memulai otomatisasi tidak memiliki PassRole izin untuk mengambil peran. Untuk mengatasi masalah ini, lampirkan PassRole kebijakan iam: ke peran pengguna yang mencoba memulai otomatisasi. Untuk informasi selengkapnya, lihat [Tugas 2: Lampirkan PassRole kebijakan iam: ke peran Otomasi Anda](automation-setup-iam.md#attach-passrole-policy).

### Peran asumsi tidak valid
<a name="automation-trbl-ar"></a>

Ketika Anda menjalankan Otomatisasi, peran asumsi disediakan dalam runbook atau dilewatkan sebagai nilai parameter untuk runbook. Berbagai jenis kesalahan dapat terjadi jika peran aumsi tidak ditentukan atau dikonfigurasi dengan benar.

**Peran Asumsi yang Salah Bentuk**  
**Pesan kesalahan**: `The format of the supplied assume role ARN isn't valid.` Peran asumsi tidak diformat dengan benar. Untuk mengatasi masalah ini, verifikasi bahwa peran asumsi yang valid ditentukan dalam runbook Anda atau sebagai parameter waktu aktif saat memulai otomatisasi.

**Asumsikan peran tidak dapat diasumsikan**  
**Pesan kesalahan**: `The defined assume role is unable to be assumed. (Service: AWSSimpleSystemsManagement; Status Code: 400; Error Code: InvalidAutomationExecutionParametersException; Request ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)`
+ Kemungkinan penyebab 1: Peran asumsi tidak ada. Untuk mengatasi masalah ini, buat peran. Untuk informasi selengkapnya, lihat [Menyiapkan Otomatisasi](automation-setup.md). Detail khusus untuk membuat peran ini dijelaskan dalam topik berikut, [Tugas 1: Buat peran layanan untuk otomatisasi](automation-setup-iam.md#create-service-role).
+ Kemungkinan penyebab 2: Peran asumsi tidak memiliki hubungan kepercayaan dengan layanan Systems Manager. Untuk mengatasi masalah ini, buat hubungan kepercayaan. Untuk informasi lebih lanjut, lihat [Saya Tidak Bisa Mengasumsikan Peran](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_roles.html#troubleshoot_roles_cant-assume-role) di *Panduan Pengguna IAM*. 

## Eksekusi dimulai, tetapi status gagal
<a name="automation-trbl-exstrt"></a>

### Kegagalan khusus tindakan
<a name="automation-trbl-actspec"></a>

Runbook berisi langkah-langkah dan langkah-langkah yang dijalankan secara berurutan. Setiap langkah memanggil satu atau lebih Layanan AWS APIs. APIs Menentukan input, perilaku, dan output dari langkah. Ada beberapa tempat di mana kesalahan dapat menyebabkan langkah gagal. Pesan kegagalan menunjukkan kapan dan di mana kesalahan terjadi.

Untuk melihat pesan kegagalan di konsol Amazon Elastic Compute Cloud (Amazon EC2), pilih tautan **Tampilkan Output** dari langkah yang gagal. Untuk melihat pesan kegagalan dari AWS CLI, panggil `get-automation-execution` dan cari `FailureMessage` atribut yang gagal`StepExecution`.

Dalam contoh berikut, langkah yang terkait dengan `aws:runInstance` tindakan gagal. Setiap contoh mengeksplorasi jenis kesalahan yang berbeda.

**Gambar yang Hilang**  
**Pesan kesalahan**: `Automation Step Execution fails when it's launching the instance(s). Get Exception from RunInstances API of ec2 Service. Exception Message from RunInstances API: [The image id '[ami id]' doesn't exist (Service: AmazonEC2; Status Code: 400; Error Code: InvalidAMIID.NotFound; Request ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)]. Please refer to Automation Service Troubleshooting Guide for more diagnosis details.`

Tindakan `aws:runInstances` menerima masukan untuk sebuah `ImageId` yang tidak ada. Untuk mengatasi masalah ini, perbarui runbook atau nilai parameter dengan ID AMI yang benar.

**Asumsikan kebijakan peran tidak memiliki izin yang memadai**  
**Pesan kesalahan**: `Automation Step Execution fails when it's launching the instance(s). Get Exception from RunInstances API of ec2 Service. Exception Message from RunInstances API: [You aren't authorized to perform this operation. Encoded authorization failure message: xxxxxxx (Service: AmazonEC2; Status Code: 403; Error Code: UnauthorizedOperation; Request ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)]. Please refer to Automation Service Troubleshooting Guide for more diagnosis details.`

Peran asumsi tidak memiliki izin yang cukup untuk menjalankan `RunInstances` API pada instans EC2. Untuk mengatasi masalah ini, lampirkan kebijakan IAM untuk peran asumsi yang memiliki izin untuk menjalankan `RunInstances` API. Untuk informasi lebih lanjut, lihat [Buat peran layanan untuk Otomasi menggunakan konsol](automation-setup-iam.md).

**Keadaan tak terduga**  
**Pesan kesalahan**: `Step fails when it's verifying launched instance(s) are ready to be used. Instance i-xxxxxxxxx entered unexpected state: shutting-down. Please refer to Automation Service Troubleshooting Guide for more diagnosis details.`
+ Kemungkinan penyebab 1: Ada masalah dengan instans atau layanan Amazon EC2. Untuk mengatasi masalah ini, masuk ke instans atau tinjau log sistem instans untuk memahami mengapa instans mulai mematikan.
+ Kemungkinan penyebab 2: Skrip data pengguna yang ditentukan untuk `aws:runInstances` tindakan memiliki masalah atau sintaks yang salah. Verifikasi sintaks skrip data pengguna. Juga, verifikasi bahwa skrip data pengguna tidak mematikan instans, atau menjalankan skrip lain yang mematikan instans.

**Referensi Kegagalan Khusus Tindakan**  
Ketika langkah gagal, pesan kegagalan mungkin menunjukkan layanan yang sedang dijalankan ketika kegagalan terjadi. Tabel berikut mencantumkan layanan yang dijalankan oleh setiap tindakan. Tabel ini juga menyediakan tautan ke informasi tentang setiap layanan.


****  

| Tindakan | Layanan AWS dipanggil oleh tindakan ini | Untuk informasi tentang layanan ini | Penyelesaian masalah konten | 
| --- | --- | --- | --- | 
|  `aws:runInstances`  |  Amazon EC2  |  [Panduan Pengguna Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/)  |  [Pemecahan Masalah Instans EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-troubleshoot.html)  | 
|  `aws:changeInstanceState`  |  Amazon EC2  |  [Panduan Pengguna Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/)  |  [Memecahkan masalah instans EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-troubleshoot.html)  | 
|  `aws:runCommand`  |  Systems Manager  |   [AWS Systems Manager Run Command](run-command.md)  |   [Memecahkan masalah Run Command Systems Manager](troubleshooting-remote-commands.md)  | 
|  `aws:createImage`  |  Amazon EC2  |  [https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html)  |  | 
|  `aws:createStack`  |  CloudFormation  |  [AWS CloudFormation Panduan Pengguna](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)  |  [Pemecahan Masalah CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html)  | 
|  `aws:deleteStack`  |  CloudFormation  |  [AWS CloudFormation Panduan Pengguna](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)  |  [Pemecahan Masalah CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html)  | 
|  `aws:deleteImage`  |  Amazon EC2  |  [Gambar Amazon Machines](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html)  |  | 
|  `aws:copyImage`  |  Amazon EC2  |  [https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html)  |  | 
|  `aws:createTag`  |  Amazon EC2, Systems Manager  |  [Sumber Daya dan Tag EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_Resources.html)  |  | 
|  `aws:invokeLambdaFunction`  |  AWS Lambda  |  [AWS Lambda Panduan Pengembang](https://docs.aws.amazon.com/lambda/latest/dg/)  |  [Pemecahan Masalah Lambda](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-functions.html)  | 

### Kesalahan internal layanan otomatisasi
<a name="automation-trbl-err"></a>

**Pesan kesalahan**: `Internal Server Error. Please refer to Automation Service Troubleshooting Guide for more diagnosis details.`

Masalah dengan layanan otomatisasi adalah mencegah runbook tertentu berjalan dengan benar. Untuk mengatasi masalah ini, hubungi AWS Dukungan. Sediakan ID eksekusi dan ID pelanggan, jika tersedia.

## Eksekusi dimulai, tapi habis waktu
<a name="automation-trbl-to"></a>

**Pesan kesalahan**: `Step timed out while step is verifying launched instance(s) are ready to be used. Please refer to Automation Service Troubleshooting Guide for more diagnosis details.`

Sebuah langkah di `aws:runInstances` waktu aksi habis. Hal ini dapat terjadi jika langkah tindakan membutuhkan waktu lebih lama untuk menjalankan dari nilai yang ditentukan untuk `timeoutSeconds` dalam langkah. Untuk mengatasi masalah ini, tentukan nilai yang lebih lama untuk `timeoutSeconds` parameter dalam `aws:runInstances` tindakan. Jika itu tidak menyelesaikan masalah, selidiki mengapa langkah tersebut membutuhkan waktu lebih lama untuk berjalan dari yang diharapkan

# AWS Systems Manager Change Calendar
<a name="systems-manager-change-calendar"></a>

Change Calendar, alat di AWS Systems Manager, memungkinkan Anda mengatur rentang tanggal dan waktu saat tindakan yang Anda tentukan (misalnya, di runbook [Otomasi Systems Manager](systems-manager-automation.md)) mungkin atau mungkin tidak dilakukan di buku Anda Akun AWS. DalamChange Calendar, rentang ini disebut *peristiwa*. Saat membuat Change Calendar entri, Anda membuat [dokumen Systems Manager](documents.md) dari jenisnya`ChangeCalendar`. DalamChange Calendar, dokumen menyimpan data [iCalendar](https://icalendar.org/) 2.0 dalam format teks biasa. Acara yang Anda tambahkan ke Change Calendar entri menjadi bagian dari dokumen. Untuk memulaiChange Calendar, buka [konsol Systems Manager](https://console.aws.amazon.com//systems-manager/change-calendar). Di panel navigasi, pilih **Change Calendar**.

Anda dapat membuat kalender dan acaranya di konsol Systems Manager. Anda juga dapat mengimpor file iCalendar `.ics` () yang telah diekspor dari penyedia kalender pihak ketiga yang didukung untuk menambahkan acara ke kalender Anda. Penyedia yang didukung termasuk Kalender Google, Microsoft Outlook, dan Kalender iCloud.

Change CalendarEntri dapat berupa salah satu dari dua jenis:

**`DEFAULT_OPEN`**, atau Buka secara default  
Semua tindakan dapat dijalankan secara default, kecuali selama acara kalender. Selama acara, status `DEFAULT_OPEN` kalender `CLOSED` dan acara diblokir agar tidak berjalan.

**`DEFAULT_CLOSED`**, atau Ditutup secara default  
Semua tindakan diblokir secara default, kecuali selama acara kalender. Selama acara, status `DEFAULT_CLOSED` kalender adalah `OPEN` dan tindakan diizinkan untuk dijalankan.

Anda dapat memilih untuk memiliki semua alur kerja Otomasi terjadwal, jendela pemeliharaan, dan State Manager asosiasi ditambahkan secara otomatis ke kalender. Anda juga dapat menghapus salah satu jenis individu dari tampilan kalender. 

## Siapa yang harus menggunakanChange Calendar?
<a name="systems-manager-change-calendar-who"></a>

**Change Managerperubahan ketersediaan**  
AWS Systems ManagerChange Managertidak akan lagi terbuka untuk pelanggan baru mulai 7 November 2025. Jika Anda ingin menggunakannyaChange Manager, daftar sebelum tanggal tersebut. Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS Systems ManagerChange Manager ketersediaan](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 
+ AWS pelanggan yang melakukan jenis tindakan berikut:
  + Buat atau jalankan runbook Otomasi.
  + Buat permintaan perubahan diChange Manager.
  + Jalankan jendela pemeliharaan.
  + Buat asosiasi diState Manager.

  Otomatisasi Change ManagerMaintenance Windows,,, dan State Manager semuanya alat AWS Systems Manager. Dengan mengintegrasikan alat iniChange Calendar, Anda dapat mengizinkan atau memblokir jenis tindakan ini tergantung pada status kalender perubahan saat ini yang Anda kaitkan dengan masing-masing.
+ Administrator yang bertanggung jawab untuk menjaga konfigurasi node terkelola Systems Manager konsisten, stabil, dan fungsional.

## Manfaat dari Change Calendar
<a name="systems-manager-change-calendar-benefits"></a>

Berikut ini adalah beberapa manfaat dariChange Calendar.
+ **Tinjau perubahan sebelum diterapkan**

  Change CalendarEntri dapat membantu memastikan bahwa perubahan yang berpotensi merusak pada lingkungan Anda ditinjau sebelum diterapkan.
+ **Terapkan perubahan hanya pada waktu yang tepat**

  Change Calendarentri membantu menjaga lingkungan Anda stabil selama waktu acara. Misalnya, Anda dapat membuat Change Calendar entri untuk memblokir perubahan ketika Anda mengharapkan permintaan tinggi pada sumber daya Anda, seperti selama konferensi atau promosi pemasaran publik. Entri kalender juga dapat memblokir perubahan saat Anda mengharapkan dukungan administrator terbatas, seperti selama liburan atau hari libur. Anda dapat menggunakan entri kalender untuk mengizinkan perubahan kecuali untuk waktu-waktu tertentu dalam sehari atau minggu ketika ada dukungan administrator terbatas untuk memecahkan masalah tindakan atau deployment yang gagal.
+ **Dapatkan status kalender saat ini atau yang akan datang**

  Anda dapat menjalankan operasi API `GetCalendarState` Systems Manager untuk menunjukkan kepada Anda status kalender saat ini, status pada waktu tertentu, atau saat berikutnya status kalender dijadwalkan untuk berubah.
**catatan**  
`GetCalendarState`API memiliki kuota 10 permintaan per detik. Untuk informasi selengkapnya tentang kuota Systems Manager, lihat [kuota layanan Systems Manager](https://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) di. *Referensi Umum Amazon Web Services*
+ 

**EventBridge dukungan**  
Alat Systems Manager ini didukung sebagai jenis *peristiwa* dalam EventBridge aturan Amazon. Untuk informasi selengkapnya, lihat [Memantau peristiwa Systems Manager dengan Amazon EventBridge](monitoring-eventbridge-events.md) dan [Referensi: Pola dan jenis EventBridge acara Amazon untuk Systems Manager](reference-eventbridge-events.md).

**Topics**
+ [Siapa yang harus menggunakanChange Calendar?](#systems-manager-change-calendar-who)
+ [Manfaat dari Change Calendar](#systems-manager-change-calendar-benefits)
+ [Menyiapkan Change Calendar](systems-manager-change-calendar-prereqs.md)
+ [Bekerja dengan Change Calendar](systems-manager-change-calendar-working.md)
+ [Menambahkan Change Calendar dependensi ke runbook Otomasi](systems-manager-change-calendar-automations.md)
+ [Pemecahan Masalah Change Calendar](change-calendar-troubleshooting.md)

# Menyiapkan Change Calendar
<a name="systems-manager-change-calendar-prereqs"></a>

Lengkapi yang berikut ini sebelum menggunakanChange Calendar, alat di AWS Systems Manager.

## Menginstal alat baris perintah terbaru
<a name="change-calendar-prereqs-tools"></a>

Instal alat baris perintah terbaru untuk mendapatkan informasi status tentang kalender.


| Persyaratan | Deskripsi | 
| --- | --- | 
|  AWS CLI  |  (Opsional) Untuk menggunakan AWS Command Line Interface (AWS CLI) untuk mendapatkan informasi status tentang kalender, instal rilis terbaru AWS CLI di komputer lokal Anda. *Untuk informasi selengkapnya tentang cara menginstal atau memutakhirkan CLI, lihat [Menginstal, memperbarui, dan menghapus instalasi AWS CLI di Panduan](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) Pengguna.AWS Command Line Interface *  | 
|  Alat AWS untuk PowerShell  |  (Opsional) Untuk menggunakan Alat PowerShell untuk mendapatkan informasi status tentang kalender, instal rilis terbaru Alat untuk PowerShell di komputer lokal Anda. Untuk informasi selengkapnya tentang cara menginstal atau memutakhirkan Alat untuk PowerShell, lihat [Menginstal Alat AWS untuk PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html) di *Panduan Alat AWS untuk PowerShell Pengguna*.  | 

## Menyiapkan izin
<a name="change-calendar-prereqs-permissions"></a>

Jika pengguna, grup, atau peran Anda diberi izin administrator, maka Anda memiliki akses penuh keChange Calendar. Jika Anda tidak memiliki izin administrator, administrator harus memberi Anda izin dengan menetapkan kebijakan `AmazonSSMFullAccess` terkelola, atau menetapkan kebijakan yang memberikan izin yang diperlukan untuk pengguna, grup, atau peran Anda.

Izin berikut diperlukan untuk bekerja denganChange Calendar.

**Change Calendarentri**  
Untuk membuat, memperbarui, atau menghapus Change Calendar entri, termasuk menambahkan dan menghapus peristiwa dari entri, kebijakan yang dilampirkan pada pengguna, grup, atau peran Anda harus mengizinkan tindakan berikut:  
+ `ssm:CreateDocument`
+ `ssm:DeleteDocument`
+ `ssm:DescribeDocument`
+ `ssm:DescribeDocumentPermission`
+ `ssm:GetCalendar`
+ `ssm:ListDocuments`
+ `ssm:ModifyDocumentPermission`
+ `ssm:PutCalendar`
+ `ssm:UpdateDocument`
+ `ssm:UpdateDocumentDefaultVersion`

**Status kalender**  
Untuk mendapatkan informasi tentang status kalender saat ini atau yang akan datang, kebijakan yang dilampirkan pada pengguna, grup, atau peran Anda harus mengizinkan tindakan berikut:  
+ `ssm:GetCalendarState`

**Acara operasional**  
Untuk melihat peristiwa operasional, seperti jendela pemeliharaan, asosiasi, dan otomatisasi yang direncanakan, kebijakan yang dilampirkan pada pengguna, grup, atau peran Anda harus mengizinkan tindakan berikut:  
+ `ssm:DescribeMaintenanceWindows`
+ `ssm:DescribeMaintenanceWindowExecution`
+ `ssm:DescribeAutomationExecutions`
+ `ssm:ListAssociations`

**catatan**  
Change Calendarentri yang dimiliki oleh (yaitu, dibuat oleh) akun selain milik Anda adalah read-only, bahkan jika mereka dibagikan dengan akun Anda. Jendela pemeliharaan, State Manager asosiasi, dan otomatisasi tidak dibagikan.

# Bekerja dengan Change Calendar
<a name="systems-manager-change-calendar-working"></a>

Anda dapat menggunakan AWS Systems Manager konsol untuk menambahkan, mengelola, atau menghapus entri Change Calendar, alat di AWS Systems Manager. Anda juga dapat mengimpor acara dari penyedia kalender pihak ketiga yang didukung dengan mengimpor file iCalendar `.ics` () yang diekspor dari kalender sumber. Dan, Anda dapat menggunakan operasi `GetCalendarState` API atau perintah `get-calendar-state` AWS Command Line Interface (AWS CLI) untuk mendapatkan informasi tentang status Change Calendar pada waktu tertentu.

**Topics**
+ [Membuat kalender perubahan](change-calendar-create.md)
+ [Membuat dan mengelola acara di Change Calendar](change-calendar-events.md)
+ [Mengimpor dan mengelola acara dari kalender pihak ketiga](third-party-events.md)
+ [Memperbarui kalender perubahan](change-calendar-update.md)
+ [Berbagi kalender perubahan](change-calendar-share.md)
+ [Menghapus kalender perubahan](change-calendar-delete.md)
+ [Mendapatkan status perubahan kalender](change-calendar-getstate.md)

# Membuat kalender perubahan
<a name="change-calendar-create"></a>

Saat Anda membuat entri di Change Calendar, alat di AWS Systems Manager, Anda membuat dokumen Systems Manager (dokumen SSM) yang menggunakan `text` format.

**Untuk membuat kalender perubahan**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Change Calendar**.

1. Pilih **Buat kalender**.

   -atau-

   Jika **Change Calendar**halaman rumah terbuka terlebih dahulu, pilih **Buat kalender perubahan**.

1. Di halaman **Buat kalender**, di **Detail kalender**, masukkan nama untuk entri kalender Anda. Nama entri kalender dapat berisi huruf, angka, titik, tanda hubung, dan garis bawah. Nama harus cukup spesifik untuk mengidentifikasi tujuan entri kalender secara sekilas. Contohnya adalah **support-off-hours**. Anda tidak dapat memperbarui nama ini setelah membuat entri kalender.

1. (Opsional) Untuk **Deskripsi**, masukkan deskripsi untuk entri kalender Anda.

1. (Opsional) Di area **kalender Impor**, **pilih Pilih file** untuk memilih file iCalendar `.ics` () yang telah Anda ekspor dari penyedia kalender pihak ketiga. Mengimpor file akan menambahkan acaranya ke kalender Anda.

   Penyedia yang didukung termasuk Kalender Google, Microsoft Outlook, dan Kalender iCloud.

   Untuk informasi selengkapnya, lihat [Mengimpor acara dari penyedia kalender pihak ketiga](change-calendar-import.md).

1. Dalam **Jenis kalender**, pilih salah satu dari berikut ini.
   + **Buka secara default** - Kalender terbuka (Tindakan otomatisasi dapat berjalan hingga peristiwa dimulai), lalu ditutup selama peristiwa terkait.
   + **Buka secara default** - Kalender terbuka (Tindakan otomatisasi dapat berjalan hingga peristiwa dimulai), lalu ditutup selama durasi peristiwa terkait.

1. (Opsional) Di **Ubah acara manajemen**, pilih **Tambahkan peristiwa manajemen perubahan ke kalender**. Pilihan ini menampilkan semua jendela pemeliharaan terjadwal, State Manager asosiasi, alur kerja Otomasi, dan Change Manager ubah permintaan di tampilan kalender bulanan Anda.
**Tip**  
Jika nanti Anda ingin menghapus jenis acara ini secara permanen dari tampilan kalender, edit kalender, kosongkan kotak centang ini, lalu pilih **Simpan**.

1. Pilih **Buat kalender**.

   Setelah entri kalender dibuat, Systems Manager menampilkan entri kalender Anda di **Change Calendar**daftar. Kolom menampilkan versi kalender dan Akun AWS nomor pemilik kalender. Entri kalender Anda tidak dapat mencegah atau mengizinkan tindakan apa pun hingga Anda membuat atau mengimpor setidaknya satu acara. Untuk informasi tentang membuat acara, lihat[Membuat sebuah Change Calendar kejadian](change-calendar-create-event.md). Untuk informasi tentang mengimpor acara, lihat[Mengimpor acara dari penyedia kalender pihak ketiga](change-calendar-import.md).

# Membuat dan mengelola acara di Change Calendar
<a name="change-calendar-events"></a>

Setelah membuat kalender AWS Systems Manager Change Calendar, Anda dapat membuat, memperbarui, dan menghapus acara yang disertakan dalam kalender terbuka atau tertutup. Change Calendaradalah alat di AWS Systems Manager.

**Tip**  
Sebagai alternatif untuk membuat acara langsung di konsol Systems Manager, Anda dapat mengimpor file iCalendar `.ics` () dari aplikasi kalender pihak ketiga yang didukung. Untuk informasi, lihat [Mengimpor dan mengelola acara dari kalender pihak ketiga](third-party-events.md).

**Topics**
+ [Membuat sebuah Change Calendar kejadian](change-calendar-create-event.md)
+ [Memperbarui Change Calendar kejadian](change-calendar-update-event.md)
+ [Menghapus Change Calendar kejadian](change-calendar-delete-event.md)

# Membuat sebuah Change Calendar kejadian
<a name="change-calendar-create-event"></a>

Saat Anda menambahkan acara ke entri di Change Calendar, alat di AWS Systems Manager, Anda menentukan periode waktu di mana tindakan default entri kalender ditangguhkan. Sebagai contoh, jika jenis entri kalender ditutup secara default, kalender akan terbuka untuk perubahan selama peristiwa. (Atau, Anda dapat membuat acara penasehat, yang hanya berfungsi sebagai informasi di kalender.)

Saat ini, Anda hanya dapat membuat Change Calendar acara dengan menggunakan konsol. Acara ditambahkan ke Change Calendar dokumen yang Anda buat saat Anda membuat Change Calendar masuk.

**Untuk membuat Change Calendar kejadian**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Change Calendar**.

1. Dalam daftar kalender, pilih nama entri kalender yang ingin Anda tambahkan acara.

1. Di halaman detail entri kalender, pilih **Buat peristiwa**.

1. Di halaman **Buat peristiwa terjadwal**, di **Detail peristiwa**, masukkan nama tampilan untuk peristiwa Anda. Nama peristiwa dapat berisi huruf, angka, titik, tanda hubung, dan garis bawah. Nama harus cukup spesifik untuk mengidentifikasi tujuan peristiwa. Contohnya adalah **nighttime-hours**.

1. Untuk **Deskripsi**, masukkan deskripsi untuk acara Anda. Misalnya, **The support team isn't available during these hours**.

1. (Opsional) Jika Anda ingin acara ini hanya berfungsi sebagai pemberitahuan visual atau pengingat, pilih kotak centang **Penasihat**. Acara penasihat tidak memainkan peran fungsional di kalender Anda. Mereka melayani tujuan informasi hanya bagi mereka yang melihat kalender Anda.

1. Untuk **tanggal mulai Acara**, masukkan atau pilih hari dalam format `MM/DD/YYYY` untuk memulai acara, dan masukkan waktu pada hari yang ditentukan dalam format `hh:mm:ss` (jam, menit, dan detik) untuk memulai acara.

1. Untuk **tanggal akhir Acara**, masukkan atau pilih hari dalam format `MM/DD/YYYY` untuk mengakhiri acara, dan masukkan waktu pada hari yang ditentukan dalam format `hh:mm:ss` (jam, menit, dan detik) untuk mengakhiri acara.

1. Untuk **zona waktu Jadwal**, pilih zona waktu yang berlaku untuk waktu mulai dan akhir acara. Anda dapat memasukkan sebagian nama kota atau perbedaan zona waktu dari Greenwich Mean Time (GMT) untuk menemukan zona waktu lebih cepat. Default-nya adalah Universal Coordinated Time (UTC).

1. (Opsional) Untuk membuat acara yang berulang setiap hari, mingguan, atau bulanan, aktifkan **Perulangan**, lalu tentukan frekuensi dan tanggal akhir opsional untuk pengulangan.

1. Pilih **Buat peristiwa terjadwal**. Peristiwa baru ditambahkan ke entri kalender Anda, dan ditampilkan di tab **Peristiwa** di halaman detail entri kalender.

# Memperbarui Change Calendar kejadian
<a name="change-calendar-update-event"></a>

Gunakan prosedur berikut untuk memperbarui Change Calendar acara di AWS Systems Manager konsol. Change Calendar adalah alat di AWS Systems Manager.

**Untuk memperbarui Change Calendar kejadian**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Change Calendar**.

1. Dalam daftar kalender, pilih nama entri kalender yang ingin Anda edit acara.

1. Di halaman detail entri kalender, pilih **Peristiwa**.

1. Di halaman kalender, pilih peristiwa yang ingin Anda edit.
**Tip**  
Gunakan tombol di kiri atas untuk mundur atau maju satu tahun, atau mundur atau maju satu bulan. Ubah zona waktu, jika diperlukan, dengan memilih zona waktu yang benar dari daftar di kanan atas.

1. Dalam **detail Acara**, pilih **Edit**.

   Untuk mengubah nama dan deskripsi acara, tambahkan atau ganti nilai teks saat ini.

1. Untuk mengubah nilai **tanggal mulai acara**, pilih tanggal mulai saat ini, lalu pilih tanggal baru dari kalender. Untuk mengubah waktu mulai, pilih waktu mulai saat ini, lalu pilih waktu baru dari daftar.

1. Untuk mengubah nilai **tanggal akhir acara**, pilih tanggal saat ini, lalu pilih tanggal akhir baru dari kalender. Untuk mengubah waktu akhir, pilih waktu akhir saat ini, lalu pilih waktu baru dari daftar.

1. Untuk mengubah nilai **zona waktu Jadwal**, pilih zona waktu yang akan diterapkan pada waktu mulai dan akhir acara. Anda dapat memasukkan sebagian nama kota atau perbedaan zona waktu dari Greenwich Mean Time (GMT) untuk menemukan zona waktu lebih cepat. Default-nya adalah Universal Coordinated Time (UTC).

1. (Opsional) Jika Anda ingin acara ini hanya berfungsi sebagai pemberitahuan visual atau pengingat, pilih kotak centang **Penasihat**. Acara penasehat tidak memainkan peran fungsional di kalender Anda. Mereka melayani tujuan informasi hanya bagi mereka yang melihat kalender Anda.

1. Pilih **Simpan**. Perubahan Anda ditampilkan di tab **Peristiwa** dari halaman detail entri kalender. Pilih peristiwa yang Anda perbarui untuk melihat perubahan Anda.

# Menghapus Change Calendar kejadian
<a name="change-calendar-delete-event"></a>

Anda dapat menghapus satu acara pada satu waktu di Change Calendar, alat di AWS Systems Manager, dengan menggunakan Konsol Manajemen AWS. 

**Tip**  
Jika Anda memilih **Tambahkan peristiwa manajemen perubahan ke kalender** saat Anda membuat kalender, Anda dapat melakukan hal berikut:  
Untuk menyembunyikan *sementara* jenis acara manajemen perubahan dari tampilan kalender, pilih **X** untuk jenis di bagian atas pratinjau bulanan.
Untuk menghapus jenis ini *secara permanen* dari tampilan kalender, edit kalender, kosongkan kotak centang **Tambahkan peristiwa manajemen perubahan ke kalender**, lalu pilih **Simpan**. Menghapus jenis dari tampilan kalender tidak akan menghapusnya dari akun Anda.

**Untuk menghapus Change Calendar kejadian**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Change Calendar**.

1. Dalam daftar kalender, pilih nama entri kalender tempat Anda ingin menghapus acara.

1. Di halaman detail entri kalender, pilih **Peristiwa**.

1. Di halaman kalender, pilih peristiwa yang ingin Anda hapus.
**Tip**  
Gunakan tombol di kiri atas untuk memindahkan kalender mundur atau maju satu tahun, atau mundur atau maju satu bulan. Ubah zona waktu, jika diperlukan, dengan memilih zona waktu yang benar dari daftar di kanan atas.

1. Di halaman **Detail peristiwa**, pilih **Hapus**. Ketika Anda diminta untuk mengonfirmasi bahwa Anda ingin menghapus acara, pilih **Konfirmasi**.

# Mengimpor dan mengelola acara dari kalender pihak ketiga
<a name="third-party-events"></a>

Sebagai alternatif untuk membuat acara langsung di AWS Systems Manager konsol, Anda dapat mengimpor file iCalendar `.ics` () dari aplikasi kalender pihak ketiga yang didukung. Kalender Anda dapat menyertakan acara dan acara impor yang Anda buatChange Calendar, yang merupakan alat di dalamnya AWS Systems Manager.

**Sebelum Anda mulai**  
Sebelum mencoba mengimpor file kalender, tinjau persyaratan dan batasan berikut:

Format berkas kalender  
Hanya file iCalendar `.ics` () yang valid yang didukung.

Penyedia kalender yang didukung  
Hanya `.ics` file yang diekspor dari penyedia kalender pihak ketiga berikut yang didukung:  
+ Kalender Google ([Instruksi ekspor](https://support.google.com/calendar/answer/37111))
+ Microsoft Outlook ([Instruksi ekspor](https://support.microsoft.com/en-us/office/export-an-outlook-calendar-to-google-calendar-662fa3bb-0794-4b18-add8-9968b665f4e6))
+ Kalender iCloud ([Petunjuk ekspor](https://support.apple.com/guide/calendar/import-or-export-calendars-icl1023/mac))

Ukuran file  
Anda dapat mengimpor sejumlah `.ics` file yang valid. Namun, ukuran total semua file yang diimpor untuk setiap kalender tidak dapat melebihi 64KB.  
Untuk meminimalkan ukuran `.ics` file, pastikan bahwa Anda hanya mengekspor detail dasar tentang entri kalender Anda. Jika perlu, kurangi lamanya periode waktu yang Anda ekspor.

Zona waktu  
Selain nama kalender, penyedia kalender, dan setidaknya satu acara, `.ics` file yang Anda ekspor juga harus menunjukkan zona waktu untuk kalender. Jika tidak, atau ada masalah mengidentifikasi zona waktu, Anda akan diminta untuk menentukan satu setelah Anda mengimpor file.

Batasan acara berulang  
`.ics`File Anda yang diekspor dapat menyertakan peristiwa berulang. Namun, jika satu atau beberapa kejadian kejadian berulang telah dihapus di kalender sumber, impor gagal.

**Topics**
+ [Mengimpor acara dari penyedia kalender pihak ketiga](change-calendar-import.md)
+ [Memperbarui semua acara dari penyedia kalender pihak ketiga](change-calendar-import-add-remove.md)
+ [Menghapus semua acara yang diimpor dari kalender pihak ketiga](change-calendar-delete-ics.md)

# Mengimpor acara dari penyedia kalender pihak ketiga
<a name="change-calendar-import"></a>

Gunakan prosedur berikut untuk mengimpor file iCalendar `.ics` () dari aplikasi kalender pihak ketiga yang didukung. Peristiwa yang terkandung dalam file dimasukkan ke dalam aturan untuk kalender terbuka atau tertutup Anda. Anda dapat mengimpor file ke kalender baru yang Anda buat dengan Change Calendar (alat masuk AWS Systems Manager) atau ke kalender yang ada.

Setelah Anda mengimpor `.ics` file, Anda dapat menghapus peristiwa individual darinya menggunakan Change Calendar antarmuka. Untuk informasi, lihat [Menghapus Change Calendar kejadian](change-calendar-delete-event.md). Anda juga dapat menghapus semua acara dari kalender sumber dengan menghapus `.ics` file. Untuk informasi, lihat [Menghapus semua acara yang diimpor dari kalender pihak ketiga](change-calendar-delete-ics.md).

**Untuk mengimpor acara dari penyedia kalender pihak ketiga**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Change Calendar**.

1. Untuk memulai dengan kalender baru, pilih **Buat kalender**. Di area **Impor kalender**, pilih **Pilih file**. Untuk informasi tentang langkah-langkah lain untuk membuat kalender baru, lihat[Membuat kalender perubahan](change-calendar-create.md).

   -atau-

   Untuk mengimpor acara pihak ketiga ke kalender yang ada, pilih nama kalender yang ada untuk membukanya.

1. Pilih **Tindakan, Edit**, dan kemudian di area **Impor kalender**, pilih **Pilih file**.

1. Arahkan ke dan pilih `.ics` file yang diekspor di komputer lokal Anda.

1. Jika diminta, untuk **Pilih zona waktu**, pilih zona waktu yang berlaku untuk kalender.

1. Pilih **Simpan**.

# Memperbarui semua acara dari penyedia kalender pihak ketiga
<a name="change-calendar-import-add-remove"></a>

Jika beberapa peristiwa ditambahkan atau dihapus dari kalender sumber Anda setelah Anda mengimpor file `.ics` iCalendar, Anda dapat mencerminkan perubahan tersebut. Change Calendar Pertama, ekspor ulang kalender sumber, dan kemudian impor file baru keChange Calendar, yang merupakan alat di AWS Systems Manager. Acara di kalender perubahan Anda akan diperbarui untuk mencerminkan isi file yang lebih baru.

**Untuk memperbarui semua acara dari penyedia kalender pihak ketiga**

1. Di kalender pihak ketiga Anda, tambahkan atau hapus acara sesuai keinginan AndaChange Calendar, lalu ekspor ulang kalender ke `.ics` file baru.

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Change Calendar**.

1. Dari daftar kalender, pilih nama kalender dari daftar.

1. Pilih **Pilih file**, lalu navigasikan ke dan pilih `.ics` file pengganti.

1. Menanggapi pemberitahuan tentang menimpa file yang ada, pilih **Konfirmasi**.

# Menghapus semua acara yang diimpor dari kalender pihak ketiga
<a name="change-calendar-delete-ics"></a>

Jika Anda tidak lagi menginginkan acara apa pun yang diimpor dari penyedia pihak ketiga yang disertakan dalam kalender, Anda dapat menghapus file `.ics` iCalendar yang diimpor.

**Untuk menghapus semua acara yang diimpor dari kalender pihak ketiga**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Change Calendar**.

1. Dari daftar kalender, pilih nama kalender dari daftar.

1. Di area **kalender Impor**, di bawah **Kalender impor saya**, cari nama kalender yang diimpor, lalu pilih **X** di kartunya.

1. Pilih **Simpan**.

# Memperbarui kalender perubahan
<a name="change-calendar-update"></a>

Anda dapat memperbarui deskripsi kalender perubahan, tetapi bukan namanya. Meskipun Anda dapat mengubah status default kalender, ketahuilah bahwa ini membalikkan perilaku tindakan perubahan selama peristiwa yang terkait dengan kalender. Misalnya, jika Anda mengubah status kalender dari **Buka secara default** menjadi **Ditutup secara default**, perubahan yang tidak diinginkan mungkin dilakukan selama periode peristiwa saat pengguna yang membuat peristiwa terkait tidak mengharapkan perubahan.

Saat memperbarui kalender perubahan, Anda mengedit Change Calendar dokumen yang Anda buat saat Anda membuat entri. Change Calendar adalah alat di AWS Systems Manager.

**Untuk memperbarui kalender perubahan**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Change Calendar**.

1. Dalam daftar kalender, pilih nama kalender yang ingin Anda perbarui.

1. Pada halaman detail kalender, pilih **Tindakan, Edit**.

1. Di **Deskripsi**, Anda dapat mengubah teks deskripsi. Anda tidak dapat mengedit nama kalender perubahan.

1. Untuk mengubah status kalender, di **Jenis kalender**, pilih nilai yang berbeda. Ketahuilah bahwa ini membalikkan perilaku tindakan perubahan selama acara yang terkait dengan kalender. Sebelum Anda mengubah jenis kalender, Anda harus memverifikasi dengan yang lain Change Calendar pengguna yang mengubah jenis kalender tidak mengizinkan perubahan yang tidak diinginkan selama acara yang telah mereka buat.
   + **Buka secara default** - Kalender terbuka (Tindakan otomatisasi dapat berjalan hingga acara dimulai) kemudian ditutup selama durasi acara terkait.
   + **Ditutup secara default** - Kalender ditutup (Tindakan otomatisasi tidak dapat berjalan sampai acara dimulai) tetapi terbuka selama durasi acara terkait.

1. Pilih **Simpan**.

   Kalender Anda tidak dapat mencegah atau mengizinkan tindakan apa pun hingga Anda menambahkan setidaknya satu acara. Untuk informasi tentang cara menambahkan peristiwa, lihat [Membuat sebuah Change Calendar kejadian](change-calendar-create-event.md).

# Berbagi kalender perubahan
<a name="change-calendar-share"></a>

Anda dapat berbagi kalender di Change Calendar, alat di AWS Systems Manager, dengan yang lain Akun AWS dengan menggunakan AWS Systems Manager konsol. Saat Anda berbagi kalender, kalender akan bersifat hanya-baca untuk pengguna di akun bersama. Jendela pemeliharaan, State Manager asosiasi, dan otomatisasi tidak dibagikan.

**Untuk berbagi kalender perubahan**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Change Calendar**.

1. Dalam daftar kalender, pilih nama kalender yang ingin Anda bagikan.

1. Pada halaman detail kalender, pilih tab **Berbagi**.

1. Pilih **Tindakan, Bagikan**.

1. Di **Kalender Bagikan**, untuk **ID Akun**, masukkan nomor ID yang valid Akun AWS, lalu pilih **Bagikan**.

   Pengguna akun bersama dapat membaca kalender perubahan, tetapi mereka tidak dapat membuat perubahan.

# Menghapus kalender perubahan
<a name="change-calendar-delete"></a>

Anda dapat menghapus kalender di Change Calendar, alat di AWS Systems Manager, dengan menggunakan konsol Systems Manager atau AWS Command Line Interface (AWS CLI). Menghapus kalender perubahan akan menghapus semua peristiwa terkait.

**Untuk menghapus kalender perubahan**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Change Calendar**.

1. Dalam daftar kalender, pilih nama kalender yang ingin Anda hapus.

1. Pada halaman detail kalender, pilih **Tindakan, Hapus**. Ketika Anda diminta untuk mengonfirmasi bahwa Anda ingin menghapus kalender, pilih **Hapus**.

# Mendapatkan status perubahan kalender
<a name="change-calendar-getstate"></a>

Anda bisa mendapatkan status keseluruhan kalender atau status kalender pada waktu tertentu diChange Calendar, alat di AWS Systems Manager. Anda juga dapat menunjukkan waktu berikutnya bahwa status kalender berubah dari `OPEN` ke`CLOSED`, atau sebaliknya.

**catatan**  
Untuk informasi tentang mengintegrasikan Change Calendar dengan Amazon EventBridge untuk pemantauan otomatis perubahan status kalender, lihat[Change CalendarIntegrasi dengan Amazon EventBridge](monitoring-systems-manager-event-examples.md#change-calendar-eventbridge-integration). EventBridge integrasi menyediakan notifikasi berbasis peristiwa saat kalender menyatakan transisi, melengkapi pendekatan berbasis polling dari tindakan API. `GetCalendarState`

Anda dapat melakukan tugas ini hanya dengan menggunakan operasi API `GetCalendarState`. Prosedur di bagian ini menggunakan AWS Command Line Interface (AWS CLI).

**Untuk mendapatkan status perubahan kalender**
+ Jalankan perintah berikut untuk menunjukkan status satu atau lebih kalender pada waktu tertentu. Parameter `--calendar-names` diperlukan, tetapi `--at-time` adalah opsional. Ganti masing-masing *example resource placeholder* dengan informasi Anda sendiri.

------
#### [ Linux & macOS ]

  ```
  aws ssm get-calendar-state \
      --calendar-names "Calendar_name_or_document_ARN_1" "Calendar_name_or_document_ARN_2" \
      --at-time "ISO_8601_time_format"
  ```

  Berikut adalah contoh.

  ```
  aws ssm get-calendar-state \
      --calendar-names "arn:aws:ssm:us-east-2:123456789012:document/MyChangeCalendarDocument" "arn:aws:ssm:us-east-2:123456789012:document/SupportOffHours" \
      --at-time "2020-07-30T11:05:14-0700"
  ```

------
#### [ Windows ]

  ```
  aws ssm get-calendar-state ^
      --calendar-names "Calendar_name_or_document_ARN_1" "Calendar_name_or_document_ARN_2" ^
      --at-time "ISO_8601_time_format"
  ```

  Berikut adalah contoh.

  ```
  aws ssm get-calendar-state ^
      --calendar-names "arn:aws:ssm:us-east-2:123456789012:document/MyChangeCalendarDocument" "arn:aws:ssm:us-east-2:123456789012:document/SupportOffHours" ^
      --at-time "2020-07-30T11:05:14-0700"
  ```

------

  Perintah tersebut mengembalikan informasi seperti berikut.

  ```
  {
      "State": "OPEN",
      "AtTime": "2020-07-30T16:18:18Z",
      "NextTransitionTime": "2020-07-31T00:00:00Z"
  }
  ```

  Hasil menunjukkan status kalender (apakah kalender tersebut tipe `DEFAULT_OPEN` atau `DEFAULT_CLOSED`) untuk entri kalender tertentu yang dimiliki oleh atau dibagikan dengan akun Anda, pada waktu yang ditentukan sebagai nilai `--at-time`, dan waktu transisi berikutnya. Jika Anda tidak menambahkan parameter `--at-time`, waktu saat ini digunakan.
**catatan**  
Jika Anda menentukan lebih dari satu kalender dalam permintaan, perintah mengembalikan status `OPEN` hanya jika semua kalender dalam permintaan terbuka. Jika satu atau lebih kalender dalam permintaan ditutup, status yang dikembalikan adalah `CLOSED`.

# Menambahkan Change Calendar dependensi ke runbook Otomasi
<a name="systems-manager-change-calendar-automations"></a>

Untuk membuat tindakan Otomasi mematuhiChange Calendar, alat masuk AWS Systems Manager, tambahkan langkah dalam runbook Otomasi yang menggunakan [`aws:assertAwsResourceProperty`](automation-action-assertAwsResourceProperty.md)tindakan. Konfigurasikan tindakan untuk menjalankan `GetCalendarState` guna memverifikasi bahwa entri kalender tertentu sedang dalam status yang Anda inginkan (`OPEN` atau `CLOSED`). Runbook Otomatisasi hanya diperbolehkan untuk melanjutkan ke langkah berikutnya jika status kalender adalah `OPEN`. Berikut ini adalah kutipan sampel berbasis YAML dari runbook Otomatisasi yang tidak dapat melanjutkan ke langkah berikutnya, `LaunchInstance`, kecuali jika status kalender cocok dengan `OPEN`, status yang ditentukan dalam `DesiredValues`.

Berikut adalah contohnya.

```
mainSteps:
  - name: MyCheckCalendarStateStep
    action: 'aws:assertAwsResourceProperty'
    inputs:
      Service: ssm
      Api: GetCalendarState
      CalendarNames: ["arn:aws:ssm:us-east-2:123456789012:document/SaleDays"]
      PropertySelector: '$.State'
      DesiredValues:
      - OPEN
    description: "Use GetCalendarState to determine whether a calendar is open or closed."
    nextStep: LaunchInstance
  - name: LaunchInstance
    action: 'aws:executeScript'
    inputs:
      Runtime: python3.11 
...
```

# Pemecahan Masalah Change Calendar
<a name="change-calendar-troubleshooting"></a>

Gunakan informasi berikut untuk membantu Anda memecahkan masalah denganChange Calendar, alat di. AWS Systems Manager

**Topics**
+ [Kesalahan 'Impor kalender gagal'](#change-manager-troubleshooting-1)

## Kesalahan 'Impor kalender gagal'
<a name="change-manager-troubleshooting-1"></a>

**Masalah**: Saat mengimpor file iCalendar `.ics` (), sistem melaporkan bahwa impor kalender gagal.
+ **Solusi 1** — Pastikan Anda mengimpor file yang diekspor dari penyedia kalender pihak ketiga yang didukung, yang mencakup hal-hal berikut:
  + Kalender Google ([Instruksi ekspor](https://support.google.com/calendar/answer/37111))
  + Microsoft Outlook ([Instruksi ekspor](https://support.microsoft.com/en-us/office/export-an-outlook-calendar-to-google-calendar-662fa3bb-0794-4b18-add8-9968b665f4e6))
  + Kalender iCloud ([Instruksi ekspor](https://support.apple.com/guide/calendar/import-or-export-calendars-icl1023/mac))
+ **Solusi 2** - Jika kalender sumber Anda berisi peristiwa berulang, pastikan tidak ada kejadian individual acara yang dibatalkan atau dihapus. Saat ini, Change Calendar tidak mendukung pengimporan peristiwa berulang dengan pembatalan individual. Untuk mengatasi masalah ini, hapus acara berulang dari kalender sumber, ekspor ulang kalender dan impor ulang ke dalamnyaChange Calendar, lalu tambahkan acara berulang menggunakan antarmuka. Change Calendar Untuk informasi, lihat [Membuat sebuah Change Calendar kejadian](change-calendar-create-event.md).
+ **Solusi 3** — Pastikan kalender sumber Anda berisi setidaknya satu acara. Unggahan `.ics` file yang tidak berisi peristiwa tidak berhasil.
+ **Solusi 4** — Jika sistem melaporkan bahwa impor gagal karena `.ics` terlalu besar, pastikan bahwa Anda hanya mengekspor detail dasar tentang entri kalender Anda. Jika perlu, kurangi lamanya periode waktu yang Anda ekspor.
+ **Solusi 5** - Jika Change Calendar tidak dapat menentukan zona waktu kalender yang diekspor saat mencoba mengimpornya dari tab **Acara**, Anda mungkin menerima pesan ini: “Impor kalender gagal. Change Calendartidak dapat menemukan zona waktu yang valid. Anda dapat mengimpor kalender dari menu Edit. Dalam hal ini, pilih **Tindakan, Edit**, lalu coba impor file dari halaman **Edit kalender**.
+ **Solusi 6** - Jangan mengedit `.ics` file sebelum mengimpor. Mencoba memodifikasi isi file dapat merusak data kalender. Jika Anda telah memodifikasi file sebelum mencoba mengimpor, ekspor kalender dari kalender sumber lagi, lalu coba ulang unggahan.

# AWS Systems Manager Change Manager
<a name="change-manager"></a>

**Change Managerperubahan ketersediaan**  
AWS Systems ManagerChange Managertidak akan lagi terbuka untuk pelanggan baru mulai 7 November 2025. Jika Anda ingin menggunakannyaChange Manager, daftar sebelum tanggal tersebut. Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS Systems ManagerChange Manager ketersediaan](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Change Manager, alat di AWS Systems Manager, adalah kerangka kerja manajemen perubahan perusahaan untuk meminta, menyetujui, menerapkan, dan melaporkan perubahan operasional pada konfigurasi dan infrastruktur aplikasi Anda. Dari satu *akun administrator yang didelegasikan*, jika Anda menggunakan AWS Organizations, Anda dapat mengelola perubahan di beberapa Akun AWS dan di seluruh Wilayah AWS. Atau, dengan menggunakan *akun lokal*, Anda dapat mengelola perubahan untuk satu Akun AWS. Gunakan Change Manager untuk mengelola perubahan pada AWS sumber daya dan sumber daya lokal. Untuk memulaiChange Manager, buka [konsol Systems Manager](https://console.aws.amazon.com//systems-manager/change-manager). Di panel navigasi, pilih **Change Manager**.

DenganChange Manager, Anda dapat menggunakan *templat perubahan* yang telah disetujui sebelumnya untuk membantu mengotomatiskan proses perubahan sumber daya Anda dan membantu menghindari hasil yang tidak disengaja saat membuat perubahan operasional. Setiap templat perubahan menentukan hal berikut:
+ Satu atau beberapa runbook Otomatisasi untuk dipilih pengguna saat membuat permintaan perubahan. Perubahan yang dibuat pada sumber daya Anda ditentukan dalam runbook otomatisasi. Anda dapat menyertakan runbook kustom atau [runbook terkelola AWS](automation-documents-reference.md) dalam templat perubahan yang Anda buat. Ketika pengguna membuat permintaan perubahan, mereka dapat memilih salah satu runbook yang tersedia untuk disertakan dalam permintaan. Selain itu, Anda dapat membuat templat perubahan yang memungkinkan pengguna yang membuat permintaan untuk menentukan runbook apa pun dalam permintaan perubahan.
+ Pengguna di akun yang harus meninjau permintaan perubahan yang dibuat menggunakan templat perubahan tersebut.
+ Topik Amazon Simple Notification Service (Amazon SNS) yang digunakan untuk memberi tahu pemberi persetujuan yang ditetapkan bahwa permintaan perubahan siap untuk ditinjau.
+  CloudWatch Alarm Amazon yang digunakan untuk memantau alur kerja runbook.
+ Topik Amazon SNS yang digunakan untuk mengirim notifikasi tentang perubahan status untuk permintaan perubahan yang dibuat menggunakan templat perubahan.
+ Tag yang akan diterapkan ke templat perubahan untuk digunakan dalam mengategorikan dan memfilter templat perubahan Anda.
+ Apakah permintaan perubahan yang dibuat dari templat perubahan dapat dijalankan tanpa langkah persetujuan (permintaan yang disetujui secara otomatis).

Melalui integrasinya denganChange Calendar, yang merupakan alat lain di Systems Manager, Change Manager juga membantu Anda menerapkan perubahan dengan aman sambil menghindari konflik jadwal dengan acara bisnis penting. Change Managerintegrasi dengan AWS Organizations dan AWS IAM Identity Center membantu Anda mengelola perubahan di seluruh organisasi Anda dari satu akun menggunakan sistem manajemen identitas yang ada. Anda dapat memantau kemajuan perubahan dari Change Manager dan mengaudit perubahan operasional di seluruh organisasi Anda, memberikan visibilitas dan akuntabilitas yang lebih baik.

Change Managermelengkapi kontrol keamanan praktik [integrasi berkelanjutan](https://aws.amazon.com/devops/continuous-integration) (CI) dan metodologi [pengiriman berkelanjutan](https://aws.amazon.com/devops/continuous-delivery) (CD) Anda. Change Managertidak dimaksudkan untuk perubahan yang dibuat sebagai bagian dari proses rilis otomatis, seperti CI/CD pipeline, kecuali ada pengecualian atau persetujuan yang diperlukan.

## Cara kerja Change Manager
<a name="how-change-manager-works"></a>

Ketika kebutuhan untuk perubahan operasional standar atau darurat diidentifikasi, seseorang di organisasi membuat permintaan perubahan yang didasarkan pada salah satu templat perubahan yang dibuat untuk digunakan di organisasi atau akun Anda.

Jika perubahan yang diminta memerlukan persetujuan manual, Change Manager beri tahu pemberi persetujuan yang ditunjuk melalui pemberitahuan Amazon SNS bahwa permintaan perubahan siap untuk ditinjau. Anda dapat menetapkan pemberi persetujuan untuk permintaan perubahan dalam templat perubahan, atau membiarkan pengguna menunjuk pemberi persetujuan dalam permintaan perubahan itu sendiri. Anda dapat menetapkan peninjau yang berbeda untuk templat yang berbeda. Misalnya, tetapkan satu peran pengguna, grup pengguna, atau AWS Identity and Access Management (IAM) yang harus menyetujui permintaan perubahan pada node terkelola, dan peran pengguna, grup, atau IAM lainnya untuk perubahan basis data. Jika templat perubahan memungkinkan persetujuan otomatis, dan kebijakan pengguna pemohon tidak melarangnya, pengguna juga dapat memilih untuk menjalankan runbook Otomasi untuk permintaan mereka tanpa langkah peninjauan (dengan pengecualian peristiwa pembekuan perubahan).

Untuk setiap templat perubahan, Anda dapat menambahkan hingga lima tingkat pemberi persetujuan. Misalnya, Anda mungkin memerlukan peninjau teknis untuk menyetujui permintaan perubahan yang dibuat dari templat perubahan terlebih dahulu, dan kemudian memerlukan persetujuan tingkat kedua dari satu pengelola atau lebih.

Change Manager terintegrasi dengan [AWS Systems Manager Change Calendar](systems-manager-change-calendar.md). Ketika perubahan yang diminta disetujui, sistem pertama-tama akan menentukan apakah permintaan tersebut bertentangan dengan aktivitas bisnis terjadwal lainnya. Jika konflik terdeteksi, Change Manager dapat memblokir perubahan atau memerlukan persetujuan tambahan sebelum memulai alur kerja buku runbook. Misalnya, Anda mungkin mengizinkan perubahan hanya selama jam kerja untuk memastikan bahwa tim tersedia untuk mengelola masalah yang tidak terduga. Untuk setiap perubahan yang diminta untuk dijalankan di luar jam tersebut, Anda dapat meminta persetujuan manajemen tingkat yang lebih tinggi dalam bentuk *pemberi persetujuan pembekuan perubahan*. Untuk perubahan darurat, Change Manager dapat melewati langkah memeriksa Change Calendar konflik atau memblokir peristiwa setelah permintaan perubahan disetujui.

Saat tiba waktunya untuk menerapkan perubahan yang disetujui, Change Manager jalankan runbook Otomasi yang ditentukan dalam permintaan perubahan terkait. Hanya operasi yang ditentukan dalam permintaan perubahan yang disetujui yang diizinkan saat alur kerja runbook berjalan. Pendekatan ini membantu Anda menghindari hasil yang tidak disengaja saat perubahan sedang diterapkan.

Selain membatasi perubahan yang dapat dilakukan saat alur kerja runbook berjalan, Change Manager juga membantu Anda mengontrol ambang konkurensi dan kesalahan. Anda memilih berapa banyak sumber daya yang dapat dijalankan oleh alur kerja runbook sekaligus, berapa banyak akun yang dapat menjalankan perubahan sekaligus, dan berapa banyak kegagalan yang diizinkan sebelum proses dihentikan dan (jika runbook menyertakan skrip rollback) dibatalkan. Anda juga dapat memantau kemajuan perubahan yang dilakukan dengan menggunakan CloudWatch alarm.

Setelah alur kerja runbook selesai, Anda dapat meninjau detail tentang perubahan yang dibuat. Detail ini mencakup alasan permintaan perubahan, templat perubahan mana yang digunakan, siapa yang meminta dan menyetujui perubahan, dan bagaimana perubahan diterapkan.

**Info lebih lanjut**  
[Memperkenalkan AWS Systems ManagerChange Manager](https://aws.amazon.com/blogs/aws/introducing-systems-manager-change-manager/) di *Blog AWS Berita*

## Bagaimana bisa Change Manager menguntungkan operasi saya?
<a name="change-manager-benefits"></a>

Manfaat Change Manager antara lain sebagai berikut:
+ **Mengurangi risiko gangguan layanan dan downtime**

  Change Managerdapat membuat perubahan operasional lebih aman dengan memastikan bahwa hanya perubahan yang disetujui yang diterapkan saat alur kerja runbook berjalan. Anda dapat memblokir perubahan yang tidak direncanakan dan tidak ditinjau. Change Managermembantu Anda menghindari jenis hasil yang tidak disengaja yang disebabkan oleh kesalahan manusia yang membutuhkan berjam-jam penelitian dan backtracking yang mahal.
+ **Dapatkan audit dan pelaporan terperinci tentang riwayat perubahan**

  Change Managermemberikan akuntabilitas dengan cara yang konsisten untuk melaporkan dan mengaudit perubahan yang dibuat di seluruh organisasi Anda, maksud dari perubahan, dan rincian tentang siapa yang menyetujui dan menerapkannya.
+ **Hindari konflik jadwal atau pelanggaran**

  Change Managerdapat mendeteksi konflik jadwal seperti acara liburan atau peluncuran produk baru, berdasarkan kalender perubahan aktif untuk organisasi Anda. Anda dapat mengizinkan alur kerja runbook untuk berjalan hanya selama jam kerja, atau mengizinkannya hanya dengan persetujuan tambahan.
+ **Sesuaikan persyaratan perubahan dengan bisnis Anda yang berubah**

  Selama periode bisnis yang berbeda, Anda dapat menerapkan persyaratan manajemen perubahan yang berbeda. Misalnya, selama end-of-month pelaporan, musim pajak, atau periode bisnis penting lainnya, Anda dapat memblokir perubahan atau meminta persetujuan tingkat direktur untuk perubahan yang dapat menimbulkan risiko operasional yang tidak perlu.
+ **Mengelola perubahan secara terpusat di seluruh akun**

  Melalui integrasinya dengan Organizations, Change Manager memungkinkan Anda untuk mengelola perubahan di seluruh unit organisasi (OUs) Anda dari satu akun administrator yang didelegasikan. Anda dapat mengaktifkan Change Manager untuk digunakan dengan seluruh organisasi Anda atau hanya dengan beberapa dari Anda OUs.

## Siapa yang harus menggunakanChange Manager?
<a name="change-manager-who"></a>

Change Managersesuai untuk AWS pelanggan dan organisasi berikut:
+ Setiap AWS pelanggan yang ingin meningkatkan keamanan dan tata kelola perubahan operasional yang dilakukan pada cloud atau lingkungan lokal mereka.
+ Organizations yang ingin meningkatkan kolaborasi dan visibilitas di seluruh tim, meningkatkan ketersediaan aplikasi dengan menghindari waktu henti, dan mengurangi risiko yang terkait dengan tugas manual dan berulang.
+ Organizations yang harus mematuhi praktik terbaik untuk manajemen perubahan. 
+ Pelanggan yang membutuhkan riwayat perubahan yang dapat diaudit sepenuhnya pada konfigurasi dan infrastruktur aplikasi mereka.

## Apa saja fitur utamaChange Manager?
<a name="change-manager-features"></a>

Fitur utama Change Manager meliputi:
+ **Dukungan terintegrasi untuk praktik terbaik manajemen perubahan**

  DenganChange Manager, Anda dapat menerapkan praktik terbaik manajemen perubahan tertentu ke operasi Anda. Anda dapat memilih untuk mengaktifkan opsi berikut:
  + Periksa Change Calendar untuk melihat apakah acara saat ini dibatasi sehingga perubahan hanya dilakukan selama periode kalender terbuka.
  + Mengizinkan perubahan selama peristiwa terbatas dengan persetujuan ekstra dari pemberi persetujuan pembekuan perubahan.
  + Memerlukan CloudWatch alarm yang akan ditentukan untuk semua template perubahan.
  + Mengharuskan semua templat perubahan yang dibuat di akun Anda untuk ditinjau dan disetujui sebelum dapat digunakan untuk membuat permintaan perubahan.
+ **Jalur persetujuan yang berbeda untuk periode kalender tertutup dan permintaan perubahan darurat**

  Anda dapat mengizinkan opsi Change Calendar untuk memeriksa peristiwa yang dibatasi dan memblokir permintaan perubahan yang disetujui hingga acara selesai. Namun, Anda juga dapat menunjuk grup pemberi persetujuan kedua, pemberi persetujuan pembekuan perubahan, yang dapat mengizinkan perubahan dilakukan meskipun kalender ditutup. Anda juga dapat membuat templat perubahan darurat. Permintaan perubahan yang dibuat dari templat perubahan darurat masih memerlukan persetujuan reguler tetapi tidak tunduk pada batasan kalender dan tidak memerlukan persetujuan pembekuan perubahan.
+ **Kontrol bagaimana dan kapan alur kerja runbook dimulai**

  Alur kerja runbook dapat dimulai sesuai dengan jadwal, atau segera setelah persetujuan selesai (tunduk pada aturan pembatasan kalender).
+ **Dukungan notifikasi bawaan**

  Tentukan siapa di organisasi Anda yang harus meninjau dan menyetujui templat perubahan dan permintaan perubahan. Tetapkan topik Amazon SNS ke templat perubahan untuk mengirim notifikasi ke pelanggan topik tentang perubahan status untuk permintaan perubahan yang dibuat dengan templat perubahan tersebut.
+ **Integrasi dengan AWS Systems Manager Change Calendar**

  Change Managermemungkinkan administrator untuk membatasi perubahan penjadwalan selama periode waktu tertentu. Misalnya, Anda dapat membuat kebijakan yang mengizinkan perubahan hanya selama jam kerja untuk memastikan bahwa tim tersedia untuk menangani masalah apa pun. Anda juga dapat membatasi perubahan selama peristiwa bisnis penting. Misalnya, bisnis ritel mungkin membatasi perubahan selama peristiwa penjualan besar. Anda juga dapat meminta persetujuan tambahan selama periode terbatas. 
+ **Integrasi dengan AWS IAM Identity Center dan dukungan Active Directory**

  Dengan integrasi IAM Identity Center, anggota organisasi Anda dapat mengakses Akun AWS dan mengelola sumber daya mereka menggunakan Systems Manager berdasarkan identitas pengguna umum. Dengan menggunakan IAM Identity Center, Anda dapat menetapkan akses pengguna ke akun di seluruh akun. AWS

  Integrasi dengan Active Directory memungkinkan untuk menetapkan pengguna di akun Active Directory Anda sebagai pemberi persetujuan untuk templat perubahan yang dibuat untuk operasi AndaChange Manager.
+ **Integrasi dengan CloudWatch alarm Amazon**

  Change Managerterintegrasi dengan CloudWatch alarm. Change Managermendengarkan CloudWatch alarm selama alur kerja runbook dan mengambil tindakan apa pun, termasuk mengirim notifikasi, yang ditentukan untuk alarm.
+ **Integrasi dengan AWS CloudTrail Danau**

  Dengan membuat penyimpanan data acara di AWS CloudTrail Lake, Anda dapat melihat informasi yang dapat diaudit tentang perubahan yang dibuat oleh permintaan perubahan yang berjalan di akun atau organisasi Anda. Informasi acara yang disimpan mencakup rincian seperti berikut:
  + Tindakan API yang dijalankan
  + Tparameter permintaan disertakan untuk tindakan tersebut
  + Pengguna yang menjalankan tindakan
  + Sumber daya yang diperbarui selama proses
+ **Integrasi dengan AWS Organizations**

  Menggunakan kemampuan lintas akun yang disediakan oleh Organizations, Anda dapat menggunakan akun administrator yang didelegasikan untuk mengelola Change Manager operasi OUs di organisasi Anda. Di akun manajemen Organizations, Anda dapat menentukan akun mana yang menjadi akun administrator yang didelegasikan. Anda juga dapat mengontrol mana dari Anda yang OUs Change Manager dapat digunakan.

## Apakah ada biaya untuk digunakanChange Manager?
<a name="change-manager-cost"></a>

Ya. Change ManagerHarganya pay-per-use berdasarkan. Anda hanya membayar untuk apa yang Anda gunakan. Untuk informasi selengkapnya, lihat [Harga AWS Systems Manager](https://aws.amazon.com/systems-manager/pricing/).

## Apa komponen utamaChange Manager?
<a name="change-manager-primary-components"></a>

Change Managerkomponen yang Anda gunakan untuk mengelola proses perubahan di organisasi atau akun Anda meliputi:

### Akun administrator yang didelegasikan
<a name="change-manager-what-is-delegated-account"></a>

Jika Anda menggunakan Change Manager di seluruh organisasi, Anda menggunakan akun administrator yang didelegasikan. Ini Akun AWS ditetapkan sebagai akun untuk mengelola aktivitas operasi di seluruh Systems Manager, termasukChange Manager. Akun administrator yang didelegasikan mengelola aktivitas perubahan di seluruh organisasi Anda. Saat menyiapkan organisasi untuk digunakanChange Manager, Anda menentukan akun mana yang berfungsi dalam peran ini. Akun administrator yang didelegasikan harus menjadi satu-satunya anggota unit organisasi (OU) yang ditetapkan. Akun administrator yang didelegasikan tidak diperlukan jika Anda menggunakan Change Manager dengan satu Akun AWS saja.

**penting**  
Jika Anda menggunakan Change Manager di seluruh organisasi, sebaiknya selalu membuat perubahan dari akun administrator yang didelegasikan. Meskipun Anda dapat membuat perubahan dari akun lain di organisasi, perubahan tersebut tidak akan dilaporkan atau dapat dilihat dari akun administrator yang didelegasikan.

### Mengubah templat
<a name="change-manager-what-is-change-template"></a>

Templat perubahan adalah kumpulan pengaturan konfigurasi yang menentukan hal-hal seperti persetujuan Change Manager yang diperlukan, runbook yang tersedia, dan opsi notifikasi untuk permintaan perubahan.

Anda dapat mengharuskan templat perubahan yang dibuat oleh pengguna di organisasi atau akun Anda untuk melalui proses persetujuan sebelum dapat digunakan.

Change Managermendukung dua jenis template perubahan. Untuk permintaan perubahan yang disetujui yang didasarkan pada *templat perubahan darurat*, perubahan yang diminta dapat dilakukan meskipun ada peristiwa pemblokiranChange Calendar. Untuk permintaan perubahan yang disetujui yang didasarkan pada *templat perubahan standar*, perubahan yang diminta tidak dapat dilakukan jika ada peristiwa pemblokiran Change Calendar kecuali persetujuan tambahan diterima dari pemberi persetujuan *peristiwa pembekuan perubahan* yang ditentukan.

### Permintaan perubahan
<a name="change-manager-what-is-change-request"></a>

Permintaan perubahan adalah permintaan Change Manager untuk menjalankan runbook Otomasi yang memperbarui satu atau beberapa sumber daya di lingkungan Anda AWS atau lokal. Permintaan perubahan dibuat menggunakan templat perubahan.

Saat Anda membuat permintaan perubahan, satu atau beberapa pemberi persetujuan di organisasi atau akun Anda harus meninjau dan menyetujui permintaan tersebut. Tanpa persetujuan yang diperlukan, alur kerja runbook, yang menerapkan perubahan yang Anda minta, tidak diizinkan untuk berjalan.

Dalam sistem, permintaan perubahan adalah jenis OpsItem in AWS Systems Manager OpsCenter. Namun, OpsItems dari jenis tersebut `/aws/changerequest` tidak ditampilkan diOpsCenter. KarenaOpsItems, permintaan perubahan tunduk pada kuota yang diberlakukan sama dengan jenis lainnya. OpsItems 

Selain itu, untuk membuat permintaan perubahan secara terprogram, Anda tidak memanggil operasi API `CreateOpsItem`. Sebaliknya, Anda menggunakan operasi API `[https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_StartChangeRequestExecution.html](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_StartChangeRequestExecution.html)`. Tetapi daripada berjalan segera, permintaan perubahan harus disetujui, dan tidak boleh ada peristiwa pemblokiran Change Calendar untuk mencegah alur kerja berjalan. Ketika persetujuan telah diterima dan kalender tidak diblokir (atau izin telah diberikan untuk mengabaikan peristiwa pemblokiran kalender), tindakan `StartChangeRequestExecution` dapat diselesaikan.

### Alur kerja runbook
<a name="change-manager-what-is-runbook-workflow"></a>

Alur kerja runbook adalah proses perubahan yang diminta yang dibuat di sumber daya yang ditargetkan di lingkungan cloud atau on-premise Anda. Setiap permintaan perubahan menunjuk satu runbook Otomatisasi yang akan digunakan untuk membuat perubahan yang diminta. Alur kerja runbook terjadi setelah semua persetujuan yang diperlukan telah diberikan dan tidak ada peristiwa pemblokiran di. Change Calendar Jika perubahan telah dijadwalkan untuk tanggal dan waktu tertentu, alur kerja runbook tidak dimulai hingga dijadwalkan, meskipun semua persetujuan telah diterima dan kalender tidak diblokir.

**Topics**
+ [Cara kerja Change Manager](#how-change-manager-works)
+ [Bagaimana bisa Change Manager menguntungkan operasi saya?](#change-manager-benefits)
+ [Siapa yang harus menggunakanChange Manager?](#change-manager-who)
+ [Apa saja fitur utamaChange Manager?](#change-manager-features)
+ [Apakah ada biaya untuk digunakanChange Manager?](#change-manager-cost)
+ [Apa komponen utamaChange Manager?](#change-manager-primary-components)
+ [Menyiapkan Change Manager](change-manager-setting-up.md)
+ [Bekerja dengan Change Manager](working-with-change-manager.md)
+ [Aktivitas audit dan pencatatan Change Manager](change-manager-auditing.md)
+ [Pemecahan Masalah Change Manager](change-manager-troubleshooting.md)

# Menyiapkan Change Manager
<a name="change-manager-setting-up"></a>

**Change Managerperubahan ketersediaan**  
AWS Systems ManagerChange Managertidak akan lagi terbuka untuk pelanggan baru mulai 7 November 2025. Jika Anda ingin menggunakannyaChange Manager, daftar sebelum tanggal tersebut. Pelanggan yang sudah ada dapat terus menggunakan layanan seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS Systems ManagerChange Manager ketersediaan](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Anda dapat menggunakanChange Manager, alat di AWS Systems Manager, untuk mengelola perubahan untuk seluruh organisasi, seperti yang dikonfigurasi dalam AWS Organizations, atau untuk satu Akun AWS.

Jika Anda menggunakan Change Manager sebuah organisasi, mulailah dengan topik[Menyiapkan Change Manager untuk organisasi (akun manajemen)](change-manager-organization-setup.md), dan kemudian lanjutkan ke[Mengkonfigurasi Change Manager opsi dan praktik terbaik](change-manager-account-setup.md).

Jika Anda menggunakan Change Manager dengan satu akun, lanjutkan langsung ke[Mengkonfigurasi Change Manager opsi dan praktik terbaik](change-manager-account-setup.md).

**catatan**  
Jika Anda mulai menggunakan Change Manager dengan satu akun, tetapi akun itu kemudian ditambahkan ke unit organisasi yang Change Manager diizinkan, pengaturan akun tunggal Anda diabaikan.

**Topics**
+ [Menyiapkan Change Manager untuk organisasi (akun manajemen)](change-manager-organization-setup.md)
+ [Mengkonfigurasi Change Manager opsi dan praktik terbaik](change-manager-account-setup.md)
+ [Mengkonfigurasi peran dan izin untuk Change Manager](change-manager-permissions.md)
+ [Mengontrol akses ke alur kerja runbook persetujuan otomatis](change-manager-auto-approval-access.md)

# Menyiapkan Change Manager untuk organisasi (akun manajemen)
<a name="change-manager-organization-setup"></a>

**Change Managerperubahan ketersediaan**  
AWS Systems ManagerChange Managertidak akan lagi terbuka untuk pelanggan baru mulai 7 November 2025. Jika Anda ingin menggunakannyaChange Manager, daftar sebelum tanggal tersebut. Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS Systems ManagerChange Manager ketersediaan](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Tugas dalam topik ini berlaku jika Anda menggunakanChange Manager, alat di AWS Systems Manager, dengan organisasi yang disiapkan AWS Organizations. Jika Anda ingin menggunakan Change Manager hanya dengan satu Akun AWS, lompat ke topik[Mengkonfigurasi Change Manager opsi dan praktik terbaik](change-manager-account-setup.md).

Lakukan tugas-tugas di bagian ini di Akun AWS yang berfungsi sebagai *akun manajemen* di Organizations. Untuk informasi tentang akun manajemen dan konsep Organizations lainnya, lihat [terminologi dan konsep AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html).

Jika Anda perlu mengaktifkan Organizations dan menentukan akun Anda sebagai akun manajemen sebelum melanjutkan, lihat [Membuat dan mengelola organisasi](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org.html)di *Panduan Pengguna AWS Organizations *. 

**catatan**  
Proses penyiapan ini tidak dapat dilakukan dalam hal berikut Wilayah AWS:  
Europe (Milan) (eu-south-1)
Middle East (Bahrain) (me-south-1)
Africa (Cape Town) (af-south-1)
Asia Pacific (Hong Kong) (ap-east-1)
Pastikan Anda bekerja di Wilayah yang berbeda di akun manajemen Anda untuk prosedur ini.

Selama prosedur penyiapan, Anda melakukan tugas-tugas utama berikut diQuick Setup, alat di AWS Systems Manager.
+ **Tugas 1: Daftarkan akun administrator yang didelegasikan untuk organisasi Anda**

  Tugas terkait perubahan yang dilakukan menggunakan Change Manager dikelola di salah satu akun anggota Anda, yang Anda tentukan sebagai akun administrator yang *didelegasikan*. Akun administrator yang didelegasikan yang Anda daftarkan Change Manager menjadi akun administrator yang didelegasikan untuk semua operasi Systems Manager Anda. (Anda mungkin telah mendelegasikan akun administrator untuk lainnya Layanan AWS). Akun administrator yang didelegasikanChange Manager, yang tidak sama dengan akun manajemen Anda, mengelola aktivitas perubahan di seluruh organisasi Anda, termasuk templat perubahan, permintaan perubahan, dan persetujuan untuk masing-masing. Di akun administrator yang didelegasikan, Anda juga menentukan opsi konfigurasi lain untuk Change Manager operasi Anda. 
**penting**  
Akun administrator yang didelegasikan harus menjadi satu-satunya anggota unit organisasi (OU) yang ditetapkan di Organizations.
+ **Tugas 2: Tentukan dan tentukan kebijakan akses buku runbook untuk peran pemohon perubahan, atau fungsi pekerjaan khusus, yang ingin Anda gunakan untuk operasi Change Manager**

  Untuk membuat permintaan perubahanChange Manager, pengguna di akun anggota Anda harus diberikan izin AWS Identity and Access Management (IAM) yang memungkinkan mereka mengakses hanya runbook Otomasi dan mengubah templat yang Anda pilih untuk disediakan bagi mereka. 
**catatan**  
Ketika pengguna membuat permintaan perubahan, mereka terlebih dahulu memilih templat perubahan. Templat perubahan ini mungkin membuat beberapa runbook tersedia, tetapi pengguna hanya dapat memilih satu runbook untuk setiap permintaan perubahan. Templat perubahan juga dapat dikonfigurasi untuk memungkinkan pengguna untuk menyertakan buku runbook yang tersedia dalam permintaan mereka.

  Untuk memberikan izin yang diperlukan, Change Manager gunakan konsep *fungsi pekerjaan*, yang juga digunakan oleh IAM. Namun, tidak seperti [kebijakan AWS terkelola untuk fungsi pekerjaan](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) di IAM, Anda menentukan nama fungsi Change Manager pekerjaan dan izin IAM untuk fungsi pekerjaan tersebut. 

  Saat Anda mengonfigurasi fungsi tugas, sebaiknya buat kebijakan kustom dan berikan hanya izin yang diperlukan untuk melakukan tugas manajemen perubahan. Misalnya, Anda dapat menentukan izin yang membatasi pengguna ke kumpulan runbook tertentu berdasarkan *fungsi pekerjaan* yang Anda tentukan. 

  Misalnya, Anda dapat membuat fungsi tugas dengan nama `DBAdmin`. Untuk fungsi tugas ini, Anda mungkin hanya memberikan izin yang diperlukan untuk runbook yang terkait dengan database Amazon DynamoDB, seperti `AWS-CreateDynamoDbBackup` dan `AWSConfigRemediation-DeleteDynamoDbTable`. 

  Sebagai contoh lain, Anda mungkin ingin memberikan beberapa pengguna izin yang diperlukan saja untuk bekerja dengan runbook yang terkait dengan bucket Amazon Simple Storage Service (Amazon S3) seperti `AWS-ConfigureS3BucketLogging` dan `AWSConfigRemediation-ConfigureS3BucketPublicAccessBlock`. 

  Proses konfigurasi di Quick Setup for Change Manager juga membuat satu set izin administratif Systems Manager lengkap tersedia bagi Anda untuk diterapkan ke peran administratif yang Anda buat. 

  Setiap Change Manager Quick Setup konfigurasi yang Anda terapkan akan membuat fungsi pekerjaan di akun administrator yang didelegasikan dengan izin untuk menjalankan Change Manager templat dan runbook Otomasi di unit organisasi yang telah Anda pilih. Anda dapat membuat hingga 15 Quick Setup konfigurasi untukChange Manager. 
+ **Tugas 3: Pilih akun anggota mana di organisasi Anda yang akan digunakan Change Manager**

  Anda dapat menggunakan Change Manager dengan semua akun anggota di semua unit organisasi Anda yang diatur di Organizations, dan di semua akun Wilayah AWS tersebut beroperasi. Jika Anda mau, Anda dapat menggunakan hanya Change Manager dengan beberapa unit organisasi Anda.

**penting**  
Kami sangat menyarankan, sebelum memulai prosedur ini, bahwa Anda membaca langkah-langkahnya untuk memahami pilihan konfigurasi yang Anda buat dan izin yang Anda berikan. Secara khusus, rencanakan fungsi tugas khusus yang akan Anda buat dan izin yang Anda tetapkan untuk setiap fungsi tugas. Ini memastikan bahwa ketika nanti Anda melampirkan kebijakan fungsi pekerjaan yang Anda buat ke pengguna individu, grup pengguna, atau peran IAM, mereka hanya diberikan izin yang Anda inginkan untuk mereka miliki.  
Sebagai praktik terbaik, mulailah dengan menyiapkan akun administrator yang didelegasikan menggunakan login untuk Akun AWS administrator. Kemudian, konfigurasikan fungsi tugas dan izinnya setelah Anda membuat templat perubahan dan mengidentifikasi runbook yang digunakan masing-masing.

Change ManagerUntuk mengatur penggunaan dengan organisasi, lakukan tugas berikut di Quick Setup area konsol Systems Manager.

Ulangi tugas ini untuk setiap fungsi tugas yang ingin Anda buat untuk organisasi Anda. Setiap fungsi tugas yang Anda buat dapat memiliki izin untuk serangkaian unit organisasi yang berbeda.

**Untuk mengatur organisasi Change Manager di akun manajemen Organizations**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Quick Setup**.

1. Pada **Change Manager**kartu, pilih **Buat**.

1. Untuk **akun administrator yang didelegasikan**, masukkan ID yang ingin Akun AWS Anda gunakan untuk mengelola templat perubahan, permintaan perubahan, dan alur kerja buku runbook. Change Manager 

   Jika Anda sebelumnya telah menetapkan akun administrator yang didelegasikan untuk Systems Manager, ID akun tersebut sudah dilaporkan dalam bidang ini. 
**penting**  
Akun administrator yang didelegasikan harus menjadi satu-satunya anggota unit organisasi (OU) yang ditetapkan di Organizations.  
Jika akun administrator yang didelegasikan yang Anda daftarkan kemudian dibatalkan pendaftarannya dari peran itu, sistem akan menghapus izinnya untuk mengelola operasi Systems Manager secara bersamaan. Ingatlah bahwa Anda perlu kembali keQuick Setup, menunjuk akun administrator yang didelegasikan yang berbeda, dan tentukan semua fungsi dan izin pekerjaan lagi.  
Jika Anda menggunakan Change Manager di seluruh organisasi, sebaiknya selalu membuat perubahan dari akun administrator yang didelegasikan. Meskipun Anda dapat membuat perubahan dari akun lain di organisasi, perubahan tersebut tidak akan dilaporkan atau dapat dilihat dari akun administrator yang didelegasikan.

1. Di bagian **Izin untuk meminta dan membuat perubahan**, lakukan hal berikut.
**catatan**  
Setiap konfigurasi deployment yang Anda buat menyediakan kebijakan izin hanya untuk satu fungsi tugas. Anda dapat kembali ke Quick Setup nanti untuk membuat lebih banyak fungsi pekerjaan ketika Anda telah membuat template perubahan untuk digunakan dalam operasi Anda.

   **Untuk membuat peran administratif** — Untuk fungsi tugas administrator yang memiliki izin IAM untuk semua tindakan AWS , lakukan hal berikut.
**penting**  
Pemberian izin administratif penuh kepada pengguna harus dilakukan secara terbatas, dan hanya jika peran mereka memerlukan akses penuh Systems Manager. Untuk informasi penting tentang pertimbangan keamanan untuk akses Systems Manager, lihat [Identity and access management untuk AWS Systems Manager](security-iam.md) dan [Praktik terbaik keamanan untuk Systems Manager](security-best-practices.md).

   1. Untuk **Fungsi tugas**, masukkan nama untuk mengidentifikasi peran ini dan izinnya, seperti **My AWS Admin**.

   1. Untuk **Opsi peran dan izin**, pilih **Izin administrator**.

   **Untuk membuat fungsi tugas lainnya** – Untuk membuat peran non-administratif, lakukan hal berikut:

   1. Untuk **Fungsi tugas**, masukkan nama untuk mengidentifikasi peran ini dan menyarankan izinnya. Nama yang Anda pilih harus mewakili cakupan runbook yang akan Anda berikan izinnya, seperti `DBAdmin` atau `S3Admin`. 

   1. Untuk **Opsi peran dan izin**, pilih **Izin kustom**.

   1. Di **Editor kebijakan izin**, masukkan izin IAM, dalam format JSON, untuk memberikan fungsi tugas ini.
**Tip**  
Kami menyarankan Anda untuk menggunakan editor kebijakan IAM untuk membangun kebijakan Anda lalu menempelkan JSON kebijakan tersebut ke bidang **Kebijakan izin**.

**Contoh kebijakan: manajemen database DynamoDB**  
Misalnya, Anda mungkin mulai dengan konten kebijakan yang memberikan izin untuk bekerja dengan dokumen Systems Manager (dokumen SSM) yang perlu diakses oleh fungsi tugas. Berikut adalah contoh konten kebijakan yang memberikan akses ke semua runbook Otomasi AWS terkelola yang terkait dengan database DynamoDB dan dua templat perubahan yang telah dibuat dalam sampel Akun AWS `123456789012`, di Wilayah AS Timur (Ohio) (). `us-east-2` 

   Kebijakan ini juga mencakup izin untuk [https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_StartChangeRequestExecution.html](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_StartChangeRequestExecution.html)operasi, yang diperlukan untuk membuat permintaan perubahan diChange Calendar. 
**catatan**  
Contoh ini tidak komprehensif. Izin tambahan mungkin diperlukan untuk bekerja dengan AWS sumber daya lain, seperti database dan node.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ssm:CreateDocument",
                   "ssm:DescribeDocument",
                   "ssm:DescribeDocumentParameters",
                   "ssm:DescribeDocumentPermission",
                   "ssm:GetDocument",
                   "ssm:ListDocumentVersions",
                   "ssm:ModifyDocumentPermission",
                   "ssm:UpdateDocument",
                   "ssm:UpdateDocumentDefaultVersion"
               ],
               "Resource": [
                   "arn:aws:ssm:us-east-1:*:document/AWS-CreateDynamoDbBackup",
                   "arn:aws:ssm:us-east-1:*:document/AWS-AWS-DeleteDynamoDbBackup",
                   "arn:aws:ssm:us-east-1:*:document/AWS-DeleteDynamoDbTableBackups",
                   "arn:aws:ssm:us-east-1:*:document/AWSConfigRemediation-DeleteDynamoDbTable",
                   "arn:aws:ssm:us-east-1:*:document/AWSConfigRemediation-EnableEncryptionOnDynamoDbTable",
                   "arn:aws:ssm:us-east-1:*:document/AWSConfigRemediation-EnablePITRForDynamoDbTable",
                   "arn:aws:ssm:us-east-1:111122223333:document/MyFirstDBChangeTemplate",
                   "arn:aws:ssm:us-east-1:111122223333:document/MySecondDBChangeTemplate"
               ]
           },
           {
               "Effect": "Allow",
               "Action": "ssm:ListDocuments",
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": "ssm:StartChangeRequestExecution",
               "Resource": [
                   "arn:aws:ssm:us-east-1:111122223333:document/*",
                   "arn:aws:ssm:us-east-1:111122223333:automation-execution/*"
               ]
           }
       ]
   }
   ```

------

   Untuk informasi selengkapnya tentang kebijakan IAM, lihat [Manajemen akses untuk sumber daya AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html) dan [Membuat kebijakan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) di *Panduan Pengguna IAM.*

1. Di bagian **Target**, pilih apakah akan memberikan izin untuk fungsi pekerjaan yang Anda buat ke seluruh organisasi atau hanya beberapa unit organisasi Anda.

   Jika Anda memilih **Seluruh organisasi**, lanjutkan ke langkah 9.

   Jika Anda memilih **Kustom**, lanjutkan ke langkah 8.

1. Di OUs bagian **Target**, pilih kotak centang unit organisasi yang akan digunakanChange Manager.

1. Pilih **Buat**.

Setelah sistem selesai menyiapkan Change Manager untuk organisasi Anda, ini akan menampilkan ringkasan penerapan Anda. Informasi ringkasan ini mencakup nama peran yang dibuat untuk fungsi pekerjaan yang Anda konfigurasikan. Misalnya, `AWS-QuickSetup-SSMChangeMgr-DBAdminInvocationRole`.

**catatan**  
Quick Setupdigunakan AWS CloudFormation StackSets untuk menyebarkan konfigurasi Anda. Anda juga dapat melihat informasi tentang konfigurasi deployment yang telah selesai di konsol CloudFormation . Untuk selengkapnya StackSets, lihat [Bekerja dengan AWS CloudFormation StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html) di *Panduan AWS CloudFormation Pengguna*.

Langkah Anda selanjutnya adalah mengonfigurasi Change Manager opsi tambahan. Anda dapat menyelesaikan tugas ini baik di akun administrator yang didelegasikan atau akun apa pun di unit organisasi yang diizinkan untuk digunakan. Change Manager Anda mengonfigurasi opsi seperti memilih opsi manajemen identitas pengguna, menentukan pengguna mana yang dapat meninjau dan menyetujui atau menolak templat perubahan dan permintaan perubahan, dan memilih opsi praktik terbaik mana yang diizinkan untuk organisasi Anda. Untuk informasi, lihat [Mengkonfigurasi Change Manager opsi dan praktik terbaik](change-manager-account-setup.md).

# Mengkonfigurasi Change Manager opsi dan praktik terbaik
<a name="change-manager-account-setup"></a>

**Change Managerperubahan ketersediaan**  
AWS Systems ManagerChange Managertidak akan lagi terbuka untuk pelanggan baru mulai 7 November 2025. Jika Anda ingin menggunakannyaChange Manager, daftar sebelum tanggal tersebut. Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS Systems ManagerChange Manager ketersediaan](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Tugas di bagian ini harus dilakukan apakah Anda menggunakanChange Manager, alat di AWS Systems Manager, di seluruh organisasi atau dalam satu Akun AWS.

Jika Anda menggunakan Change Manager untuk organisasi, Anda dapat melakukan tugas-tugas berikut di akun administrator yang didelegasikan atau akun apa pun di unit organisasi yang diizinkan untuk digunakan. Change Manager

**Topics**
+ [Tugas 1: Mengonfigurasi manajemen identitas Change Manager pengguna dan pengulas template](#cm-configure-account-task-1)
+ [Tugas 2: Mengonfigurasi Change Manager penyetuju peristiwa pembekuan perubahan dan praktik terbaik](#cm-configure-account-task-2)
+ [Mengonfigurasi topik Amazon SNS untuk notifikasi Change Manager](change-manager-sns-setup.md)

## Tugas 1: Mengonfigurasi manajemen identitas Change Manager pengguna dan pengulas template
<a name="cm-configure-account-task-1"></a>

Lakukan tugas dalam prosedur ini saat pertama kali Anda mengaksesChange Manager. Anda dapat memperbarui pengaturan konfigurasi ini nanti dengan kembali ke Change Manager dan memilih **Edit** pada tab **Pengaturan**.

**Untuk mengonfigurasi manajemen identitas Change Manager pengguna dan pengulas template**

1. Masuk ke Konsol Manajemen AWS.

   Jika Anda menggunakan Change Manager untuk organisasi, masuk menggunakan kredensional untuk akun administrator yang didelegasikan. Pengguna harus memiliki izin AWS Identity and Access Management (IAM) yang diperlukan untuk membuat pembaruan pada pengaturan AndaChange Manager.

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Change Manager**.

1. Di halaman beranda layanan, tergantung pada opsi yang tersedia, lakukan salah satu hal berikut:
   + Jika Anda menggunakan Change Manager dengan AWS Organizations , pilih **Siapkan akun yang didelegasikan**.
   + Jika Anda menggunakan Change Manager dengan satu Akun AWS, pilih **Siapkan Change Manager**.

     -atau-

     Pilih **Buat permintaan perubahan sampel**, **Lewati**, lalu pilih tab **Pengaturan**.

1. Untuk **Manajemen identitas pengguna**, pilih salah satu dari berikut ini.
   + **AWS Identity and Access Management (IAM)** - Identifikasi pengguna yang membuat dan menyetujui permintaan dan melakukan tindakan lain Change Manager dengan menggunakan pengguna, grup, dan peran Anda yang ada.
   + **AWS IAM Identity Center (Pusat Identitas IAM)** - [Izinkan Pusat Identitas IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/) untuk membuat dan mengelola identitas, atau terhubung ke sumber identitas yang ada untuk mengidentifikasi pengguna yang melakukan tindakan. Change Manager

1. Di bagian **Pemberitahuan peninjau Template**, tentukan topik Amazon Simple Notification Service (Amazon SNS) yang akan digunakan untuk memberi tahu pengulas template bahwa template perubahan baru atau perubahan versi template siap untuk ditinjau. Pastikan topik Amazon SNS yang Anda pilih dikonfigurasi untuk mengirim notifikasi ke peninjau templat Anda. 

   Untuk informasi tentang membuat dan mengonfigurasi topik Amazon SNS untuk pemberitahuan peninjau templat perubahan, lihat [Mengonfigurasi topik Amazon SNS untuk notifikasi Change Manager](change-manager-sns-setup.md).

   1. Untuk menentukan topik Amazon SNS untuk notifikasi peninjau templat, pilih salah satu opsi berikut:
      + **Masukkan SNS Amazon Resource Name (ARN)** – Untuk **ARN Topik**, masukkan ARN topik Amazon SNS yang ada. Topik ini dapat berada di salah satu akun organisasi Anda.
      + **Pilih topik SNS yang ada** – Untuk **Topik notifikasi target**, pilih ARN topik Amazon SNS yang ada di Akun AWS Anda saat ini. (Opsi ini tidak tersedia jika Anda belum membuat topik Amazon SNS apa pun di topik Anda saat ini Akun AWS dan Wilayah AWS.)
**catatan**  
Topik Amazon SNS yang Anda pilih harus dikonfigurasi untuk menentukan notifikasi yang dikirim dan pelanggan yang menerimanya. Kebijakan aksesnya juga harus memberikan izin kepada Systems Manager sehingga Change Manager dapat mengirim notifikasi. Untuk informasi, lihat [Mengonfigurasi topik Amazon SNS untuk notifikasi Change Manager](change-manager-sns-setup.md). 

   1. Pilih **Tambahkan notifikasi**.

1. Di bagian **Ubah peninjau templat**, pilih pengguna di organisasi atau akun Anda untuk meninjau templat perubahan baru atau mengubah versi templat sebelum dapat digunakan dalam operasi Anda. 

   Pengulas templat perubahan bertanggung jawab untuk memverifikasi kesesuaian dan keamanan templat yang telah dikirimkan pengguna lain untuk digunakan dalam alur kerja Change Manager runbook.

   Pilih ubah peninjau templat dengan melakukan hal berikut:

   1. Pilih **Tambahkan**.

   1. Pilih kotak centang di samping nama setiap pengguna, grup, atau peran IAM yang ingin Anda tetapkan sebagai pengulas templat perubahan.

   1. Pilih **Tambahkan pemberi persetujuan**.

1. Pilih **Kirim**.

 Setelah Anda menyelesaikan proses penyiapan awal ini, konfigurasikan Change Manager pengaturan tambahan dan praktik terbaik dengan mengikuti langkah-langkahnya[Tugas 2: Mengonfigurasi Change Manager penyetuju peristiwa pembekuan perubahan dan praktik terbaik](#cm-configure-account-task-2).

## Tugas 2: Mengonfigurasi Change Manager penyetuju peristiwa pembekuan perubahan dan praktik terbaik
<a name="cm-configure-account-task-2"></a>

Setelah Anda menyelesaikan langkah-langkahnya[Tugas 1: Mengonfigurasi manajemen identitas Change Manager pengguna dan pengulas template](#cm-configure-account-task-1), Anda dapat menunjuk pengulas tambahan untuk permintaan perubahan selama *peristiwa pembekuan perubahan* dan menentukan praktik terbaik yang tersedia yang ingin Anda izinkan untuk operasi AndaChange Manager.

Peristiwa pembekuan perubahan berarti pembatasan diberlakukan di kalender perubahan saat ini (status kalender di AWS Systems Manager Change Calendar adalah`CLOSED`). Dalam kasus ini, selain persetujuan reguler untuk permintaan perubahan, atau jika permintaan perubahan dibuat menggunakan templat yang memungkinkan persetujuan otomatis, pemberi persetujuan pembekuan perubahan harus memberikan izin agar permintaan perubahan ini dijalankan. Jika tidak, perubahan tidak akan diproses sampai status kalender kembali`OPEN`.

**Untuk mengonfigurasi Change Manager penyetuju peristiwa pembekuan perubahan dan praktik terbaik**

1. Di panel navigasi, pilih **Change Manager**.

1. Pilih tab **Pengaturan**, dan kemudian pilih **Edit**.

1. Di bagian **Penyetuju untuk peristiwa pembekuan perubahan**, pilih pengguna di organisasi atau akun Anda yang dapat menyetujui perubahan untuk dijalankan meskipun kalender yang digunakan saat ini Change Calendar DITUTUP.
**catatan**  
Untuk mengizinkan peninjauan pembekuan perubahan, Anda harus mengaktifkan opsi **Periksa Change Calendar untuk peristiwa perubahan terbatas** di **Praktik terbaik**.

   Pilih pemberi persetujuan untuk peristiwa pembekuan perubahan dengan melakukan hal berikut:

   1. Pilih **Tambahkan**.

   1. Pilih kotak centang di samping nama setiap pengguna, grup, atau peran IAM yang ingin Anda tetapkan sebagai pemberi persetujuan untuk peristiwa pembekuan perubahan.

   1. Pilih **Tambahkan pemberi persetujuan**.

1. Di bagian **Praktik terbaik** di dekat bagian bawah halaman, aktifkan praktik terbaik yang ingin Anda terapkan untuk setiap opsi berikut.
   + Pilihan: **Periksa Change Calendar untuk peristiwa perubahan terbatas**

     Untuk menentukan yang Change Manager memeriksa kalender Change Calendar untuk memastikan perubahan tidak diblokir oleh peristiwa terjadwal, pertama-tama pilih kotak centang **Diaktifkan**, lalu pilih kalender untuk memeriksa peristiwa terbatas dari daftar **Ubah Kalender**.

     Untuk informasi selengkapnya tentang Change Calendar, lihat [AWS Systems Manager Change Calendar](systems-manager-change-calendar.md).
   + Opsi: **Topik SNS untuk pemberi persetujuan untuk peristiwa tertutup**

     1. Pilih salah satu dari berikut ini untuk menentukan topik Amazon Simple Notification Service (Amazon SNS) di akun Anda yang akan digunakan untuk mengirim notifikasi ke pemberi persetujuan selama peristiwa pembekuan perubahan. (Ingat bahwa Anda juga harus menentukan pemberi persetujuan di bagian **Pemberi persetujuan untuk peristiwa pembekuan perubahan** di atas **Praktik terbaik**.)
        + **Masukkan SNS Amazon Resource Name (ARN)** – Untuk **ARN Topik**, masukkan ARN topik Amazon SNS yang ada. Topik ini dapat berada di salah satu akun organisasi Anda.
        + **Pilih topik SNS yang ada** – Untuk **Topik notifikasi target**, pilih ARN topik Amazon SNS yang ada di Akun AWS Anda saat ini. (Opsi ini tidak tersedia jika Anda belum membuat topik Amazon SNS apa pun di topik Anda saat ini Akun AWS dan Wilayah AWS.)
**catatan**  
Topik Amazon SNS yang Anda pilih harus dikonfigurasi untuk menentukan notifikasi yang dikirim dan pelanggan yang menerimanya. Kebijakan aksesnya juga harus memberikan izin kepada Systems Manager sehingga Change Manager dapat mengirim notifikasi. Untuk informasi, lihat [Mengonfigurasi topik Amazon SNS untuk notifikasi Change Manager](change-manager-sns-setup.md). 

     1. Pilih **Tambahkan notifikasi**.
   + Opsi: **Memerlukan pemantauan untuk semua templat**

     Jika Anda ingin memastikan bahwa semua templat untuk organisasi atau akun Anda menentukan CloudWatch alarm Amazon untuk memantau operasi perubahan Anda, pilih kotak centang **Diaktifkan**.
   + Opsi: **Memerlukan peninjauan dan persetujuan templat sebelum digunakan**

     Untuk memastikan bahwa tidak ada permintaan perubahan yang dibuat, dan tidak ada alur kerja runbook yang berjalan, tanpa didasarkan pada templat yang telah ditinjau dan disetujui, pilih kotak centang **Diaktifkan**.

1. Pilih **Simpan**.

# Mengonfigurasi topik Amazon SNS untuk notifikasi Change Manager
<a name="change-manager-sns-setup"></a>

**Change Managerperubahan ketersediaan**  
AWS Systems ManagerChange Managertidak akan lagi terbuka untuk pelanggan baru mulai 7 November 2025. Jika Anda ingin menggunakannyaChange Manager, daftar sebelum tanggal tersebut. Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS Systems ManagerChange Manager ketersediaan](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Anda dapat mengonfigurasiChange Manager, alat di AWS Systems Manager, untuk mengirim pemberitahuan ke topik Simple Notification Service Amazon (Amazon SNS) untuk acara yang terkait dengan permintaan perubahan dan templat perubahan. Selesaikan tugas-tugas berikut untuk menerima pemberitahuan untuk Change Manager acara yang Anda tambahkan topik.

**Topics**
+ [Tugas 1: Membuat dan berlangganan topik Amazon SNS](#change-manager-sns-setup-create-topic)
+ [Tugas 2: Memperbarui kebijakan akses Amazon SNS](#change-manager-sns-setup-encryption-policy)
+ [Tugas 3: (Opsional) Perbarui kebijakan AWS Key Management Service akses](#change-manager-sns-setup-KMS-policy)

## Tugas 1: Membuat dan berlangganan topik Amazon SNS
<a name="change-manager-sns-setup-create-topic"></a>

Pertama, Anda harus membuat dan berlangganan ke topik Amazon SNS. Untuk informasi selengkapnya, lihat [Membuat topik Amazon SNS dan Berlangganan topik](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html) [Amazon SNS di Panduan Pengembang Layanan](https://docs.aws.amazon.com/sns/latest/dg/sns-tutorial-create-subscribe-endpoint-to-topic.html) Pemberitahuan *Sederhana Amazon*.

**catatan**  
Untuk menerima pemberitahuan, Anda harus menentukan Nama Sumber Daya Amazon (ARN) dari topik Amazon SNS yang Wilayah AWS sama Akun AWS dan sebagai akun administrator yang didelegasikan. 

## Tugas 2: Memperbarui kebijakan akses Amazon SNS
<a name="change-manager-sns-setup-encryption-policy"></a>

Gunakan prosedur berikut untuk memperbarui kebijakan akses Amazon SNS sehingga Systems Manager dapat mempublikasikan Change Manager pemberitahuan ke topik Amazon SNS yang Anda buat di Tugas 1. Tanpa menyelesaikan tugas ini, Change Manager tidak memiliki izin untuk mengirim pemberitahuan untuk acara yang Anda tambahkan topik.

1. [Masuk ke Konsol Manajemen AWS dan buka konsol Amazon SNS di https://console.aws.amazon.com/sns/ v3/home.](https://console.aws.amazon.com/sns/v3/home)

1. Di panel navigasi, pilih **Topik**.

1. Pilih topik yang Anda buat di Tugas 1, lalu pilih **Edit**.

1. Perluas **Kebijakan akses**.

1. Tambahkan dan perbarui `Sid` blok berikut ke kebijakan yang ada dan ganti masing-masing *user input placeholder* dengan informasi Anda sendiri.

   ```
   {
       "Sid": "Allow Change Manager to publish to this topic",
       "Effect": "Allow",
       "Principal": {
           "Service": "ssm.amazonaws.com"
       },
       "Action": "sns:Publish",
       "Resource": "arn:aws:sns:region:account-id:topic-name",
       "Condition": {
           "StringEquals": {
               "aws:SourceAccount": [
                   "account-id"
               ]
           }
       }
   }
   ```

   Masukkan blok ini setelah blok yang ada`Sid`, dan ganti*region*,*account-id*, dan *topic-name* dengan nilai yang sesuai untuk topik yang Anda buat.

1. Pilih **Simpan perubahan**.

Sistem sekarang mengirimkan notifikasi ke topik Amazon SNS saat jenis peristiwa yang Anda tambahkan ke topik terjadi.

**penting**  
Jika Anda mengonfigurasi topik Amazon SNS dengan kunci enkripsi sisi server AWS Key Management Service (AWS KMS), Anda harus menyelesaikan Tugas 3.

## Tugas 3: (Opsional) Perbarui kebijakan AWS Key Management Service akses
<a name="change-manager-sns-setup-KMS-policy"></a>

Jika Anda mengaktifkan AWS Key Management Service (AWS KMS) enkripsi sisi server untuk topik Amazon SNS Anda, Anda juga harus memperbarui kebijakan akses yang AWS KMS key Anda pilih saat mengonfigurasi topik. Gunakan prosedur berikut untuk memperbarui kebijakan akses sehingga Systems Manager dapat mempublikasikan pemberitahuan Change Manager persetujuan ke topik Amazon SNS yang Anda buat di Tugas 1.

1. Buka AWS KMS konsol di [https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms).

1. Di panel navigasi, pilih **Kunci yang dikelola pelanggan**.

1. Pilih ID kunci yang dikelola pelanggan yang Anda pilih saat membuat topik.

1. Di bagian **Kebijakan Kunci**, pilih **Beralih ke tampilan kebijakan**.

1. Pilih **Edit**.

1. Masukkan `Sid` blok berikut setelah salah satu `Sid` blok yang ada dalam kebijakan yang ada. Ganti masing-masing *user input placeholder* dengan informasi Anda sendiri.

   ```
   {
       "Sid": "Allow Change Manager to decrypt the key",
       "Effect": "Allow",
       "Principal": {
           "Service": "ssm.amazonaws.com"
       },
       "Action": [
           "kms:Decrypt",
           "kms:GenerateDataKey*"
       ],
       "Resource": "arn:aws:kms:region:account-id:key/key-id",
       "Condition": {
           "StringEquals": {
               "aws:SourceAccount": [
                   "account-id"
               ]
           }
       }
   }
   ```

1. Sekarang masukkan `Sid` blok berikut setelah salah satu `Sid` blok yang ada dalam kebijakan sumber daya untuk membantu mencegah [masalah wakil lintas layanan yang membingungkan](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html). 

   Blok ini menggunakan kunci konteks kondisi [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)global [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)dan untuk membatasi izin yang diberikan Systems Manager layanan lain ke sumber daya.

   Ganti masing-masing *user input placeholder* dengan informasi Anda sendiri.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "Configure confused deputy protection for AWS KMS keys used in Amazon SNS topic when called from Systems Manager",
               "Effect": "Allow",
               "Principal": {
                   "Service": "ssm.amazonaws.com"
               },
               "Action": [
                   "sns:Publish"
               ],
               "Resource": "arn:aws:sns:us-east-1:111122223333:topic-name",
               "Condition": {
                   "ArnLike": {
                       "aws:SourceArn": "arn:aws:ssm:us-east-1:111122223333:*"
                   },
                   "StringEquals": {
                       "aws:SourceAccount": "111122223333"
                   }
               }
           }
       ]
   }
   ```

------

1. Pilih **Simpan perubahan**.

# Mengkonfigurasi peran dan izin untuk Change Manager
<a name="change-manager-permissions"></a>

**Change Managerperubahan ketersediaan**  
AWS Systems ManagerChange Managertidak akan lagi terbuka untuk pelanggan baru mulai 7 November 2025. Jika Anda ingin menggunakannyaChange Manager, daftar sebelum tanggal tersebut. Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS Systems ManagerChange Manager ketersediaan](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Secara default, Change Manager tidak memiliki izin untuk melakukan tindakan pada sumber daya Anda. Anda harus memberikan akses dengan menggunakan peran layanan AWS Identity and Access Management (IAM), atau *mengambil peran*. Peran ini memungkinkan Change Manager untuk menjalankan alur kerja runbook dengan aman yang ditentukan dalam permintaan perubahan yang disetujui atas nama Anda. Peran tersebut memberikan AWS Security Token Service (AWS STS) [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)kepercayaan kepadaChange Manager.

Dengan memberikan izin ini untuk peran untuk bertindak atas nama pengguna dalam suatu organisasi, pengguna tidak perlu diberikan array izin itu sendiri. Tindakan yang diizinkan oleh izin terbatas pada operasi yang disetujui saja.

Saat pengguna di akun atau organisasi Anda membuat permintaan perubahan, mereka dapat memilih peran ini untuk melakukan operasi perubahan.

Anda dapat membuat peran asumsi baru untuk Change Manager atau memperbarui peran yang ada dengan izin yang diperlukan.

Jika Anda perlu membuat peran layananChange Manager, selesaikan tugas-tugas berikut. 

**Topics**
+ [Tugas 1: Membuat kebijakan peran asumsi untuk Change Manager](#change-manager-role-policy)
+ [Tugas 2: Membuat peran asumsi untuk Change Manager](#change-manager-role)
+ [Tugas 3: Melampirkan `iam:PassRole` kebijakan ke peran lain](#change-manager-passpolicy)
+ [Tugas 4: Menambahkan kebijakan sebaris ke peran asumsi untuk memanggil yang lain Layanan AWS](#change-manager-role-add-inline-policy)
+ [Tugas 5: Mengkonfigurasi akses pengguna ke Change Manager](#change-manager-passrole)

## Tugas 1: Membuat kebijakan peran asumsi untuk Change Manager
<a name="change-manager-role-policy"></a>

Gunakan prosedur berikut untuk membuat kebijakan yang akan Anda lampirkan ke peran yang Anda Change Manager anggap.

**Untuk membuat kebijakan peran asumsi untuk Change Manager**

1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Pada panel navigasi, pilih **Kebijakan**, lalu pilih **Buat kebijakan**.

1. Pada halaman **Buat kebijakan**, pilih tab **JSON** dan ganti konten default dengan yang berikut ini, yang akan Anda modifikasi untuk Change Manager operasi Anda sendiri dalam langkah-langkah berikut.
**catatan**  
Jika Anda membuat kebijakan untuk digunakan dengan satu Akun AWS, dan bukan organisasi dengan beberapa akun dan Wilayah AWS, Anda dapat menghilangkan blok pernyataan pertama. `iam:PassRole`Izin tidak diperlukan dalam kasus penggunaan satu akunChange Manager.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "iam:PassRole",
               "Resource": "arn:aws:iam::111122223333:role/AWS-SystemsManager-job-functionAdministrationRole",
               "Condition": {
                   "StringEquals": {
                       "iam:PassedToService": "ssm.amazonaws.com"
                   }
               }
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ssm:DescribeDocument",
                   "ssm:GetDocument",
                   "ssm:StartChangeRequestExecution"
               ],
               "Resource": [
                   "arn:aws:ssm:us-east-1::document/template-name",
                   "arn:aws:ssm:us-east-1:111122223333:automation-execution/*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ssm:ListOpsItemEvents",
                   "ssm:GetOpsItem",
                   "ssm:ListDocuments",
                   "ssm:DescribeOpsItems"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Untuk `iam:PassRole` tindakan, perbarui `Resource` nilai untuk menyertakan semua ARNs fungsi pekerjaan yang ditentukan untuk organisasi yang ingin Anda berikan izin untuk memulai alur kerja runbook.

1. Ganti*region*,*account-id*,, *template-name**delegated-admin-account-id*, dan *job-function* placeholder dengan nilai untuk operasi AndaChange Manager.

1. Untuk `Resource` pernyataan kedua, ubah daftar untuk menyertakan semua templat perubahan yang ingin Anda berikan izin. Atau, tentukan `"Resource": "*"` untuk memberikan izin untuk semua templat perubahan di organisasi Anda.

1. Pilih **Berikutnya: Tanda**.

1. (Opsional) Tambahkan satu atau beberapa pasangan nilai kunci tag untuk mengatur, melacak, atau mengontrol akses kebijakan ini. 

1. Pilih **Berikutnya: Tinjauan**.

1. Pada halaman **Kebijakan ulasan**, masukkan nama di kotak **Nama**, seperti**MyChangeManagerAssumeRole**, lalu masukkan deskripsi opsional.

1. Pilih **Buat kebijakan**, dan lanjutkan ke[Tugas 2: Membuat peran asumsi untuk Change Manager](#change-manager-role).

## Tugas 2: Membuat peran asumsi untuk Change Manager
<a name="change-manager-role"></a>

Gunakan prosedur berikut untuk membuat peran Change Manager asumsi, jenis peran layanan, untukChange Manager.

**Untuk membuat peran asumsi untuk Change Manager**

1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di panel navigasi, pilih **Peran**, lalu pilih **Buat peran**.

1. Untuk **Pilih entitas tepercaya**, buat pilihan berikut:

   1. Untuk **jenis entitas Tepercaya**, pilih **AWS layanan**

   1. **Untuk kasus Penggunaan lainnya Layanan AWS**, pilih **Systems Manager**

   1. Pilih **Systems Manager**, seperti yang ditunjukkan pada gambar berikut.  
![\[Screenshot yang menggambarkan opsi Systems Manager yang dipilih sebagai kasus penggunaan.\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/images/iam_use_cases_for_MWs.png)

1. Pilih **Berikutnya**.

1. Pada halaman **Kebijakan izin terlampir**, cari kebijakan peran asumsikan yang Anda buat[Tugas 1: Membuat kebijakan peran asumsi untuk Change Manager](#change-manager-role-policy), seperti**MyChangeManagerAssumeRole**. 

1. Pilih kotak centang di samping nama kebijakan peran asumsi, lalu pilih **Berikutnya: Tag**.

1. Untuk **nama Peran**, masukkan nama untuk profil instans baru Anda, seperti**MyChangeManagerAssumeRole**.

1. (Opsional) Untuk **Deskripsi**, perbarui deskripsi untuk peran instance ini.

1. (Opsional) Tambahkan satu atau beberapa pasangan nilai tag-key untuk mengatur, melacak, atau mengontrol akses untuk peran ini. 

1. Pilih **Berikutnya: Tinjauan**.

1. (Opsional) Untuk **Tag**, tambahkan satu atau beberapa pasangan nilai kunci tag untuk mengatur, melacak, atau mengontrol akses untuk peran ini, lalu pilih **Buat** peran. Sistem mengembalikan Anda ke halaman **Peran**.

1. Pilih **Buat peran**. Sistem mengembalikan Anda ke halaman **Peran**.

1. Pada halaman **Peran**, pilih peran yang baru Anda buat untuk membuka halaman **Ringkasan**. 

## Tugas 3: Melampirkan `iam:PassRole` kebijakan ke peran lain
<a name="change-manager-passpolicy"></a>

Gunakan prosedur berikut untuk melampirkan `iam:PassRole` kebijakan ke profil instans IAM atau peran layanan IAM. (Layanan Systems Manager menggunakan profil instans IAM untuk berkomunikasi dengan instans EC2. Untuk node yang dikelola non-EC2 di lingkungan [hybrid dan multicloud](operating-systems-and-machine-types.md#supported-machine-types), peran layanan IAM digunakan sebagai gantinya.)

Dengan melampirkan `iam:PassRole` kebijakan, Change Manager layanan dapat meneruskan izin peran asumsi ke layanan lain atau alat Systems Manager saat menjalankan alur kerja runbook.

**Untuk melampirkan `iam:PassRole` kebijakan ke profil instans IAM atau peran layanan**

1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di panel navigasi, pilih **Peran**.

1. Cari peran Change Manager asumsi yang Anda buat, seperti**MyChangeManagerAssumeRole**, dan pilih namanya.

1. Di halaman **Ringkasan** untuk peran asumsikan, pilih tab **Izin**.

1. Pilih **Tambahkan izin, Buat kebijakan sebaris**.

1. Di halaman **Buat kebijakan**, pilih tab **Visual editor**.

1. Pilih **Layanan**, lalu pilih **IAM**.

1. Di kotak teks **tindakan Filter****PassRole**, masukkan, lalu pilih **PassRole**opsi.

1. Perluas **Sumber Daya**. Verifikasi bahwa **Spesifik** dipilih, dan kemudian pilih **Tambahkan ARN**.

1. Di bidang **Tentukan ARN untuk peran**, masukkan ARN peran profil instans IAM atau peran layanan IAM yang ingin Anda lewati izin peran asumsi. Sistem mengisi **Akun** dan **Nama peran dengan bidang** jalur. 

1. Pilih **Tambahkan**.

1. Pilih **Tinjau kebijakan**.

1. Untuk **Nama**, masukkan nama untuk mengidentifikasi kebijakan ini, lalu pilih **Buat kebijakan**.

**Info lebih lanjut**  
+ [Konfigurasikan izin instans yang diperlukan untuk Systems Manager](setup-instance-permissions.md)
+ [Buat peran layanan IAM yang diperlukan untuk Systems Manager di lingkungan hybrid dan multicloud](hybrid-multicloud-service-role.md)

## Tugas 4: Menambahkan kebijakan sebaris ke peran asumsi untuk memanggil yang lain Layanan AWS
<a name="change-manager-role-add-inline-policy"></a>

Ketika permintaan perubahan memanggil yang lain Layanan AWS dengan menggunakan peran Change Manager asumsi, peran asumsi harus dikonfigurasi dengan izin untuk memanggil layanan tersebut. Persyaratan ini berlaku untuk semua runbook AWS Otomasi (runbook AWS-\$1) yang mungkin digunakan dalam permintaan perubahan, seperti,, dan runbook. `AWS-ConfigureS3BucketLogging` `AWS-CreateDynamoDBBackup` `AWS-RestartEC2Instance` Persyaratan ini juga berlaku untuk setiap runbook kustom yang Anda buat yang memanggil orang lain Layanan AWS dengan menggunakan tindakan yang memanggil layanan lain. Misalnya, jika Anda menggunakan`aws:executeAwsApi`,`aws:CreateStack`, atau `aws:copyImage` tindakan, maka Anda harus mengonfigurasi peran layanan dengan izin untuk memanggil layanan tersebut. Anda dapat mengaktifkan izin ke orang lain Layanan AWS dengan menambahkan kebijakan inline IAM ke peran tersebut. 

**Untuk menambahkan kebijakan sebaris ke peran asumsi untuk memanggil other Layanan AWS (konsol IAM)**

1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di panel navigasi, pilih **Peran**.

1. Dalam daftar, pilih nama peran asumsi yang ingin Anda perbarui, seperti`MyChangeManagerAssumeRole`.

1. Pilih tab **Izin**.

1. Pilih **Tambahkan izin, Buat kebijakan sebaris**.

1. Pilih tab **JSON**.

1. Masukkan dokumen kebijakan JSON untuk yang ingin Layanan AWS Anda panggil. Berikut adalah dua contoh dokumen kebijakan JSON.

   **Amazon S3 `PutObject` dan contoh `GetObject`**

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "s3:PutObject",
                   "s3:GetObject"
               ],
               "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
           }
       ]
   }
   ```

------

   **Amazon EC2 `CreateSnapshot` dan contoh `DescribeSnapShots`**

------
#### [ JSON ]

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement":[
         {
            "Effect":"Allow",
            "Action":"ec2:CreateSnapshot",
            "Resource":"*"
         },
         {
            "Effect":"Allow",
            "Action":"ec2:DescribeSnapshots",
            "Resource":"*"
         }
      ]
   }
   ```

------

    Untuk detail tentang bahasa kebijakan IAM, lihat [referensi kebijakan IAM JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) di Panduan Pengguna *IAM*.

1. Setelah selesai, pilih **Tinjau kebijakan**. [Validator Kebijakan](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html) melaporkan kesalahan sintaksis.

1. Untuk **Nama**, masukkan nama untuk mengidentifikasi kebijakan yang Anda buat. Ulas **Ringkasan** kebijakan untuk melihat izin yang diberikan oleh kebijakan Anda. Kemudian pilih **Buat kebijakan** untuk menyimpan pekerjaan Anda.

1. Setelah Anda membuat kebijakan yang selaras, ia akan secara otomatis tertanam di pengguna atau peran Anda.

## Tugas 5: Mengkonfigurasi akses pengguna ke Change Manager
<a name="change-manager-passrole"></a>

Jika pengguna, grup, atau peran Anda diberi izin administrator, maka Anda memiliki akses keChange Manager. Jika Anda tidak memiliki izin administrator, administrator harus menetapkan kebijakan `AmazonSSMFullAccess` terkelola, atau kebijakan yang memberikan izin yang sebanding, kepada pengguna, grup, atau peran Anda.

Gunakan prosedur berikut untuk mengonfigurasi pengguna yang akan digunakanChange Manager. Pengguna yang Anda pilih akan memiliki izin untuk mengkonfigurasi dan menjalankanChange Manager. 

Bergantung pada aplikasi identitas yang Anda gunakan di organisasi Anda, Anda dapat memilih salah satu dari tiga opsi yang tersedia untuk mengonfigurasi akses pengguna. Saat mengonfigurasi akses pengguna, tetapkan atau tambahkan yang berikut ini: 

1. Tetapkan `AmazonSSMFullAccess` kebijakan atau kebijakan serupa yang memberikan izin untuk mengakses Systems Manager.

1. Tetapkan `iam:PassRole` kebijakan.

1. Tambahkan ARN untuk peran Change Manager asumsi yang Anda salin di akhir. [Tugas 2: Membuat peran asumsi untuk Change Manager](#change-manager-role)

Untuk memberikan akses dan menambahkan izin bagi pengguna, grup, atau peran Anda:
+ Pengguna dan grup di AWS IAM Identity Center:

  Buat rangkaian izin. Ikuti instruksi di [Buat rangkaian izin](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html) dalam *Panduan Pengguna AWS IAM Identity Center *.
+ Pengguna yang dikelola di IAM melalui penyedia identitas:

  Buat peran untuk federasi identitas. Ikuti instruksi dalam [Buat peran untuk penyedia identitas pihak ketiga (federasi)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) dalam *Panduan Pengguna IAM*.
+ Pengguna IAM:
  + Buat peran yang dapat diambil pengguna Anda. Ikuti instruksi dalam [Buat peran untuk pengguna IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) dalam *Panduan Pengguna IAM*.
  + (Tidak disarankan) Lampirkan kebijakan langsung ke pengguna atau tambahkan pengguna ke grup pengguna. Ikuti petunjuk dalam [Menambahkan izin ke pengguna (konsol)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) dalam *Panduan Pengguna IAM*.

Anda telah selesai mengonfigurasi peran yang diperlukan untukChange Manager. Anda sekarang dapat menggunakan Change Manager peran ARN dalam operasi AndaChange Manager.

# Mengontrol akses ke alur kerja runbook persetujuan otomatis
<a name="change-manager-auto-approval-access"></a>

**Change Managerperubahan ketersediaan**  
AWS Systems ManagerChange Managertidak akan lagi terbuka untuk pelanggan baru mulai 7 November 2025. Jika Anda ingin menggunakannyaChange Manager, daftar sebelum tanggal tersebut. Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS Systems ManagerChange Manager ketersediaan](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Di setiap templat perubahan yang dibuat untuk organisasi atau akun Anda, Anda dapat menentukan apakah permintaan perubahan yang dibuat dari templat tersebut dapat berjalan sebagai permintaan perubahan yang disetujui secara otomatis, artinya mereka berjalan secara otomatis tanpa langkah peninjauan (dengan pengecualian peristiwa pembekuan perubahan).

Namun, Anda mungkin ingin mencegah peran pengguna, grup, atau AWS Identity and Access Management (IAM) tertentu menjalankan permintaan perubahan yang disetujui secara otomatis meskipun templat perubahan mengizinkannya. Anda dapat melakukannya melalui penggunaan kunci `ssm:AutoApprove` kondisi untuk `StartChangeRequestExecution` operasi dalam kebijakan IAM yang ditetapkan untuk peran pengguna, grup, atau IAM. 

Anda dapat menambahkan kebijakan berikut sebagai kebijakan sebaris, yang kondisinya ditentukan sebagai`false`, untuk mencegah pengguna menjalankan permintaan perubahan yang dapat disetujui secara otomatis.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
            {
            "Effect": "Allow",
            "Action": "ssm:StartChangeRequestExecution",
            "Resource": "*",
            "Condition": {
                "BoolIfExists": {
                    "ssm:AutoApprove": "false"
                }
            }
        }
    ]
}
```

------

*Untuk informasi tentang menentukan kebijakan sebaris, lihat Kebijakan [sebaris](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_managed-vs-inline.html#inline-policies) dan [Menambahkan dan menghapus izin identitas IAM di Panduan Pengguna IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_manage-attach-detach.html).*

Untuk informasi selengkapnya tentang kunci kondisi untuk kebijakan Systems Manager, lihat [Kunci kondisi untuk Systems Manager](security_iam_service-with-iam.md#policy-conditions).

# Bekerja dengan Change Manager
<a name="working-with-change-manager"></a>

**Change Managerperubahan ketersediaan**  
AWS Systems ManagerChange Managertidak akan lagi terbuka untuk pelanggan baru mulai 7 November 2025. Jika Anda ingin menggunakannyaChange Manager, daftar sebelum tanggal tersebut. Pelanggan yang sudah ada dapat terus menggunakan layanan seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS Systems ManagerChange Manager ketersediaan](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

DenganChange Manager, alat di AWS Systems Manager, pengguna di seluruh organisasi Anda atau dalam satu Akun AWS dapat melakukan tugas terkait perubahan yang telah diberikan izin yang diperlukan. Change Managertugas-tugas meliputi:
+ Membuat, meninjau, dan menyetujui atau menolak templat perubahan. 

  Templat perubahan adalah kumpulan pengaturan konfigurasi yang menentukan hal-hal seperti persetujuan Change Manager yang diperlukan, runbook yang tersedia, dan opsi notifikasi untuk permintaan perubahan.
+ Buat, tinjau, dan setujui atau tolak permintaan perubahan.

  Permintaan perubahan adalah permintaan Change Manager untuk menjalankan runbook Otomasi yang memperbarui satu atau beberapa sumber daya di lingkungan Anda AWS atau lokal. Permintaan perubahan dibuat menggunakan templat perubahan.
+ Tentukan pengguna mana di organisasi atau akun Anda yang dapat dijadikan peninjau untuk templat perubahan dan permintaan perubahan.
+ Edit pengaturan konfigurasi, seperti bagaimana identitas pengguna dikelola Change Manager dan opsi *praktik terbaik* mana yang tersedia yang diberlakukan dalam operasi AndaChange Manager. Untuk informasi tentang mengonfigurasi pengaturan ini, lihat [Mengkonfigurasi Change Manager opsi dan praktik terbaik](change-manager-account-setup.md).

**Topics**
+ [Bekerja dengan templat perubahan](change-templates.md)
+ [Bekerja dengan permintaan perubahan](change-requests.md)
+ [Meninjau detail permintaan, tugas, dan timeline perubahan (konsol)](reviewing-changes.md)
+ [Melihat jumlah agregat permintaan perubahan (baris perintah)](change-requests-review-aggregate-command-line.md)

# Bekerja dengan templat perubahan
<a name="change-templates"></a>

**Change Managerperubahan ketersediaan**  
AWS Systems ManagerChange Managertidak akan lagi terbuka untuk pelanggan baru mulai 7 November 2025. Jika Anda ingin menggunakannyaChange Manager, daftar sebelum tanggal tersebut. Pelanggan yang sudah ada dapat terus menggunakan layanan seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS Systems ManagerChange Manager ketersediaan](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Templat perubahan adalah kumpulan pengaturan konfigurasi yang menentukan hal-hal seperti persetujuan Change Manager yang diperlukan, runbook yang tersedia, dan opsi notifikasi untuk permintaan perubahan.

**catatan**  
AWS menyediakan contoh template perubahan [Hello World](change-templates-aws-managed.md) yang dapat Anda gunakan untuk mencobaChange Manager, alat di AWS Systems Manager. Namun, Anda membuat templat perubahan sendiri untuk menentukan perubahan yang ingin Anda izinkan ke sumber daya di organisasi atau akun Anda. 

Perubahan yang dibuat saat alur kerja runbook berjalan didasarkan pada konten runbook Otomatisasi. Di setiap templat perubahan yang Anda buat, Anda dapat menyertakan satu atau beberapa runbook otomatisasi yang dapat dipilih oleh pengguna yang membuat permintaan perubahan untuk dijalankan selama pembaruan. Anda juga dapat membuat templat perubahan yang memungkinkan peminta memilih runbook Otomatisasi yang tersedia untuk permintaan perubahan.

Untuk membuat templat perubahan, Anda dapat menggunakan opsi **Builder** dalam halaman konsol **Buat templat** untuk membangun templat perubahan. Atau, menggunakan opsi **Editor**, Anda dapat menulis konten JSON atau YAML secara manual dengan konfigurasi yang Anda inginkan untuk alur kerja runbook Anda. Anda juga dapat menggunakan alat baris perintah untuk membuat templat perubahan, dengan konten JSON untuk template perubahan yang disimpan dalam file eksternal.

**Topics**
+ [Coba template `Hello World` perubahan AWS terkelola](change-templates-aws-managed.md)
+ [Membuat templat perubahan](change-templates-create.md)
+ [Meninjau dan menyetujui atau menolak templat perubahan](change-templates-review.md)
+ [Menghapus template perubahan](change-templates-delete.md)

# Coba template `Hello World` perubahan AWS terkelola
<a name="change-templates-aws-managed"></a>

**Change Managerperubahan ketersediaan**  
AWS Systems ManagerChange Managertidak akan lagi terbuka untuk pelanggan baru mulai 7 November 2025. Jika Anda ingin menggunakannyaChange Manager, daftar sebelum tanggal tersebut. Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS Systems ManagerChange Manager ketersediaan](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Anda dapat menggunakan template perubahan sampel`AWS-HelloWorldChangeTemplate`, yang menggunakan contoh runbook Otomasi`AWS-HelloWorld`, untuk menguji proses peninjauan dan persetujuan setelah Anda selesai menyiapkanChange Manager, alat di AWS Systems Manager. Templat ini dirancang untuk menguji atau memverifikasi izin yang dikonfigurasi, penetapan pemberi persetujuan, dan proses persetujuan Anda. Persetujuan untuk menggunakan templat perubahan ini di organisasi atau akun Anda telah disediakan oleh AWS. Namun, setiap permintaan perubahan berdasarkan templat perubahan ini harus tetap disetujui oleh peninjau di organisasi atau akun Anda.

Daripada membuat perubahan pada sumber daya, hasil dari alur kerja runbook yang terkait dengan templat ini adalah untuk mencetak pesan dalam output dari langkah Otomatisasi.

**Sebelum Anda memulai**  
Sebelum Anda memulai, pastikan Anda telah menyelesaikan tugas berikut:
+ Jika Anda menggunakan AWS Organizations untuk mengelola perubahan di seluruh organisasi, selesaikan tugas penyiapan organisasi yang dijelaskan dalam[Menyiapkan Change Manager untuk organisasi (akun manajemen)](change-manager-organization-setup.md).
+ Konfigurasikan Change Manager untuk akun administrator yang didelegasikan atau akun tunggal, seperti yang dijelaskan dalam[Mengkonfigurasi Change Manager opsi dan praktik terbaik](change-manager-account-setup.md). 
**catatan**  
Jika Anda mengaktifkan opsi praktik terbaik **Memerlukan monitor untuk semua templat** di Change Manager pengaturan Anda, matikan sementara saat Anda menguji templat perubahan Hello World.

**Untuk mencoba template perubahan Hello World yang AWS dikelola**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Change Manager**.

1. Pilih **Buat permintaan**.

1. Pilih templat perubahan yang bernama `AWS-HelloWorldChangeTemplate`, lalu pilih **Selanjutnya**.

1. Untuk **Nama**, masukkan nama untuk permintaan perubahan yang membuat tujuannya mudah diidentifikasi, seperti **MyChangeRequestTest**.

1. Untuk langkah-langkah selanjutnya dalam membuat permintaan perubahan, lihat [Membuat permintaan perubahanMembuat permintaan perubahan (konsol)](change-requests-create.md).

**Langkah selanjutnya**  
Untuk informasi tentang menyetujui permintaan perubahan, lihat [Meninjau dan menyetujui atau menolak permintaan perubahan](change-requests-review.md).

Untuk melihat status dan hasil permintaan perubahan Anda, pilih nama permintaan perubahan Anda pada tab **Permintaan** diChange Manager. 

# Membuat templat perubahan
<a name="change-templates-create"></a>

**Change Managerperubahan ketersediaan**  
AWS Systems ManagerChange Managertidak akan lagi terbuka untuk pelanggan baru mulai 7 November 2025. Jika Anda ingin menggunakannyaChange Manager, daftar sebelum tanggal tersebut. Pelanggan yang sudah ada dapat terus menggunakan layanan seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS Systems ManagerChange Manager ketersediaan](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Templat perubahan adalah kumpulan pengaturan konfigurasi yang menentukan hal-hal seperti persetujuan Change Manager yang diperlukan, runbook yang tersedia, dan opsi notifikasi untuk permintaan perubahan.

Anda dapat membuat templat perubahan untuk operasi AndaChange Manager, alat di AWS Systems Manager, menggunakan konsol, yang mencakup opsi Builder dan Editor, atau alat baris perintah.

**Topics**
+ [Tentang persetujuan dalam templat perubahan Anda](cm-approvals-templates.md)
+ [Membuat templat perubahan menggunakan Builder](change-templates-custom-builder.md)
+ [Membuat templat perubahan menggunakan Editor](change-templates-custom-editor.md)
+ [Membuat templat perubahan menggunakan alat baris perintah](change-templates-tools.md)

# Tentang persetujuan dalam templat perubahan Anda
<a name="cm-approvals-templates"></a>

**Change Managerperubahan ketersediaan**  
AWS Systems ManagerChange Managertidak akan lagi terbuka untuk pelanggan baru mulai 7 November 2025. Jika Anda ingin menggunakannyaChange Manager, daftar sebelum tanggal tersebut. Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS Systems ManagerChange Manager ketersediaan](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Untuk setiap templat perubahan yang Anda buat, Anda dapat menentukan hingga lima *tingkat* persetujuan untuk permintaan perubahan yang dibuat darinya. Untuk masing-masing level tersebut, Anda dapat menunjuk hingga lima pemberi *persetujuan* potensial. Penyetuju tidak terbatas pada satu pengguna. Anda juga dapat menentukan grup IAM atau peran IAM sebagai pemberi persetujuan individu. Untuk grup IAM dan peran IAM, satu atau lebih pengguna yang termasuk dalam grup atau peran dapat memberikan persetujuan untuk menerima jumlah persetujuan yang diperlukan untuk permintaan perubahan. Anda juga dapat menentukan lebih banyak persetujuan daripada yang dibutuhkan template perubahan Anda.

Change Manager*mendukung dua pendekatan utama untuk persetujuan: persetujuan *per tingkat dan persetujuan per* baris.* Kombinasi kedua jenis ini juga dimungkinkan dalam beberapa situasi. Sebaiknya gunakan hanya persetujuan per level dalam operasi Anda. Change Manager

------
#### [ Per-level approvals ]

*Direkomendasikan*. Pada 23 Januari 2023, Change Manager mendukung persetujuan per level. Dalam model ini, untuk setiap tingkat persetujuan dalam templat perubahan Anda, pertama-tama Anda menentukan berapa banyak persetujuan yang diperlukan untuk level tersebut. Kemudian Anda menentukan setidaknya banyak pemberi persetujuan untuk level tersebut dan dapat menentukan lebih banyak pemberi persetujuan. Namun, hanya jumlah pemberi persetujuan per level yang Anda tentukan yang perlu menyetujui permintaan perubahan. Misalnya, Anda dapat menentukan lima pemberi persetujuan tetapi memerlukan tiga persetujuan.

Untuk tampilan konsol dan sampel JSON dari jenis persetujuan ini, lihat. [Contoh konfigurasi persetujuan per tingkat](approval-type-samples.md#per-level-approvals)

------
#### [ Per-line approvals ]

*Didukung untuk kompatibilitas mundur*. Rilis asli hanya Change Manager didukung persetujuan per baris. Dalam model ini, setiap pemberi persetujuan yang ditentukan untuk tingkat persetujuan direpresentasikan sebagai garis persetujuan. Setiap pemberi persetujuan harus menyetujui permintaan perubahan agar disetujui pada tingkat itu. Sebelum 23 Januari 2023, ini adalah satu-satunya model yang didukung untuk persetujuan. Ubah templat yang dibuat sebelum tanggal ini terus mendukung persetujuan per baris, tetapi sebaiknya gunakan persetujuan per level.

Untuk tampilan konsol dan sampel JSON dari jenis persetujuan ini, lihat. [Contoh konfigurasi persetujuan per baris](approval-type-samples.md#per-line-approvals)

------
#### [ Combined per-line and per-level approvals ]

*Tidak direkomendasikan*. Di konsol, tab **Builder** tidak lagi mendukung penambahan persetujuan per baris. Namun, dalam beberapa kasus Anda mungkin berakhir dengan persetujuan per baris dan per tingkat dalam templat perubahan. Hal ini dapat terjadi jika Anda memperbarui templat perubahan yang dibuat sebelum 23 Januari 2023, atau jika Anda membuat atau memperbarui templat perubahan dengan mengedit konten YAML-nya secara manual,

Untuk tampilan konsol dan sampel JSON dari jenis persetujuan ini, lihat. [Sampel gabungan konfigurasi persetujuan per level dan per baris](approval-type-samples.md#combined-approval-levels)

------

**penting**  
Meskipun dimungkinkan untuk membuat template perubahan yang menggabungkan persetujuan per baris dan per-level, konfigurasi ini tidak direkomendasikan atau diperlukan. Jenis persetujuan mana pun yang membutuhkan lebih banyak persetujuan (persetujuan per baris atau per tingkat) diutamakan. Contoh:  
Jika templat perubahan menentukan tiga persetujuan per tingkat tetapi lima persetujuan per baris, maka diperlukan lima persetujuan.
Jika template perubahan menentukan empat persetujuan per tingkat tetapi dua persetujuan per baris, maka empat persetujuan diperlukan.

Anda dapat membuat level yang mencakup persetujuan per baris dan per-level dengan mengedit konten YAMAL atau JSON secara manual. Kemudian, tab **Builder** menampilkan kontrol untuk menentukan jumlah persetujuan yang diperlukan untuk level dan untuk baris individual. Namun, level baru yang Anda tambahkan menggunakan konsol masih mendukung hanya konfigurasi persetujuan per level.

## Ubah pemberitahuan dan penolakan permintaan
<a name="notifications-and-rejections"></a>

Notifikasi Amazon SNS  
Saat permintaan perubahan dibuat menggunakan templat perubahan Anda, notifikasi akan dikirim ke pelanggan topik Amazon Simple Notification Service (Amazon SNS) yang telah ditetapkan untuk pemberitahuan persetujuan pada tingkat tersebut. Anda dapat menentukan topik notifikasi di templat perubahan atau mengizinkan pengguna membuat permintaan perubahan untuk menentukannya.  
Setelah jumlah minimum persetujuan yang diperlukan diterima pada satu tingkat, pemberitahuan dikirim ke pemberi persetujuan yang berlangganan topik Amazon SNS untuk tingkat berikutnya, dan seterusnya.  
Pastikan bahwa peran, grup, dan pengguna IAM yang Anda tunjuk bersama-sama memberikan persetujuan yang cukup untuk memenuhi jumlah persetujuan yang diperlukan yang Anda tentukan. Misalnya, jika Anda menetapkan hanya satu grup IAM sebagai pemberi persetujuan yang berisi tiga pengguna, Anda tidak dapat menentukan bahwa lima persetujuan wajib pada tingkat itu, hanya tiga atau kurang.

Ubah penolakan permintaan  
Tidak peduli berapa banyak tingkat persetujuan dan persetujuan yang Anda tentukan, hanya satu penolakan terhadap permintaan perubahan yang diperlukan untuk mencegah alur kerja buku runbook untuk permintaan tersebut terjadi.

# Change Managercontoh jenis persetujuan
<a name="approval-type-samples"></a>

**Change Managerperubahan ketersediaan**  
AWS Systems ManagerChange Managertidak akan lagi terbuka untuk pelanggan baru mulai 7 November 2025. Jika Anda ingin menggunakannyaChange Manager, daftar sebelum tanggal tersebut. Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS Systems ManagerChange Manager ketersediaan](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Sampel berikut menunjukkan tampilan konsol dan konten JSON untuk tiga jenis jenis persetujuan diChange Manager.

**Topics**
+ [Contoh konfigurasi persetujuan per tingkat](#per-level-approvals)
+ [Contoh konfigurasi persetujuan per baris](#per-line-approvals)
+ [Sampel gabungan konfigurasi persetujuan per level dan per baris](#combined-approval-levels)

## Contoh konfigurasi persetujuan per tingkat
<a name="per-level-approvals"></a>

Dalam pengaturan tingkat persetujuan per tingkat yang ditunjukkan pada gambar berikut, tiga persetujuan diperlukan. Persetujuan tersebut dapat berasal dari kombinasi pengguna, grup, dan peran IAM yang ditentukan sebagai pemberi persetujuan. Persetujuan yang ditentukan mencakup dua pengguna IAM (John Stiles dan Ana Carolina Silva), grup pengguna yang berisi tiga anggota (`GroupOfThree`), dan peran pengguna yang mewakili sepuluh pengguna (). `RoleOfTen` 

Jika ketiga pengguna dalam `GroupOfThree` grup menyetujui permintaan perubahan, itu disetujui untuk tingkat itu. Tidak perlu menerima persetujuan dari setiap pengguna, grup, atau peran. Jumlah minimum persetujuan dapat berasal dari kombinasi pemberi persetujuan yang ditentukan. Kami merekomendasikan persetujuan per tingkat untuk operasi Anda. Change Manager

![\[Tingkat persetujuan yang menunjukkan tiga persetujuan diperlukan dan empat pemberi persetujuan yang ditentukan.\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/images/Add-approval-2.png)


Contoh berikut mengilustrasikan bagian dari kode YAMAL untuk konfigurasi ini. 

**catatan**  
Versi kode YAMAL ini menyertakan input tambahan, `MinRequiredApprovals` (dengan modal awal`M`). Nilai untuk input ini menunjukkan berapa banyak persetujuan yang diperlukan dari antara semua pengulas yang tersedia. Perhatikan juga bahwa nilai `minRequiredApprovals` (huruf kecil awal`m`) untuk setiap pemberi persetujuan dalam `Approvers` daftar adalah `0` (nol). Ini menunjukkan bahwa pemberi persetujuan dapat berkontribusi pada persetujuan keseluruhan tetapi tidak diharuskan untuk melakukannya.

```
schemaVersion: "0.3"
emergencyChange: false
autoApprovable: false
mainSteps:
  - name: ApproveAction1
    action: aws:approve
    timeoutSeconds: 604800
    inputs:
      Message: Please approve this change request
      MinRequiredApprovals: 3
      EnhancedApprovals:
        Approvers:
          - approver: John Stiles
            type: IamUser
            minRequiredApprovals: 0
          - approver: Ana Carolina Silva
            type: IamUser
            minRequiredApprovals: 0
          - approver: GroupOfThree
            type: IamGroup
            minRequiredApprovals: 0
          - approver: RoleOfTen
            type: IamRole
            minRequiredApprovals: 0
templateInformation: >
  #### What is the purpose of this change?
    //truncated
```

## Contoh konfigurasi persetujuan per baris
<a name="per-line-approvals"></a>

Dalam pengaturan tingkat persetujuan yang ditunjukkan pada gambar berikut, empat pemberi persetujuan ditentukan. Ini termasuk dua pengguna IAM (John Stiles dan Ana Carolina Silva), grup pengguna yang berisi tiga anggota (`GroupOfThree`), dan peran pengguna yang mewakili sepuluh pengguna (). `RoleOfTen` Persetujuan per baris didukung untuk kompatibilitas mundur tetapi tidak disarankan.

![\[Tingkat persetujuan menunjukkan empat pemberi persetujuan per baris yang diperlukan.\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/images/Add-approval-1.png)


Agar permintaan perubahan disetujui dalam konfigurasi persetujuan per baris ini, itu harus disetujui oleh semua jalur pemberi persetujuan: John Stiles, Ana Carolina Silva, satu anggota `GroupOfThree` grup, dan satu anggota peran. `RoleOfTen`

Contoh berikut mengilustrasikan bagian dari kode YAMAL untuk konfigurasi ini.

**catatan**  
Perhatikan bahwa nilai untuk setiap `minRequiredApprovals` pemberi persetujuan adalah`1`. Ini menunjukkan bahwa satu persetujuan diperlukan dari setiap pemberi persetujuan.

```
schemaVersion: "0.3"
emergencyChange: false
autoApprovable: false
mainSteps:
  - name: ApproveAction1
    action: aws:approve
    timeoutSeconds: 10000
    inputs:
      Message: Please approve this change request
      EnhancedApprovals:
        Approvers:
          - approver: John Stiles
            type: IamUser
            minRequiredApprovals: 1
          - approver: Ana Carolina Silva
            type: IamUser
            minRequiredApprovals: 1
          - approver: GroupOfThree
            type: IamGroup
            minRequiredApprovals: 1
          - approver: RoleOfTen
            type: IamRole
            minRequiredApprovals: 1
executableRunBooks:
  - name: AWS-HelloWorld
    version: $DEFAULT
templateInformation: >
  #### What is the purpose of this change?
    //truncated
```

## Sampel gabungan konfigurasi persetujuan per level dan per baris
<a name="combined-approval-levels"></a>

Dalam pengaturan persetujuan gabungan per level dan per baris yang ditunjukkan pada gambar berikut, tiga persetujuan ditentukan untuk level tersebut, tetapi empat persetujuan ditentukan untuk persetujuan item baris. Jenis persetujuan mana pun yang membutuhkan lebih banyak persetujuan lebih diutamakan daripada yang lain, jadi empat persetujuan diperlukan oleh konfigurasi ini. Gabungan persetujuan per level dan per-baris tidak disarankan.

![\[Tingkat persetujuan menunjukkan tiga persetujuan yang diperlukan untuk tingkat tetapi empat diperlukan di tingkat garis.\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/images/Add-approval-3.png)


```
schemaVersion: "0.3"
emergencyChange: false
autoApprovable: false
mainSteps:
  - name: ApproveAction1
    action: aws:approve
    timeoutSeconds: 604800
    inputs:
      Message: Please approve this change request
      MinRequiredApprovals: 3
      EnhancedApprovals:
        Approvers:
          - approver: John Stiles
            type: IamUser
            minRequiredApprovals: 1
          - approver: Ana Carolina Silva
            type: IamUser
            minRequiredApprovals: 1
          - approver: GroupOfThree
            type: IamGroup
            minRequiredApprovals: 1
          - approver: RoleOfTen
            type: IamRole
            minRequiredApprovals: 1
templateInformation: >
  #### What is the purpose of this change?
    //truncated
```

**Topics**
+ [Tentang persetujuan dalam templat perubahan Anda](cm-approvals-templates.md)
+ [Membuat templat perubahan menggunakan Builder](change-templates-custom-builder.md)
+ [Membuat templat perubahan menggunakan Editor](change-templates-custom-editor.md)
+ [Membuat templat perubahan menggunakan alat baris perintah](change-templates-tools.md)

# Membuat templat perubahan menggunakan Builder
<a name="change-templates-custom-builder"></a>

**Change Managerperubahan ketersediaan**  
AWS Systems ManagerChange Managertidak akan lagi terbuka untuk pelanggan baru mulai 7 November 2025. Jika Anda ingin menggunakannyaChange Manager, daftar sebelum tanggal tersebut. Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS Systems ManagerChange Manager ketersediaan](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Menggunakan Builder for change templates inChange Manager, tool in AWS Systems Manager, Anda dapat mengonfigurasi alur kerja runbook yang ditentukan dalam template perubahan Anda tanpa harus menggunakan sintaks JSON atau YAMAL. Setelah Anda menentukan opsi, sistem akan mengonversi input Anda ke dalam format YAML yang dapat digunakan Systems Manager untuk menjalankan alur kerja runbook.

**Untuk membuat templat perubahan menggunakan Builder**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Change Manager**.

1. Pilih **Buat templat**.

1. Untuk **Nama**, masukkan nama untuk templat yang membuat tujuannya mudah diidentifikasi, seperti **UpdateEC2LinuxAMI**.

1. Di bagian **Detail templat perubahan**, lakukan hal berikut:
   + Untuk **Deskripsi**, berikan penjelasan singkat tentang bagaimana dan kapan templat perubahan yang Anda buat akan digunakan. 

     Deskripsi ini membantu pengguna yang membuat permintaan perubahan menentukan apakah mereka menggunakan templat perubahan yang benar. Ini membantu mereka yang meninjau permintaan perubahan memahami apakah permintaan tersebut harus disetujui.
   + Untuk **Ubah jenis templat**, tentukan apakah Anda membuat templat perubahan standar atau templat perubahan darurat.

     Templat perubahan darurat digunakan untuk situasi ketika perubahan harus dilakukan meskipun perubahan diblokir oleh peristiwa di kalender yang digunakan oleh AWS Systems Manager Change Calendar. Permintaan perubahan yang dibuat dari templat perubahan darurat masih harus disetujui oleh pemberi persetujuan yang ditunjuk, tetapi perubahan yang diminta tetap dapat berjalan meskipun kalender diblokir.
   + Untuk **Opsi runbook**, tentukan runbook yang dapat dipilih pengguna saat membuat permintaan perubahan. Anda dapat menambahkan satu runbook atau beberapa runbook. Atau, Anda dapat mengizinkan peminta untuk menentukan runbook mana yang akan digunakan. Dalam kasus ini, hanya satu runbook yang dapat dimasukkan dalam permintaan perubahan.
   + Untuk **Runbook**, pilih nama runbook dan versi runbook tersebut yang dapat dipilih pengguna untuk permintaan perubahan mereka. Berapa pun banyaknya runbook yang Anda tambahkan ke templat perubahan, hanya satu yang dapat dipilih per permintaan perubahan.

     Anda tidak menentukan runbook jika memilih **Runbook apa pun dapat digunakan** sebelumnya.
**Tip**  
Pilih runbook dan versi runbook, kemudian pilih **Lihat** untuk memeriksa isi runbook di antarmuka Dokumen Systems Manager.

1. Di bagian **Informasi templat**, gunakan Markdown untuk memasukkan informasi bagi pengguna yang membuat permintaan perubahan dari templat perubahan ini. Kami telah menyediakan serangkaian pertanyaan yang dapat Anda sertakan untuk pengguna yang membuat permintaan perubahan, atau Anda dapat menambahkan informasi dan pertanyaan lain sebagai gantinya. 
**catatan**  
Markdown adalah bahasa markup yang memungkinkan Anda untuk menambahkan deskripsi gaya wiki ke dokumen dan langkah-langkah individual dalam dokumen. Untuk informasi selengkapnya tentang penggunaan Markdown, lihat [Menggunakan Markdown di AWS](https://docs.aws.amazon.com/general/latest/gr/aws-markdown.html).

   Sebaiknya berikan pertanyaan kepada pengguna untuk dijawab tentang permintaan perubahan mereka untuk membantu pemberi persetujuan memutuskan apakah akan mengabulkan setiap permintaan perubahan atau tidak, seperti mencantumkan langkah manual apa pun yang diperlukan untuk dijalankan sebagai bagian dari perubahan dan rencana rollback. 
**Tip**  
Alihkan antara **Sembunyikan pratinjau** dan **Tampilkan pratinjau** untuk melihat seperti apa konten Anda yang Anda tulis.

1. Di bagian **Ubah persetujuan permintaan**, lakukan hal berikut:
   + (Opsional) Jika Anda ingin mengizinkan permintaan perubahan yang dibuat dari templat perubahan ini berjalan secara otomatis, tanpa ditinjau oleh pemberi persetujuan apa pun (dengan pengecualian peristiwa pembekuan perubahan), pilih **Aktifkan persetujuan otomatis**.
**catatan**  
Mengaktifkan persetujuan otomatis dalam templat perubahan memberi pengguna *opsi* untuk melewati pengulas. Mereka masih dapat memilih untuk menentukan pengulas saat membuat permintaan perubahan. Oleh karena itu, Anda masih harus menentukan opsi pengulas di templat perubahan.
**penting**  
Jika Anda mengaktifkan persetujuan otomatis untuk templat perubahan, pengguna dapat mengirimkan permintaan perubahan menggunakan templat yang tidak memerlukan peninjauan oleh pengulas sebelum dijalankan (dengan pengecualian pemberi persetujuan peristiwa pembekuan perubahan). Jika Anda ingin membatasi peran pengguna, grup, atau IAM tertentu agar tidak mengirimkan permintaan persetujuan otomatis, Anda dapat menggunakan kondisi dalam kebijakan IAM untuk tujuan ini. Untuk informasi selengkapnya, lihat [Mengontrol akses ke alur kerja runbook persetujuan otomatis](change-manager-auto-approval-access.md).
   + Untuk **Jumlah persetujuan yang diperlukan pada tingkat ini**, pilih jumlah persetujuan yang mengubah permintaan yang dibuat dari templat perubahan ini harus diterima untuk level ini.
   + Untuk menambahkan pemberi persetujuan tingkat pertama wajib, pilih **Tambah pemberi persetujuan**, lalu pilih dari yang berikut ini:
     + **Penyetuju yang ditentukan templat** - Pilih satu atau beberapa peran pengguna, grup, atau AWS Identity and Access Management (IAM) dari akun Anda untuk menyetujui permintaan perubahan yang dibuat dari templat perubahan ini. Setiap permintaan perubahan yang dibuat menggunakan templat ini harus ditinjau dan disetujui oleh setiap pemberi persetujuan yang Anda tentukan.
     + **Meminta persetujuan tertentu** — Pengguna yang membuat permintaan perubahan menentukan pengulas pada saat mereka membuat permintaan dan dapat memilih dari daftar pengguna di akun Anda. 

       Nomor yang Anda masukkan dalam kolom **Wajib** menentukan berapa banyak peninjau yang harus ditentukan oleh permintaan perubahan yang menggunakan templat perubahan ini. 
**penting**  
Sebelum 23 Januari 2023, tab **Builder** hanya mendukung penentuan persetujuan per baris. Templat perubahan baru dan level baru yang Anda tambahkan ke templat perubahan yang ada menggunakan tab **Builder** hanya mendukung persetujuan per level. Sebaiknya gunakan hanya persetujuan per level dalam operasi Anda. Change Manager  
Untuk informasi selengkapnya, lihat [Tentang persetujuan dalam templat perubahan Anda](cm-approvals-templates.md).
   + Untuk **Topik SNS untuk memberi tahu pemberi persetujuan**, lakukan hal berikut:

     1. Pilih salah satu dari berikut ini untuk menentukan topik Amazon Simple Notification Service (Amazon SNS) di akun Anda yang akan digunakan untuk mengirim notifikasi kepada pemberi persetujuan bahwa permintaan perubahan siap untuk mereka tinjau:
        + **Masukkan SNS Amazon Resource Name (ARN)** – Untuk **ARN Topik**, masukkan ARN topik Amazon SNS yang ada. Topik ini dapat berada di salah satu akun organisasi Anda.
        + **Pilih topik SNS yang ada** – Untuk **Topik notifikasi target**, pilih ARN topik Amazon SNS yang ada di Akun AWS Anda saat ini. (Opsi ini tidak tersedia jika Anda belum membuat topik Amazon SNS apa pun di topik Anda saat ini Akun AWS dan Wilayah AWS.)
        + **Tentukan topik SNS saat permintaan perubahan dibuat**— Pengguna yang membuat permintaan perubahan dapat menentukan topik Amazon SNS yang akan digunakan untuk pemberitahuan.
**catatan**  
Topik Amazon SNS yang Anda pilih harus dikonfigurasi untuk menentukan notifikasi yang dikirim dan pelanggan yang menerimanya. Kebijakan aksesnya juga harus memberikan izin kepada Systems Manager sehingga Change Manager dapat mengirim notifikasi. Untuk informasi, lihat [Mengonfigurasi topik Amazon SNS untuk notifikasi Change Manager](change-manager-sns-setup.md). 

     1. Pilih **Tambahkan notifikasi**.

1. (Opsional) Untuk menambahkan tingkat pemberi persetujuan tambahan, pilih **Tambahkan tingkat persetujuan** dan pilih antara pemberi persetujuan yang ditentukan templat dan pemberi persetujuan yang ditentukan permintaan untuk tingkat ini. Lalu, pilih topik SNS untuk memberi tahu tingkat pemberi persetujuan ini.

   Setelah semua persetujuan diterima oleh pemberi persetujuan tingkat pertama, pemberi persetujuan tingkat kedua diberi tahu, dan seterusnya.

   Anda dapat menambahkan maksimum lima tingkat pemberi persetujuan di tiap templat. Anda mungkin, misalnya, memerlukan persetujuan dari pengguna dalam peran teknis untuk tingkat pertama, lalu persetujuan manajerial untuk tingkat kedua.

1. Di bagian **Pemantauan**, **agar CloudWatch alarm dapat dipantau**, masukkan nama CloudWatch alarm Amazon di akun saat ini untuk memantau kemajuan alur kerja runbook yang didasarkan pada templat ini. 
**Tip**  
Untuk membuat alarm baru, atau untuk meninjau pengaturan alarm yang ingin Anda tentukan, pilih **Buka CloudWatch konsol Amazon**. Untuk informasi tentang bekerja dengan CloudWatch alarm, lihat [Menggunakan CloudWatch Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html) di * CloudWatch Panduan Pengguna Amazon*.

1. Di bagian **Pemberitahuan**, lakukan hal berikut:

   1. Pilih salah satu dari berikut ini untuk menentukan topik Amazon SNS di akun Anda yang akan digunakan untuk mengirim notifikasi tentang permintaan perubahan yang dibuat menggunakan templat perubahan ini: 
      + **Masukkan SNS Amazon Resource Name (ARN)** – Untuk **ARN Topik**, masukkan ARN topik Amazon SNS yang ada. Topik ini dapat berada di salah satu akun organisasi Anda.
      + **Pilih topik SNS yang ada** – Untuk **Topik notifikasi target**, pilih ARN topik Amazon SNS yang ada di Akun AWS Anda saat ini. (Opsi ini tidak tersedia jika Anda belum membuat topik Amazon SNS apa pun di topik Anda saat ini Akun AWS dan Wilayah AWS.)
**catatan**  
Topik Amazon SNS yang Anda pilih harus dikonfigurasi untuk menentukan notifikasi yang dikirim dan pelanggan yang menerimanya. Kebijakan aksesnya juga harus memberikan izin kepada Systems Manager sehingga Change Manager dapat mengirim notifikasi. Untuk informasi, lihat [Mengonfigurasi topik Amazon SNS untuk notifikasi Change Manager](change-manager-sns-setup.md). 

   1. Pilih **Tambahkan notifikasi**.

1. (Opsional) Di bagian **Tag**, terapkan satu atau beberapa name/value pasangan kunci tag ke templat perubahan.

   Tag adalah metadata opsional yang Anda tetapkan ke sumber daya. Dengan menggunakan tag, Anda dapat mengategorikan sumber daya dengan cara yang berbeda, seperti berdasarkan tujuan, pemilik, atau lingkungan. Misalnya, Anda mungkin ingin menandai templat perubahan untuk mengidentifikasi jenis perubahan yang dibuat dan lingkungan tempat templat tersebut dijalankan. Dalam hal ini, Anda dapat menentukan name/value pasangan kunci berikut:
   + `Key=TaskType,Value=InstanceRepair`
   + `Key=Environment,Value=Production`

1. Pilih **Simpan dan pratinjau**.

1. Tinjau detail templat perubahan yang Anda buat.

   Jika Anda ingin mengubah templat perubahan sebelum mengirimkannya untuk ditinjau, pilih **Tindakan, Edit**.

   Jika Anda puas dengan isi templat perubahan tersebut, pilih **Kirim untuk ditinjau**. Pengguna di organisasi atau akun Anda yang telah ditetapkan sebagai pengulas templat pada tab **Pengaturan** akan diberi tahu bahwa templat perubahan baru Change Manager sedang menunggu peninjauan mereka. 

   Jika topik Amazon SNS telah ditentukan untuk templat perubahan, pemberitahuan akan dikirim saat templat perubahan ditolak atau disetujui. Jika Anda tidak menerima pemberitahuan terkait templat perubahan ini, Anda dapat kembali ke Change Manager nanti untuk memeriksa statusnya.

# Membuat templat perubahan menggunakan Editor
<a name="change-templates-custom-editor"></a>

**Change Managerperubahan ketersediaan**  
AWS Systems ManagerChange Managertidak akan lagi terbuka untuk pelanggan baru mulai 7 November 2025. Jika Anda ingin menggunakannyaChange Manager, daftar sebelum tanggal tersebut. Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS Systems ManagerChange Manager ketersediaan](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Gunakan langkah-langkah dalam topik ini untuk mengonfigurasi templat perubahan diChange Manager, alat AWS Systems Manager, dengan memasukkan JSON atau YAMAL alih-alih menggunakan kontrol konsol.

**Untuk membuat templat perubahan menggunakan Editor**

1. Di panel navigasi, pilih **Change Manager**.

1. Pilih **Buat templat**.

1. Untuk **Nama**, masukkan nama untuk templat yang membuat tujuannya mudah diidentifikasi, seperti **RestartEC2LinuxInstance**.

1. Di atas **Ubah detail templat**, pilih **Editor**.

1. Di bagian **Editor dokumen**, pilih **Edit**, dan kemudian masukkan konten JSON atau YAML untuk templat perubahan Anda. 

   Berikut adalah contoh.
**catatan**  
Parameter `minRequiredApprovals` digunakan untuk menentukan berapa banyak pengulas pada tingkat tertentu harus menyetujui permintaan perubahan yang dibuat menggunakan template ini.  
Contoh ini menunjukkan dua tingkat persetujuan. Anda dapat menentukan hingga lima tingkat persetujuan, tetapi hanya satu tingkat yang diperlukan.   
Di tingkat pertama, pengguna spesifik “John-Doe” harus menyetujui setiap permintaan perubahan. Setelah itu, tiga anggota peran IAM `Admin` harus menyetujui permintaan perubahan.  
Untuk informasi selengkapnya tentang persetujuan untuk templat perubahan, lihat[Tentang persetujuan dalam templat perubahan Anda](cm-approvals-templates.md).

------
#### [ YAML ]

   ```
   description: >-
     This change template demonstrates the feature set available for creating
     change templates for Change Manager. This template starts a Runbook workflow
     for the Automation runbook called AWS-HelloWorld.
   templateInformation: >
     ### Document Name: HelloWorldChangeTemplate
   
     ## What does this document do?
   
     This change template demonstrates the feature set available for creating
     change templates for Change Manager. This template starts a Runbook workflow
     for the Automation runbook called AWS-HelloWorld.
   
     ## Input Parameters
   
     * ApproverSnsTopicArn: (Required) Amazon Simple Notification Service ARN for
     approvers.
   
     * Approver: (Required) The name of the approver to send this request to.
   
     * ApproverType: (Required) The type of reviewer.
       * Allowed Values: IamUser, IamGroup, IamRole, SSOGroup, SSOUser
   
     ## Output Parameters
   
     This document has no outputs
   schemaVersion: '0.3'
   parameters:
     ApproverSnsTopicArn:
       type: String
       description: Amazon Simple Notification Service ARN for approvers.
     Approver:
       type: String
       description: IAM approver
     ApproverType:
       type: String
       description: >-
         Approver types for the request. Allowed values include IamUser, IamGroup,
         IamRole, SSOGroup, and SSOUser.
   executableRunBooks:
     - name: AWS-HelloWorld
       version: '1'
   emergencyChange: false
   autoApprovable: false
   mainSteps:
     - name: ApproveAction1
       action: 'aws:approve'
       timeoutSeconds: 3600
       inputs:
         Message: >-
           A sample change request has been submitted for your review in Change
           Manager. You can approve or reject this request.
         EnhancedApprovals:
           NotificationArn: '{{ ApproverSnsTopicArn }}'
           Approvers:
             - approver: John-Doe
               type: IamUser
               minRequiredApprovals: 1
     - name: ApproveAction2
       action: 'aws:approve'
       timeoutSeconds: 3600
       inputs:
         Message: >-
           A sample change request has been submitted for your review in Change
           Manager. You can approve or reject this request.
         EnhancedApprovals:
           NotificationArn: '{{ ApproverSnsTopicArn }}'
           Approvers:
             - approver: Admin
               type: IamRole
               minRequiredApprovals: 3
   ```

------
#### [ JSON ]

   ```
   {
      "description": "This change template demonstrates the feature set available for creating
     change templates for Change Manager. This template starts a Runbook workflow
     for the Automation runbook called AWS-HelloWorld",
      "templateInformation": "### Document Name: HelloWorldChangeTemplate\n\n
       ## What does this document do?\n
       This change template demonstrates the feature set available for creating change templates for Change Manager. 
       This template starts a Runbook workflow for the Automation runbook called AWS-HelloWorld.\n\n
       ## Input Parameters\n* ApproverSnsTopicArn: (Required) Amazon Simple Notification Service ARN for approvers.\n
       * Approver: (Required) The name of the approver to send this request to.\n
       * ApproverType: (Required) The type of reviewer.  * Allowed Values: IamUser, IamGroup, IamRole, SSOGroup, SSOUser\n\n
       ## Output Parameters\nThis document has no outputs\n",
      "schemaVersion": "0.3",
      "parameters": {
         "ApproverSnsTopicArn": {
            "type": "String",
            "description": "Amazon Simple Notification Service ARN for approvers."
         },
         "Approver": {
            "type": "String",
            "description": "IAM approver"
         },
         "ApproverType": {
            "type": "String",
            "description": "Approver types for the request. Allowed values include IamUser, IamGroup, IamRole, SSOGroup, and SSOUser."
         }
      },
      "executableRunBooks": [
         {
            "name": "AWS-HelloWorld",
            "version": "1"
         }
      ],
      "emergencyChange": false,
      "autoApprovable": false,
      "mainSteps": [
         {
            "name": "ApproveAction1",
            "action": "aws:approve",
            "timeoutSeconds": 3600,
            "inputs": {
               "Message": "A sample change request has been submitted for your review in Change Manager. You can approve or reject this request.",
               "EnhancedApprovals": {
                  "NotificationArn": "{{ ApproverSnsTopicArn }}",
                  "Approvers": [
                     {
                        "approver": "John-Doe",
                        "type": "IamUser",
                        "minRequiredApprovals": 1
                     }
                  ]
               }
            }
         },
           {
            "name": "ApproveAction2",
            "action": "aws:approve",
            "timeoutSeconds": 3600,
            "inputs": {
               "Message": "A sample change request has been submitted for your review in Change Manager. You can approve or reject this request.",
               "EnhancedApprovals": {
                  "NotificationArn": "{{ ApproverSnsTopicArn }}",
                  "Approvers": [
                     {
                        "approver": "Admin",
                        "type": "IamRole",
                        "minRequiredApprovals": 3                  
                     }
                  ]
               }
            }
         }
      ]
   }
   ```

------

1. Pilih **Simpan dan pratinjau**.

1. Tinjau detail templat perubahan yang Anda buat.

   Jika Anda ingin mengubah templat perubahan sebelum mengirimkannya untuk ditinjau, pilih **Tindakan, Edit**.

   Jika Anda puas dengan isi templat perubahan tersebut, pilih **Kirim untuk ditinjau**. Pengguna di organisasi atau akun Anda yang telah ditetapkan sebagai pengulas templat pada tab **Pengaturan** akan diberi tahu bahwa templat perubahan baru Change Manager sedang menunggu peninjauan mereka. 

   Jika topik Amazon Simple Notification Service (Amazon SNS) telah ditentukan untuk templat perubahan, notifikasi akan dikirim saat templat perubahan ditolak atau disetujui. Jika Anda tidak menerima pemberitahuan terkait templat perubahan ini, Anda dapat kembali ke Change Manager nanti untuk memeriksa statusnya.

# Membuat templat perubahan menggunakan alat baris perintah
<a name="change-templates-tools"></a>

**Change Managerperubahan ketersediaan**  
AWS Systems ManagerChange Managertidak akan lagi terbuka untuk pelanggan baru mulai 7 November 2025. Jika Anda ingin menggunakannyaChange Manager, daftar sebelum tanggal tersebut. Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS Systems ManagerChange Manager ketersediaan](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Prosedur berikut menjelaskan cara menggunakan AWS Command Line Interface (AWS CLI) (di Linux,macOS, atauWindows Server) atau AWS Tools for Windows PowerShell untuk membuat permintaan perubahan diChange Manager, alat di AWS Systems Manager. 

**Untuk membuat templat perubahan**

1. Instal dan konfigurasikan AWS CLI atau Alat AWS untuk PowerShell, jika Anda belum melakukannya.

   Untuk selengkapnya, lihat [Menginstal atau memperbarui versi terbaru AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) dan [Menginstal Alat AWS untuk PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html).

1. Buat file JSON di komputer lokal Anda dengan nama seperti `MyChangeTemplate.json`, kemudian tempel konten untuk templat perubahan Anda ke dalamnya.
**catatan**  
Templat perubahan menggunakan versi skema 0.3 yang tidak mencakup semua dukungan yang sama seperti untuk runbook Otomatisasi.

   Berikut adalah contohnya.
**catatan**  
Parameter `minRequiredApprovals` digunakan untuk menentukan berapa banyak pengulas pada tingkat tertentu harus menyetujui permintaan perubahan yang dibuat menggunakan template ini.  
Contoh ini menunjukkan dua tingkat persetujuan. Anda dapat menentukan hingga lima tingkat persetujuan, tetapi hanya satu tingkat yang diperlukan.   
Di tingkat pertama, pengguna spesifik “John-Doe” harus menyetujui setiap permintaan perubahan. Setelah itu, tiga anggota peran IAM `Admin` harus menyetujui permintaan perubahan.  
Untuk informasi selengkapnya tentang persetujuan untuk templat perubahan, lihat[Tentang persetujuan dalam templat perubahan Anda](cm-approvals-templates.md).

   ```
   {
      "description": "This change template demonstrates the feature set available for creating
     change templates for Change Manager. This template starts a Runbook workflow
     for the Automation runbook called AWS-HelloWorld",
      "templateInformation": "### Document Name: HelloWorldChangeTemplate\n\n
       ## What does this document do?\n
       This change template demonstrates the feature set available for creating change templates for Change Manager. 
       This template starts a Runbook workflow for the Automation runbook called AWS-HelloWorld.\n\n
       ## Input Parameters\n* ApproverSnsTopicArn: (Required) Amazon Simple Notification Service ARN for approvers.\n
       * Approver: (Required) The name of the approver to send this request to.\n
       * ApproverType: (Required) The type of reviewer.  * Allowed Values: IamUser, IamGroup, IamRole, SSOGroup, SSOUser\n\n
       ## Output Parameters\nThis document has no outputs\n",
      "schemaVersion": "0.3",
      "parameters": {
         "ApproverSnsTopicArn": {
            "type": "String",
            "description": "Amazon Simple Notification Service ARN for approvers."
         },
         "Approver": {
            "type": "String",
            "description": "IAM approver"
         },
         "ApproverType": {
            "type": "String",
            "description": "Approver types for the request. Allowed values include IamUser, IamGroup, IamRole, SSOGroup, and SSOUser."
         }
      },
      "executableRunBooks": [
         {
            "name": "AWS-HelloWorld",
            "version": "1"
         }
      ],
      "emergencyChange": false,
      "autoApprovable": false,
      "mainSteps": [
         {
            "name": "ApproveAction1",
            "action": "aws:approve",
            "timeoutSeconds": 3600,
            "inputs": {
               "Message": "A sample change request has been submitted for your review in Change Manager. You can approve or reject this request.",
               "EnhancedApprovals": {
                  "NotificationArn": "{{ ApproverSnsTopicArn }}",
                  "Approvers": [
                     {
                        "approver": "John-Doe",
                        "type": "IamUser",
                        "minRequiredApprovals": 1
                     }
                  ]
               }
            }
         },
           {
            "name": "ApproveAction2",
            "action": "aws:approve",
            "timeoutSeconds": 3600,
            "inputs": {
               "Message": "A sample change request has been submitted for your review in Change Manager. You can approve or reject this request.",
               "EnhancedApprovals": {
                  "NotificationArn": "{{ ApproverSnsTopicArn }}",
                  "Approvers": [
                     {
                        "approver": "Admin",
                        "type": "IamRole",
                        "minRequiredApprovals": 3                  
                     }
                  ]
               }
            }
         }
      ]
   }
   ```

1. Jalankan perintah berikut untuk membuat templat perubahan. 

------
#### [ Linux & macOS ]

   ```
   aws ssm create-document \
       --name MyChangeTemplate \
       --document-format JSON \
       --document-type Automation.ChangeTemplate \
       --content file://MyChangeTemplate.json \
       --tags Key=tag-key,Value=tag-value
   ```

------
#### [ Windows ]

   ```
   aws ssm create-document ^
       --name MyChangeTemplate ^
       --document-format JSON ^
       --document-type Automation.ChangeTemplate ^
       --content file://MyChangeTemplate.json ^
       --tags Key=tag-key,Value=tag-value
   ```

------
#### [ PowerShell ]

   ```
   $json = Get-Content -Path "C:\path\to\file\MyChangeTemplate.json" | Out-String
   New-SSMDocument `
       -Content $json `
       -Name "MyChangeTemplate" `
       -DocumentType "Automation.ChangeTemplate" `
       -Tags "Key=tag-key,Value=tag-value"
   ```

------

   Untuk informasi tentang opsi lain yang dapat Anda tentukan, lihat [https://docs.aws.amazon.com/cli/latest/reference/ssm/create-document.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/create-document.html).

   Sistem mengembalikan informasi seperti berikut ini.

   ```
   {
      "DocumentDescription":{
         "CreatedDate":1.585061751738E9,
         "DefaultVersion":"1",
         "Description":"Use this template to update an EC2 Linux AMI. Requires one
         approver specified in the template and an approver specified in the request.",
         "DocumentFormat":"JSON",
         "DocumentType":"Automation",
         "DocumentVersion":"1",
         "Hash":"0d3d879b3ca072e03c12638d0255ebd004d2c65bd318f8354fcde820dEXAMPLE",
         "HashType":"Sha256",
         "LatestVersion":"1",
         "Name":"MyChangeTemplate",
         "Owner":"123456789012",
         "Parameters":[
            {
               "DefaultValue":"",
               "Description":"Level one approvers",
               "Name":"LevelOneApprovers",
               "Type":"String"
            },
            {
               "DefaultValue":"",
               "Description":"Level one approver type",
               "Name":"LevelOneApproverType",
               "Type":"String"
            },
      "cloudWatchMonitors": {
         "monitors": [
            "my-cloudwatch-alarm"
         ]
      }
         ],
         "PlatformTypes":[
            "Windows",
            "Linux"
         ],
         "SchemaVersion":"0.3",
         "Status":"Creating",
         "Tags":[
   
         ]
      }
   }
   ```

Pengguna di organisasi atau akun Anda yang telah ditetapkan sebagai pengulas templat pada tab **Pengaturan** akan diberi tahu bahwa templat perubahan baru Change Manager sedang menunggu peninjauan mereka. 

Jika topik Amazon Simple Notification Service (Amazon SNS) telah ditentukan untuk templat perubahan, notifikasi akan dikirim saat templat perubahan ditolak atau disetujui. Jika Anda tidak menerima pemberitahuan terkait templat perubahan ini, Anda dapat kembali ke Change Manager nanti untuk memeriksa statusnya.

# Meninjau dan menyetujui atau menolak templat perubahan
<a name="change-templates-review"></a>

**Change Managerperubahan ketersediaan**  
AWS Systems ManagerChange Managertidak akan lagi terbuka untuk pelanggan baru mulai 7 November 2025. Jika Anda ingin menggunakannyaChange Manager, daftar sebelum tanggal tersebut. Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS Systems ManagerChange Manager ketersediaan](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Jika Anda ditetapkan sebagai peninjau untuk templat perubahan di, alat di Change Manager AWS Systems Manager, Anda akan diberi tahu saat templat perubahan baru, atau versi baru dari templat perubahan, sedang menunggu peninjauan Anda. Topik Amazon Simple Notification Service (Amazon SNS) mengirimkan notifikasi.

**catatan**  
Fungsi ini tergantung pada apakah akun Anda telah dikonfigurasi untuk menggunakan topik Amazon SNS untuk mengirim notifikasi tinjauan templat perubahan. Untuk informasi tentang menentukan topik notifikasi peninjau templat, lihat [Tugas 1: Mengonfigurasi manajemen identitas Change Manager pengguna dan pengulas template](change-manager-account-setup.md#cm-configure-account-task-1).

Untuk meninjau templat perubahan, ikuti tautan di notifikasi Anda, masuk ke Konsol Manajemen AWS, dan ikuti langkah-langkah dalam prosedur ini.

**Untuk meninjau, dan menyetujui atau menolak templat perubahan**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Change Manager**.

1. Di bagian **Template perubahan** di bagian bawah tab **Gambaran Umum**, pilih nomor di **Menunggu tinjauan**.

1. Dalam daftar **Templat perubahan**, temukan dan pilih nama templat perubahan yang akan ditinjau.

1. Di halaman ringkasan, tinjau konten yang diusulkan dari templat perubahan dan lakukan salah satu hal berikut:
   + Untuk menyetujui templat perubahan, yang memungkinkannya digunakan dalam permintaan perubahan, pilih **Menyetujui**.
   + Untuk menolak template perubahan, yang mencegahnya digunakan dalam permintaan perubahan, pilih **Tolak**.

# Menghapus template perubahan
<a name="change-templates-delete"></a>

**Change Managerperubahan ketersediaan**  
AWS Systems ManagerChange Managertidak akan lagi terbuka untuk pelanggan baru mulai 7 November 2025. Jika Anda ingin menggunakannyaChange Manager, daftar sebelum tanggal tersebut. Pelanggan yang sudah ada dapat terus menggunakan layanan seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS Systems ManagerChange Manager ketersediaan](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Topik ini menjelaskan cara menghapus templat yang telah Anda buatChange Manager, alat di Systems Manager. Jika Anda menggunakan Change Manager untuk organisasi, prosedur ini dilakukan di akun administrator yang didelegasikan.

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Change Manager**.

1. Pilih tab **Template**.

1. Pilih nama template yang akan dihapus.

1. Pilih **Tindakan, Hapus template**.

1. Dalam dialog konfirmasi, masukkan kata**DELETE**, lalu pilih **Hapus**.

# Bekerja dengan permintaan perubahan
<a name="change-requests"></a>

**Change Managerperubahan ketersediaan**  
AWS Systems ManagerChange Managertidak akan lagi terbuka untuk pelanggan baru mulai 7 November 2025. Jika Anda ingin menggunakannyaChange Manager, daftar sebelum tanggal tersebut. Pelanggan yang sudah ada dapat terus menggunakan layanan seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS Systems ManagerChange Manager ketersediaan](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Permintaan perubahan adalah permintaan Change Manager untuk menjalankan runbook Otomasi yang memperbarui satu atau beberapa sumber daya di lingkungan Anda AWS atau lokal. Permintaan perubahan dibuat menggunakan templat perubahan.

Saat Anda membuat permintaan perubahanChange Manager, alat di AWS Systems Manager, satu atau beberapa pemberi persetujuan di organisasi atau akun Anda harus meninjau dan menyetujui permintaan tersebut. Tanpa persetujuan yang diperlukan, alur kerja runbook, yang membuat perubahan yang Anda minta, tidak diizinkan untuk berjalan.

**Topics**
+ [Membuat permintaan perubahan](change-requests-create.md)
+ [Meninjau dan menyetujui atau menolak permintaan perubahan](change-requests-review.md)

# Membuat permintaan perubahan
<a name="change-requests-create"></a>

**Change Managerperubahan ketersediaan**  
AWS Systems ManagerChange Managertidak akan lagi terbuka untuk pelanggan baru mulai 7 November 2025. Jika Anda ingin menggunakannyaChange Manager, daftar sebelum tanggal tersebut. Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS Systems ManagerChange Manager ketersediaan](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Saat Anda membuat permintaan perubahan diChange Manager, alat di AWS Systems Manager, templat perubahan yang Anda pilih biasanya melakukan hal berikut:
+ Menunjuk pemberi persetujuan untuk permintaan perubahan atau menentukan berapa banyak persetujuan yang diperlukan
+ Menentukan topik Amazon Simple Notification Service (Amazon SNS) yang akan digunakan untuk memberi tahu pemberi persetujuan tentang permintaan perubahan Anda
+ Menentukan CloudWatch alarm Amazon untuk memantau alur kerja runbook untuk permintaan perubahan
+ Mengidentifikasi runbook Otomasi mana yang dapat Anda pilih untuk membuat perubahan yang diminta

Dalam beberapa kasus, templat perubahan mungkin dikonfigurasi sehingga Anda menentukan runbook Otomatisasi Anda sendiri untuk digunakan, dan untuk menentukan siapa yang harus meninjau dan menyetujui permintaan.

**penting**  
Jika Anda menggunakan Change Manager di seluruh organisasi, sebaiknya selalu membuat perubahan dari akun administrator yang didelegasikan. Meskipun Anda dapat membuat perubahan dari akun lain di organisasi, perubahan tersebut tidak akan dilaporkan atau dapat dilihat dari akun administrator yang didelegasikan.

**Topics**
+ [Tentang persetujuan permintaan perubahan](#cm-approvals-requests)
+ [Membuat permintaan perubahan (konsol)](#change-requests-create-console)
+ [Membuat permintaan perubahan (AWS CLI)](#change-requests-create-cli)

## Tentang persetujuan permintaan perubahan
<a name="cm-approvals-requests"></a>

Bergantung pada persyaratan yang ditentukan dalam templat perubahan, permintaan perubahan yang Anda buat darinya dapat memerlukan persetujuan dari hingga lima *tingkat* sebelum alur kerja buku runbook untuk permintaan dapat terjadi. Untuk masing-masing level tersebut, pembuat template dapat menentukan hingga lima calon *pemberi persetujuan*. Penyetuju tidak terbatas pada satu pengguna. Penyetuju dalam pengertian ini juga bisa menjadi grup IAM atau peran IAM. Untuk grup IAM dan peran IAM, satu atau lebih pengguna yang termasuk dalam grup atau peran dapat memberikan persetujuan untuk menerima jumlah persetujuan yang diperlukan untuk permintaan perubahan. Pembuat templat juga dapat menentukan lebih banyak pemberi persetujuan daripada yang dibutuhkan template perubahan.

**Alur kerja persetujuan asli dan persetujuan yang diperbarui and/or**  
Menggunakan templat perubahan yang dibuat sebelum 23 Januari 2023, persetujuan harus diterima dari setiap pemberi persetujuan yang ditentukan agar permintaan perubahan disetujui pada tingkat tersebut. Misalnya, dalam pengaturan tingkat persetujuan yang ditunjukkan pada gambar berikut, empat pemberi persetujuan ditentukan. Persetujuan yang ditentukan mencakup dua pengguna (John Stiles dan Ana Carolina Silva), grup pengguna yang berisi tiga anggota (GroupOfThree), dan peran pengguna yang mewakili sepuluh pengguna (). RoleOfTen

![\[Tingkat persetujuan menunjukkan empat pemberi persetujuan per baris yang diperlukan.\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/images/Add-approval-1.png)


Agar permintaan perubahan disetujui pada tingkat ini, itu harus disetujui oleh John Stiles, Ana Carolina Silva, satu anggota `GroupOfThree` grup, dan satu anggota peran. `RoleOfTen`

Menggunakan templat perubahan yang dibuat pada atau setelah 23 Januari 2023, untuk setiap tingkat persetujuan, pembuat templat dapat menentukan jumlah keseluruhan persetujuan yang diperlukan. Persetujuan tersebut dapat berasal dari kombinasi pengguna, grup, dan peran apa pun yang telah ditentukan sebagai pemberi persetujuan. Template perubahan hanya memerlukan satu persetujuan untuk suatu level tetapi menentukan, misalnya, dua pengguna individu, dua grup, dan satu peran sebagai pemberi persetujuan potensial.

Misalnya, di area tingkat persetujuan yang ditunjukkan pada gambar berikut, tiga persetujuan diperlukan. Persetujuan yang ditentukan template mencakup dua pengguna (John Stiles dan Ana Carolina Silva), grup pengguna yang berisi tiga anggota (`GroupOfThree`), dan peran pengguna yang mewakili sepuluh pengguna (). `RoleOfTen`

![\[Tingkat persetujuan yang menunjukkan tiga persetujuan diperlukan dan empat pemberi persetujuan yang ditentukan.\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/images/Add-approval-2.png)


Jika ketiga pengguna dalam `GroupOfThree` grup menyetujui permintaan perubahan Anda, itu disetujui untuk tingkat itu. Tidak perlu menerima persetujuan dari setiap pengguna, grup, atau peran. Jumlah minimum persetujuan dapat berasal dari kombinasi pemberi persetujuan potensial.

Saat permintaan perubahan Anda dibuat, notifikasi dikirim ke pelanggan topik Amazon SNS yang telah ditentukan untuk pemberitahuan persetujuan pada tingkat tersebut. Pembuat template perubahan mungkin telah menentukan topik notifikasi yang harus digunakan atau memungkinkan Anda untuk menentukannya.

Setelah jumlah minimum persetujuan yang diperlukan diterima pada satu tingkat, pemberitahuan dikirim ke pemberi persetujuan yang berlangganan topik Amazon SNS untuk tingkat berikutnya, dan seterusnya.

Tidak peduli berapa banyak tingkat persetujuan dan pemberi persetujuan yang ditentukan, hanya satu penolakan terhadap permintaan perubahan yang diperlukan untuk mencegah alur kerja buku runbook untuk permintaan tersebut terjadi.

## Membuat permintaan perubahan (konsol)
<a name="change-requests-create-console"></a>

Prosedur berikut menjelaskan cara membuat permintaan perubahan dengan menggunakan konsol Systems Manager.

**Untuk membuat permintaan perubahan (konsol)**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Change Manager**.

1. Pilih **Buat permintaan**.

1. Cari dan pilih templat perubahan yang ingin Anda gunakan untuk permintaan perubahan ini.

1. Pilih **Selanjutnya**.

1. Untuk **Nama**, masukkan nama untuk permintaan perubahan yang membuat tujuannya mudah diidentifikasi, seperti **UpdateEC2LinuxAMI-us-east-2**.

1. Untuk **Runbook**, pilih runbook yang ingin Anda gunakan untuk membuat perubahan yang diminta.
**catatan**  
Jika opsi untuk memilih buku runbook tidak tersedia, penulis templat perubahan telah menentukan runbook mana yang harus digunakan.

1. Untuk **Ubah informasi permintaan**, gunakan Markdown untuk memberikan informasi tambahan tentang permintaan perubahan untuk membantu peninjau memutuskan apakah akan menyetujui atau menolak permintaan perubahan. Penulis templat yang Anda gunakan mungkin telah memberikan instruksi atau pertanyaan untuk Anda jawab.
**catatan**  
Markdown adalah bahasa markup yang memungkinkan Anda untuk menambahkan deskripsi gaya wiki ke dokumen dan langkah-langkah individual dalam dokumen. Untuk informasi selengkapnya tentang penggunaan Markdown, lihat [Menggunakan Markdown di AWS](https://docs.aws.amazon.com/general/latest/gr/aws-markdown.html).

1. Di bagian **Waktu mulai alur kerja**, pilih salah satu dari berikut ini:
   + **Jalankan operasi pada waktu yang dijadwalkan** – Untuk **Waktu mulai yang diminta**, masukkan tanggal dan waktu yang Anda usulkan untuk menjalankan alur kerja runbook untuk permintaan ini. Untuk **Estimasi waktu selesai**, masukkan tanggal dan waktu yang Anda harapkan alur kerja runbook selesai. (Kali ini hanya perkiraan yang Anda berikan untuk peninjau.)
**Tip**  
Pilih **Lihat Change Calendar** untuk memeriksa setiap peristiwa pemblokiran untuk waktu yang Anda tentukan.
   + **Jalankan operasi sesegera mungkin setelah persetujuan** – Jika permintaan perubahan disetujui, alur kerja runbook berjalan segera setelah ada periode yang tidak dibatasi saat perubahan dapat dilakukan.

1. Di bagian **Ubah persetujuan permintaan**, lakukan hal berikut:

   1. Jika opsi **jenis Persetujuan** disajikan, pilih salah satu dari berikut ini:
      + **Persetujuan otomatis** - Templat perubahan yang Anda pilih dikonfigurasi untuk memungkinkan permintaan perubahan berjalan secara otomatis tanpa ditinjau oleh pemberi persetujuan apa pun. Lanjutkan ke Langkah 11.
**catatan**  
Izin yang ditentukan dalam kebijakan IAM yang mengatur penggunaan Systems Manager Anda tidak boleh membatasi Anda untuk mengirimkan permintaan perubahan persetujuan otomatis agar dapat berjalan secara otomatis.
      + **Tentukan pemberi persetujuan** — Anda harus menambahkan satu atau beberapa pengguna, grup, atau peran IAM untuk meninjau dan menyetujui permintaan perubahan ini.
**catatan**  
Anda dapat memilih untuk menentukan pengulas meskipun izin yang ditentukan dalam kebijakan IAM yang mengatur penggunaan Systems Manager memungkinkan Anda menjalankan permintaan perubahan persetujuan otomatis.

   1. Pilih **Tambahkan pemberi persetujuan**, lalu pilih satu atau beberapa peran pengguna, grup, atau AWS Identity and Access Management (IAM) dari daftar pengulas yang tersedia.
**catatan**  
Satu atau beberapa pemberi persetujuan mungkin sudah ditentukan. Ini berarti bahwa pemberi persetujuan wajib sudah ditentukan dalam templat perubahan yang telah Anda pilih. Pemberi persetujuan ini tidak dapat dihapus dari permintaan. Jika tombol **Tambah pemberi persetujuan** tidak tersedia, templat yang Anda pilih tidak mengizinkan pengulas tambahan ditambahkan ke permintaan.

      Untuk informasi selengkapnya tentang persetujuan untuk permintaan perubahan, lihat[Tentang persetujuan permintaan perubahan](#cm-approvals-requests).

   1. Di bawah **Topik SNS untuk memberi tahu pemberi persetujuan**, pilih salah satu dari berikut ini untuk menentukan topik Amazon SNS di akun Anda untuk digunakan untuk mengirim notifikasi kepada pemberi persetujuan yang Anda tambahkan ke permintaan perubahan ini.
**catatan**  
Jika opsi untuk menentukan topik Amazon SNS tidak tersedia, templat perubahan yang Anda pilih telah menentukan topik SNS Amazon yang akan digunakan.
      + **Masukkan SNS Amazon Resource Name (ARN)** – Untuk **ARN Topik**, masukkan ARN topik Amazon SNS yang ada. Topik ini dapat berada di salah satu akun organisasi Anda.
      + **Pilih topik SNS yang ada** – Untuk **Topik notifikasi target**, pilih ARN dari topik Amazon SNS yang ada di akun Anda saat ini. (Opsi ini tidak tersedia jika Anda belum membuat topik Amazon SNS apa pun di topik Anda saat ini Akun AWS dan Wilayah AWS.)
**catatan**  
Topik Amazon SNS yang Anda pilih harus dikonfigurasi untuk menentukan notifikasi yang dikirim dan pelanggan yang menerimanya. Kebijakan aksesnya juga harus memberikan izin kepada Systems Manager sehingga Change Manager dapat mengirim notifikasi. Untuk informasi, lihat [Mengonfigurasi topik Amazon SNS untuk notifikasi Change Manager](change-manager-sns-setup.md). 

   1. Pilih **Tambahkan notifikasi**.

1. Pilih **Berikutnya**.

1. Untuk **peran IAM**, pilih peran IAM *di akun Anda saat ini* yang memiliki izin yang diperlukan untuk menjalankan runbook yang ditentukan untuk permintaan perubahan ini.

   Peran ini juga disebut sebagai peran layanan, atau peran asumsi, untuk Otomatisasi. Untuk informasi selengkapnya tentang peran ini, lihat [Menyiapkan Otomatisasi](automation-setup.md).

1. Di bagian **Lokasi deployment**, pilih salah satu dari berikut ini:
**catatan**  
Jika Anda menggunakan Change Manager dengan satu Akun AWS saja dan tidak dengan organisasi yang disiapkan AWS Organizations, Anda tidak perlu menentukan lokasi penerapan.
   + **Terapkan perubahan ke akun ini** – Alur kerja runbook hanya berjalan di akun saat ini. Untuk organisasi, ini berarti akun administrator yang didelegasikan.
   + **Terapkan perubahan ke beberapa unit organisasi (OUs)** - Lakukan hal berikut: 

     1. Untuk **Akun dan unit organisasi (OUs)**, masukkan ID akun anggota di organisasi Anda, dalam format**123456789012**, atau ID unit organisasi, dalam format**o-o96EXAMPLE**. 

     1. (Opsional) Untuk **Nama peran eksekusi**, masukkan nama IAM role *di akun target* atau OU yang memiliki izin yang diperlukan untuk menjalankan runbook yang ditentukan untuk permintaan perubahan ini. Semua account di OU yang Anda tentukan harus menggunakan nama yang sama untuk peran ini.

     1. (Opsional) Pilih **Tambah lokasi target lain** untuk setiap akun atau OU tambahan yang ingin Anda tentukan dan ulangi langkah a dan b. 

     1. Untuk **Target Wilayah AWS**, pilih Wilayah untuk melakukan perubahan, seperti `Ohio (us-east-2)` untuk Wilayah AS Timur (Ohio).

     1. Perluas **Pengendalian rate**. 

        Untuk **Konkurensi**, masukkan angka, lalu dari daftar pilih apakah ini mewakili jumlah atau persentase akun yang dapat dijalankan oleh alur kerja runbook secara bersamaan. 

        Untuk **Batas kesalahan**, masukkan angka, lalu dari daftar pilih apakah ini mewakili jumlah atau persentase akun di mana alur kerja runbook dapat gagal sebelum operasi dihentikan. 

1. Di bagian **Target deployment**, lakukan hal berikut:

   1. Pilih salah satu dari berikut:
      + **Sumber daya tunggal** – Perubahan harus dibuat hanya untuk satu sumber daya. Misalnya, satu node atau single Amazon Machine Image (AMI), tergantung pada operasi yang ditentukan dalam runbook untuk permintaan perubahan ini.
      + **Beberapa sumber daya** – Untuk **Parameter**, pilih dari parameter yang tersedia dari runbook untuk permintaan perubahan ini. Pilihan ini mencerminkan jenis sumber daya yang diperbarui.

        Sebagai contoh, jika runbook untuk permintaan perubahan ini adalah `AWS-RetartEC2Instance`, Anda dapat memilih `InstanceId`, dan kemudian menentukan instans mana yang diperbarui dengan memilih dari berikut ini:
        + **Tentukan tag** – Masukkan pasangan nilai kunci yang ditandai dengan semua sumber daya yang akan diperbarui.
        + **Pilih grup sumber daya** – Pilih nama grup sumber daya tempat semua sumber daya yang akan diperbarui.
        + **Tentukan nilai parameter** – Identifikasi sumber daya yang akan diperbarui di bagian **Parameter runbook**.
        + **Targetkan semua instance** — Buat perubahan pada semua node terkelola di lokasi target.

   1. Jika Anda memilih **Beberapa sumber daya**, perluas **Pengendalian rate**. 

      Untuk **Konkurensi**, masukkan angka, lalu dari daftar pilih apakah ini mewakili jumlah atau persentase target yang dapat diperbarui alur kerja runbook pada saat yang sama. 

      Untuk **Batas kesalahan**, masukkan angka, lalu dari daftar pilih apakah ini mewakili jumlah atau persentase target di mana pembaruan dapat gagal sebelum operasi dihentikan. 

1. Jika Anda memilih **Tentukan nilai parameter** untuk memperbarui beberapa sumber daya di langkah sebelumnya: Di bagian **Parameter runbook**, tentukan nilai untuk parameter input yang diperlukan. Nilai parameter yang harus Anda berikan didasarkan pada konten runbook Otomatisasi yang terkait dengan templat perubahan yang Anda pilih. 

   Misalnya, jika template perubahan menggunakan `AWS-RetartEC2Instance` runbook, maka Anda harus memasukkan satu atau lebih instance IDs untuk **InstanceId**parameter tersebut. Atau, pilih **Tampilkan pemilih instans interaktif** dan pilih instans yang tersedia satu per satu. 

1. Pilih **Selanjutnya**.

1. Di halaman **Tinjau dan kirim**, periksa kembali sumber daya dan opsi yang telah Anda tentukan untuk permintaan perubahan ini.

   Pilih tombol **Edit** untuk bagian mana pun yang ingin Anda ubah.

   Jika Anda puas dengan detail permintaan perubahan, pilih **Kirim untuk persetujuan**.

Jika topik Amazon SNS telah ditentukan dalam templat perubahan yang Anda pilih untuk permintaan, notifikasi akan dikirim ketika permintaan tersebut ditolak atau disetujui. Jika Anda tidak menerima pemberitahuan untuk permintaan tersebut, Anda dapat kembali Change Manager untuk memeriksa status permintaan Anda. 

## Membuat permintaan perubahan (AWS CLI)
<a name="change-requests-create-cli"></a>

Anda dapat membuat permintaan perubahan menggunakan AWS Command Line Interface (AWS CLI) dengan menentukan opsi dan parameter untuk permintaan perubahan dalam file JSON dan menggunakan `--cli-input-json` opsi untuk memasukkannya ke dalam perintah Anda.

**Untuk membuat permintaan perubahan (AWS CLI)**

1. Instal dan konfigurasikan AWS CLI atau Alat AWS untuk PowerShell, jika Anda belum melakukannya.

   Untuk selengkapnya, lihat [Menginstal atau memperbarui versi terbaru AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) dan [Menginstal Alat AWS untuk PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html).

1. Buat file JSON di mesin lokal Anda dengan nama seperti `MyChangeRequest.json` dan tempelkan konten berikut ke dalamnya.

   Ganti *placeholders* dengan nilai untuk permintaan perubahan Anda.
**catatan**  
Contoh JSON ini membuat permintaan perubahan menggunakan template `AWS-HelloWorldChangeTemplate` perubahan dan `AWS-HelloWorld` runbook. Untuk membantu Anda menyesuaikan sampel ini untuk permintaan perubahan Anda sendiri, lihat [https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_StartChangeRequestExecution.html](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_StartChangeRequestExecution.html)di *Referensi AWS Systems Manager API* untuk informasi tentang semua parameter yang tersedia  
Untuk informasi selengkapnya tentang persetujuan untuk permintaan perubahan, lihat[Tentang persetujuan permintaan perubahan](#cm-approvals-requests).

   ```
   {
       "ChangeRequestName": "MyChangeRequest",
       "DocumentName": "AWS-HelloWorldChangeTemplate",
       "DocumentVersion": "$DEFAULT",
       "ScheduledTime": "2021-12-30T03:00:00",
       "ScheduledEndTime": "2021-12-30T03:05:00",
       "Tags": [
           {
               "Key": "Purpose",
               "Value": "Testing"
           }
       ],
       "Parameters": {
           "Approver": [
               "JohnDoe"
           ],
           "ApproverType": [
               "IamUser"
           ],
           "ApproverSnsTopicArn": [
               "arn:aws:sns:us-east-2:123456789012:MyNotificationTopic"
           ]
       },
       "Runbooks": [
           {
               "DocumentName": "AWS-HelloWorld",
               "DocumentVersion": "1",
               "MaxConcurrency": "1",
               "MaxErrors": "1",
               "Parameters": {
                   "AutomationAssumeRole": [
                       "arn:aws:iam::123456789012:role/MyChangeManagerAssumeRole"
                   ]
               }
           }
       ],
       "ChangeDetails": "### Document Name: HelloWorldChangeTemplate\n\n## What does this document do?\nThis change template demonstrates the feature set available for creating change templates for Change Manager. This template starts a Runbook workflow for the Automation document called AWS-HelloWorld.\n\n## Input Parameters\n* ApproverSnsTopicArn: (Required) Amazon Simple Notification Service ARN for approvers.\n* Approver: (Required) The name of the approver to send this request to.\n* ApproverType: (Required) The type of reviewer.\n  * Allowed Values: IamUser, IamGroup, IamRole, SSOGroup, SSOUser\n\n## Output Parameters\nThis document has no outputs \n"
   }
   ```

1. Dalam direktori tempat Anda membuat file JSON, jalankan perintah berikut.

   ```
   aws ssm start-change-request-execution --cli-input-json file://MyChangeRequest.json
   ```

   Sistem mengembalikan informasi seperti berikut ini.

   ```
   {
       "AutomationExecutionId": "b3c1357a-5756-4839-8617-2d2a4EXAMPLE"
   }
   ```

# Meninjau dan menyetujui atau menolak permintaan perubahan
<a name="change-requests-review"></a>

**Change Managerperubahan ketersediaan**  
AWS Systems ManagerChange Managertidak akan lagi terbuka untuk pelanggan baru mulai 7 November 2025. Jika Anda ingin menggunakannyaChange Manager, daftar sebelum tanggal tersebut. Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS Systems ManagerChange Manager ketersediaan](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Jika Anda ditetapkan sebagai peninjau untuk permintaan perubahan di, alat di Change Manager AWS Systems Manager, Anda akan diberi tahu melalui topik Amazon Simple Notification Service (Amazon SNS) saat permintaan perubahan baru menunggu peninjauan. 

**catatan**  
Fungsionalitas ini bergantung pada apakah Amazon SNS telah ditentukan dalam templat perubahan untuk mengirim notifikasi tinjauan. Untuk informasi, lihat [Mengonfigurasi topik Amazon SNS untuk notifikasi Change Manager](change-manager-sns-setup.md). 

Untuk meninjau permintaan perubahan, Anda dapat mengikuti tautan di notifikasi Anda, atau masuk ke Konsol Manajemen AWS langsung dan ikuti langkah-langkah dalam prosedur ini.

**catatan**  
Jika topik Amazon SNS ditetapkan untuk peninjau dalam templat perubahan, notifikasi akan dikirim ke pelanggan topik ketika permintaan perubahan mengubah status.  
Untuk informasi selengkapnya tentang persetujuan untuk permintaan perubahan, lihat[Tentang persetujuan permintaan perubahan](change-requests-create.md#cm-approvals-requests).

## Meninjau dan menyetujui atau menolak permintaan perubahan (konsol)
<a name="change-requests-review-console"></a>

Prosedur berikut menjelaskan cara menggunakan konsol Systems Manager untuk meninjau dan menyetujui atau menolak permintaan perubahan.

**Untuk meninjau dan menyetujui atau menolak satu permintaan perubahan**

1. Buka tautan di notifikasi email yang Anda terima dan masuk ke Konsol Manajemen AWS, yang mengarahkan Anda ke permintaan perubahan untuk peninjauan Anda.

1. Di halaman ringkasan, tinjau konten yang diusulkan dari permintaan perubahan.

   Untuk menyetujui permintaan perubahan, pilih **Setujui**. Di kotak dialog, berikan komentar yang ingin Anda tambahkan untuk persetujuan ini, lalu pilih **Setujui**. Alur kerja runbook yang diwakili oleh permintaan ini mulai berjalan baik ketika dijadwalkan, atau segera setelah perubahan tidak diblokir oleh pembatasan apa pun.

   -atau-

   Untuk menolak permintaan perubahan, pilih **Tolak**. Di kotak dialog, berikan komentar yang ingin Anda tambahkan untuk penolakan ini, lalu pilih **Tolak**.

**Untuk meninjau dan menyetujui atau menolak permintaan perubahan secara massal**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Change Manager**.

1. Pilih tab **Persetujuan**.

1. (Opsional) Tinjau detail permintaan yang menunggu persetujuan Anda dengan memilih nama setiap permintaan, lalu kembali ke tab **Persetujuan**.

1. Pilih kotak centang setiap permintaan perubahan yang ingin Anda setujui.

   -atau-

   Pilih kotak centang setiap permintaan perubahan yang ingin Anda tolak.

1. Di kotak dialog, berikan komentar yang ingin Anda tambahkan untuk persetujuan atau penolakan ini.

1. **Bergantung pada apakah Anda menyetujui atau menolak permintaan perubahan yang dipilih, pilih **Menyetujui** atau Tolak.**

## Meninjau dan menyetujui atau menolak permintaan perubahan (baris perintah)
<a name="change-requests-review-command-line"></a>

Prosedur berikut menjelaskan cara menggunakan AWS Command Line Interface (AWS CLI) (di Linux,macOS, atauWindows Server) untuk meninjau dan menyetujui atau menolak permintaan perubahan.

**Untuk meninjau dan menyetujui atau menolak permintaan perubahan**

1. Instal dan konfigurasikan AWS Command Line Interface (AWS CLI), jika Anda belum melakukannya.

   Untuk selengkapnya, lihat [Menginstal atau memperbarui versi terbaru AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

1. Buat file JSON di mesin lokal Anda yang menentukan parameter untuk panggilan Anda AWS CLI . 

   ```
   {
     "OpsItemFilters": 
     [
       {
         "Key": "OpsItemType",
         "Values": ["/aws/changerequest"],
         "Operator": "Equal"
       }
     ],
     "MaxResults": number
   }
   ```

   Anda dapat memfilter hasil untuk pemberi persetujuan tertentu dengan menentukan Amazon Resource Name (ARN) pemberi persetujuan dalam file JSON. Inilah contohnya.

   ```
   {
     "OpsItemFilters": 
     [
       {
         "Key": "OpsItemType",
         "Values": ["/aws/changerequest"],
         "Operator": "Equal"
       },
       {
         "Key": "ChangeRequestByApproverArn",
         "Values": ["arn:aws:iam::account-id:user/user-name"],
         "Operator": "Equal"
       }
     ],
     "MaxResults": number
   }
   ```

1. Jalankan perintah berikut untuk melihat jumlah maksimum permintaan perubahan yang Anda tentukan di file JSON.

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-ops-items \
   --cli-input-json file://filename.json
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-ops-items ^
   --cli-input-json file://filename.json
   ```

------

1. Jalankan perintah berikut untuk menyetujui atau menolak permintaan perubahan.

------
#### [ Linux & macOS ]

   ```
   aws ssm send-automation-signal \
       --automation-execution-id ID \
       --signal-type Approve_or_Reject \
       --payload Comment="message"
   ```

------
#### [ Windows ]

   ```
   aws ssm send-automation-signal ^
   --automation-execution-id ID ^
       --signal-type Approve_or_Reject ^
       --payload Comment="message"
   ```

------

   Jika topik Amazon SNS telah ditentukan dalam templat perubahan yang Anda pilih untuk permintaan, notifikasi akan dikirim ketika permintaan tersebut ditolak atau disetujui. Jika Anda tidak menerima pemberitahuan untuk permintaan tersebut, Anda dapat kembali Change Manager untuk memeriksa status permintaan Anda. Untuk informasi tentang opsi lain saat menggunakan perintah ini, lihat [https://docs.aws.amazon.com/cli/latest/reference/ssm/send-automation-signal.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/send-automation-signal.html)di AWS Systems Manager bagian *Referensi AWS CLI Perintah*.

# Meninjau detail permintaan, tugas, dan timeline perubahan (konsol)
<a name="reviewing-changes"></a>

**Change Managerperubahan ketersediaan**  
AWS Systems ManagerChange Managertidak akan lagi terbuka untuk pelanggan baru mulai 7 November 2025. Jika Anda ingin menggunakannyaChange Manager, daftar sebelum tanggal tersebut. Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS Systems ManagerChange Manager ketersediaan](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Anda dapat melihat informasi tentang permintaan perubahan, termasuk permintaan yang perubahannya telah diproses, di dasborChange Manager, alat di AWS Systems Manager. Detail ini mencakup tautan ke operasi Otomasi yang menjalankan runbook yang membuat perubahan. ID eksekusi otomatisasi dibuat saat permintaan dibuat, tetapi proses tidak berjalan sampai semua persetujuan diberikan dan tidak ada batasan untuk memblokir perubahan.

**Untuk meninjau detail permintaan, tugas, dan timeline perubahan**

1. Di panel navigasi, pilih **Change Manager**.

1. Pilih tab **Permintaan**.

1. Di bagian **Permintaan perubahan**, cari permintaan perubahan yang ingin Anda tinjau. 

   Anda dapat menggunakan opsi **Buat rentang tanggal** untuk membatasi hasil hingga jangka waktu tertentu.

   Anda dapat memfilter permintaan berdasarkan properti berikut:
   + `Status`
   + `Request ID`
   + `Approver`
   + `Requester`

   Misalnya, untuk melihat detail tentang semua permintaan perubahan yang berhasil diselesaikan dalam 24 jam terakhir, lakukan hal berikut:

   1. Untuk **Buat rentang tanggal**, pilih **1d**.

   1. Di kotak pencarian, pilih **Status, CompletedWithSuccess**. 

   1. Di hasil, pilih nama permintaan perubahan yang berhasil diselesaikan untuk meninjau hasil.

1. Lihat informasi tentang permintaan perubahan pada tab berikut:
   + **Detail permintaan** – Lihat detail dasar tentang permintaan perubahan, termasuk peminta, templat perubahan, dan runbook otomatisasi yang dipilih untuk perubahan. Anda juga dapat mengikuti tautan ke detail operasi Otomasi dan melihat informasi tentang parameter runbook apa pun yang ditentukan dalam permintaan, CloudWatch alarm Amazon yang ditetapkan untuk permintaan perubahan, serta persetujuan serta komentar yang diberikan untuk permintaan tersebut.
   + **Tugas** – Lihat informasi tentang tugas dalam perubahan, termasuk status tugas untuk permintaan perubahan yang diselesaikan, sumber daya yang ditargetkan, langkah-langkah dalam runbook otomatisasi terkait, dan detail ambang batas kesalahan dan konkurensi.
   + **Timeline** – Lihat ringkasan semua peristiwa yang terkait dengan permintaan perubahan, yang dicantumkan menurut tanggal dan waktu. Ringkasan menunjukkan kapan permintaan perubahan dibuat, tindakan oleh pemberi persetujuan yang ditetapkan, catatan kapan permintaan perubahan yang disetujui dijadwalkan untuk dijalankan, detail alur kerja runbook, dan perubahan status untuk keseluruhan proses perubahan dan setiap langkah dalam runbook.
   + **Peristiwa terkait** — Lihat detail yang dapat diaudit tentang permintaan perubahan yang direkam di [AWS CloudTrail Lake](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake.html). Detailnya mencakup tindakan API mana yang dijalankan, parameter permintaan yang disertakan untuk tindakan tersebut, akun pengguna yang menjalankan tindakan, sumber daya yang diperbarui selama proses, dan banyak lagi.

     Saat Anda mengaktifkan pelacakan acara CloudTrail CloudTrail Lake, Lake membuat penyimpanan data acara untuk acara yang terkait dengan permintaan perubahan Anda. Detail acara tersedia untuk akun atau organisasi tempat permintaan perubahan dijalankan. Anda dapat mengaktifkan pelacakan acara CloudTrail Danau dari permintaan perubahan apa pun di akun atau organisasi Anda. Untuk informasi tentang mengaktifkan integrasi CloudTrail Lake dan membuat penyimpanan data acara, lihat[Memantau peristiwa permintaan perubahan](monitoring-change-request-events.md).
**catatan**  
Ada biaya untuk menggunakan **CloudTrail Danau**. Untuk detailnya, lihat [AWS CloudTrail harga](https://aws.amazon.com/cloudtrail/pricing/).

# Melihat jumlah agregat permintaan perubahan (baris perintah)
<a name="change-requests-review-aggregate-command-line"></a>

**Change Managerperubahan ketersediaan**  
AWS Systems ManagerChange Managertidak akan lagi terbuka untuk pelanggan baru mulai 7 November 2025. Jika Anda ingin menggunakannyaChange Manager, daftar sebelum tanggal tersebut. Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS Systems ManagerChange Manager ketersediaan](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Anda dapat melihat jumlah agregat permintaan perubahan diChange Manager, alat di AWS Systems Manager, dengan menggunakan operasi [GetOpsSummary](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetOpsSummary.html)API. Operasi API ini dapat mengembalikan hitungan untuk satu Akun AWS dalam satu Wilayah AWS atau untuk beberapa akun dan beberapa Wilayah.

**catatan**  
Jika Anda ingin melihat jumlah agregat permintaan perubahan untuk beberapa Akun AWS dan beberapa Wilayah AWS, Anda harus menyiapkan dan mengonfigurasi sinkronisasi data sumber daya. Untuk informasi selengkapnya, lihat [Membuat sinkronisasi data sumber daya untuk Inventaris](inventory-create-resource-data-sync.md).

Prosedur berikut menjelaskan cara menggunakan AWS Command Line Interface (AWS CLI) (di Linux,macOS, atauWindows Server) untuk melihat jumlah agregat permintaan perubahan. 

**Untuk melihat jumlah agregat permintaan perubahan**

1. Instal dan konfigurasikan AWS Command Line Interface (AWS CLI), jika Anda belum melakukannya.

   Untuk selengkapnya, lihat [Menginstal atau memperbarui versi terbaru AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

1. Masukkan salah satu perintah berikut. 

   **Akun tunggal dan Wilayah**

   Perintah ini mengembalikan hitungan semua permintaan perubahan Wilayah AWS untuk Akun AWS dan yang AWS CLI sesi Anda dikonfigurasi.

------
#### [ Linux & macOS ]

   ```
   aws ssm get-ops-summary \
   --filters Key=AWS:OpsItem.OpsItemType,Values="/aws/changerequests",Type=Equal \
   --aggregators AggregatorType=count,AttributeName=Status,TypeName=AWS:OpsItem
   ```

------
#### [ Windows ]

   ```
   aws ssm get-ops-summary ^
   --filters Key=AWS:OpsItem.OpsItemType,Values="/aws/changerequests",Type=Equal ^
   --aggregators AggregatorType=count,AttributeName=Status,TypeName=AWS:OpsItem
   ```

------

   Panggilan mengembalikan informasi seperti berikut.

   ```
   {
       "Entities": [
           {
               "Data": {
                   "AWS:OpsItem": {
                       "Content": [
                           {
                               "Count": "38",
                               "Status": "Open"
                           }
                       ]
                   }
               }
           }
       ]
   }
   ```

   **Beberapa akun and/or Wilayah**

   Perintah ini mengembalikan hitungan semua permintaan perubahan untuk Akun AWS dan Wilayah AWS ditentukan dalam sinkronisasi data sumber daya.

------
#### [ Linux & macOS ]

   ```
   aws ssm get-ops-summary \
       --sync-name resource_data_sync_name \
       --filters Key=AWS:OpsItem.OpsItemType,Values="/aws/changerequests",Type=Equal \
       --aggregators AggregatorType=count,AttributeName=Status,TypeName=AWS:OpsItem
   ```

------
#### [ Windows ]

   ```
   aws ssm get-ops-summary ^
       --sync-name resource_data_sync_name ^
       --filters Key=AWS:OpsItem.OpsItemType,Values="/aws/changerequests",Type=Equal ^
       --aggregators AggregatorType=count,AttributeName=Status,TypeName=AWS:OpsItem
   ```

------

   Panggilan mengembalikan informasi seperti berikut.

   ```
   {
       "Entities": [
           {
               "Data": {
                   "AWS:OpsItem": {
                       "Content": [
                           {
                               "Count": "43",
                               "Status": "Open"
                           },
                           {
                               "Count": "2",
                               "Status": "Resolved"
                           }
                       ]
                   }
               }
           }
       ]
   }
   ```

   **Beberapa akun dan Wilayah tertentu**

   Perintah ini mengembalikan jumlah semua permintaan perubahan untuk Akun AWS yang ditentukan dalam sinkronisasi data sumber daya. Namun, ini hanya mengembalikan data dari Wilayah yang ditentukan dalam perintah.

------
#### [ Linux & macOS ]

   ```
   aws ssm get-ops-summary \
       --sync-name resource_data_sync_name \
       --filters Key=AWS:OpsItem.SourceRegion,Values='Region',Type=Equal Key=AWS:OpsItem.OpsItemType,Values="/aws/changerequests",Type=Equal \
       --aggregators AggregatorType=count,AttributeName=Status,TypeName=AWS:OpsItem
   ```

------
#### [ Windows ]

   ```
   aws ssm get-ops-summary ^
       --sync-name resource_data_sync_name ^
       --filters Key=AWS:OpsItem.SourceRegion,Values='Region',Type=Equal Key=AWS:OpsItem.OpsItemType,Values="/aws/changerequests",Type=Equal ^
       --aggregators AggregatorType=count,AttributeName=Status,TypeName=AWS:OpsItem
   ```

------

   **Beberapa akun dan Wilayah dengan output dikelompokkan berdasarkan Wilayah**

   Perintah ini mengembalikan hitungan semua permintaan perubahan untuk Akun AWS dan Wilayah AWS ditentukan dalam sinkronisasi data sumber daya. Output menampilkan informasi jumlah per Wilayah.

------
#### [ Linux & macOS ]

   ```
   aws ssm get-ops-summary \
       --sync-name resource_data_sync_name \
       --filters Key=AWS:OpsItem.OpsItemType,Values="/aws/changerequests",Type=Equal \
       --aggregators '[{"AggregatorType":"count","TypeName":"AWS:OpsItem","AttributeName":"Status","Aggregators":[{"AggregatorType":"count","TypeName":"AWS:OpsItem","AttributeName":"SourceRegion"}]}]'
   ```

------
#### [ Windows ]

   ```
   aws ssm get-ops-summary ^
       --sync-name resource_data_sync_name ^
       --filters Key=AWS:OpsItem.OpsItemType,Values="/aws/changerequests",Type=Equal ^
       --aggregators '[{"AggregatorType":"count","TypeName":"AWS:OpsItem","AttributeName":"Status","Aggregators":[{"AggregatorType":"count","TypeName":"AWS:OpsItem","AttributeName":"SourceRegion"}]}]'
   ```

------

   Panggilan mengembalikan informasi seperti berikut.

   ```
   {
           "Entities": [
               {
                   "Data": {
                       "AWS:OpsItem": {
                           "Content": [
                               {
                                   "Count": "38",
                                   "SourceRegion": "us-east-1",
                                   "Status": "Open"
                               },
                               {
                                   "Count": "4",
                                   "SourceRegion": "us-east-2",
                                   "Status": "Open"
                               },
                               {
                                   "Count": "1",
                                   "SourceRegion": "us-west-1",
                                   "Status": "Open"
                               },
                               {
                                   "Count": "2",
                                   "SourceRegion": "us-east-2",
                                   "Status": "Resolved"
                               }
                           ]
                       }
                   }
               }
           ]
       }
   ```

   **Beberapa akun dan Wilayah dengan output dikelompokkan berdasarkan akun dan Wilayah**

   Perintah ini mengembalikan hitungan semua permintaan perubahan untuk Akun AWS dan Wilayah AWS ditentukan dalam sinkronisasi data sumber daya. Output mengelompokkan informasi jumlah menurut akun dan Wilayah.

------
#### [ Linux & macOS ]

   ```
   aws ssm get-ops-summary \
       --sync-name resource_data_sync_name \
       --filters Key=AWS:OpsItem.OpsItemType,Values="/aws/changerequests",Type=Equal \
       --aggregators '[{"AggregatorType":"count","TypeName":"AWS:OpsItem","AttributeName":"Status","Aggregators":[{"AggregatorType":"count","TypeName":"AWS:OpsItem","AttributeName":"SourceAccountId","Aggregators":[{"AggregatorType":"count","TypeName":"AWS:OpsItem","AttributeName":"SourceRegion"}]}]}]'
   ```

------
#### [ Windows ]

   ```
   aws ssm get-ops-summary ^
       --sync-name resource_data_sync_name ^
       --filters Key=AWS:OpsItem.OpsItemType,Values="/aws/changerequests",Type=Equal ^
       --aggregators '[{"AggregatorType":"count","TypeName":"AWS:OpsItem","AttributeName":"Status","Aggregators":[{"AggregatorType":"count","TypeName":"AWS:OpsItem","AttributeName":"SourceAccountId","Aggregators":[{"AggregatorType":"count","TypeName":"AWS:OpsItem","AttributeName":"SourceRegion"}]}]}]'
   ```

------

   Panggilan mengembalikan informasi seperti berikut.

   ```
   {
       "Entities": [
           {
               "Data": {
                   "AWS:OpsItem": {
                       "Content": [
                           {
                               "Count": "38",
                               "SourceAccountId": "123456789012",
                               "SourceRegion": "us-east-1",
                               "Status": "Open"
                           },
                           {
                               "Count": "4",
                               "SourceAccountId": "111122223333",
                               "SourceRegion": "us-east-2",
                               "Status": "Open"
                           },
                           {
                               "Count": "1",
                               "SourceAccountId": "111122223333",
                               "SourceRegion": "us-west-1",
                               "Status": "Open"
                           },
                           {
                               "Count": "2",
                               "SourceAccountId": "444455556666",
                               "SourceRegion": "us-east-2",
                               "Status": "Resolved"
                           },
                           {
                               "Count": "1",
                               "SourceAccountId": "222222222222",
                               "SourceRegion": "us-east-1",
                               "Status": "Open"
                           }
                       ]
                   }
               }
           }
       ]
   }
   ```

# Aktivitas audit dan pencatatan Change Manager
<a name="change-manager-auditing"></a>

**Change Managerperubahan ketersediaan**  
AWS Systems ManagerChange Managertidak akan lagi terbuka untuk pelanggan baru mulai 7 November 2025. Jika Anda ingin menggunakannyaChange Manager, daftar sebelum tanggal tersebut. Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS Systems ManagerChange Manager ketersediaan](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Anda dapat mengaudit aktivitas diChange Manager, alat di AWS Systems Manager, dengan menggunakan Amazon CloudWatch dan AWS CloudTrail alarm.

Untuk informasi selengkapnya tentang opsi pengauditan dan pencatatan untuk Systems Manager, lihat [Penebangan dan pemantauan di AWS Systems Manager](monitoring.md).

## Change ManagerAktivitas audit menggunakan CloudWatch alarm
<a name="change-manager-logging-auditing-alarms"></a>

Anda dapat mengonfigurasi dan menetapkan CloudWatch alarm ke templat perubahan. Jika kondisi yang ditentukan dalam alarm terpenuhi, tindakan yang ditentukan untuk alarm akan diambil. Dalam konfigurasi alarm, Anda dapat menentukan topik Amazon Simple Notification Service (Amazon SNS) untuk memberi tahu saat kondisi alarm terpenuhi. 

Untuk informasi tentang membuat Change Manager template, lihat[Bekerja dengan templat perubahan](change-templates.md).

Untuk informasi tentang membuat CloudWatch alarm, lihat [Menggunakan CloudWatch Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html) di * CloudWatch Panduan Pengguna Amazon*.

## Change ManagerAktivitas audit menggunakan CloudTrail
<a name="change-manager-logging-auditing-cloudtrail"></a>

CloudTrail menangkap panggilan API yang dilakukan di konsol Systems Manager, AWS Command Line Interface (AWS CLI), dan SDK Systems Manager. Anda dapat melihat informasi di CloudTrail konsol atau di bucket Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3), tempat penyimpanan informasi tersebut. Satu ember digunakan untuk semua CloudTrail log untuk akun Anda.

Log Change Manager tindakan menunjukkan pembuatan dokumen templat perubahan, perubahan templat dan perubahan persetujuan dan penolakan permintaan, aktivitas yang dihasilkan oleh runbook Otomasi, dan banyak lagi. Untuk informasi selengkapnya tentang melihat dan menggunakan CloudTrail log aktivitas Systems Manager, lihat[Pencatatan panggilan AWS Systems Manager API dengan AWS CloudTrail](monitoring-cloudtrail-logs.md).

# Pemecahan Masalah Change Manager
<a name="change-manager-troubleshooting"></a>

**Change Managerperubahan ketersediaan**  
AWS Systems ManagerChange Managertidak akan lagi terbuka untuk pelanggan baru mulai 7 November 2025. Jika Anda ingin menggunakannyaChange Manager, daftar sebelum tanggal tersebut. Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS Systems ManagerChange Manager ketersediaan](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Gunakan informasi berikut untuk membantu Anda memecahkan masalah denganChange Manager, alat di. AWS Systems Manager

**Topics**
+ [Kesalahan “Grup *\$1GUID\$1* tidak ditemukan” selama persetujuan permintaan perubahan saat menggunakan Active Directory (grup](#change-manager-troubleshooting-sso)

## Kesalahan “Grup *\$1GUID\$1* tidak ditemukan” selama persetujuan permintaan perubahan saat menggunakan Active Directory (grup
<a name="change-manager-troubleshooting-sso"></a>

**Masalah**: Ketika AWS IAM Identity Center (Pusat Identitas IAM) digunakan untuk manajemen identitas pengguna, anggota grup Direktori Aktif yang diberikan izin persetujuan Change Manager menerima kesalahan “tidak diotorisasi” atau “grup tidak ditemukan”.
+ **Solusi**: Saat Anda memilih grup Direktori Aktif di Pusat Identitas IAM untuk akses ke Konsol Manajemen AWS, sistem menjadwalkan sinkronisasi berkala yang menyalin informasi dari grup Direktori Aktif tersebut ke Pusat Identitas IAM. Proses ini harus selesai sebelum pengguna yang diotorisasi melalui keanggotaan grup Direktori Aktif berhasil menyetujui permintaan. Untuk informasi selengkapnya, lihat [Connect ke direktori Microsoft AD Anda](https://docs.aws.amazon.com/singlesignon/latest/userguide/manage-your-identity-source-ad.html) di *Panduan AWS IAM Identity Center Pengguna*.

# AWS Systems Manager Dokumen
<a name="documents"></a>

 AWS Systems Manager Dokumen (dokumen SSM) mendefinisikan tindakan yang dilakukan Systems Manager pada instans terkelola Anda. Systems Manager mencakup lebih dari 100 dokumen pra-konfigurasi yang dapat Anda gunakan dengan menentukan parameter di runtime. Anda dapat menemukan dokumen yang telah dikonfigurasi sebelumnya di konsol Systems Manager Documents dengan memilih tab **Dimiliki oleh Amazon**, atau dengan menentukan Amazon untuk `Owner` filter saat memanggil operasi `ListDocuments` API. Dokumen menggunakan JavaScript Object Notation (JSON) atau YAMG, dan dokumen tersebut menyertakan langkah-langkah dan parameter yang Anda tentukan. 

Untuk keamanan yang ditingkatkan, per 14 Juli 2025, dokumen SSM mendukung interpolasi variabel lingkungan saat memproses parameter. Fitur ini, tersedia dalam skema versi 2.2 dan dengan SSM Agent versi 3.3.2746.0 atau lebih tinggi, membantu mencegah serangan injeksi perintah.

Untuk memulai dengan dokumen SSM, buka [konsol Systems Manager](https://console.aws.amazon.com/systems-manager/documents). Di panel navigasi, pilih **Dokumen**.

**penting**  
Di Systems Manager, dokumen SSM *milik Amazon* adalah dokumen yang dibuat dan dikelola oleh Amazon Web Services itu sendiri. Dokumen *milik Amazon* menyertakan awalan seperti `AWS-*` pada nama dokumen. Pemilik dokumen dianggap Amazon, bukan akun pengguna tertentu di dalamnya AWS. Dokumen-dokumen ini tersedia untuk umum untuk digunakan semua orang.

## Bagaimana alat Dokumen dapat bermanfaat bagi organisasi saya?
<a name="ssm-docs-benefits"></a>

Dokumen, alat di AWS Systems Manager, menawarkan manfaat ini:
+ **Kategori dokumen**

  Untuk membantu Anda menemukan dokumen yang Anda butuhkan, pilih kategori tergantung pada jenis dokumen yang Anda cari. Untuk memperluas pencarian Anda, Anda dapat memilih beberapa kategori dari jenis dokumen yang sama. Memilih kategori dari jenis dokumen yang berbeda tidak didukung. Kategori hanya didukung untuk dokumen yang dimiliki oleh Amazon.
+  **Versi dokumen** 

  Anda dapat membuat dan menyimpan berbagai versi dokumen. Anda kemudian dapat menentukan versi default untuk setiap dokumen. Versi default dokumen dapat diperbarui ke versi yang lebih baru atau dikembalikan ke versi lama dokumen. Ketika Anda mengubah konten dokumen, Systems Manager secara otomatis menambahkan versi dokumen. Anda dapat mengambil atau menggunakan versi dokumen apa pun dengan menentukan versi dokumen di konsol, perintah AWS Command Line Interface (AWS CLI), atau panggilan API.
+  **Sesuaikan dokumen untuk kebutuhan Anda** 

  Jika Anda ingin menyesuaikan langkah dan tindakan dalam dokumen, Anda dapat membuat milik Anda sendiri. Sistem menyimpan dokumen dengan Anda Akun AWS di tempat Wilayah AWS Anda membuatnya. Untuk informasi lebih lanjut tentang cara membuat dokumen SSM, lihat [Membuat konten dokumen SSM](documents-creating-content.md).
+  **Menandai dokumen** 

  Anda dapat menandai dokumen untuk membantu mengidentifikasi satu atau beberapa dokumen dengan cepat berdasarkan tag yang telah Anda tetapkan. Misalnya, Anda dapat menandai dokumen untuk lingkungan, departemen, pengguna, grup, atau periode tertentu. Anda juga dapat membatasi akses ke dokumen dengan membuat kebijakan AWS Identity and Access Management (IAM) yang menentukan tag yang dapat diakses pengguna atau grup.
+  **Bagikan dokumen** 

  Anda dapat membuat dokumen publik atau membagikannya dengan Akun AWS yang sama Wilayah AWS. Berbagi dokumen antar akun dapat berguna jika, misalnya, Anda ingin semua instans Amazon Elastic Compute Cloud (Amazon EC2) yang Anda berikan kepada pelanggan atau karyawan memiliki konfigurasi yang sama. Selain menjaga aplikasi atau tambalan pada instans tetap mutakhir, Anda mungkin ingin membatasi instance pelanggan dari aktivitas tertentu. Atau Anda mungkin ingin memastikan bahwa instans yang digunakan oleh akun karyawan di seluruh organisasi Anda diberikan akses ke sumber daya internal tertentu. Untuk informasi selengkapnya, lihat [Membagikan dokumen SSM](documents-ssm-sharing.md).

## Siapa yang harus menggunakan dokumen?
<a name="documents-who"></a>
+ Setiap AWS pelanggan yang ingin menggunakan alat Systems Manager untuk meningkatkan efisiensi operasional mereka dalam skala besar, mengurangi kesalahan yang terkait dengan intervensi manual, dan mengurangi waktu untuk menyelesaikan masalah umum.
+ Pakar infrastruktur yang ingin mengotomatiskan tugas penerapan dan konfigurasi.
+ Administrator yang ingin menyelesaikan masalah umum dengan andal, meningkatkan efisiensi pemecahan masalah, dan mengurangi operasi berulang.
+ Pengguna yang ingin mengotomatiskan tugas yang biasanya mereka lakukan secara manual.

## Apa jenis dokumen SSM?
<a name="what-are-document-types"></a>

Tabel berikut menjelaskan berbagai jenis dokumen SSM dan penggunaannya.


****  

| Tipe | Menggunakan dengan | Detail | 
| --- | --- | --- | 
|  ApplicationConfiguration ApplicationConfigurationSchema  |   [AWS AppConfig](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html)   |  AWS AppConfig, alat di AWS Systems Manager, memungkinkan Anda untuk membuat, mengelola, dan dengan cepat menyebarkan konfigurasi aplikasi. Anda dapat menyimpan data konfigurasi dalam dokumen SSM dengan membuat dokumen yang menggunakan jenis `ApplicationConfiguration` dokumen. Untuk informasi selengkapnya, lihat [Konfigurasi bentuk bebas](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-configuration-and-profile.html#free-form-configurations) di *AWS AppConfig Panduan Pengguna*. Jika Anda membuat konfigurasi dalam dokumen SSM, maka Anda harus menentukan Skema JSON yang sesuai. Skema menggunakan jenis `ApplicationConfigurationSchema` dokumen dan, seperti seperangkat aturan, mendefinisikan properti yang diizinkan untuk setiap pengaturan konfigurasi aplikasi. Untuk informasi selengkapnya, lihat [Tentang validator](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-configuration-and-profile-validators.html) di *AWS AppConfig Panduan Pengguna*.  | 
|  Runbook otomatisasi  |   [Otomatisasi](systems-manager-automation.md)   [State Manager](systems-manager-state.md)   [Maintenance Windows](maintenance-windows.md)   |  Gunakan runbook Otomasi saat melakukan tugas pemeliharaan dan penerapan umum seperti membuat atau memperbarui Amazon Machine Image ()AMI. State Managermenggunakan runbook Otomasi untuk menerapkan konfigurasi. Tindakan ini dapat dijalankan pada satu atau beberapa target kapan saja selama siklus hidup sebuah instance. Maintenance Windowsmenggunakan runbook Otomasi untuk melakukan tugas pemeliharaan dan penerapan umum berdasarkan jadwal yang ditentukan. Semua runbook otomatisasi yang didukung untuk sistem operasi berbasis Linux juga didukung oleh instans EC2 untuk macOS.  | 
|  Dokumen Perubahan Kalender  |   [Change Calendar](systems-manager-change-calendar.md)   |  Change Calendar, alat di AWS Systems Manager, menggunakan jenis `ChangeCalendar` dokumen. Change CalendarDokumen menyimpan entri kalender dan acara terkait yang dapat memungkinkan atau mencegah tindakan Otomasi mengubah lingkungan Anda. DiChange Calendar, dokumen menyimpan data [iCalendar](https://icalendar.org/) 2.0 dalam format teks biasa. Change Calendartidak didukung pada instans EC2 untuk. macOS  | 
|  AWS CloudFormation Template  |   [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)   |  AWS CloudFormation template menjelaskan sumber daya yang ingin Anda sediakan di CloudFormation tumpukan Anda. Dengan menyimpan CloudFormation template sebagai dokumen Systems Manager, Anda bisa mendapatkan keuntungan dari fitur dokumen Systems Manager. Ini termasuk membuat dan membandingkan beberapa versi template Anda, dan berbagi template Anda dengan akun lain di Wilayah AWS. Anda dapat membuat dan mengedit CloudFormation template dan tumpukan dengan menggunakanApplication Manager, alat di Systems Manager. Untuk informasi selengkapnya, lihat [Bekerja dengan CloudFormation template dan tumpukan di Application Manager](application-manager-working-stacks.md).  | 
|  Dokumen perintah  |   [Run Command](run-command.md)   [State Manager](systems-manager-state.md)   [Maintenance Windows](maintenance-windows.md)   |  Run Command, alat di AWS Systems Manager, menggunakan dokumen Command untuk menjalankan perintah. State Manager, alat di AWS Systems Manager, menggunakan dokumen perintah untuk menerapkan konfigurasi. Tindakan ini dapat dijalankan pada satu atau beberapa target kapan saja selama siklus hidup sebuah instance. Maintenance Windows, alat di AWS Systems Manager, menggunakan dokumen Command untuk menerapkan konfigurasi berdasarkan jadwal yang ditentukan. Sebagian besar dokumen Perintah didukung oleh semua Linux dan sistem operasi Windows Server yang didukung oleh Systems Manager. Dokumen-dokumen Perintah berikut didukung pada instans EC2 untuk macOS: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/documents.html)  | 
|  AWS Config templat paket kesesuaian  |   [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html)   |  AWS Config Templat paket kesesuaian adalah dokumen berformat YAMAL yang digunakan untuk membuat paket kesesuaian yang berisi daftar aturan terkelola atau kustom serta tindakan remediasi. AWS Config  Untuk informasi selengkapnya, lihat [Paket Kesesuaian](https://docs.aws.amazon.com/config/latest/developerguide/conformance-packs.html).  | 
|  Dokumen paket  |   [Distributor](distributor.md)   |  DalamDistributor, alat di AWS Systems Manager, paket diwakili oleh dokumen SSM. Dokumen paket termasuk lampiran file arsip ZIP yang berisi perangkat lunak atau aset untuk diinstal pada instans terkelola. Membuat paket dalam Distributor membuat dokumen paket. Distributortidak didukung di Oracle Linux dan instance macOS terkelola.  | 
|  Dokumen kebijakan  |   [State Manager](systems-manager-state.md)   |  Inventaris, alat dalam AWS Systems Manager, menggunakan dokumen `AWS-GatherSoftwareInventory` Kebijakan dengan State Manager asosiasi untuk mengumpulkan data inventaris dari instans terkelola. Ketika membuat Anda dokumen SSM sendiri, Runbook otomatisasi dan dokumen perintah adalah metode yang lebih disukai untuk menegakkan kebijakan pada instans terkelola. Inventaris Systems Manager dan Dokumen kebijakan `AWS-GatherSoftwareInventory` yang didukung oleh semua sistem operasi yang didukung oleh Systems Manager.  | 
|  Template analisis pasca insiden  |   [Analisis pasca-insiden Manajer Insiden](https://docs.aws.amazon.com/incident-manager/latest/userguide/analysis.html)   |  Manajer Insiden menggunakan templat analisis pasca-insiden untuk membuat analisis berdasarkan praktik terbaik manajemen AWS operasi. Gunakan templat untuk membuat analisis yang dapat digunakan tim Anda untuk mengidentifikasi peningkatan respons insiden Anda.   | 
|  Dokumen sesi  |   [Session Manager](session-manager.md)   |  Session Manager, alat dalam AWS Systems Manager, menggunakan dokumen Sesi untuk menentukan jenis sesi yang akan dimulai, seperti sesi penerusan port, sesi untuk menjalankan perintah interaktif, atau sesi untuk membuat terowongan SSH. Dokumen sesi didukung di semua Linux dan sistem operasi Windows Server yang didukung oleh Systems Manager. Dokumen-dokumen Perintah berikut didukung pada instans EC2 untuk macOS: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/documents.html)  | 

**Kuota dokumen SSM**  
Untuk informasi tentang kuota dokumen SSM, lihat [kuota layanan Systems Manager](https://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) di bagian. *Referensi Umum Amazon Web Services*

**Topics**
+ [Bagaimana alat Dokumen dapat bermanfaat bagi organisasi saya?](#ssm-docs-benefits)
+ [Siapa yang harus menggunakan dokumen?](#documents-who)
+ [Apa jenis dokumen SSM?](#what-are-document-types)
+ [Komponen dokumen](documents-components.md)
+ [Membuat konten dokumen SSM](documents-creating-content.md)
+ [Bekerja dengan dokumen](documents-using.md)
+ [Memecahkan masalah penanganan parameter](parameter-troubleshooting.md)

# Komponen dokumen
<a name="documents-components"></a>

Bagian ini mencakup informasi tentang komponen yang membentuk dokumen SSM.

**Topics**
+ [Skema, fitur, dan contoh](documents-schemas-features.md)
+ [Elemen dan parameter data](documents-syntax-data-elements-parameters.md)
+ [Referensi plugin dokumen perintah](documents-command-ssm-plugin-reference.md)

# Skema, fitur, dan contoh
<a name="documents-schemas-features"></a>

AWS Systems Manager (SSM) dokumen menggunakan versi skema berikut.
+ Jenis dokumen `Command` dapat menggunakan skema versi 1.2, 2.0, dan 2.2. Jika Anda menggunakan skema dokumen 1.2, kami sarankan Anda membuat dokumen yang menggunakan skema versi 2.2.
+ Jenis dokumen `Policy` harus menggunakan skema versi 2.0 atau yang lebih baru.
+ Jenis dokumen `Automation` harus menggunakan skema versi 0.3.
+ Dokumen jenis `Session` harus menggunakan skema versi 1.0.
+ Anda dapat membuat dokumen di JSON atau YAML.

Untuk informasi selengkapnya tentang skema `Session` dokumen, lihat[Skema dokumen sesi](session-manager-schema.md).

Dengan menggunakan versi skema terbaru untuk dokumen `Command` dan `Policy`, Anda dapat memanfaatkan fitur berikut.


**Fitur dokumen skema versi 2.2**  

| Fitur | Detail | 
| --- | --- | 
|  Mengedit dokumen  |  Dokumen sekarang dapat diperbarui. Dengan versi 1.2, setiap update dokumen yang diperlukan yang Anda simpan dengan nama yang berbeda.  | 
|  Versioning otomatis  |  Setiap pembaruan ke dokumen menciptakan versi baru. Ini bukan versi skema, tetapi versi dokumen.  | 
|  Versi default  |  Jika Anda memiliki beberapa versi dokumen, Anda dapat menentukan yang mana versi dokumen default.  | 
|  Pengurutan  |  Plugin atau *Langkah* dalam dokumen yang dijalankan sesuai urutan yang Anda tentukan.  | 
|  Dukungan lintas platform  |  Dukungan lintas platform mengizinkan Anda untuk menentukan sistem operasi yang berbeda untuk plugin yang berbeda dalam dokumen SSM yang sama. Dukungan lintas platform menggunakan parameter `precondition` dalam langkahnya.   | 
| Interpolasi parameter | Interpolasi berarti menyisipkan atau mengganti nilai variabel ke dalam string. Anggap saja sebagai mengisi ruang kosong dengan nilai aktual sebelum string digunakan. Dalam konteks dokumen SSM, interpolasi parameter memungkinkan parameter string diinterpolasi ke dalam variabel lingkungan sebelum eksekusi perintah, memberikan keamanan yang lebih baik terhadap injeksi perintah. Ketika diatur ke`ENV_VAR`, agen menciptakan variabel lingkungan bernama `SSM_parameter-name` yang berisi nilai parameter. | 

**catatan**  
Anda harus AWS Systems Manager SSM Agent terus memperbarui instans dengan versi terbaru untuk menggunakan fitur Systems Manager dan fitur dokumen SSM yang baru. Untuk informasi selengkapnya, lihat [Memperbarui SSM Agent penggunaan Run Command](run-command-tutorial-update-software.md#rc-console-agentexample).

Tabel berikut mencantumkan perbedaan antara versi utama skema.


****  

| Versi 1.2 | Versi 2.2 (versi terbaru) | Detail | 
| --- | --- | --- | 
|  runtimeConfig  |  mainSteps  |  Di versi 2.2, `mainSteps` menggantikan bagian `runtimeConfig`. Bagian `mainSteps` memungkinkan Systems Manager untuk menjalankan langkah-langkah secara berurutan.  | 
|  properti  |  masukan  |  Di versi 2.2, bagian `inputs` menggantikan bagian `properties`. Bagian `inputs` menerima langkah-langkah parameter.  | 
|  perintah  |  runCommand  |  Di versi 2.2,bagian `inputs` mengambil parameter `runCommand` bukan parameter `commands`.  | 
|  id  |  tindakan  |  Versi 2.2, `Action` menggantikan `ID`. Ini hanya perubahan nama.  | 
|  tidak berlaku  |  nama  |  Versi 2.2, `name` adalah nama yang ditetapkan oleh pengguna untuk langkah.  | 

**Menggunakan parameter prasyarat**  
Dengan skema versi 2.2 atau yang lebih baru, Anda dapat menggunakan parameter `precondition` untuk menentukan target sistem operasi untuk setiap plugin atau untuk memvalidasi parameter input yang telah Anda tetapkan dalam dokumen SSM Anda. Parameter `precondition` mendukung referensi parameter input dokumen SSM Anda, dan `platformType` menggunakan nilai dari `Linux`, `MacOS`, dan `Windows`. Hanya `StringEquals` operator yang didukung.

Untuk dokumen yang menggunakan skema versi 2.2 atau yang terbaru, jika `precondition` tidak ditentukan, setiap plugin yang dijalankan atau dilewati berdasarkan kompatibilitas plugin dengan sistem operasi. Kompatibilitas plugin dengan sistem operasi dievaluasi sebelum `precondition`. Untuk dokumen yang menggunakan skema 2.0 atau sebelumnya, plugin yang tidak kompatibel akan membuang kesalahan.

Sebagai contoh, dalam dokumen skema versi 2.2, jika `precondition` tidak dispesifikasikan dan plugin `aws:runShellScript` yang terdaftar, maka langkah yang berjalan pada instans Linux, tetapi melewati sistem instans Windows Server karena `aws:runShellScript` tidak kompatibel dengan instans Windows Server. Namun, untuk dokumen skema versi 2.0, jika Anda menentukan plugin `aws:runShellScript`, dan kemudian menjalankan dokumen pada instans Windows Server, eksekusi akan gagal. Anda dapat melihat contoh parameter prasyarat dalam dokumen SSM nanti di bagian ini.

## Skema versi 2.2
<a name="documents-schema-twox"></a>

**Elemen tingkat atas**  
Contoh berikut menunjukkan elemen-elemen tingkat atas dari dokumen SSM menggunakan skema versi 2.2.

------
#### [ YAML ]

```
---
schemaVersion: "2.2"
description: A description of the document.
parameters:
  parameter 1:
    property 1: "value"
    property 2: "value"
  parameter 2:
    property 1: "value"
    property 2: "value"
mainSteps:
  - action: Plugin name
    name: A name for the step.
    inputs:
      input 1: "value"
      input 2: "value"
      input 3: "{{ parameter 1 }}"
```

------
#### [ JSON ]

```
{
   "schemaVersion": "2.2",
   "description": "A description of the document.",
   "parameters": {
       "parameter 1": {
           "property 1": "value",
           "property 2": "value"
        },
        "parameter 2":{
           "property 1": "value",
           "property 2": "value"
        } 
    },
   "mainSteps": [
      {
         "action": "Plugin name",
         "name": "A name for the step.",
         "inputs": {
            "input 1": "value",
            "input 2": "value",
            "input 3": "{{ parameter 1 }}"
         }
      }
   ]
}
```

------

**Contoh skema versi 2.2**  
Contoh berikut menggunakan `aws:runPowerShellScript` plugin untuk menjalankan PowerShell perintah pada instance target.

------
#### [ YAML ]

```
---
schemaVersion: "2.2"
description: "Example document"
parameters:
  Message:
    type: "String"
    description: "Example parameter"
    default: "Hello World"
    allowedValues: 
    - "Hello World"
mainSteps:
  - action: "aws:runPowerShellScript"
    name: "example"
    inputs:
      timeoutSeconds: '60'
      runCommand:
      - "Write-Output {{Message}}"
```

------
#### [ JSON ]

```
{
   "schemaVersion": "2.2",
   "description": "Example document",
   "parameters": {
      "Message": {
         "type": "String",
         "description": "Example parameter",
         "default": "Hello World",
         "allowedValues": ["Hello World"]
      }
   },
   "mainSteps": [
      {
         "action": "aws:runPowerShellScript",
         "name": "example",
         "inputs": {
            "timeoutSeconds": "60",
            "runCommand": [
               "Write-Output {{Message}}"
            ]
         }
      }
   ]
}
```

------

**Skema versi 2.2 contoh parameter prasyarat**  
Skema versi 2.2 menyediakan dukungan lintas-platform. Ini berarti bahwa dalam satu dokumen SSM Anda dapat menentukan sistem operasi yang berbeda untuk plugin yang berbeda. Dukungan lintas platform dalam setiap langkah menggunakan parameter `precondition`, seperti yang ditunjukkan dalam contoh berikut. Anda juga dapat menggunakan parameter `precondition` untuk memvalidasi parameter input yang telah ditetapkan dalam dokumen SSM Anda. Anda dapat melihat ini di kedua contoh berikut.

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: cross-platform sample
mainSteps:
- action: aws:runPowerShellScript
  name: PatchWindows
  precondition:
    StringEquals:
    - platformType
    - Windows
  inputs:
    runCommand:
    - cmds
- action: aws:runShellScript
  name: PatchLinux
  precondition:
    StringEquals:
    - platformType
    - Linux
  inputs:
    runCommand:
    - cmds
```

------
#### [ JSON ]

```
{
   "schemaVersion": "2.2",
   "description": "cross-platform sample",
   "mainSteps": [
      {
         "action": "aws:runPowerShellScript",
         "name": "PatchWindows",
         "precondition": {
            "StringEquals": [
               "platformType",
               "Windows"
            ]
         },
         "inputs": {
            "runCommand": [
               "cmds"
            ]
         }
      },
      {
         "action": "aws:runShellScript",
         "name": "PatchLinux",
         "precondition": {
            "StringEquals": [
               "platformType",
               "Linux"
            ]
         },
         "inputs": {
            "runCommand": [
               "cmds"
            ]
         }
      }
   ]
}
```

------

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
parameters:
  action:
    type: String
    allowedValues:
    - Install
    - Uninstall
  confirmed:
    type: String
    allowedValues:
    - True
    - False
mainSteps:
- action: aws:runShellScript
  name: InstallAwsCLI
  precondition:
    StringEquals:
    - "{{ action }}"
    - "Install"
  inputs:
    runCommand:
    - sudo apt install aws-cli
- action: aws:runShellScript
  name: UninstallAwsCLI
  precondition:
    StringEquals:
    - "{{ action }} {{ confirmed }}"
    - "Uninstall True"
  inputs:
    runCommand:
    - sudo apt remove aws-cli
```

------
#### [ JSON ]

```
{
   "schemaVersion": "2.2",
   "parameters": {
      "action": {
         "type": "String",
         "allowedValues": [
            "Install",
            "Uninstall"
         ]
      },
      "confirmed": {
         "type": "String",
         "allowedValues": [
            true,
            false
         ]
      }
   },
   "mainSteps": [
      {
         "action": "aws:runShellScript",
         "name": "InstallAwsCLI",
         "precondition": {
            "StringEquals": [
               "{{ action }}",
               "Install"
            ]
         },
         "inputs": {
            "runCommand": [
               "sudo apt install aws-cli"
            ]
         }
      },
      {
         "action": "aws:runShellScript",
         "name": "UninstallAwsCLI",
         "precondition": {
            "StringEquals": [
               "{{ action }} {{ confirmed }}",
               "Uninstall True"
            ]
         },
         "inputs": {
            "runCommand": [
               "sudo apt remove aws-cli"
            ]
         }
      }
   ]
}
```

------

**Contoh interpolasi skema versi 2.2 dengan SSM Agent versi sebelum 3.3.2746.0**  
Pada SSM Agent versi sebelum 3.3.2746.0, agen mengabaikan `interpolationType` parameter dan sebagai gantinya melakukan substitusi string mentah. Jika Anda mereferensikan `SSM_parameter-name` secara eksplisit, Anda harus mengatur ini secara eksplisit. Dalam contoh berikut untuk Linux, variabel `SSM_Message` lingkungan direferensikan secara eksplisit.

```
{
    "schemaVersion": "2.2",
    "description": "An example document",
    "parameters": {
        "Message": {
            "type": "String",
            "description": "Message to be printed",
            "default": "Hello",
            "interpolationType" : "ENV_VAR",
	     "allowedPattern: "^[^"]*$"

        }
    },
    "mainSteps": [{
        "action": "aws:runShellScript",
        "name": "printMessage",
        "inputs": {
            "runCommand": [
              "if [ -z "${SSM_Message+x}" ]; then",
              "    export SSM_Message=\"{{Message}}\"",
              "fi",
              "",
              "echo $SSM_Message"
            ]
        }
    }
}
```

**catatan**  
`allowedPattern`tidak diperlukan secara teknis jika dokumen SSM tidak menggunakan kawat gigi ganda: `{{ }}`

**Contoh skema versi 2.2 State Manager**  
Anda dapat menggunakan dokumen SSM berikut denganState Manager, alat di Systems Manager, untuk mengunduh dan menginstal perangkat lunak antivirus ClamAv. State Managermemberlakukan konfigurasi tertentu, yang berarti bahwa setiap kali State Manager asosiasi dijalankan, sistem memeriksa untuk melihat apakah perangkat lunak ClamAV diinstal. Jika tidak, State Manager jalankan kembali dokumen ini.

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: State Manager Bootstrap Example
parameters: {}
mainSteps:
- action: aws:runShellScript
  name: configureServer
  inputs:
    runCommand:
    - sudo yum install -y httpd24
    - sudo yum --enablerepo=epel install -y clamav
```

------
#### [ JSON ]

```
{
   "schemaVersion": "2.2",
   "description": "State Manager Bootstrap Example",
   "parameters": {},
   "mainSteps": [
      {
         "action": "aws:runShellScript",
         "name": "configureServer",
         "inputs": {
            "runCommand": [
               "sudo yum install -y httpd24",
               "sudo yum --enablerepo=epel install -y clamav"
            ]
         }
      }
   ]
}
```

------

**Contoh inventaris skema versi 2.2**  
Anda dapat menggunakan dokumen SSM berikut State Manager untuk mengumpulkan metadata inventaris tentang instans Anda.

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: Software Inventory Policy Document.
parameters:
  applications:
    type: String
    default: Enabled
    description: "(Optional) Collect data for installed applications."
    allowedValues:
    - Enabled
    - Disabled
  awsComponents:
    type: String
    default: Enabled
    description: "(Optional) Collect data for AWS Components like amazon-ssm-agent."
    allowedValues:
    - Enabled
    - Disabled
  networkConfig:
    type: String
    default: Enabled
    description: "(Optional) Collect data for Network configurations."
    allowedValues:
    - Enabled
    - Disabled
  windowsUpdates:
    type: String
    default: Enabled
    description: "(Optional) Collect data for all Windows Updates."
    allowedValues:
    - Enabled
    - Disabled
  instanceDetailedInformation:
    type: String
    default: Enabled
    description: "(Optional) Collect additional information about the instance, including
      the CPU model, speed, and the number of cores, to name a few."
    allowedValues:
    - Enabled
    - Disabled
  customInventory:
    type: String
    default: Enabled
    description: "(Optional) Collect data for custom inventory."
    allowedValues:
    - Enabled
    - Disabled
mainSteps:
- action: aws:softwareInventory
  name: collectSoftwareInventoryItems
  inputs:
    applications: "{{ applications }}"
    awsComponents: "{{ awsComponents }}"
    networkConfig: "{{ networkConfig }}"
    windowsUpdates: "{{ windowsUpdates }}"
    instanceDetailedInformation: "{{ instanceDetailedInformation }}"
    customInventory: "{{ customInventory }}"
```

------
#### [ JSON ]

```
{
   "schemaVersion": "2.2",
   "description": "Software Inventory Policy Document.",
   "parameters": {
      "applications": {
         "type": "String",
         "default": "Enabled",
         "description": "(Optional) Collect data for installed applications.",
         "allowedValues": [
            "Enabled",
            "Disabled"
         ]
      },
      "awsComponents": {
         "type": "String",
         "default": "Enabled",
         "description": "(Optional) Collect data for AWS Components like amazon-ssm-agent.",
         "allowedValues": [
            "Enabled",
            "Disabled"
         ]
      },
      "networkConfig": {
         "type": "String",
         "default": "Enabled",
         "description": "(Optional) Collect data for Network configurations.",
         "allowedValues": [
            "Enabled",
            "Disabled"
         ]
      },
      "windowsUpdates": {
         "type": "String",
         "default": "Enabled",
         "description": "(Optional) Collect data for all Windows Updates.",
         "allowedValues": [
            "Enabled",
            "Disabled"
         ]
      },
      "instanceDetailedInformation": {
         "type": "String",
         "default": "Enabled",
         "description": "(Optional) Collect additional information about the instance, including\nthe CPU model, speed, and the number of cores, to name a few.",
         "allowedValues": [
            "Enabled",
            "Disabled"
         ]
      },
      "customInventory": {
         "type": "String",
         "default": "Enabled",
         "description": "(Optional) Collect data for custom inventory.",
         "allowedValues": [
            "Enabled",
            "Disabled"
         ]
      }
   },
   "mainSteps": [
      {
         "action": "aws:softwareInventory",
         "name": "collectSoftwareInventoryItems",
         "inputs": {
            "applications": "{{ applications }}",
            "awsComponents": "{{ awsComponents }}",
            "networkConfig": "{{ networkConfig }}",
            "windowsUpdates": "{{ windowsUpdates }}",
            "instanceDetailedInformation": "{{ instanceDetailedInformation }}",
            "customInventory": "{{ customInventory }}"
         }
      }
   ]
}
```

------

**Contoh skema versi 2.2 `AWS-ConfigureAWSPackage`**  
Contoh berikut menunjukkan dokumen `AWS-ConfigureAWSPackage`. Bagian `mainSteps` mencakup plugin `aws:configurePackage` di langkah `action`.

**catatan**  
Pada sistem operasi Linux, hanya paket `AmazonCloudWatchAgent` dan `AWSSupport-EC2Rescue` yang didukung.

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: 'Install or uninstall the latest version or specified version of an AWS
package. Available packages include the following: AWSPVDriver, AwsEnaNetworkDriver,
  AwsVssComponents, and AmazonCloudWatchAgent, and AWSSupport-EC2Rescue.'
parameters:
  action:
    description: "(Required) Specify whether or not to install or uninstall the package."
    type: String
    allowedValues:
    - Install
    - Uninstall
  name:
    description: "(Required) The package to install/uninstall."
    type: String
    allowedPattern: "^arn:[a-z0-9][-.a-z0-9]{0,62}:[a-z0-9][-.a-z0-9]{0,62}:([a-z0-9][-.a-z0-9]{0,62})?:([a-z0-9][-.a-z0-9]{0,62})?:package\\/[a-zA-Z][a-zA-Z0-9\\-_]{0,39}$|^[a-zA-Z][a-zA-Z0-9\\-_]{0,39}$"
  version:
    type: String
    description: "(Optional) A specific version of the package to install or uninstall."
mainSteps:
- action: aws:configurePackage
  name: configurePackage
  inputs:
    name: "{{ name }}"
    action: "{{ action }}"
    version: "{{ version }}"
```

------
#### [ JSON ]

```
{
   "schemaVersion": "2.2",
   "description": "Install or uninstall the latest version or specified version of an AWS package. Available packages include the following: AWSPVDriver, AwsEnaNetworkDriver, AwsVssComponents, and AmazonCloudWatchAgent, and AWSSupport-EC2Rescue.",
   "parameters": {
      "action": {
         "description":"(Required) Specify whether or not to install or uninstall the package.",
         "type":"String",
         "allowedValues":[
            "Install",
            "Uninstall"
         ]
      },
      "name": {
         "description": "(Required) The package to install/uninstall.",
         "type": "String",
         "allowedPattern": "^arn:[a-z0-9][-.a-z0-9]{0,62}:[a-z0-9][-.a-z0-9]{0,62}:([a-z0-9][-.a-z0-9]{0,62})?:([a-z0-9][-.a-z0-9]{0,62})?:package\\/[a-zA-Z][a-zA-Z0-9\\-_]{0,39}$|^[a-zA-Z][a-zA-Z0-9\\-_]{0,39}$"
      },
      "version": {
         "type": "String",
         "description": "(Optional) A specific version of the package to install or uninstall."
      }
   },
   "mainSteps":[
      {
         "action": "aws:configurePackage",
         "name": "configurePackage",
         "inputs": {
            "name": "{{ name }}",
            "action": "{{ action }}",
            "version": "{{ version }}"
         }
      }
   ]
}
```

------

## Skema versi 1.2
<a name="documents-schema-onex"></a>

Contoh berikut menunjukkan unsur-unsur tingkat atas dokumen skema versi 1.2.

```
{
   "schemaVersion":"1.2",
   "description":"A description of the SSM document.",
   "parameters":{
      "parameter 1":{
         "one or more parameter properties"
      },
      "parameter 2":{
         "one or more parameter properties"
      },
      "parameter 3":{
         "one or more parameter properties"
      }
   },
   "runtimeConfig":{
      "plugin 1":{
         "properties":[
            {
               "one or more plugin properties"
            }
         ]
      }
   }
}
```

**Contoh skema versi 1.2 `aws:runShellScript`**  
Contoh berikut menunjukkan Dokumen SSM `AWS-RunShellScript`. Bagian **runtimeConfig** mencakup plugin `aws:runShellScript`.

```
{
    "schemaVersion":"1.2",
    "description":"Run a shell script or specify the commands to run.",
    "parameters":{
        "commands":{
            "type":"StringList",
            "description":"(Required) Specify a shell script or a command to run.",
            "minItems":1,
            "displayType":"textarea"
        },
        "workingDirectory":{
            "type":"String",
            "default":"",
            "description":"(Optional) The path to the working directory on your instance.",
            "maxChars":4096
        },
        "executionTimeout":{
            "type":"String",
            "default":"3600",
            "description":"(Optional) The time in seconds for a command to complete before it is considered to have failed. Default is 3600 (1 hour). Maximum is 172800 (48 hours).",
            "allowedPattern":"([1-9][0-9]{0,3})|(1[0-9]{1,4})|(2[0-7][0-9]{1,3})|(28[0-7][0-9]{1,2})|(28800)"
        }
    },
    "runtimeConfig":{
        "aws:runShellScript":{
            "properties":[
                {
                    "id":"0.aws:runShellScript",
                    "runCommand":"{{ commands }}",
                    "workingDirectory":"{{ workingDirectory }}",
                    "timeoutSeconds":"{{ executionTimeout }}"
                }
            ]
        }
    }
}
```

## Skema versi 0.3
<a name="automation-doc-syntax-examples"></a>

**Elemen tingkat atas**  
Contoh berikut menunjukkan elemen-elemen tingkat atas dari skema versi 0.3 runbook otomatisasi dalam format JSON.

```
{
    "description": "document-description",
    "schemaVersion": "0.3",
    "assumeRole": "{{assumeRole}}",
    "parameters": {
        "parameter1": {
            "type": "String",
            "description": "parameter-1-description",
            "default": ""
        },
        "parameter2": {
            "type": "String",
            "description": "parameter-2-description",
            "default": ""
        }
    },
    "variables": {
        "variable1": {
            "type": "StringMap",
            "description": "variable-1-description",
            "default": {}
        },
        "variable2": {
            "type": "String",
            "description": "variable-2-description",
            "default": "default-value"
        }
    },
    "mainSteps": [
        {
            "name": "myStepName",
            "action": "action-name",
            "maxAttempts": 1,
            "inputs": {
                "Handler": "python-only-handler-name",
                "Runtime": "runtime-name",
                "Attachment": "script-or-zip-name"
            },
            "outputs": {
                "Name": "output-name",
                "Selector": "selector.value",
                "Type": "data-type"
            }
        }
    ],
    "files": {
        "script-or-zip-name": {
            "checksums": {
                "sha256": "checksum"
            },
            "size": 1234
        }
    }
}
```

**Contoh runbook otomatisasi YAML**  
Contoh berikut menunjukkan isi dari sebuah runbook otomatisasi, dalam format YAML. Contoh kerja ini dari skema dokumen versi 0.3 juga menunjukkan penggunaan Potongan harga untuk memformat deskripsi dokumen.

```
description: >-
  ##Title: LaunchInstanceAndCheckState

  -----

  **Purpose**: This Automation runbook first launches an EC2 instance
  using the AMI ID provided in the parameter ```imageId```. The second step of
  this document continuously checks the instance status check value for the
  launched instance until the status ```ok``` is returned.


  ##Parameters:

  -----

  Name | Type | Description | Default Value

  ------------- | ------------- | ------------- | -------------

  assumeRole | String | (Optional) The ARN of the role that allows Automation to
  perform the actions on your behalf. | -

  imageId  | String | (Optional) The AMI ID to use for launching the instance.
  The default value uses the latest Amazon Linux AMI ID available. | {{
  ssm:/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-x86_64 }}
schemaVersion: '0.3'
assumeRole: 'arn:aws:iam::111122223333::role/AutomationServiceRole'
parameters:
  imageId:
    type: String
    default: '{{ ssm:/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-x86_64 }}'
    description: >-
      (Optional) The AMI ID to use for launching the instance. The default value
      uses the latest released Amazon Linux AMI ID.
  tagValue:
    type: String
    default: ' LaunchedBySsmAutomation'
    description: >-
      (Optional) The tag value to add to the instance. The default value is
      LaunchedBySsmAutomation.
  instanceType:
    type: String
    default: t2.micro
    description: >-
      (Optional) The instance type to use for the instance. The default value is
      t2.micro.
mainSteps:
  - name: LaunchEc2Instance
    action: 'aws:executeScript'
    outputs:
      - Name: payload
        Selector: $.Payload
        Type: StringMap
    inputs:
      Runtime: python3.11
      Handler: launch_instance
      Script: ''
      InputPayload:
        image_id: '{{ imageId }}'
        tag_value: '{{ tagValue }}'
        instance_type: '{{ instanceType }}'
      Attachment: launch.py
    description: >-
      **About This Step**


      This step first launches an EC2 instance using the ```aws:executeScript```
      action and the provided python script.
  - name: WaitForInstanceStatusOk
    action: 'aws:executeScript'
    inputs:
      Runtime: python3.11
      Handler: poll_instance
      Script: |-
        def poll_instance(events, context):
          import boto3
          import time

          ec2 = boto3.client('ec2')

          instance_id = events['InstanceId']

          print('[INFO] Waiting for instance status check to report ok', instance_id)

          instance_status = "null"

          while True:
            res = ec2.describe_instance_status(InstanceIds=[instance_id])

            if len(res['InstanceStatuses']) == 0:
              print("Instance status information is not available yet")
              time.sleep(5)
              continue

            instance_status = res['InstanceStatuses'][0]['InstanceStatus']['Status']

            print('[INFO] Polling to get status of the instance', instance_status)

            if instance_status == 'ok':
              break

            time.sleep(10)

          return {'Status': instance_status, 'InstanceId': instance_id}
      InputPayload: '{{ LaunchEc2Instance.payload }}'
    description: >-
      **About This Step**


      The python script continuously polls the instance status check value for
      the instance launched in Step 1 until the ```ok``` status is returned.
files:
  launch.py:
    checksums:
      sha256: 18871b1311b295c43d0f...[truncated]...772da97b67e99d84d342ef4aEXAMPLE
```

## Contoh penanganan parameter aman
<a name="secure-parameter-examples"></a>

Contoh berikut menunjukkan penanganan parameter aman menggunakan variabel lingkungan`interpolationType`.

### Eksekusi perintah aman dasar
<a name="basic-secure-command"></a>

Contoh ini menunjukkan cara menangani parameter perintah dengan aman:

**catatan**  
`allowedPattern`tidak diperlukan secara teknis dalam dokumen SSM yang tidak menggunakan kawat gigi ganda: `{{ }}` 

------
#### [ YAML ]

```
---

schemaVersion: '2.2'
description: An example document.
parameters:
  Message:
    type: String
    description: "Message to be printed"
    default: Hello
    interpolationType: ENV_VAR
    allowedPattern: "^[^"]*$"
mainSteps:
  - action: aws:runShellScript
    name: printMessage
    precondition:
      StringEquals:
        - platformType
        - Linux
    inputs:
      runCommand:
        - echo {{Message}}
```

------
#### [ JSON ]

```
{
    "schemaVersion": "2.2",
    "description": "An example document.",
    "parameters": {
        "Message": {
            "type": "String",
            "description": "Message to be printed",
            "default": "Hello",
            "interpolationType": "ENV_VAR",
            "allowedPattern": "^[^"]*$"
        }
    },
    "mainSteps": [{
        "action": "aws:runShellScript",
        "name": "printMessage",
        "precondition": {
           "StringEquals": ["platformType", "Linux"]
        },
        "inputs": {
            "runCommand": [
              "echo {{Message}}"
            ]
        }
    }]
}
```

------

### Menggunakan parameter dalam bahasa yang ditafsirkan
<a name="interpreted-language-example"></a>

Contoh ini menunjukkan penanganan parameter aman di Python:

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: 'Secure Python script execution'
parameters:
  inputData:
    type: String
    description: 'Input data for processing'
    interpolationType: 'ENV_VAR'
mainSteps:
  - action: aws:runPowerShellScript
    name: runPython
    inputs:
      runCommand:
        - |
          python3 -c '
          import os
          import json
          
          # Safely access parameter through environment variable
          input_data = os.environ.get("SSM_inputData", "")
          
          # Process the data
          try:
              processed_data = json.loads(input_data)
              print(f"Successfully processed: {processed_data}")
          except json.JSONDecodeError:
              print("Invalid JSON input")
          '
```

------

### Contoh kompatibilitas mundur
<a name="backwards-compatibility-example"></a>

Contoh ini menunjukkan cara menangani parameter dengan aman sambil mempertahankan kompatibilitas mundur:

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: 'Backwards compatible secure parameter handling'
parameters:
  userInput:
    type: String
    description: 'User input to process'
    interpolationType: 'ENV_VAR'
    allowedPattern: '^[^"]*$'

mainSteps:
  - action: aws:runShellScript
    name: processInput
    inputs:
      runCommand:
        - |
          # Handle both modern and legacy agent versions
          if [ -z "${SSM_userInput+x}" ]; then
              # Legacy agent - fall back to direct parameter reference
              export SSM_userInput="{{userInput}}"
          fi
          
          # Process the input securely
          echo "Processing input: $SSM_userInput"
```

------

**catatan**  
`allowedPattern`tidak diperlukan secara teknis dalam dokumen SSM yang tidak menggunakan kawat gigi ganda: `{{ }}` 

## Praktik terbaik keamanan parameter
<a name="parameter-security-best-practices"></a>

Ikuti praktik terbaik ini saat menangani parameter dalam dokumen SSM:
+ **Gunakan interpolasi variabel lingkungan** - Selalu gunakan `interpolationType: "ENV_VAR"` untuk parameter string yang akan digunakan dalam eksekusi perintah.
+ **Implementasikan validasi masukan** - Gunakan `allowedPattern` untuk membatasi nilai parameter ke pola aman.
+ **Menangani sistem lama** - Sertakan logika fallback untuk SSM Agent versi lama yang tidak mendukung interpolasi variabel lingkungan.
+ **Melarikan diri dari karakter khusus** - Saat menggunakan nilai parameter dalam perintah, lepaskan karakter khusus dengan benar untuk mencegah interpretasi oleh shell.
+ **Batasi cakupan parameter** - Gunakan pola parameter yang paling ketat untuk kasus penggunaan Anda.

# Elemen dan parameter data
<a name="documents-syntax-data-elements-parameters"></a>

Topik ini menjelaskan elemen data yang digunakan dalam dokumen SSM. Versi skema yang digunakan untuk membuat dokumen mendefinisikan sintaks dan elemen data yang diterima dokumen. Kami menyarankan Anda menggunakan skema versi 2.2 atau yang lebih baru untuk dokumen Command. Runbook otomatisasi menggunakan skema versi 0.3. Selain itu, runbook Otomatisasi mendukung penggunaan penurunan harga, bahasa markup, yang memungkinkan Anda menambahkan deskripsi gaya wiki ke dokumen dan langkah-langkah individual dalam dokumen. Untuk informasi selengkapnya tentang penggunaan Markdown, lihat [Menggunakan Penurunan Harga di Konsol](https://docs.aws.amazon.com/general/latest/gr/aws-markdown.html) di Panduan *Konsol Manajemen AWS Memulai*.

Bagian berikut menjelaskan elemen data yang dapat Anda sertakan dalam dokumen SSM.

## Elemen data tingkat atas
<a name="top-level"></a>

**schemaVersion**  
Versi skema untuk digunakan.  
Jenis: Versi  
Wajib: Ya

**deskripsi**  
Informasi yang Anda berikan untuk menjelaskan tujuan dokumen. Anda juga dapat menggunakan bidang ini untuk menentukan apakah parameter memerlukan nilai untuk menjalankan dokumen, atau jika memberikan nilai untuk parameter adalah opsional. Parameter yang diperlukan dan opsional dapat dilihat pada contoh di seluruh topik ini.  
Tipe: String  
Wajib: Tidak

**parameter**  
Struktur yang menentukankan parameter dokumen menerima.   
Untuk keamanan yang ditingkatkan saat menangani parameter string, Anda dapat menggunakan interpolasi variabel lingkungan dengan menentukan properti. `interpolationType` Ketika diatur ke`ENV_VAR`, sistem menciptakan variabel lingkungan bernama `SSM_parameter-name` yang berisi nilai parameter.  
Berikut ini mencakup contoh parameter menggunakan variabel lingkungan`interpolationType`:  

```
{
    "schemaVersion": "2.2",
    "description": "An example document.",
    "parameters": {
        "Message": {
            "type": "String",
            "description": "Message to be printed",
            "default": "Hello",
            "interpolationType" : "ENV_VAR",
            "allowedPattern": "^[^"]*$"

        }
    },
    "mainSteps": [{
        "action": "aws:runShellScript",
        "name": "printMessage",
        "precondition" : {
           "StringEquals" : ["platformType", "Linux"]
        },
        "inputs": {
            "runCommand": [
              "echo {{Message}}"
            ]
        }
    }
}
```
`allowedPattern`tidak diperlukan secara teknis dalam dokumen SSM yang tidak menggunakan kawat gigi ganda: `{{ }}` 
Untuk parameter yang sering Anda gunakan, kami sarankan Anda menyimpan parameter tersebut diParameter Store, alat di AWS Systems Manager. Kemudian, Anda dapat menentukan parameter dalam dokumen Anda yang mereferensikan Parameter Store parameter sebagai nilai defaultnya. Untuk referensi Parameter Store parameter, gunakan sintaks berikut.   

```
{{ssm:parameter-name}}
```
Anda dapat menggunakan parameter yang mereferensikan Parameter Store parameter dengan cara yang sama seperti parameter dokumen lainnya. Dalam contoh berikut, nilai default untuk `commands` parameter adalah Parameter Store parameter`myShellCommands`. Dengan menentukan `commands` parameter sebagai `runCommand` string, dokumen menjalankan perintah yang disimpan dalam `myShellCommands` parameter.  

```
---
schemaVersion: '2.2'
description: runShellScript with command strings stored as Parameter Store parameter
parameters:
  commands:
    type: StringList
    description: "(Required) The commands to run on the instance."
    default: ["{{ ssm:myShellCommands }}"],
            interpolationType : 'ENV_VAR'
            allowedPattern: '^[^"]*$'

mainSteps:
- action: aws:runShellScript
  name: runShellScriptDefaultParams
  inputs:
    runCommand:"{{ commands }}"
```

```
{
    "schemaVersion": "2.2",
    "description": "runShellScript with command strings stored as Parameter Store parameter",
    "parameters": {
      "commands": {
        "type": "StringList",
        "description": "(Required) The commands to run on the instance.",
        "default": ["{{ ssm:myShellCommands }}"],
        "interpolationType" : "ENV_VAR"
      }
    },
    "mainSteps": [
      {
        "action": "aws:runShellScript",
        "name": "runShellScriptDefaultParams",
        "inputs": {
            "runCommand": [
              "{{ commands }}"
          ]
        }
      }
    ]
  }
```
Anda dapat referensi `String` dan `StringList` Parameter Store parameter di `parameters` bagian dokumen Anda. Anda tidak dapat mereferensikan `SecureString` Parameter Store parameter.
Untuk informasi selengkapnya tentang Parameter Store, lihat [AWS Systems Manager Parameter Store](systems-manager-parameter-store.md).  
Jenis: Struktur  
`parameters` menerima bidang dan nilai-nilai berikut:  
+ `type`: Nilai yang (Diperlukan) diizinkan mencakup hal berikut: `String`, `StringList`, `Integer` `Boolean`, `MapList`, dan `StringMap`. Untuk melihat contoh dari setiap jenis, lihat [Contoh parameter dokumen SSM `type`](#top-level-properties-type) di bagian berikutnya.
**catatan**  
Dokumen tipe perintah hanya mendukung tipe `String` dan `StringList` parameter.
+ `description`: (Opsional) Deskripsi parameter.
+ `default`: (Opsional) Nilai default parameter atau referensi ke parameter diParameter Store.
+ `allowedValues`: (Opsional) Array nilai diperbolehkan untuk parameter. Menentukan nilai yang diperbolehkan untuk parameter memvalidasi input pengguna. Jika pengguna input nilai tidak diperbolehkan, eksekusi gagal untuk memulai.

------
#### [ YAML ]

  ```
  DirectoryType:
    type: String
    description: "(Required) The directory type to launch."
    default: AwsMad
    allowedValues:
    - AdConnector
    - AwsMad
    - SimpleAd
  ```

------
#### [ JSON ]

  ```
  "DirectoryType": {
    "type": "String",
    "description": "(Required) The directory type to launch.",
    "default": "AwsMad",
    "allowedValues": [
      "AdConnector",
      "AwsMad",
      "SimpleAd"
    ]
  }
  ```

------
+ `allowedPattern`: (Opsional) Sebuah ekspresi reguler yang memvalidasi apakah input pengguna cocok dengan pola yang ditetapkan untuk parameter. Jika input pengguna tidak cocok dengan pola yang diperbolehkan, eksekusi gagal untuk memulai.
**catatan**  
Systems Manager melakukan dua validasi untuk. `allowedPattern` Validasi pertama dilakukan menggunakan [pustaka regex Java](https://docs.oracle.com/javase/8/docs/api/java/util/regex/package-summary.html) di tingkat API saat Anda menggunakan dokumen. Validasi kedua dilakukan SSM Agent dengan menggunakan [pustaka regexp GO](https://pkg.go.dev/regexp) sebelum memproses dokumen. 

------
#### [ YAML ]

  ```
  InstanceId:
    type: String
    description: "(Required) The instance ID to target."
    allowedPattern: "^i-(?:[a-f0-9]{8}|[a-f0-9]{17})$"
    default: ''
  ```

------
#### [ JSON ]

  ```
  "InstanceId": {
    "type": "String",
    "description": "(Required) The instance ID to target.",
    "allowedPattern": "^i-(?:[a-f0-9]{8}|[a-f0-9]{17})$",
    "default": ""
  }
  ```

------
+ `displayType`: (Opsional) Digunakan untuk menampilkan baik a `textfield` atau a `textarea` di Konsol Manajemen AWS. `textfield`adalah kotak teks satu baris. `textarea`adalah area teks multi-baris.
+ `minItems`: (Opsional) Jumlah minimum item yang diperbolehkan.
+ `maxItems`: (Opsional) Jumlah maksimum item yang diperbolehkan.
+ `minChars`: (Opsional) Jumlah minimum karakter parameter yang diperbolehkan.
+ `maxChars`: (Opsional) Jumlah maksimum karakter parameter yang diperbolehkan.
+ `interpolationType`: (Opsional) Mendefinisikan bagaimana nilai parameter diproses sebelum eksekusi perintah. Ketika diatur ke`ENV_VAR`, nilai parameter dibuat tersedia sebagai variabel lingkungan bernama`SSM_parameter-name`. Fitur ini membantu mencegah injeksi perintah dengan memperlakukan nilai parameter sebagai string literal.

  Tipe: String

  Nilai valid: `ENV_VAR`
Wajib: Tidak

**variabel**  
(Skema versi 0.3 saja) Nilai yang dapat Anda referensikan atau perbarui di seluruh langkah di runbook Otomasi. Variabel mirip dengan parameter, tetapi berbeda dalam cara yang sangat penting. Nilai parameter statis dalam konteks runbook, tetapi nilai variabel dapat diubah dalam konteks runbook. Saat memperbarui nilai variabel, tipe data harus cocok dengan tipe data yang ditentukan. Untuk informasi tentang memperbarui nilai variabel dalam otomatisasi, lihat [`aws:updateVariable`— Memperbarui nilai untuk variabel runbook](automation-action-update-variable.md)  
Jenis: Boolean \$1 Integer \$1 \$1 String MapList \$1 \$1 StringList StringMap  
Wajib: Tidak  

```
variables:
    payload:
        type: StringMap
        default: "{}"
```

```
{
    "variables": [
        "payload": {
            "type": "StringMap",
            "default": "{}"
        }
    ]
}
```

**runtimeConfig**  
(Hanya skema versi 1.2) Konfigurasi untuk instans seperti yang diterapkan oleh satu atau beberapa plugin Systems Manager. Plugin tidak dijamin untuk dapat berjalan secara berurutan.   
Jenis: Kamus <String, > PluginConfiguration  
Wajib: Tidak

**mainSteps**  
(Hanya skema versi 0.3, 2.0, dan 2.2) Sebuah objek yang dapat mencakup beberapa langkah (plugin). Plugin ditentukan dalam langkah-langkah. Langkah-langkah yang dijalankan secara berurutan seperti yang tercantum dalam dokumen.   
Jenis: Kamus <String, > PluginConfiguration  
Wajib: Ya

**keluaran**  
(Hanya skema versi 0.3) Data yang dihasilkan oleh eksekusi dokumen ini yang dapat digunakan dalam proses lainnya. Misalnya, jika dokumen Anda membuat yang baruAMI, Anda dapat menentukan "CreateImage. ImageId"sebagai nilai output, dan kemudian menggunakan output ini untuk membuat instance baru dalam eksekusi otomatisasi berikutnya. Untuk informasi selengkapnya tentang opsi, lihat [Menggunakan output tindakan sebagai input](automation-action-outputs-inputs.md).  
Jenis: Kamus <String, > OutputConfiguration  
Wajib: Tidak

**file**  
(Hanya skema versi 0.3) File skrip (dan checksum mereka) dilampirkan pada dokumen dan dijalankan selama eksekusi otomatisasi. Hanya berlaku untuk dokumen yang mencakup tindakan `aws:executeScript` dan lampiran yang telah ditentukan dalam satu atau beberapa langkah.   
Untuk mempelajari tentang runtime yang didukung oleh runbook Otomasi, lihat. [`aws:executeScript` – Jalankan skrip](automation-action-executeScript.md) Untuk informasi selengkapnya tentang termasuk skrip di runbook otomatisasi, lihat [Menggunakan skrip di runbook](automation-document-script-considerations.md) dan [Pengalaman desain visual untuk runbook Otomasi](automation-visual-designer.md).  
Saat membuat runbook Otomasi dengan lampiran, Anda juga harus menentukan file lampiran menggunakan `--attachments` opsi (untuk AWS CLI) atau `Attachments` (untuk API dan SDK). Anda dapat menentukan lokasi file untuk dokumen SSM dan file yang disimpan di bucket Amazon Simple Storage Service (Amazon S3). Untuk informasi selengkapnya, lihat [Lampiran](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_CreateDocument.html#systemsmanager-CreateDocument-request-Attachments) di Referensi AWS Systems Manager API.  

```
---
files:
  launch.py:
    checksums:
      sha256: 18871b1311b295c43d0f...[truncated]...772da97b67e99d84d342ef4aEXAMPLE
```

```
"files": {
    "launch.py": {
        "checksums": {
            "sha256": "18871b1311b295c43d0f...[truncated]...772da97b67e99d84d342ef4aEXAMPLE"
        }
    }
}
```
Jenis: Kamus <String, > FilesConfiguration  
Wajib: Tidak

## Contoh parameter dokumen SSM `type`
<a name="top-level-properties-type"></a>

Jenis parameter dalam dokumen SSM adalah statis. Ini berarti jenis parameter tidak dapat diubah setelah ditentukan. Ketika menggunakan parameter dengan plugin dokumen SSM, jenis parameter tidak dapat diubah secara dinamis dalam input plugin. Misalnya, Anda tidak dapat mereferensikan parameter `Integer` dalam input `runCommand` dari plugin `aws:runShellScript` karena input ini menerima string atau daftar string. Untuk menggunakan parameter pada input plugin, jenis parameter harus sepadan dengan jenis yang diterima. Misalnya, Anda harus menentukan jenis parameter `Boolean` untuk input `allowDowngrade` dari plugin `aws:updateSsmAgent`. Jika jenis parameter Anda tidak cocok dengan jenis input untuk plugin, dokumen SSM gagal untuk memvalidasi dan sistem tidak dapat membuat dokumen. Ini juga berlaku saat menggunakan parameter hilir dalam input untuk plugin lain atau AWS Systems Manager tindakan Otomasi. Misalnya, Anda tidak dapat mereferensikan `StringList` parameter dalam `documentParameters` input `aws:runDocument` plugin. `documentParameters`Input menerima peta string meskipun tipe parameter dokumen SSM hilir adalah parameter dan cocok dengan `StringList` parameter yang Anda referensikan.

Saat menggunakan parameter dengan Tindakan otomatisasi , jenis parameter tidak divalidasi saat Anda membuat dokumen SSM dalam banyak kasus. Hanya ketika Anda menggunakan tindakan `aws:runCommand` jenis parameter saat Anda membuat dokumen SSM divalidasi. Dalam semua kasus lain, validasi parameter terjadi selama eksekusi otomatisasi ketika input tindakan diverifikasi sebelum menjalankan tindakan. Misalnya, dokumen SSM dibuat jika parameter input Anda adalah `String` dan referensi Anda sebagai nilai untuk input `MaxInstanceCount` dari tindakan `aws:runInstances`. Namun, ketika menjalankan dokumen, otomatisasi gagal sementara memvalidasi Tindakan `aws:runInstances` karena input `MaxInstanceCount` memerlukan `Integer`.

Berikut ini adalah contoh dari setiap parameter `type`.

Tali  
Urutan karakter Unicode nol atau lebih dalam tanda kutip. Misalnya, "i-1234567890abcdef0". Gunakan garis miring terbalik untuk keluar.  
Parameter string dapat menyertakan `interpolationType` bidang opsional dengan nilai `ENV_VAR` untuk mengaktifkan interpolasi variabel lingkungan untuk meningkatkan keamanan.  

```
---
InstanceId:
  type: String
  description: "(Optional) The target EC2 instance ID."
  interpolationType: ENV_VAR
```

```
"InstanceId":{
  "type":"String",
  "description":"(Optional) The target EC2 instance ID.",
  "interpolationType": "ENV_VAR"
}
```

StringList  
Daftar item String dipisahkan dengan koma. Sebagai contoh, ["cd \$1", "pwd"].  

```
---
commands:
  type: StringList
  description: "(Required) Specify a shell script or a command to run."
  default: ""
  minItems: 1
  displayType: textarea
```

```
"commands":{
  "type":"StringList",
  "description":"(Required) Specify a shell script or a command to run.",
  "minItems":1,
  "displayType":"textarea"
}
```

Boolean  
Hanya menerima `true` atau `false`. Tidak menerima "benar" atau 0.  

```
---
canRun:
  type: Boolean
  description: ''
  default: true
```

```
"canRun": {
  "type": "Boolean",
  "description": "",
  "default": true
}
```

Bulat  
Nomor integral. Tidak menerima angka desimal, misalnya 3.14159, atau angka yang dalam tanda kutip, misalnya "3".  

```
---
timeout:
  type: Integer
  description: The type of action to perform.
  default: 100
```

```
"timeout": {
  "type": "Integer",
  "description": "The type of action to perform.",
  "default": 100    
}
```

StringMap  
Sebuah pemetaan kunci untuk nilai-nilai. Kunci dan nilai harus berupa string. Misalnya, \$1"Env": "Prod"\$1.  

```
---
notificationConfig:
  type: StringMap
  description: The configuration for events to be notified about
  default:
    NotificationType: 'Command'
    NotificationEvents:
    - 'Failed'
    NotificationArn: "$dependency.topicArn"
  maxChars: 150
```

```
"notificationConfig" : {
  "type" : "StringMap",
  "description" : "The configuration for events to be notified about",
  "default" : {
    "NotificationType" : "Command",
    "NotificationEvents" : ["Failed"],
    "NotificationArn" : "$dependency.topicArn"
  },
  "maxChars" : 150
}
```

MapList  
Daftar StringMap objek.  

```
blockDeviceMappings:
  type: MapList
  description: The mappings for the create image inputs
  default:
  - DeviceName: "/dev/sda1"
    Ebs:
      VolumeSize: "50"
  - DeviceName: "/dev/sdm"
    Ebs:
      VolumeSize: "100"
  maxItems: 2
```

```
"blockDeviceMappings":{
  "type":"MapList",
  "description":"The mappings for the create image inputs",
  "default":[
    {
      "DeviceName":"/dev/sda1",
      "Ebs":{
        "VolumeSize":"50"
      }
    },
    {
      "DeviceName":"/dev/sdm",
      "Ebs":{
        "VolumeSize":"100"
      }
    }
  ],
  "maxItems":2
}
```

## Melihat konten dokumen SSM Command
<a name="viewing-ssm-document-content"></a>

Untuk melihat pratinjau parameter yang diperlukan dan opsional untuk dokumen Command AWS Systems Manager (SSM), selain tindakan yang dijalankan dokumen, Anda dapat melihat konten dokumen di konsol Systems Manager.

**Untuk melihat konten dokumen SSM Command**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Dokumen**.

1. Di kotak pencarian, pilih **Jenis dokumen**, dan kemudian pilih **Perintah**.

1. Pilih nama dokumen, dan kemudian pilih tab **Konten**. 

1. Di bidang konten, tinjau parameter dan langkah-langkah tindakan yang tersedia untuk dokumen.

   Misalnya, gambar berikut menunjukkan bahwa (1) `version` dan (2) `allowDowngrade` adalah parameter opsional untuk dokumen `AWS-UpdateSSMAgent`, dan bahwa tindakan pertama yang dijalankan oleh dokumen adalah (3) `aws:updateSsmAgent`.  
![\[Lihat konten dokumen SSM di konsol Systems Manager\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/images/view-document-content.png)

# Referensi plugin dokumen perintah
<a name="documents-command-ssm-plugin-reference"></a>

Referensi ini menjelaskan plugin yang dapat Anda tentukan dalam dokumen tipe Command AWS Systems Manager (SSM). Plugin ini tidak dapat digunakan dalam runbook otomatisasi SSM, yang menggunakan tindakan otomatisasi. Untuk informasi tentang tindakan AWS Systems Manager Otomasi, lihat[Referensi tindakan Otomatisasi Systems Manager](automation-actions.md).

Systems Manager menentukan tindakan untuk menjalankan instans terkelola dengan membaca isi dokumen SSM. Setiap dokumen termasuk bagian eksekusi kode. Tergantung pada versi skema dokumen Anda, bagian eksekusi kode ini dapat mencakup satu atau beberapa plugin atau langkah-langkah. Untuk tujuan topik bantuan ini, plugin dan langkah-langkah disebut sebagai *plugin*. Bagian ini mencakup informasi tentang setiap plugin Systems Manager. Untuk informasi lebih lanjut tentang dokumen, termasuk informasi tentang membuat dokumen dan perbedaan antara versi skema, lihat [AWS Systems Manager Dokumen](documents.md).

Untuk plugin yang menerima parameter String, seperti `aws:runShellScript` dan`aws:runPowerShellScript`, `interpolationType` parameter dapat digunakan untuk meningkatkan keamanan dengan memperlakukan input parameter sebagai string literal daripada perintah yang berpotensi dapat dieksekusi. Contoh:

```
{
    "schemaVersion": "2.2",
    "description": "runShellScript with command strings stored as Parameter Store parameter",
    "parameters": {
      "commands": {
        "type": "StringList",
        "description": "(Required) The commands to run on the instance.",
        "default": ["{{ ssm:myShellCommands }}"],
        "interpolationType" : "ENV_VAR"
      }
    },
    //truncated
 }
```

**catatan**  
Beberapa plugin yang dijelaskan di sini hanya dijalankan di instans Windows Server atau instans Linux. Dependensi platform dicatat dalam setiap plugin.   
Plugin dokumen berikut didukung oleh instans Amazon Elastic Compute Cloud (Amazon EC2) untuk macOS:  
`aws:refreshAssociation`
`aws:runShellScript`
`aws:runPowerShellScript`
`aws:softwareInventory`
`aws:updateSsmAgent`

**Topics**
+ [Input bersama](#shared-inputs)
+ [`aws:applications`](#aws-applications)
+ [`aws:cloudWatch`](#aws-cloudWatch)
+ [`aws:configureDocker`](#aws-configuredocker)
+ [`aws:configurePackage`](#aws-configurepackage)
+ [`aws:domainJoin`](#aws-domainJoin)
+ [`aws:downloadContent`](#aws-downloadContent)
+ [`aws:psModule`](#aws-psModule)
+ [`aws:refreshAssociation`](#aws-refreshassociation)
+ [`aws:runDockerAction`](#aws-rundockeraction)
+ [`aws:runDocument`](#aws-rundocument)
+ [`aws:runPowerShellScript`](#aws-runPowerShellScript)
+ [`aws:runShellScript`](#aws-runShellScript)
+ [`aws:softwareInventory`](#aws-softwareinventory)
+ [`aws:updateAgent`](#aws-updateagent)
+ [`aws:updateSsmAgent`](#aws-updatessmagent)

## Input bersama
<a name="shared-inputs"></a>

Dengan SSM Agent versi 3.0.502 dan yang lebih baru saja, semua plugin dapat menggunakan input berikut:

**finallyStep**  
Langkah terakhir untuk menjalankan dokumen yang Anda inginkan. Jika input ini ditentukan dalam sebuah langkah, `exit` lebih diutamakan dari nilai yang ditentukan dalam `onFailure` atau input `onSuccess`. Dalam rangka untuk menjalankan langkah input ini seperti yang diharapkan, langkah terakhir yang harus ditentukan dalam `mainSteps` dari dokumen Anda.  
Tipe: Boolean  
Nilai yang valid: `true` \$1 `false`  
Wajib: Tidak

**onFailure**  
Jika Anda menentukan input ini untuk plugin dengan nilai `exit` dan langkah gagal, status langkah mencerminkan kegagalan dan dokumen tidak menjalankan langkah-langkah yang tersisa kecuali `finallyStep` yang telah ditentukan. Jika Anda menentukan input ini untuk plugin dengan nilai `successAndExit` dan langkah gagal, status langkah menunjukkan sukses dan dokumen tidak menjalankan langkah-langkah yang tersisa kecuali `finallyStep` yang telah ditentukan.  
Tipe: String  
Nilai yang valid: `exit` \$1 `successAndExit`  
Wajib: Tidak

**onSuccess**  
Jika Anda menentukan input ini untuk plugin dan langkah yang dijalankan berhasil, dokumen tidak menjalankan langkah-langkah yang tersisa kecuali `finallyStep` yang telah ditentukan.  
Tipe: String  
Nilai valid: `exit`  
Wajib: Tidak

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: Shared inputs example
parameters:
  customDocumentParameter:
    type: String
    description: Example parameter for a custom Command-type document.
mainSteps:
- action: aws:runDocument
  name: runCustomConfiguration
  inputs:
    documentType: SSMDocument
    documentPath: "yourCustomDocument"
    documentParameters: '"documentParameter":{{customDocumentParameter}}'
    onSuccess: exit
- action: aws:runDocument
  name: ifConfigurationFailure
  inputs:
    documentType: SSMDocument
    documentPath: "yourCustomRepairDocument"
    onFailure: exit
- action: aws:runDocument
  name: finalConfiguration
  inputs:
    documentType: SSMDocument
    documentPath: "yourCustomFinalDocument"
    finallyStep: true
```

------
#### [ JSON ]

```
{
   "schemaVersion": "2.2",
   "description": "Shared inputs example",
   "parameters": {
      "customDocumentParameter": {
         "type": "String",
         "description": "Example parameter for a custom Command-type document."
      }
   },
   "mainSteps":[
      {
         "action": "aws:runDocument",
         "name": "runCustomConfiguration",
         "inputs": {
            "documentType": "SSMDocument",
            "documentPath": "yourCustomDocument",
            "documentParameters": "\"documentParameter\":{{customDocumentParameter}}",
            "onSuccess": "exit"
         }
      },
      {
         "action": "aws:runDocument",
         "name": "ifConfigurationFailure",
         "inputs": {
            "documentType": "SSMDocument",
            "documentPath": "yourCustomRepairDocument",
            "onFailure": "exit"
         }
      },
      {
         "action": "aws:runDocument",
         "name":"finalConfiguration",
         "inputs": {
            "documentType": "SSMDocument",
            "documentPath": "yourCustomFinalDocument",
            "finallyStep": true
         }
      }
   ]
}
```

------

## `aws:applications`
<a name="aws-applications"></a>

Menginstal, memperbaiki, atau menghapus aplikasi pada instans EC2. Plugin ini hanya berjalan pada Sistem operasi Windows Server.

### Sintaksis
<a name="applications-syntax"></a>

#### Skema 2.2
<a name="applications-syntax-2.2"></a>

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: aws:applications plugin
parameters:
  source:
    description: "(Required) Source of msi."
    type: String
mainSteps:
- action: aws:applications
  name: example
  inputs:
    action: Install
    source: "{{ source }}"
```

------
#### [ JSON ]

```
{
  "schemaVersion":"2.2",
  "description":"aws:applications",
  "parameters":{
    "source":{
    "description":"(Required) Source of msi.",
    "type":"String"
    }
  },
  "mainSteps":[
    {
      "action":"aws:applications",
      "name":"example",
      "inputs":{
        "action":"Install",
        "source":"{{ source }}"
      }
    }
  ]
}
```

------

#### Skema 1.2
<a name="applications-syntax-1.2"></a>

------
#### [ YAML ]

```
---
runtimeConfig:
  aws:applications:
    properties:
    - id: 0.aws:applications
      action: "{{ action }}"
      parameters: "{{ parameters }}"
      source: "{{ source }}"
      sourceHash: "{{ sourceHash }}"
```

------
#### [ JSON ]

```
{
   "runtimeConfig":{
      "aws:applications":{
         "properties":[
            {
               "id":"0.aws:applications",
               "action":"{{ action }}",
               "parameters":"{{ parameters }}",
               "source":"{{ source }}",
               "sourceHash":"{{ sourceHash }}"
            }
         ]
      }
   }
}
```

------

### Sifat-sifat
<a name="applications-properties"></a>

**tindakan**  
Tindakan yang harus diambil.  
Jenis: Enum  
Nilai valid: `Install` \$1 `Repair` \$1 `Uninstall`  
Wajib: Ya

**parameter**  
Parameter untuk penginstal.  
Tipe: String  
Wajib: Tidak

**sumber**  
URL dari file `.msi` untuk aplikasi.  
Tipe: String  
Wajib: Ya

**sourceHash**  
 SHA256 Hash dari `.msi` file tersebut.  
Tipe: String  
Wajib: Tidak

## `aws:cloudWatch`
<a name="aws-cloudWatch"></a>

Ekspor data dari Windows Server ke Amazon CloudWatch atau Amazon CloudWatch Logs dan pantau data menggunakan CloudWatch metrik. Plugin ini hanya berjalan pada Sistem operasi Windows Server. *Untuk informasi selengkapnya tentang mengonfigurasi CloudWatch integrasi dengan Amazon Elastic Compute Cloud (Amazon EC2)[, lihat Mengumpulkan metrik, log, dan jejak dengan agen CloudWatch di](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html) Panduan Pengguna Amazon. CloudWatch *

**penting**  
 CloudWatch Agen terpadu telah diganti SSM Agent sebagai alat untuk mengirim data log ke Amazon CloudWatch Logs. Plugin SSM Agent AWS:CloudWatch tidak didukung. Sebaiknya gunakan hanya CloudWatch agen terpadu untuk proses pengumpulan log Anda. Untuk informasi selengkapnya, lihat topik berikut:  
[Mengirim log simpul ke CloudWatch Log terpadu (CloudWatch agen)](monitoring-cloudwatch-agent.md)
[Migrasikan koleksi log node Windows Server ke agen CloudWatch](monitoring-cloudwatch-agent.md#monitoring-cloudwatch-agent-migrate)
[Mengumpulkan metrik, log, dan jejak dengan CloudWatch agen](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html) di *Panduan CloudWatch Pengguna Amazon*.

Anda dapat mengekspor dan memantau jenis data berikut:

**ApplicationEventLog**  
Mengirim data log peristiwa aplikasi ke CloudWatch Log.

**CustomLogs**  
Mengirim file log berbasis teks apa pun ke Amazon CloudWatch Logs. CloudWatch Plugin membuat sidik jari untuk file log. Sistem kemudian menghubungkan data offset dengan setiap sidik jari. Plugin mengunggah file ketika ada perubahan, rekaman offset, dan menghubungkan offset dengan sidik jari. Metode ini digunakan untuk menghindari situasi di mana pengguna menyalakan plugin, mengaitkan layanan dengan direktori yang berisi sebagian besar file, dan sistem mengunggah semua file.  
Sadarilah bahwa jika aplikasi Anda memotong atau mencoba untuk membersihkan log selama polling, setiap log yang ditentukan untuk `LogDirectoryPath` dapat kehilangan entri. Jika, misalnya, Anda ingin membatasi ukuran file log, membuat file log baru ketika batas telah tercapai, dan kemudian melanjutkan menulis data ke file baru.

**ETW**  
Mengirim data Event Tracing untuk Windows (ETW) ke CloudWatch Log.

**IIS**  
Mengirim data log IIS ke CloudWatch Log.

**PerformanceCounter**  
Mengirim penghitung kinerja Windows ke CloudWatch. Anda dapat memilih kategori yang berbeda untuk diunggah CloudWatch sebagai metrik. Untuk setiap penghitung kinerja yang ingin Anda unggah, buat **PerformanceCounter**bagian dengan ID unik (misalnya, "PerformanceCounter2"," PerformanceCounter 3", dan seterusnya) dan konfigurasikan propertinya.  
Jika AWS Systems Manager SSM Agent atau CloudWatch plugin dihentikan, data penghitung kinerja tidak masuk CloudWatch. Perilaku ini berbeda dari log kustom atau log Peristiwa Windows. Log kustom dan log Peristiwa Windows mempertahankan data penghitung kinerja dan mengunggahnya ke CloudWatch setelah SSM Agent atau CloudWatch plugin tersedia.

**SecurityEventLog**  
Mengirim data log peristiwa keamanan ke CloudWatch Log.

**SystemEventLog**  
Mengirim data log peristiwa sistem ke CloudWatch Log.

Anda dapat menentukan tujuan untuk data berikut:

**CloudWatch**  
Tujuan pengiriman data metrik penghitung kinerja Anda. Anda dapat menambahkan lebih banyak bagian dengan unik IDs (misalnya, "CloudWatch2", CloudWatch 3", dan seterusnya), dan menentukan Wilayah yang berbeda untuk setiap ID baru untuk mengirim data yang sama ke lokasi yang berbeda.

**CloudWatchLogs**  
Tujuan dimana data log Anda dikirim. Anda dapat menambahkan lebih banyak bagian dengan unik IDs (misalnya, "CloudWatchLogs2", CloudWatchLogs 3", dan seterusnya), dan menentukan Wilayah yang berbeda untuk setiap ID baru untuk mengirim data yang sama ke lokasi yang berbeda.

### Sintaksis
<a name="cloudWatch-syntax"></a>

```
"runtimeConfig":{
        "aws:cloudWatch":{
            "settings":{
                "startType":"{{ status }}"
            },
            "properties":"{{ properties }}"
        }
    }
```

### Pengaturan dan properti
<a name="cloudWatch-properties"></a>

**AccessKey**  
Kunci akses ID Anda. Properti ini diperlukan kecuali Anda telah meluncurkan instans Anda menggunakan IAM role. Properti ini tidak dapat digunakan dengan SSM.  
Tipe: String  
Wajib: Tidak

**CategoryName**  
Kategori penghitungan kinerja dari Pemantauan kinerja.  
Tipe: String  
Diperlukan: Ya

**CounterName**  
Nama penghitung kinerja dari Pemantauan kinerja.  
Tipe: String  
Diperlukan: Ya

**CultureName**  
Lokal tempat stempel waktu dicatat. Jika **CultureName**kosong, defaultnya ke lokal yang sama yang digunakan oleh instance Anda. Windows Server  
Tipe: String  
Nilai yang benar: Untuk daftar nilai yang mendukung, lihat [National Language Support (NLS)](https://msdn.microsoft.com/en-us/library/cc233982.aspx) di situs web Microsoft. **Div**, **div-MV**, **hu**, dan **Hu-hu** nilai tidak mendukung.  
Wajib: Tidak

**DimensionName**  
Dimensi untuk CloudWatch metrik Amazon Anda. Jika Anda menentukan `DimensionName`, Anda harus menentukan `DimensionValue`. Parameter ini memberikan tampilan lain saat mendaftar metrik. Anda dapat menggunakan dimensi yang sama untuk beberapa metrik sehingga Anda dapat melihat semua metrik milik dimensi tertentu.  
Tipe: String  
Wajib: Tidak

**DimensionValue**  
Nilai dimensi untuk CloudWatch metrik Amazon Anda.  
Tipe: String  
Wajib: Tidak

**Encoding**  
File pengodean yang akan digunakan (misalnya, UTF-8). Gunakan nama pengodean, bukan nama tampilan.  
Tipe: String  
Nilai yang valid: Untuk daftar nilai yang didukung, lihat [Kelas Pengkodean](https://learn.microsoft.com/en-us/dotnet/api/system.text.encoding?view=net-7.0) di Perpustakaan Microsoft Learn.  
Wajib: Ya

**Filter**  
Prefiks nama log. Biarkan parameter ini kosong untuk memantau semua file.  
Tipe: String  
Nilai yang valid: Untuk daftar nilai yang didukung, lihat [FileSystemWatcherFilter Properti di Pustaka](http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.filter.aspx) MSDN.  
Wajib: Tidak

**Arus**  
Setiap tipe data yang akan diunggah, bersama dengan tujuan untuk data (CloudWatch atau CloudWatch Log). Misalnya, untuk mengirim penghitung kinerja yang ditentukan di bawah `"Id": "PerformanceCounter"` ke CloudWatch tujuan yang ditentukan di bawah`"Id": "CloudWatch"`, masukkan **"PerformanceCounter,CloudWatch"**. Demikian pula, untuk mengirim log kustom, log ETW, dan log sistem ke tujuan Log yang CloudWatch ditentukan di bawah`"Id": "ETW"`, masukkan **“(ETW), CloudWatchLogs**”. Selain itu, Anda dapat mengirim penghitung kinerja yang sama atau berkas log ke lebih dari satu tujuan. Misalnya, untuk mengirim log aplikasi ke dua tujuan berbeda yang Anda tentukan di bawah `"Id": "CloudWatchLogs"` dan`"Id": "CloudWatchLogs2"`, masukkan **"ApplicationEventLog, (CloudWatchLogs, CloudWatchLogs 2)”**.  
Tipe: String  
Nilai yang valid (sumber): `ApplicationEventLog` \$1 `CustomLogs` \$1 `ETW` \$1 `PerformanceCounter` \$1 `SystemEventLog` \$1 `SecurityEventLog`   
Nilai yang valid (tujuan): `CloudWatch` \$1 `CloudWatchLogs` \$1 `CloudWatch` *n* \$1 `CloudWatchLogs` *n*   
Wajib: Ya

**FullName**  
Nama lengkap pada komponen.  
Tipe: String  
Wajib: Ya

**Id**  
Mengidentifikasi sumber data atau tujuan. Pengidentifikasi ini harus unik dalam file konfigurasi.  
Tipe: String  
Diperlukan: Ya

**InstanceName**  
Nama penghitung kinerja instans. Jangan gunakan tanda bintang (\$1) untuk menunjukkan semua instans karena setiap komponen penghitung kinerja hanya mendukung satu metrik. Anda bisa, namun menggunakan **\$1Total**.  
Tipe: String  
Wajib: Ya

**Tingkat**  
Jenis pesan untuk dikirim ke Amazon CloudWatch.  
Tipe: String  
Nilai valid:   
+ **1** - Hanya pesan kesalahan yang diunggah.
+ **2** - Hanya pesan peringatan yang diunggah.
+ **4** - Hanya pesan informasi yang diunggah.
Anda dapat menambahkankan nilai-nilainya bersamaan untuk menyertakan lebih dari satu jenis pesan. Misalnya, **3** berarti bahwa pesan kesalahan (**1**) dan pesan peringatan (**2**) disertakan. Nilai dari **7** berarti bahwa pesan kesalahan (**1**), pesan peringatan (**2**), dan pesan informasi (**4**) disertakan.  
Wajib: Ya  
Log keamanan Windows harus diatur pada tingkat ke 7.

**LineCount**  
Jumlah baris di header untuk mengidentifikasi berkas log. Sebagai contoh, berkas log IIS memiliki header yang hampir identik. Anda bisa memasukkan **3**, yang akan membaca tiga baris pertama header berkas log untuk mengidentifikasinya. Dalam file log IIS, baris ketiga adalah tanggal dan stempel waktu, yang berbeda antara file log.  
Jenis: Integer  
Wajib: Tidak

**LogDirectoryPath**  
Untuk CustomLogs, jalur tempat log disimpan di instans EC2 Anda. Untuk log IIS, folder tempat log IIS disimpan untuk situs individual (misalnya, **C:\$1\$1 inetpub\$1\$1 logs\$1\$1\$1\$1** W3SVC). LogFiles *n* Untuk log IIS, hanya format log W3C yang mendukung. IIS, NCSA, dan format kustom yang tidak mendukung.   
Tipe: String  
Diperlukan: Ya

**LogGroup**  
Nama untuk grup log Anda. Nama ini ditampilkan di layar **Grup Log** di CloudWatch konsol.  
Tipe: String  
Diperlukan: Ya

**LogName**  
Nama file log.  

1. Untuk menemukan nama log, di Event Viewer, di panel navigasi, pilih **Log Aplikasi dan Layanan**.

1. Dalam daftar log, klik kanan log yang ingin Anda unggah (misalnya, `Microsoft` > > `Windows` `Backup` >`Operational`), lalu pilih **Buat Tampilan Kustom**.

1. Di **Buat Tampilan Khusus** kotak dialog, pilih **XML** tab. **LogName**Ada di tag <Select Path=> (misalnya,). `Microsoft-Windows-Backup` Salin teks ini ke dalam **LogName**parameter.
Tipe: String  
Nilai valid: `Application` \$1 `Security` \$1 `System` \$1 `Microsoft-Windows-WinINet/Analytic`  
Wajib: Ya

**LogStream**  
Pengaliran log tujuan. Jika Anda menggunakan **\$1instance\$1id\$1**, yaitu default-nya, instans ID pada instans ini digunakan sebagai nama stream log.  
Tipe: String  
Nilai yang valid: `{instance_id}` \$1 `{hostname}` \$1 `{ip_address}` *<log\$1stream\$1name>*  
Jika Anda memasukkan nama aliran log yang belum ada, CloudWatch Log secara otomatis membuatnya untuk Anda. Anda dapat menggunakan string literal atau variabel yang telah ditetapkan (**\$1instance\$1id\$1**, **\$1hostname\$1**, **\$1ip\$1address\$1**, atau kombinasi dari ketiga untuk menentukan nama pengaliran log.  
Nama aliran log yang ditentukan dalam parameter ini ditampilkan di **Grup Log > Aliran untuk *<YourLogStream>*** layar di CloudWatch konsol.  
Wajib: Ya

**MetricName**  
 CloudWatch Metrik yang Anda inginkan data kinerja disertakan di bawah.  
Jangan gunakan karakter khusus dalam nama. Jika Anda melakukannya, metrik dan alarm terkait mungkin tidak berfungsi.
Tipe: String  
Diperlukan: Ya

**NameSpace**  
Namespace metrik di mana Anda ingin penulisan data penghitungan kinerja.  
Tipe: String  
Diperlukan: Ya

**PollInterval**  
Berapa detik berlalu sebelum penghitung kinerja baru dan data log diunggah.  
Jenis: Integer  
Nilai valid: Atur ini dalam 5 detik atau lebih. Disarankan lima belas detik (00:00:15).  
Wajib: Ya

**Region**  
 Wilayah AWS Tempat Anda ingin mengirim data log. Meskipun Anda dapat mengirim penghitung kinerja ke Wilayah yang berbeda dari tempat Anda mengirim data log Anda, kami sarankan Anda menetapkan parameter ini untuk Wilayah yang sama di mana instans Anda berjalan.  
Tipe: String  
Nilai yang valid: Wilayah IDs yang Wilayah AWS didukung oleh Systems Manager dan CloudWatch Log, seperti`us-east-2`,`eu-west-1`, dan`ap-southeast-1`. Untuk daftar yang Wilayah AWS didukung oleh setiap layanan, lihat [Titik Akhir Layanan Amazon CloudWatch Logs dan titik akhir](https://docs.aws.amazon.com/general/latest/gr/cwl_region.html#cwl_region) [layanan Systems Manager](https://docs.aws.amazon.com/general/latest/gr/ssm.html#ssm_region) di. *Referensi Umum Amazon Web Services*   
Wajib: Ya

**SecretKey**  
Kunci akses rahasia Anda. Properti ini diperlukan kecuali Anda telah meluncurkan instans Anda menggunakan IAM role.  
Tipe: String  
Wajib: Tidak

**startType**  
Nyalakan atau matikan CloudWatch pada instance.  
Tipe: String  
Nilai yang valid: `Enabled` \$1 `Disabled`  
Wajib: Ya

**TimestampFormat**  
Format waktu yang ingin Anda gunakan. Untuk daftar nilai yang mendukung, lihat [Custom Date and Time Format Strings](http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx) di Perpustakaan MSDN.  
Tipe: String  
Diperlukan: Ya

**TimeZoneKind**  
Memberikan informasi zona waktu ketika tidak ada informasi zona waktu yang disertakan dalam stempel waktu log Anda. Jika parameter ini dibiarkan kosong dan jika stempel waktu Anda tidak menyertakan informasi zona waktu, CloudWatch Log default ke zona waktu lokal. Parameter ini diabaikan jika stempel waktu Anda sudah berisi informasi zona waktu.  
Tipe: String  
Nilai yang valid: `Local` \$1 `UTC`  
Wajib: Tidak

**Unit**  
Unit pengukuran yang tepat untuk metrik.  
Tipe: String  
Nilai yang valid: Detik \$1 Mikrodetik \$1 Milidetik \$1 Byte \$1 Kilobyte \$1 Megabyte \$1 Gigabyte \$1 Terabyte \$1 Bit \$1 Kilobit \$1 Megabit \$1 Gigabit \$1 Terabit \$1 Persen \$1 Hitungan \$1 \$1 \$1 \$1 \$1 \$1 \$1 \$1 Bytes/Second Kilobytes/Second Megabytes/Second Gigabytes/Second Terabytes/Second Bits/Second Kilobits/Second Megabits/Second Gigabits/Second Terabits/Second Count/Second   
Wajib: Ya

## `aws:configureDocker`
<a name="aws-configuredocker"></a>

(Skema versi 2.0 atau yang lebih baru) Mengkonfigurasi instans untuk bekerja dengan kontainer dan Docker. Plugin ini didukung pada sebagian besar varian Linux dan sistem Windows Server operasi.

### Sintaksis
<a name="configuredocker-syntax"></a>

#### Skema 2.2
<a name="configuredocker-syntax-2.2"></a>

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: aws:configureDocker
parameters:
  action:
    description: "(Required) The type of action to perform."
    type: String
    default: Install
    allowedValues:
    - Install
    - Uninstall
mainSteps:
- action: aws:configureDocker
  name: configureDocker
  inputs:
    action: "{{ action }}"
```

------
#### [ JSON ]

```
{
  "schemaVersion": "2.2",
  "description": "aws:configureDocker plugin",
  "parameters": {
    "action": {
      "description": "(Required) The type of action to perform.",
      "type": "String",
      "default": "Install",
      "allowedValues": [
        "Install",
        "Uninstall"
      ]
    }
  },
  "mainSteps": [
    {
      "action": "aws:configureDocker",
      "name": "configureDocker",
      "inputs": {
        "action": "{{ action }}"
      }
    }
  ]
}
```

------

### Masukan
<a name="configuredocker-properties"></a>

**tindakan**  
Jenis tindakan yang harus dilakukan.  
Jenis: Enum  
Nilai valid: `Install` \$1 `Uninstall`  
Wajib: Ya

## `aws:configurePackage`
<a name="aws-configurepackage"></a>

(Skema versi 2.0 atau yang lebih baru) Instal atau hapus instalan paket. AWS Systems Manager Distributor Anda dapat menginstal versi terbaru, versi default, atau versi paket yang Anda tentukan. Paket yang AWS disediakan juga didukung. Plugin ini menjalankan Windows Server dan sistem operasi Linux, namun tidak semua paket yang tersedia didukung pada sistem operasi Linux.

 AWS Paket yang tersedia untuk Windows Server meliputi:`AWSPVDriver`,,`AWSNVMe`,`AwsEnaNetworkDriver`,`AwsVssComponents`,`AmazonCloudWatchAgent`,`CodeDeployAgent`, dan `AWSSupport-EC2Rescue.`

 AWS Paket yang tersedia untuk sistem operasi Linux meliputi:`AmazonCloudWatchAgent`,`CodeDeployAgent`, dan`AWSSupport-EC2Rescue`.

### Sintaksis
<a name="configurepackage-syntax"></a>

#### Skema 2.2
<a name="configurepackage-syntax-2.2"></a>

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: aws:configurePackage
parameters:
  name:
    description: "(Required) The name of the AWS package to install or uninstall."
    type: String
  action:
    description: "(Required) The type of action to perform."
    type: String
    default: Install
    allowedValues:
    - Install
    - Uninstall
  ssmParameter:
    description: "(Required) Argument stored in Parameter Store."
    type: String
    default: "{{ ssm:parameter_store_arg }}"
mainSteps:
- action: aws:configurePackage
  name: configurePackage
  inputs:
    name: "{{ name }}"
    action: "{{ action }}"
    additionalArguments: 
      "{\"SSM_parameter_store_arg\": \"{{ ssmParameter }}\", \"SSM_custom_arg\": \"myValue\"}"
```

------
#### [ JSON ]

```
{
   "schemaVersion": "2.2",
   "description": "aws:configurePackage",
   "parameters": {
      "name": {
         "description": "(Required) The name of the AWS package to install or uninstall.",
         "type": "String"
      },
      "action": {
         "description": "(Required) The type of action to perform.",
         "type": "String",
         "default": "Install",
         "allowedValues": [
            "Install",
            "Uninstall"
         ]
      },
      "ssmParameter": {
         "description": "(Required) Argument stored in Parameter Store.",
         "type": "String",
         "default": "{{ ssm:parameter_store_arg }}"
      }
   },
   "mainSteps": [
      {
         "action": "aws:configurePackage",
         "name": "configurePackage",
         "inputs": {
            "name": "{{ name }}",
            "action": "{{ action }}",
            "additionalArguments": "{\"SSM_parameter_store_arg\": \"{{ ssmParameter }}\", \"SSM_custom_arg\": \"myValue\"}"
         }
      }
   ]
}
```

------

### Masukan
<a name="configurepackage-properties"></a>

**name**  
Nama AWS paket untuk menginstal atau menghapus instalasi. Paket-paket yang tersedia meliputi: `AWSPVDriver`, `AwsEnaNetworkDriver`, `AwsVssComponents`, dan `AmazonCloudWatchAgent`.  
Tipe: String  
Wajib: Ya

**tindakan**  
Menginstal atau menghapus paket.  
Jenis: Enum  
Nilai valid: `Install` \$1 `Uninstall`  
Wajib: Ya

**installationType**  
Jenis instalasi untuk menjalankan. Jika Anda menentukan `Uninstall and reinstall`, paket benar-benar dihapus, dan kemudian diinstal ulang. Aplikasi ini tidak tersedia sampai penginstalan ulang selesai. Jika Anda menentukan `In-place update`, hanya file baru atau diubah yang ditambahkan ke instalasi yang ada sesuai dengan petunjuk yang Anda berikan dalam skrip pembaruan. Aplikasi tetap tersedia selama proses pembaruan. `In-place update`Opsi ini tidak didukung untuk paket AWS-published. `Uninstall and reinstall`adalah nilai default.  
Jenis: Enum  
Nilai valid: `Uninstall and reinstall` \$1 `In-place update`  
Wajib: Tidak

**additionalArguments**  
String JSON dari parameter tambahan yang akan disediakan untuk menginstal, menghapus instalasi, atau memperbarui skrip Anda. Setiap parameter harus diawali dengan `SSM_`. Anda dapat mereferensikan Parameter Store parameter dalam argumen tambahan Anda dengan menggunakan konvensi`{{ssm:parameter-name}}`. Untuk menggunakan parameter tambahan dalam skrip install, uninstall, atau update, referensi parameter Anda harus sebagai variabel lingkungan menggunakan sintaks yang sesuai untuk sistem operasi. Misalnya, di PowerShell, Anda mereferensikan `SSM_arg` argumen sebagai`$Env:SSM_arg`. Tidak ada batas jumlah argumen yang Anda tentukan, tetapi input argumen tambahan memiliki batas karakter 4096. Batas ini mencakup semua kunci dan nilai yang Anda tentukan.  
Jenis: StringMap  
Wajib: Tidak

**versi**  
Versi tertentu dari paket untuk menginstal atau menghapus instalasi. Jika memasang, sistem memasang versi terbaru yang diterbitkan, secara default. Jika menghapus instalasi, sistem menghapus instalasi versi yang dipasang pada masa ini, secara default. Jika tidak ada versi yang diinstal ditemukan, versi terbaru yang dipublikasi telah diunduh, dan tindakan uninstall dijalankan.  
Tipe: String  
Wajib: Tidak

## `aws:domainJoin`
<a name="aws-domainJoin"></a>

Bergabung dengan instans EC2 untuk domain. Plugin ini berjalan di Linux dan Sistem operasi Windows Server. Plugin ini mengubah nama host untuk instance Linux ke format EC2 AMAZ-. *XXXXXXX* *Untuk informasi selengkapnya tentang bergabung dengan instans EC2, lihat [Menggabungkan Instans EC2 ke Direktori AWS Microsoft AD Terkelola Anda di Panduan](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_join_instance.html) Administrasi AWS Directory Service .*

### Sintaksis
<a name="domainJoin-syntax"></a>

#### Skema 2.2
<a name="domainJoin-syntax-2.2"></a>

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: aws:domainJoin
parameters:
  directoryId:
    description: "(Required) The ID of the directory."
    type: String
  directoryName:
    description: "(Required) The name of the domain."
    type: String
  directoryOU:
    description: "(Optional) The organizational unit to assign the computer object to."
    type: String
  dnsIpAddresses:
    description: "(Required) The IP addresses of the DNS servers for your directory."
    type: StringList
  hostname:
    description: "(Optional) The hostname you want to assign to the node."
    type: String
mainSteps:
- action: aws:domainJoin
  name: domainJoin
  inputs:
    directoryId: "{{ directoryId }}"
    directoryName: "{{ directoryName }}"
    directoryOU: "{{ directoryOU }}"
    dnsIpAddresses: "{{ dnsIpAddresses }}"
    hostname: "{{ hostname }}"
```

------
#### [ JSON ]

```
{
  "schemaVersion": "2.2",
  "description": "aws:domainJoin",
  "parameters": {
    "directoryId": {
      "description": "(Required) The ID of the directory.",
      "type": "String"
    },
    "directoryName": {
      "description": "(Required) The name of the domain.",
      "type": "String"
    },
    "directoryOU": {
        "description": "(Optional) The organizational unit to assign the computer object to.",
        "type": "String"
      },
    "dnsIpAddresses": {
      "description": "(Required) The IP addresses of the DNS servers for your directory.",
      "type": "StringList"
    },
    "hostname": {
        "description": "(Optional) The hostname you want to assign to the node.",
        "type": "String"
      }
  },
  "mainSteps": [
    {
      "action": "aws:domainJoin",
      "name": "domainJoin",
      "inputs": {
        "directoryId": "{{ directoryId }}",
        "directoryName": "{{ directoryName }}",
        "directoryOU":"{{ directoryOU }}",
        "dnsIpAddresses":"{{ dnsIpAddresses }}",
        "hostname":"{{ hostname }}"
      }
    }
  ]
}
```

------

#### Skema 1.2
<a name="domainJoin-syntax-1.2"></a>

------
#### [ YAML ]

```
---
runtimeConfig:
  aws:domainJoin:
    properties:
      directoryId: "{{ directoryId }}"
      directoryName: "{{ directoryName }}"
      directoryOU: "{{ directoryOU }}"
      dnsIpAddresses: "{{ dnsIpAddresses }}"
```

------
#### [ JSON ]

```
{
   "runtimeConfig":{
      "aws:domainJoin":{
         "properties":{
            "directoryId":"{{ directoryId }}",
            "directoryName":"{{ directoryName }}",
            "directoryOU":"{{ directoryOU }}",
            "dnsIpAddresses":"{{ dnsIpAddresses }}"
         }
      }
   }
}
```

------

### Sifat-sifat
<a name="domainJoin-properties"></a>

**directoryId**  
ID direktori.  
Tipe: String  
Wajib: Ya  
Contoh: "directoryId": "d-1234567890"

**directoryName**  
Nama domain.  
Tipe: String  
Wajib: Ya  
Contoh: "directoryName": "example.com"

**directoryOU**  
Unit organisasi (OU).  
Tipe: String  
Wajib: Tidak  
Contoh: "directoryOU": "OU=test,DC=example,DC=com"

**dnsIpAddresses**  
Alamat IP dari server DNS.  
Jenis: StringList  
Wajib: Ya  
Contoh: "dnsIpAddresses“: [" 198.51.100.1", "198.51.100.2"]

**hostname**  
Nama host yang ingin Anda tetapkan ke node. Jika tidak disediakan, tidak ada perubahan nama untuk Windows Server instance, sedangkan instance Linux akan menggunakan pola penamaan default. Jika disediakan, Windows Server instance akan menggunakan nilai yang diberikan persis, sedangkan untuk instance Linux berfungsi sebagai awalan (kecuali `keepHostName` disetel ke “true”).  
Tipe: String  
Wajib: Tidak

**keepHostName**  
Menentukan apakah nama host diubah untuk instance Linux saat bergabung ke domain. Ini adalah parameter khusus Linux. Secara default (tanpa input ke`hostname`,`hostnameNumAppendDigits`, dan dengan `keepHostName` sebagai “false”), host Linux akan diganti namanya menjadi pola EC2 AMAZ-XXXXXX. Ketika disetel ke “true”, itu menyimpan nama host asli dan mengabaikan input ke dan. `hostname` `hostnameNumAppendDigits`  
Tipe: Boolean  
Wajib: Tidak

**hostnameNumAppendDigit**  
Mendefinisikan jumlah digit numerik acak untuk ditambahkan setelah nilai hostname. Ini adalah parameter khusus Linux dan digunakan bersama dengan parameter. `hostname` Itu diabaikan jika `hostname` tidak disediakan.  
Tipe: String  
Nilai yang diizinkan: 1 hingga 5  
Wajib: Tidak

### Contoh
<a name="domainJoin-examples"></a>

Sebagai contoh, lihat [Menggabungkan Instans Amazon EC2 ke AWS Managed Microsoft AD dalam Panduan AWS Directory Service](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ec2-join-aws-domain.html) *Administrasi*.

## `aws:downloadContent`
<a name="aws-downloadContent"></a>

(Skema versi 2.0 atau yang lebih baru) Unduh dokumen dan skrip SSM dari lokasi terpencil. GitHub Enterpriserepositori tidak didukung. Plugin ini didukung oleh Linux dan Sistem operasi Windows Server.

### Sintaksis
<a name="downloadContent-syntax"></a>

#### Skema 2.2
<a name="downloadContent-syntax-2.2"></a>

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: aws:downloadContent
parameters:
  sourceType:
    description: "(Required) The download source."
    type: String
  sourceInfo:
    description: "(Required) The information required to retrieve the content from
      the required source."
    type: StringMap
mainSteps:
- action: aws:downloadContent
  name: downloadContent
  inputs:
    sourceType: "{{ sourceType }}"
    sourceInfo: "{{ sourceInfo }}"
```

------
#### [ JSON ]

```
{
  "schemaVersion": "2.2",
  "description": "aws:downloadContent",
  "parameters": {
    "sourceType": {
    "description": "(Required) The download source.",
    "type": "String"
  },
  "sourceInfo": {
    "description": "(Required) The information required to retrieve the content from the required source.",
    "type": "StringMap"
    }
  },
  "mainSteps": [
    {
      "action": "aws:downloadContent",
      "name": "downloadContent",
      "inputs": {
        "sourceType":"{{ sourceType }}",
        "sourceInfo":"{{ sourceInfo }}"
      }
    }
  ]
}
```

------

### Masukan
<a name="downloadContent-inputs"></a>

**sourceType**  
Sumber unduhan. Systems Manager mendukung jenis sumber berikut untuk men-download skrip dan dokumen SSM: `GitHub`, `Git`, `HTTP`, `S3`, dan `SSMDocument`.  
Tipe: String  
Wajib: Ya

**sourceInfo**  
Informasi yang diperlukan untuk mengambil konten dari sumber yang diperlukan.  
Jenis: StringMap  
Wajib: Ya  
 **Untuk SourceType tentukan yang `GitHub,` berikut:**   
+ owner: Pemilik repositori.
+ repositori: Nama repositori.
+ jalur: Jalur ke file atau direktori yang ingin Anda unduh.
+ getOptions: Pilihan tambahan untuk mengambil konten dari cabang selain cabang utama atau dengan komit repositori tertentu. getOptions dapat dihilangkan jika Anda menggunakan komit terbaru di cabang utama. Jika repositori Anda dibuat setelah 1 Oktober 2020 cabang default mungkin diberi nama main (utama) dan bukan master (utama). Dalam hal ini, Anda perlu menentukan nilai untuk parameter GetOptions.

  Parameter ini menggunakan format berikut:
  + cabang: refs/kepala/*branch\$1name*

    Nilai default-nya `master`.

    Untuk menentukan cabang non-default gunakan format berikut:

    cabang: refs/kepala/*branch\$1name*
  + CommitiD: *commitID*

    Nilai default-nya `head`.

    Untuk menggunakan versi dokumen SSM Anda di komit selain yang terbaru, tentukan ID komit penuh. Contoh:

    ```
    "getOptions": "commitID:bbc1ddb94...b76d3bEXAMPLE",
    ```
+ TokenInfo: Parameter Systems Manager ( SecureStringparameter) tempat Anda menyimpan informasi token akses GitHub Anda, dalam format. `{{ssm-secure:secure-string-token-name}}`
**catatan**  
`tokenInfo`Bidang ini adalah satu-satunya bidang plugin dokumen SSM yang mendukung SecureString parameter. SecureString parameter tidak didukung untuk bidang lain, atau untuk plugin dokumen SSM lainnya.

```
{
    "owner":"TestUser",
    "repository":"GitHubTest",
    "path":"scripts/python/test-script",
    "getOptions":"branch:master",
    "tokenInfo":"{{ssm-secure:secure-string-token}}"
}
```
 **Untuk SourceType, Anda `Git` harus menentukan yang berikut ini:**   
+ repositori

  URL repositori Git ke file atau direktori yang ingin Anda unduh.

  Tipe: String
Selain itu, Anda dapat menentukan parameter opsional berikut:  
+ GetOptions

  Pilihan tambahan untuk mengambil konten dari cabang selain cabang utaman atau dari komit tertentu dalam repositori. GetOptions dapat dihilangkan jika Anda menggunakan komit terbaru di cabang utama.

  Tipe: String

  Parameter ini menggunakan format berikut:
  + cabang: refs/kepala/*branch\$1name*

    Nilai default-nya `master`.

    `"branch"` diperlukan hanya jika dokumen SSM Anda disimpan di cabang selain `master`. Contoh:

    ```
    "getOptions": "branch:refs/heads/main"
    ```
  + CommitiD: *commitID*

    Nilai default-nya `head`.

    Untuk menggunakan versi dokumen SSM Anda di komit selain yang terbaru, tentukan ID komit penuh. Contoh:

    ```
    "getOptions": "commitID:bbc1ddb94...b76d3bEXAMPLE",
    ```
+ pribadi SSHKey

  Kunci SSH untuk digunakan saat menghubungkan ke `repository` yang Anda tentukan. Anda dapat menggunakan format berikut untuk referensi parameter `SecureString` pada nilai kunci SSH Anda: `{{ssm-secure:your-secure-string-parameter}}`.

  Tipe: String
+ skipHostKeyMemeriksa

  Menentukan nilai StrictHostKeyChecking opsi saat menghubungkan ke yang `repository` Anda tentukan. Nilai default-nya adalah `false`.

  Jenis: Boolean
+ nama pengguna

  Nama pengguna yang digunakan saat menghubungkan ke `repository` yang Anda tentukan menggunakan HTTP. Anda dapat menggunakan format berikut untuk referensi parameter `SecureString` untuk nilai nama pengguna Anda: `{{ssm-secure:your-secure-string-parameter}}`.

  Tipe: String
+ Kata sandi

  Kata sandi digunakan saat menghubungkan ke `repository` yang Anda tentukan menggunakan HTTP. Anda dapat menggunakan format berikut untuk referensi parameter `SecureString` untuk nilai kata sandi Anda: `{{ssm-secure:your-secure-string-parameter}}`.

  Tipe: String
 **Untuk SourceType, Anda `HTTP` harus menentukan yang berikut ini:**   
+ url

  URL ke file atau direktori yang ingin Anda unduh.

  Tipe: String
Selain itu, Anda dapat menentukan parameter opsional berikut:  
+ allowInsecureDownload

  Tentukan apakah unduhan dapat dilakukan melalui sambungan yang tidak dienkripsi dengan Secure Socket Layer (SSL) atau Transport Layer (TLS). Nilai default-nya adalah `false`. Kami tidak menyarankan untuk melakukan unduhan tanpa enkripsi. Jika Anda memilih untuk melakukannya, Anda menanggung semua risiko yang berkaitan. Keamanan adalah tanggung jawab bersama antara Anda AWS dan Anda. Hal ini digambarkan sebagai model tanggung jawab bersama. Untuk mempelajari informasi lebih lanjut, lihat [Model tanggung jawab bersama](https://aws.amazon.com/compliance/shared-responsibility-model/).

  Jenis: Boolean
+ authMethod

  Tentukan apakah nama pengguna dan kata sandi yang digunakan untuk otentikasi saat menghubungkan ke `url` yang Anda tentukan. Jika Anda menentukan `Basic` atau `Digest`, Anda harus memberikan nilai untuk parameter `username` dan `password`. Untuk menggunakan `Digest` metode ini, SSM Agent versi 3.0.1181.0 atau yang lebih baru harus diinstal pada instance Anda. `Digest`Metode ini mendukung MD5 dan SHA256 enkripsi.

  Tipe: String

  Nilai valid: `None` \$1 `Basic` \$1 `Digest`
+ nama pengguna

  Nama pengguna yang digunakan saat menghubungkan ke `url` yang anda tentukan menggunakan Autentikasi `Basic`. Anda dapat menggunakan format berikut untuk referensi parameter `SecureString` untuk nilai nama pengguna Anda: `{{ssm-secure:your-secure-string-parameter}}`.

  Tipe: String
+ Kata sandi

  Kata sandi untuk digunakan saat menghubungkan ke `url` yang anda tentukan menggunakan Autentikasi `Basic`. Anda dapat menggunakan format berikut untuk referensi parameter `SecureString` untuk nilai kata sandi Anda: `{{ssm-secure:your-secure-string-parameter}}`.

  Tipe: String
 **Untuk SourceType, `S3` tentukan yang berikut ini:**   
+ jalur: URL ke file atau direktori yang ingin Anda unduh dari Amazon S3.
Saat mengunduh file dari bucket S3, file.etag dihasilkan di direktori unduhan.

```
{
    "path": "https://s3.amazonaws.com/amzn-s3-demo-bucket/powershell/helloPowershell.ps1" 
}
```
 ***Untuk SourceType, `SSMDocument` tentukan salah satu dari berikut ini:***   
+ Nama: Nama dan versi dokumen dalam format berikut: `name:version`. Versi adalah opsional. 

  ```
  {
      "name": "Example-RunPowerShellScript:3" 
  }
  ```
+ Nama: ARN untuk dokumen dalam format berikut: `arn:aws:ssm:region:account_id:document/document_name`

  ```
  {
     "name":"arn:aws:ssm:us-east-2:3344556677:document/MySharedDoc"
  }
  ```

**destinationPath**  
Jalur lokal opsional instans ada ditempat Anda ingin mengunduh file. Jika Anda tidak menentukan jalurnya, konten diunduh ke jalur relatif pada ID perintah Anda.  
Tipe: String  
Wajib: Tidak

## `aws:psModule`
<a name="aws-psModule"></a>

Instal PowerShell modul pada instans Amazon EC2. Plugin ini hanya berjalan pada Sistem operasi Windows Server.

### Sintaksis
<a name="psModule-syntax"></a>

#### Skema 2.2
<a name="psModule-syntax-2.2"></a>

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: aws:psModule
parameters:
  source:
    description: "(Required) The URL or local path on the instance to the application
      .zip file."
    type: String
mainSteps:
- action: aws:psModule
  name: psModule
  inputs:
    source: "{{ source }}"
```

------
#### [ JSON ]

```
{
  "schemaVersion": "2.2",
  "description": "aws:psModule",
  "parameters": {
    "source": {
      "description": "(Required) The URL or local path on the instance to the application .zip file.",
      "type": "String"
    }
  },
  "mainSteps": [
    {
      "action": "aws:psModule",
      "name": "psModule",
      "inputs": {
        "source": "{{ source }}"
      }
    }
  ]
}
```

------

#### Skema 1.2
<a name="domainJoin-syntax-1.2"></a>

------
#### [ YAML ]

```
---
runtimeConfig:
  aws:psModule:
    properties:
    - runCommand: "{{ commands }}"
      source: "{{ source }}"
      sourceHash: "{{ sourceHash }}"
      workingDirectory: "{{ workingDirectory }}"
      timeoutSeconds: "{{ executionTimeout }}"
```

------
#### [ JSON ]

```
{
   "runtimeConfig":{
      "aws:psModule":{
         "properties":[
            {
               "runCommand":"{{ commands }}",
               "source":"{{ source }}",
               "sourceHash":"{{ sourceHash }}",
               "workingDirectory":"{{ workingDirectory }}",
               "timeoutSeconds":"{{ executionTimeout }}"
            }
         ]
      }
   }
}
```

------

### Sifat-sifat
<a name="psModule-properties"></a>

**runCommand**  
 PowerShell Perintah untuk menjalankan setelah modul diinstal.  
Jenis: StringList  
Wajib: Tidak

**sumber**  
URL atau jalur lokal pada instans untuk aplikasi file `.zip`.  
Tipe: String  
Wajib: Ya

**sourceHash**  
 SHA256 Hash dari `.zip` file tersebut.  
Tipe: String  
Wajib: Tidak

**timeoutSeconds**  
Waktu dalam detik untuk perintah yang harus diselesaikan sebelum dianggap telah gagal.  
Tipe: String  
Wajib: Tidak

**workingDirectory**  
Jalur direktori kerja pada instans Anda.  
Tipe: String  
Wajib: Tidak

## `aws:refreshAssociation`
<a name="aws-refreshassociation"></a>

(Skema versi 2.0 atau yang terbaru) Segarkan (berlaku paksa) sebuah asosiasi sesuai permintaan. Tindakan ini akan mengubah status sistem berdasarkan pada apa yang ditentukan dalam asosiasi yang dipilih atau semua asosiasi yang terikat pada target. Plugin ini berjalan pada Sistem operasi Linux dan Microsoft Windows Server.

### Sintaksis
<a name="refreshassociation-syntax"></a>

#### Skema 2.2
<a name="refreshassociation-syntax-2.2"></a>

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: aws:refreshAssociation
parameters:
  associationIds:
    description: "(Optional) List of association IDs. If empty, all associations bound
      to the specified target are applied."
    type: StringList
mainSteps:
- action: aws:refreshAssociation
  name: refreshAssociation
  inputs:
    associationIds:
    - "{{ associationIds }}"
```

------
#### [ JSON ]

```
{
  "schemaVersion": "2.2",
  "description": "aws:refreshAssociation",
  "parameters": {
    "associationIds": {
      "description": "(Optional) List of association IDs. If empty, all associations bound to the specified target are applied.",
      "type": "StringList"
    }
  },
  "mainSteps": [
    {
      "action": "aws:refreshAssociation",
      "name": "refreshAssociation",
      "inputs": {
        "associationIds": [
          "{{ associationIds }}"
        ]
      }
    }
  ]
}
```

------

### Masukan
<a name="refreshassociation-properties"></a>

**associationIds**  
Daftar asosiasi IDs. Jika kosong, semua asosiasi yang berhubungan dengan target yang ditentukan telah diterapkan.  
Jenis: StringList  
Wajib: Tidak

## `aws:runDockerAction`
<a name="aws-rundockeraction"></a>

(Skema versi 2.0 atau yang terbaru) Menjalankan tindakan Docker pada kontainer. Plugin ini berjalan pada Sistem operasi Linux dan Microsoft Windows Server.

### Sintaksis
<a name="rundockeraction-syntax"></a>

#### Skema 2.2
<a name="rundockeraction-syntax-2.2"></a>

------
#### [ YAML ]

```
---
mainSteps:
- action: aws:runDockerAction
  name: RunDockerAction
  inputs:
    action: "{{ action }}"
    container: "{{ container }}"
    image: "{{ image }}"
    memory: "{{ memory }}"
    cpuShares: "{{ cpuShares }}"
    volume: "{{ volume }}"
    cmd: "{{ cmd }}"
    env: "{{ env }}"
    user: "{{ user }}"
    publish: "{{ publish }}"
    workingDirectory: "{{ workingDirectory }}"
    timeoutSeconds: "{{ timeoutSeconds }}"
```

------
#### [ JSON ]

```
{
   "mainSteps":[
      {
         "action":"aws:runDockerAction",
         "name":"RunDockerAction",
         "inputs":{
            "action":"{{ action }}",
            "container":"{{ container }}",
            "image":"{{ image }}",
            "memory":"{{ memory }}",
            "cpuShares":"{{ cpuShares }}",
            "volume":"{{ volume }}",
            "cmd":"{{ cmd }}",
            "env":"{{ env }}",
            "user":"{{ user }}",
            "publish":"{{ publish }}",
            "workingDirectory": "{{ workingDirectory }}",
            "timeoutSeconds": "{{ timeoutSeconds }}"
         }
      }
   ]
}
```

------

### Masukan
<a name="rundockeraction-properties"></a>

**tindakan**  
Jenis tindakan yang harus dilakukan.  
Tipe: String  
Wajib: Ya

**kontainer**  
ID kontainer Docker.  
Tipe: String  
Wajib: Tidak

**image**  
Nama gambar Docker.  
Tipe: String  
Wajib: Tidak

**cmd**  
Perintah kontainer.  
Tipe: String  
Wajib: Tidak

**memori**  
Batas memori kontainer.  
Tipe: String  
Wajib: Tidak

**cpuShares**  
Pembagian CPU kontainer (berat relatif).  
Tipe: String  
Wajib: Tidak

**volume**  
Pemasangan volume kontainer.  
Jenis: StringList  
Wajib: Tidak

**env**  
Variabel lingkungan kontainer.  
Tipe: String  
Wajib: Tidak

**pengguna**  
Nama pengguna kontainer.  
Tipe: String  
Wajib: Tidak

**menerbitkan**  
Port kontainer diterbitkan.  
Tipe: String  
Wajib: Tidak

**workingDirectory**  
Jalur ke direktori kerja pada node terkelola Anda.  
Tipe: String  
Wajib: Tidak

**timeoutSeconds**  
Waktu dalam detik untuk perintah yang harus diselesaikan sebelum dianggap telah gagal.  
Tipe: String  
Wajib: Tidak

## `aws:runDocument`
<a name="aws-rundocument"></a>

(Skema versi 2.0 atau yang terbaru) Menjalankan dokumen SSM yang disimpan di Systems Manager atau pada berbagi lokal. Anda dapat menggunakan plugin ini dengan plugin [`aws:downloadContent`](#aws-downloadContent) untuk mengunduh dokumen SSM dari lokasi jarak jauh untuk berbagi lokal, dan kemudian jalankannya. Plugin ini didukung oleh Linux dan Sistem operasi Windows Server. Plugin ini tidak mendukung menjalankan `AWS-UpdateSSMAgent` dokumen atau dokumen apa pun yang menggunakan `aws:updateSsmAgent` plugin.

### Sintaksis
<a name="rundocument-syntax"></a>

#### Skema 2.2
<a name="aws-rundocument-syntax-2.2"></a>

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: aws:runDocument
parameters:
  documentType:
    description: "(Required) The document type to run."
    type: String
    allowedValues:
    - LocalPath
    - SSMDocument
mainSteps:
- action: aws:runDocument
  name: runDocument
  inputs:
    documentType: "{{ documentType }}"
```

------
#### [ JSON ]

```
{
  "schemaVersion": "2.2",
  "description": "aws:runDocument",
  "parameters": {
    "documentType": {
      "description": "(Required) The document type to run.",
      "type": "String",
      "allowedValues": [
        "LocalPath",
        "SSMDocument"
      ]
    }
  },
  "mainSteps": [
    {
      "action": "aws:runDocument",
      "name": "runDocument",
      "inputs": {
        "documentType": "{{ documentType }}"
      }
    }
  ]
}
```

------

### Masukan
<a name="rundocument-properties"></a>

**documentType**  
Jenis dokumen untuk dijalankan. Anda dapat menjalankan dokumen lokal (`LocalPath`) atau dokumen yang disimpan dalam Systems Manager (`SSMDocument`).  
Tipe: String  
Wajib: Ya

**documentPath**  
Jalur ke dokumen. Jika `documentType` adalah `LocalPath`, kemudian tentukan jalur ke dokumen pada berbagi lokal. Jika `documentType` adalah `SSMDocument`, kemudian tentukan nama dokumen.  
Tipe: String  
Wajib: Tidak

**documentParameters**  
Parameter untuk dokumen.  
Jenis: StringMap  
Wajib: Tidak

## `aws:runPowerShellScript`
<a name="aws-runPowerShellScript"></a>

Jalankan PowerShell skrip atau tentukan jalur ke skrip yang akan dijalankan. Plugin ini berjalan pada Microsoft Windows Server dan sistem operasi Linux.

### Sintaksis
<a name="runPowerShellScript-syntax"></a>

#### Skema 2.2
<a name="runPowerShellScript-syntax-2.2"></a>

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: aws:runPowerShellScript
parameters:
  commands:
    type: String
    description: "(Required) The commands to run or the path to an existing script
      on the instance."
    default: Write-Host "Hello World"
mainSteps:
- action: aws:runPowerShellScript
  name: runPowerShellScript
  inputs:
    timeoutSeconds: '60'
    runCommand:
    - "{{ commands }}"
```

------
#### [ JSON ]

```
{
  "schemaVersion": "2.2",
  "description": "aws:runPowerShellScript",
  "parameters": {
    "commands": {
      "type": "String",
      "description": "(Required) The commands to run or the path to an existing script on the instance.",
      "default": "Write-Host \"Hello World\""
    }
  },
  "mainSteps": [
    {
      "action": "aws:runPowerShellScript",
      "name": "runPowerShellScript",
      "inputs": {
        "timeoutSeconds": "60",
        "runCommand": [
          "{{ commands }}"
        ]
      }
    }
  ]
}
```

------

#### Skema 1.2
<a name="runPowerShellScript-syntax-1.2"></a>

------
#### [ YAML ]

```
---
runtimeConfig:
  aws:runPowerShellScript:
    properties:
    - id: 0.aws:runPowerShellScript
      runCommand: "{{ commands }}"
      workingDirectory: "{{ workingDirectory }}"
      timeoutSeconds: "{{ executionTimeout }}"
```

------
#### [ JSON ]

```
{
   "runtimeConfig":{
      "aws:runPowerShellScript":{
         "properties":[
            {
               "id":"0.aws:runPowerShellScript",
               "runCommand":"{{ commands }}",
               "workingDirectory":"{{ workingDirectory }}",
               "timeoutSeconds":"{{ executionTimeout }}"
            }
         ]
      }
   }
}
```

------

### Sifat-sifat
<a name="runPowerShellScript-properties"></a>

**runCommand**  
Tentukan perintah untuk menjalankan atau jalur skrip yang ada pada instans.  
Jenis: StringList  
Wajib: Ya

**timeoutSeconds**  
Waktu dalam detik untuk perintah yang harus diselesaikan sebelum dianggap telah gagal. Ketika batas waktu tercapai, Systems Manager berhenti mengeksekusi perintah.  
Tipe: String  
Wajib: Tidak

**workingDirectory**  
Jalur direktori kerja pada instans Anda.  
Tipe: String  
Wajib: Tidak

## `aws:runShellScript`
<a name="aws-runShellScript"></a>

Jalankan skrip shell Linux atau tentukan jalur untuk menjalankan skrip. Plugin ini hanya berjalan pada sistem operasi Linux.

### Sintaksis
<a name="runShellScript-syntax"></a>

#### Skema 2.2
<a name="runShellScript-syntax-2.2"></a>

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: aws:runShellScript
parameters:
  commands:
    type: String
    description: "(Required) The commands to run or the path to an existing script
      on the instance."
    default: echo Hello World
mainSteps:
- action: aws:runShellScript
  name: runShellScript
  inputs:
    timeoutSeconds: '60'
    runCommand:
    - "{{ commands }}"
```

------
#### [ JSON ]

```
{
  "schemaVersion": "2.2",
  "description": "aws:runShellScript",
  "parameters": {
    "commands": {
      "type": "String",
      "description": "(Required) The commands to run or the path to an existing script on the instance.",
      "default": "echo Hello World"
    }
  },
  "mainSteps": [
    {
      "action": "aws:runShellScript",
      "name": "runShellScript",
      "inputs": {
        "timeoutSeconds": "60",
        "runCommand": [
          "{{ commands }}"
        ]
      }
    }
  ]
}
```

------

#### Skema 1.2
<a name="runShellScript-syntax-1.2"></a>

------
#### [ YAML ]

```
---
runtimeConfig:
  aws:runShellScript:
    properties:
    - runCommand: "{{ commands }}"
      workingDirectory: "{{ workingDirectory }}"
      timeoutSeconds: "{{ executionTimeout }}"
```

------
#### [ JSON ]

```
{
   "runtimeConfig":{
      "aws:runShellScript":{
         "properties":[
            {
               "runCommand":"{{ commands }}",
               "workingDirectory":"{{ workingDirectory }}",
               "timeoutSeconds":"{{ executionTimeout }}"
            }
         ]
      }
   }
}
```

------

### Sifat-sifat
<a name="runShellScript-properties"></a>

**runCommand**  
Tentukan perintah untuk menjalankan atau jalur skrip yang ada pada instans.  
Jenis: StringList  
Wajib: Ya

**timeoutSeconds**  
Waktu dalam detik untuk perintah yang harus diselesaikan sebelum dianggap telah gagal. Ketika batas waktu tercapai, Systems Manager berhenti mengeksekusi perintah.  
Tipe: String  
Wajib: Tidak

**workingDirectory**  
Jalur direktori kerja pada instans Anda.  
Tipe: String  
Wajib: Tidak

## `aws:softwareInventory`
<a name="aws-softwareinventory"></a>

(Skema versi 2.0 atau yang terbaru) Kumpulkan metadata tentang aplikasi, file, dan konfigurasi pada instans terkelola Anda. Plugin ini berjalan pada sistem operasi Linux dan Microsoft Windows Server. Saat Anda mengonfigurasi koleksi inventaris, Anda mulai dengan membuat AWS Systems Manager State Manager asosiasi. Systems Manager mengumpulkan data inventaris saat asosiasi dijalankan. Jika Anda tidak membuat asosiasi terlebih dahulu, dan mencoba untuk meminta plugin `aws:softwareInventory` sistem akan menampilkan kesalahan berikut:

```
The aws:softwareInventory plugin can only be invoked via ssm-associate.
```

Instans hanya dapat mengonfigurasi satu asosiasi inventaris dalam satu waktu. Jika Anda mengonfigurasi instans dengan dua atau beberapa asosiasi, inventaris tidak berjalan dan tidak ada data inventaris yang dikumpulkan. Untuk informasi lebih lanjut tentang pengumpulan inventaris, lihat [AWS Systems Manager Inventaris](systems-manager-inventory.md).

### Sintaksis
<a name="softwareinventory-syntax"></a>

#### Skema 2.2
<a name="softwareinventory-syntax-2.2"></a>

------
#### [ YAML ]

```
---
mainSteps:
- action: aws:softwareInventory
  name: collectSoftwareInventoryItems
  inputs:
    applications: "{{ applications }}"
    awsComponents: "{{ awsComponents }}"
    networkConfig: "{{ networkConfig }}"
    files: "{{ files }}"
    services: "{{ services }}"
    windowsRoles: "{{ windowsRoles }}"
    windowsRegistry: "{{ windowsRegistry}}"
    windowsUpdates: "{{ windowsUpdates }}"
    instanceDetailedInformation: "{{ instanceDetailedInformation }}"
    customInventory: "{{ customInventory }}"
```

------
#### [ JSON ]

```
{
   "mainSteps":[
      {
         "action":"aws:softwareInventory",
         "name":"collectSoftwareInventoryItems",
         "inputs":{
            "applications":"{{ applications }}",
            "awsComponents":"{{ awsComponents }}",
            "networkConfig":"{{ networkConfig }}",
            "files":"{{ files }}",
            "services":"{{ services }}",
            "windowsRoles":"{{ windowsRoles }}",
            "windowsRegistry":"{{ windowsRegistry}}",
            "windowsUpdates":"{{ windowsUpdates }}",
            "instanceDetailedInformation":"{{ instanceDetailedInformation }}",
            "customInventory":"{{ customInventory }}"
         }
      }
   ]
}
```

------

### Masukan
<a name="softwareinventory-properties"></a>

**aplikasi**  
(Opsional) Kumpulkan metadata untuk aplikasi yang diinstal.  
Tipe: String  
Wajib: Tidak

**awsComponents**  
(Opsional) Kumpulkan metadata untuk AWS komponen seperti. amazon-ssm-agent  
Tipe: String  
Wajib: Tidak

**file**  
(Opsional, memerlukan SSM Agent versi 2.2.64.0 atau yang lebih baru) Kumpulkan metadata untuk file, termasuk nama file, file waktu dibuat, file waktu terakhir diubah dan diakses, dan ukuran file, untuk beberapa nama. Untuk informasi lebih lanjut tentang pengumpulan file inventaris, lihat [Menggunakan file dan inventaris registri Windows](inventory-file-and-registry.md).  
Tipe: String  
Wajib: Tidak

**NetworkConfig**  
(Opsional) Kumpulkan metadata untuk konfigurasi jaringan.  
Tipe: String  
Wajib: Tidak

**Info Penagihan**  
(Opsional) Kumpulkan metadata untuk detail platform yang terkait dengan kode penagihan. AMI  
Tipe: String  
Wajib: Tidak

**windowsUpdates**  
(Opsional) Kumpulkan metadata untuk semua pembaruan Windows.  
Tipe: String  
Wajib: Tidak

**instanceDetailedInformation**  
(Opsional) Kumpulkan lebih banyak informasi instans yang disediakan oleh plugin inventaris default (`aws:instanceInformation`), termasuk model CPU, kecepatan, dan jumlah inti, untuk beberapa nama.  
Tipe: String  
Wajib: Tidak

**layanan**  
(Opsional, hanya OS Windows, memerlukan SSM Agent versi 2.2.64.0 atau yang lebih baru) Kumpulkan metadata untuk konfigurasi layanan.  
Tipe: String  
Wajib: Tidak

**windowsRegistry**  
(Opsional, hanya OS Windows, memerlukan SSM Agent versi 2.2.64.0 atau yang lebih baru) Kumpulkan kunci dan nilai Windows Registry. Anda dapat memilih jalur kunci dan mengumpulkan semua kunci dan nilai secara berulang. Anda juga dapat mengumpulkan kunci registri tertentu dan nilainya untuk jalur tertentu. Inventaris mengumpulkan jalur, nama, jenis, dan nilai kunci. Untuk informasi lebih lanjut tentang pengumpulan inventaris Registri Windows, lihat [Menggunakan file dan inventaris registri Windows](inventory-file-and-registry.md).  
Tipe: String  
Wajib: Tidak

**windowsRoles**  
(Opsional, hanya OS Windows, memerlukan SSM Agent versi 2.2.64.0 atau yang lebih baru) Kumpulkan metadata untuk konfigurasi peran Microsoft Windows.  
Tipe: String  
Wajib: Tidak

**customInventory**  
(Opsional) Kumpulkan data inventaris kustom. Untuk informasi lebih lanjut tentang inventaris kustom, lihat [Menggunakan inventaris kustom](inventory-custom.md)  
Tipe: String  
Wajib: Tidak

**customInventoryDirectory**  
(Opsional) Kumpulkan data inventaris khusus dari direktori yang ditentukan. Untuk informasi lebih lanjut tentang inventaris kustom, lihat [Menggunakan inventaris kustom](inventory-custom.md)  
Tipe: String  
Wajib: Tidak

## `aws:updateAgent`
<a name="aws-updateagent"></a>

Perbarui layanan EC2 Config ke versi terbaru atau tentukan versi yang lebih lama. Plugin ini hanya berjalan di Sistem operasi Microsoft Windows Server. *Untuk informasi selengkapnya tentang layanan EC2 Config, lihat [Mengonfigurasi Instans Windows menggunakan layanan EC2 Config (lama) di Panduan Pengguna Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2config-service.html).*

### Sintaksis
<a name="updateagent-syntax"></a>

#### Skema 2.2
<a name="updateagent-syntax-2.2"></a>

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: aws:updateAgent
mainSteps:
- action: aws:updateAgent
  name: updateAgent
  inputs:
    agentName: Ec2Config
    source: https://s3.{Region}.amazonaws.com/aws-ssm-{Region}/manifest.json
```

------
#### [ JSON ]

```
{
  "schemaVersion": "2.2",
  "description": "aws:updateAgent",
  "mainSteps": [
    {
      "action": "aws:updateAgent",
      "name": "updateAgent",
      "inputs": {
        "agentName": "Ec2Config",
        "source": "https://s3.{Region}.amazonaws.com/aws-ssm-{Region}/manifest.json"
      }
    }
  ]
}
```

------

#### Skema 1.2
<a name="updateagent-syntax-1.2"></a>

------
#### [ YAML ]

```
---
runtimeConfig:
  aws:updateAgent:
    properties:
      agentName: Ec2Config
      source: https://s3.{Region}.amazonaws.com/aws-ssm-{Region}/manifest.json
      allowDowngrade: "{{ allowDowngrade }}"
      targetVersion: "{{ version }}"
```

------
#### [ JSON ]

```
{
   "runtimeConfig":{
      "aws:updateAgent":{
         "properties":{
            "agentName":"Ec2Config",
            "source":"https://s3.{Region}.amazonaws.com/aws-ssm-{Region}/manifest.json",
            "allowDowngrade":"{{ allowDowngrade }}",
            "targetVersion":"{{ version }}"
         }
      }
   }
}
```

------

### Sifat-sifat
<a name="updateagent-properties"></a>

**agentName**  
EC2Config. Ini adalah nama agen yang menjalankan layanan EC2 Config.  
Tipe: String  
Wajib: Ya

**allowDowngrade**  
Izinkan layanan EC2 Config diturunkan ke versi sebelumnya. Jika diatur ke false, hanya layanan (default) yang dapat ditingkatkan ke versi yang terbaru. Jika diatur ke true, tentukan versi sebelumnya.   
Tipe: Boolean  
Wajib: Tidak

**sumber**  
Lokasi di mana Systems Manager menyalin versi EC2 Config untuk diinstal. Anda tidak dapat mengubah lokasi ini.  
Tipe: String  
Wajib: Ya

**targetVersion**  
Versi tertentu dari layanan EC2 Config yang akan diinstal. Jika tidak ditentukan, layanan akan diperbarui ke versi terbaru.  
Tipe: String  
Wajib: Tidak

## `aws:updateSsmAgent`
<a name="aws-updatessmagent"></a>

Perbarui SSM Agent ke versi terbaru atau tentukan versi yang lebih lama. Plugin ini berjalan di Linux dan sistem operasi Windows Server. Untuk informasi selengkapnya, lihat [Bekerja dengan SSM Agent](ssm-agent.md). 

### Sintaksis
<a name="updateSSMagent-syntax"></a>

#### Skema 2.2
<a name="updateaSSMgent-syntax-2.2"></a>

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: aws:updateSsmAgent
parameters:
  allowDowngrade:
    default: 'false'
    description: "(Optional) Allow the Amazon SSM Agent service to be downgraded to
      an earlier version. If set to false, the service can be upgraded to newer versions
      only (default). If set to true, specify the earlier version."
    type: String
    allowedValues:
    - 'true'
    - 'false'
mainSteps:
- action: aws:updateSsmAgent
  name: updateSSMAgent
  inputs:
    agentName: amazon-ssm-agent
    source: https://s3.{Region}.amazonaws.com/amazon-ssm-{Region}/ssm-agent-manifest.json
    allowDowngrade: "{{ allowDowngrade }}"
```

------
#### [ JSON ]

```
{
  "schemaVersion": "2.2",
  "description": "aws:updateSsmAgent",
  "parameters": {
    "allowDowngrade": {
      "default": "false",
      "description": "(Required) Allow the Amazon SSM Agent service to be downgraded to an earlier version. If set to false, the service can be upgraded to newer versions only (default). If set to true, specify the earlier version.",
      "type": "String",
      "allowedValues": [
        "true",
        "false"
      ]
    }
  },
  "mainSteps": [
    {
      "action": "aws:updateSsmAgent",
      "name": "awsupdateSsmAgent",
      "inputs": {
        "agentName": "amazon-ssm-agent",
        "source": "https://s3.{Region}.amazonaws.com/amazon-ssm-{Region}/ssm-agent-manifest.json",
        "allowDowngrade": "{{ allowDowngrade }}"
      }
    }
  ]
}
```

------

#### Skema 1.2
<a name="updateaSSMgent-syntax-1.2"></a>

------
#### [ YAML ]

```
---
runtimeConfig:
  aws:updateSsmAgent:
    properties:
    - agentName: amazon-ssm-agent
      source: https://s3.{Region}.amazonaws.com/aws-ssm-{Region}/manifest.json
      allowDowngrade: "{{ allowDowngrade }}"
```

------
#### [ JSON ]

```
{
   "runtimeConfig":{
      "aws:updateSsmAgent":{
         "properties":[
            {
               "agentName":"amazon-ssm-agent",
               "source":"https://s3.{Region}.amazonaws.com/aws-ssm-{Region}/manifest.json",
               "allowDowngrade":"{{ allowDowngrade }}"
            }
         ]
      }
   }
}
```

------

### Sifat-sifat
<a name="updateSSMagent-properties"></a>

**agentName**  
amazon-ssm-agent. Ini adalah nama agen Systems Manager yang memproses permintaan dan menjalankan perintah pada instance.  
Tipe: String  
Wajib: Ya

**allowDowngrade**  
Izinkan SSM Agent untuk diturunkan ke versi sebelumnya. Jika diatur ke false, hanya agen (default) yang dapat ditingkatkan ke versi yang terbaru. Jika diatur ke true, tentukan versi sebelumnya.   
Tipe: Boolean  
Wajib: Ya

**sumber**  
Lokasi di mana Systems Manager menyalin SSM Agent versi yang akan diinstal. Anda tidak dapat mengubah lokasi ini.  
Tipe: String  
Wajib: Ya

**targetVersion**  
Versi khusus SSM Agent untuk menginstal. Jika tidak ditentukan, agen akan diperbarui ke versi terbaru.  
Tipe: String  
Wajib: Tidak

# Membuat konten dokumen SSM
<a name="documents-creating-content"></a>

Jika dokumen AWS Systems Manager publik tidak melakukan semua tindakan yang ingin Anda lakukan pada AWS sumber daya Anda, Anda dapat membuat dokumen SSM Anda sendiri. Anda juga dapat melakukan klon dokumen SSM menggunakan konsol. Pengandaan dokumen dengan menyalin konten dari dokumen yang ada ke dokumen baru yang dapat Anda modifikasi. Saat membuat atau mengkloning dokumen, konten dokumen tidak boleh melebihi 64KB. Kuota ini juga mencakup konten yang ditentukan untuk parameter input saat runtime. Saat Anda membuat dokumen `Command` atau `Policy`, sebaiknya gunakan skema versi 2.2 atau yang terbaru sehingga Anda dapat memanfaatkan fitur terbaru, seperti pengeditan dokumen, versioning otomatis, pengurutan, dan banyak lagi.

## Menulis konten dokumen SSM
<a name="writing-ssm-doc-content"></a>

Untuk membuat konten dokumen SSM Anda sendiri, penting untuk memahami skema yang berbeda, fitur, plugin, dan sintaks yang tersedia untuk dokumen SSM. Kami mensarankan untuk membiasakan diri dengan sumber daya berikut.
+  [Menulis AWS Systems Manager dokumen Anda sendiri](https://aws.amazon.com/blogs//mt/writing-your-own-aws-systems-manager-documents/) 
+  [Elemen dan parameter data](documents-syntax-data-elements-parameters.md) 
+  [Skema, fitur, dan contoh](documents-schemas-features.md) 
+  [Referensi plugin dokumen perintah](documents-command-ssm-plugin-reference.md) 
+  [Referensi tindakan Otomatisasi Systems Manager](automation-actions.md) 
+  [Variabel sistem Otomatisasi](automation-variables.md) 
+  [Contoh runbook tambahan](automation-document-examples.md) 
+  [Bekerja dengan runbook Otomatisasi Systems Manager](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/systems-manager-automation-docs.html) Menggunakan AWS Toolkit for Visual Studio Code 
+  [Pengalaman desain visual untuk runbook Otomasi](automation-visual-designer.md) 
+  [Menggunakan skrip di runbook](automation-document-script-considerations.md) 

AWS Dokumen SSM yang telah ditentukan sebelumnya mungkin melakukan beberapa tindakan yang Anda butuhkan. Anda dapat memanggil dokumen-dokumen ini dengan menggunakan plugin `aws:runDocument`, `aws:runCommand`, atau `aws:executeAutomation` dalam dokumen SSM kustom Anda, tergantung pada jenis dokumen. Anda juga dapat menyalin sebagian dari dokumen tersebut ke dalam dokumen SSM kustom, dan mengedit konten tersebut untuk memenuhi kebutuhan Anda.

**Tip**  
Saat membuat konten dokumen SSM, Anda dapat mengubah konten dan memperbarui dokumen SSM Anda beberapa kali saat pengujian. Perintah berikut dapat memperbarui dokumen SSM dengan konten terbaru Anda, dan memperbarui versi default dokumen ke versi terbaru dari dokumen.  
Perintah Linux dan Windows menggunakan alat baris perintah `jq` untuk menyaring data respons JSON.

```
latestDocVersion=$(aws ssm update-document \
    --content file://path/to/file/documentContent.json \
    --name "ExampleDocument" \
    --document-format JSON \
    --document-version '$LATEST' \
    | jq -r '.DocumentDescription.LatestVersion')

aws ssm update-document-default-version \
    --name "ExampleDocument" \
    --document-version $latestDocVersion
```

```
latestDocVersion=$(aws ssm update-document ^
    --content file://C:\path\to\file\documentContent.json ^
    --name "ExampleDocument" ^
    --document-format JSON ^
    --document-version "$LATEST" ^
    | jq -r '.DocumentDescription.LatestVersion')

aws ssm update-document-default-version ^
    --name "ExampleDocument" ^
    --document-version $latestDocVersion
```

```
$content = Get-Content -Path "C:\path\to\file\documentContent.json" | Out-String
$latestDocVersion = Update-SSMDocument `
    -Content $content `
    -Name "ExampleDocument" `
    -DocumentFormat "JSON" `
    -DocumentVersion '$LATEST' `
    | Select-Object -ExpandProperty LatestVersion

Update-SSMDocumentDefaultVersion `
    -Name "ExampleDocument" `
    -DocumentVersion $latestDocVersion
```

### Praktik terbaik keamanan untuk dokumen SSM
<a name="ssm-document-security-practices"></a>

Saat membuat dokumen SSM, ikuti praktik terbaik keamanan ini untuk membantu mencegah injeksi perintah dan memastikan penanganan parameter yang aman:
+ Gunakan interpolasi variabel lingkungan untuk parameter string yang akan digunakan dalam perintah atau skrip. Tambahkan `interpolationType` properti dengan nilai `ENV_VAR` ke parameter string Anda:

  ```
  {
      "command": {
          "type": "String",
          "description": "Command to execute",
          "interpolationType": "ENV_VAR"
      }
  }
  ```

  Anda dapat lebih meningkatkan keamanan dokumen SSM Anda dengan menentukan bahwa tanda kutip ganda tidak diterima dalam nilai yang disampaikan oleh interpolasi:

  ```
  {
      "command": {
          "type": "String",
          "description": "Command to execute",
          "interpolationType": "ENV_VAR",
              "allowedPattern": "^[^"]*$"
      }
  }
  ```
+ Saat menggunakan bahasa yang ditafsirkan seperti Python, Ruby, atau Node.js, parameter referensi menggunakan sintaks variabel lingkungan yang sesuai:

  ```
  # Python example
  import os
  command = os.environ['SSM_Message']
  ```
+ Untuk kompatibilitas mundur dengan versi yang lebih lama (sebelum SSM Agent versi 3.3.2746.0), sertakan logika fallback untuk variabel lingkungan:

  ```
  if [ -z "${SSM_command+x}" ]; then
      export SSM_command="{{command}}"
  fi
  ```
+ Gabungkan interpolasi variabel lingkungan dengan `allowedPattern` validasi input tambahan. Dalam contoh berikut, `allowedPattern` nilai secara `^[^"]*$` khusus mencegah tanda kutip ganda dalam nilai string:

  ```
  {
      "command": {
          "type": "String",
          "interpolationType": "ENV_VAR",
          "allowedPattern": "^[a-zA-Z0-9_-]+$"
      }
  }
  ```
+ Sebelum menerapkan dokumen SSM Anda, verifikasi pertimbangan keamanan berikut:
  + Semua parameter string yang menerima input pengguna menggunakan interpolasi variabel lingkungan bila sesuai.
  + Validasi input diimplementasikan menggunakan `allowedPattern` jika memungkinkan.
  + Dokumen tersebut mencakup penanganan kesalahan yang sesuai untuk pemrosesan parameter.
  + Kompatibilitas mundur dipertahankan untuk lingkungan yang menggunakan SSM Agent versi yang lebih lama.

Untuk informasi tentang sumber daya AWS milik layanan yang diakses Systems Manager dan cara mengonfigurasi kebijakan perimeter data, lihat. [Perimeter data di AWS Systems Manager](data-perimeters.md)

## Mengkloning dokumen SSM
<a name="cloning-ssm-document"></a>

Anda dapat mengkloning AWS Systems Manager dokumen menggunakan konsol Systems Manager Documents untuk membuat dokumen SSM. Mengkloning dokumen SSM menyalin konten dari dokumen yang ada ke dokumen baru yang dapat Anda modifikasi. Anda tidak dapat mengkloning dokumen yang lebih besar dari 64KB.

**Untuk mengkloning dokumen SSM**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Dokumen**.

1. Di kotak pencarian, masukkan nama dokumen yang ingin Anda kloning.

1. Pilih nama dokumen yang ingin Anda kloning, lalu pilih **Dokumen pengkloning** dalam **Actions** dropdown. 

1. Memodifikasi dokumen yang Anda inginkan, dan kemudian pilih **Buat dokumen** untuk menyimpan dokumen. 

Setelah menulis konten dokumen SSM Anda, Anda dapat menggunakan konten Anda untuk membuat dokumen SSM menggunakan salah satu metode berikut.

**Topics**
+ [Menulis konten dokumen SSM](#writing-ssm-doc-content)
+ [Mengkloning dokumen SSM](#cloning-ssm-document)
+ [Membuat dokumen gabungan](#documents-creating-composite)

## Membuat dokumen gabungan
<a name="documents-creating-composite"></a>

Dokumen *komposit* AWS Systems Manager (SSM) adalah dokumen kustom yang melakukan serangkaian tindakan dengan menjalankan satu atau lebih dokumen SSM sekunder. Dokumen komposit mempromosikan *Infrastruktur sebagai code* dengan memungkinkan Anda untuk membuat satu set standar dokumen SSM untuk tugas-tugas umum seperti boot-strapping perangkat lunak atau penggabungan domain instans. Anda kemudian dapat membagikan dokumen-dokumen ini Akun AWS secara bersamaan Wilayah AWS untuk mengurangi pemeliharaan dokumen SSM dan memastikan konsistensi.

Sebagai contoh, Anda dapat membuat dokumen komposit untuk melakukan tindakan berikut:

1. Menginstal semua patch dalam daftar yang izinkan.

1. Menginstal perangkat lunak antivirus.

1. Mengunduh skrip dari GitHub dan menjalankannya.

Dalam contoh ini, dokumen SSM kustom Anda mencakup plugin berikut untuk melakukan tindakan ini:

1. `aws:runDocument`Plugin untuk menjalankan `AWS-RunPatchBaseline` dokumen, yang menginstal semua memungkinkan patch terdaftar.

1. Plugin `aws:runDocument` untuk menjalankan dokumen `AWS-InstallApplication`, yang menginstal perangkat lunak antivirus.

1. `aws:downloadContent`Plugin untuk mengunduh skrip dari GitHub dan menjalankannya.

Dokumen komposit dan sekunder dapat disimpan di Systems Manager, GitHub (repositori publik dan pribadi), atau Amazon S3. Dokumen komposit dan dokumen sekunder dapat dibuat di JSON atau YAML. 

**catatan**  
Dokumen komposit hanya dapat menjalankan hingga kedalaman maksimum tiga dokumen. Ini berarti bahwa dokumen komposit dapat memanggil dokumen turunan; dan dokumen turunan dapat memanggil satu dokumen terakhir.

Untuk membuat dokumen komposit, tambahkan plugin [`aws:runDocument`](documents-command-ssm-plugin-reference.md#aws-rundocument) dalam dokumen SSM kustom dan tentukan input yang diperlukan. Berikut ini adalah contoh dokumen komposit yang melakukan tindakan berikut:

1. Menjalankan [`aws:downloadContent`](documents-command-ssm-plugin-reference.md#aws-downloadContent) plugin untuk mengunduh dokumen SSM dari repositori GitHub publik ke direktori lokal yang disebut bootstrap. Dokumen SSM disebut StateManagerBootstrap .yml/dokumen YAMM.

1. Menjalankan `aws:runDocument` plugin untuk menjalankan StateManagerBootstrap dokumen.yl. Tidak ada parameter yang ditentukan.

1. Menjalankan plugin `aws:runDocument` untuk menjalankan dokumen SSM `AWS-ConfigureDocker pre-defined`. Parameter yang ditentukan untuk menginstal Docker pada instans.

```
{
  "schemaVersion": "2.2",
  "description": "My composite document for bootstrapping software and installing Docker.",
  "parameters": {
  },
  "mainSteps": [
    {
      "action": "aws:downloadContent",
      "name": "downloadContent",
      "inputs": {
        "sourceType": "GitHub",
        "sourceInfo": "{\"owner\":\"TestUser1\",\"repository\":\"TestPublic\", \"path\":\"documents/bootstrap/StateManagerBootstrap.yml\"}",
        "destinationPath": "bootstrap"
      }
    },
    {
      "action": "aws:runDocument",
      "name": "runDocument",
      "inputs": {
        "documentType": "LocalPath",
        "documentPath": "bootstrap",
        "documentParameters": "{}"
      }
    },
    {
      "action": "aws:runDocument",
      "name": "configureDocker",
      "inputs": {
        "documentType": "SSMDocument",
        "documentPath": "AWS-ConfigureDocker",
        "documentParameters": "{\"action\":\"Install\"}"
      }
    }
  ]
}
```

**Info lebih lanjut**  
+ Untuk informasi tentang me-reboot server dan instance saat menggunakan Run Command untuk memanggil skrip, lihat. [Menangani reboot saat menjalankan perintah](send-commands-reboot.md)
+ Untuk informasi selengkapnya tentang plugin yang dapat Anda tambahkan ke dokumen SSM kustom, lihat [Referensi plugin dokumen perintah](documents-command-ssm-plugin-reference.md).
+ Jika Anda hanya ingin menjalankan dokumen dari lokasi jarak jauh (tanpa membuat dokumen komposit), lihat [Menjalankan dokumen dari lokasi terpencil](documents-running-remote-github-s3.md).

# Bekerja dengan dokumen
<a name="documents-using"></a>

Bagian ini mencakup informasi tentang cara menggunakan dan bekerja dengan dokumen SSM.

**Topics**
+ [Bandingkan versi dokumen SSM](comparing-versions.md)
+ [Buat dokumen SSM](create-ssm-console.md)
+ [Menghapus dokumen SSM kustom](deleting-documents.md)
+ [Menjalankan dokumen dari lokasi terpencil](documents-running-remote-github-s3.md)
+ [Membagikan dokumen SSM](documents-ssm-sharing.md)
+ [Mencari dokumen SSM](ssm-documents-searching.md)

# Bandingkan versi dokumen SSM
<a name="comparing-versions"></a>

Anda dapat membandingkan perbedaan konten antar versi dokumen AWS Systems Manager (SSM) di konsol Systems Manager Documents. Ketika membandingkan versi dokumen SSM, perbedaan antara konten dari versi yang disorot.

**Untuk membandingkan konten dokumen SSM (konsol)**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Dokumen**.

1. Dalam daftar dokumen, pilih dokumen yang kontennya ingin Anda bandingkan.

1. Pada tab **Konten**, pilih **Bandingkan versi**, dan pilih versi dokumen yang ingin Anda bandingkan kontennya.

# Buat dokumen SSM
<a name="create-ssm-console"></a>

Setelah Anda membuat konten untuk dokumen SSM kustom Anda, seperti yang dijelaskan dalam [Menulis konten dokumen SSM](documents-creating-content.md#writing-ssm-doc-content), Anda dapat menggunakan konsol Systems Manager untuk membuat dokumen SSM menggunakan konten Anda.

**Untuk membuat dokumen SSM**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Dokumen**.

1. Pilih **Buat perintah atau sesi**.

1. Masukkan nama deskriptif untuk dokumen.

1. (Opsional) Untuk **Jenis target**, tentukan jenis sumber daya dokumen yang dapat dijalankan.

1. Di daftar **Jenis dokumen**, pilih jenis dokumen yang ingin Anda buat.

1. Hapus tanda kurung di bidang **Konten**, dan kemudian paste dokumen konten yang Anda buat sebelumnya.

1. (Opsional) Dalam bagian **Tag dokumen**, terapkan satu pasangan nilai kunci tag atau lebih ke dokumen.

   Tag adalah metadata opsional yang Anda tetapkan ke sumber daya. Tag memungkinkan Anda untuk mengkategorikan sumber daya dengan berbagai cara, seperti berdasarkan tujuan, pemilik, atau lingkungan. Misalnya, Anda mungkin ingin menandai dokumen untuk mengidentifikasi jenis tugas yang dijalankannya, jenis sistem operasi target, dan lingkungan tempat ia berjalan. Dalam kasus ini, Anda bisa menentukan pasangan nama/nilai kunci berikut:
   + `Key=TaskType,Value=MyConfigurationUpdate`
   + `Key=OS,Value=AMAZON_LINUX_2`
   + `Key=Environment,Value=Production`

1. Pilih **Buat dokumen** untuk menyimpan dokumen.

# Menghapus dokumen SSM kustom
<a name="deleting-documents"></a>

Jika Anda tidak lagi ingin menggunakan dokumen SSM khusus, Anda dapat menghapusnya menggunakan AWS Systems Manager konsol. 

**Untuk menghapus dokumen SSM**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Dokumen**.

1. Pilih dokumen yang ingin Anda hapus.

1. Pilih **Hapus**. Saat diminta untuk menghapus dokumen, pilih **Hapus**.

Untuk contoh menggunakan alat baris perintah atau SDKs untuk menghapus dokumen SSM, lihat[Gunakan `DeleteDocument` dengan AWS SDK atau CLI](example_ssm_DeleteDocument_section.md).

# Menjalankan dokumen dari lokasi terpencil
<a name="documents-running-remote-github-s3"></a>

Anda dapat menjalankan dokumen AWS Systems Manager (SSM) dari lokasi terpencil dengan menggunakan dokumen SSM yang `AWS-RunDocument` telah ditentukan sebelumnya. Dokumen ini mendukung menjalankan dokumen SSM yang disimpan di lokasi berikut:
+ GitHubRepositori publik dan pribadi (tidak GitHub Enterprise didukung)
+ Buket Amazon S3
+ Systems Manager

Meskipun Anda juga dapat menjalankan dokumen jarak jauh dengan menggunakan State Manager atau Otomasi, alat dalam AWS Systems Manager, prosedur berikut hanya menjelaskan cara menjalankan dokumen SSM jarak jauh dengan menggunakan AWS Systems Manager Run Command di konsol Systems Manager. 

**catatan**  
`AWS-RunDocument` hanya dapat digunakan untuk menjalankan jenis perintah dokumen SSM, bukan jenis lain seperti otomatisasi runbook. `AWS-RunDocument` Menggunakan `aws:downloadContent` plugin. Untuk informasi lebih lanjut tentang plugin `aws:downloadContent` , lihat [`aws:downloadContent`](documents-command-ssm-plugin-reference.md#aws-downloadContent).

**Awas**  
`AWS-RunDocument`dapat mengeksekusi konten dokumen dari berbagai sumber (dokumen SSM, GitHub, S3, URLs). Saat menjalankan dokumen jarak jauh, izin IAM yang dievaluasi adalah untuk dokumen jarak jauh dan `ssm:GetDocument` seterusnya. `ssm:SendCommand` `AWS-RunDocument` Jika Anda memiliki kebijakan IAM yang menolak akses ke dokumen SSM tertentu, pengguna dengan `AWS-RunDocument` izin masih dapat mengeksekusi dokumen yang ditolak tersebut dengan meneruskan konten dokumen sebagai parameter, yang mungkin tidak tunduk pada batasan IAM khusus dokumen yang sama.  
Untuk membatasi eksekusi dokumen dengan benar, gunakan salah satu pendekatan ini:  
**Sumber yang disetujui daftar izin**: Jika Anda perlu menggunakan eksekusi dokumen bersarang, batasi akses hanya ke sumber yang disetujui menggunakan kontrol yang sesuai untuk setiap jenis sumber: Kebijakan IAM `ssm:GetDocument` untuk mengontrol sumber dokumen SSM, kebijakan bucket IAM dan Amazon S3 untuk sumber Amazon S3, dan pengaturan jaringan (seperti titik akhir VPC atau grup keamanan) untuk sumber Internet publik.
**Batasi akses ke AWS- RunDocument**: Tolak `ssm:SendCommand` `AWS-RunDocument` dan dokumen lain yang menggunakan `aws:runDocument` plugin dalam kebijakan IAM Anda untuk mencegah eksekusi dokumen bersarang.
**Gunakan batas izin**: Menerapkan batas izin IAM untuk menetapkan izin maksimum bagi pengguna, mencegah mereka mengeksekusi dokumen yang tidak sah terlepas dari metode eksekusi.
*Untuk informasi selengkapnya tentang praktik terbaik IAM dan batasan izin, lihat [Batas izin untuk entitas IAM di Panduan](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) Pengguna.AWS Identity and Access Management *

**Sebelum Anda mulai**  
Sebelum Anda menjalankan dokumen jarak jauh, Anda harus menyelesaikan tugas berikut.
+ Membuat perintah dokumen SSM dan menyimpannya di lokasi jarak jauh. Untuk informasi selengkapnya, lihat [Membuat konten dokumen SSM](documents-creating-content.md)
+ Jika Anda berencana untuk menjalankan dokumen jarak jauh yang disimpan dalam GitHub repositori pribadi, maka Anda harus membuat `SecureString` parameter Systems Manager untuk token akses GitHub keamanan Anda. Anda tidak dapat mengakses dokumen jarak jauh di GitHub repositori pribadi dengan meneruskan token Anda secara manual melalui SSH. Token akses harus diteruskan sebagai parameter `SecureString` Systems Manager. Untuk informasi lebih lanjut tentang pembuatan parameter `SecureString`, lihat [Membuat Parameter Store parameter di Systems Manager](sysman-paramstore-su-create.md).

## Jalankan dokumen jarak jauh (konsol)
<a name="documents-running-remote-github-s3-console"></a>

**Untuk menjalankan dokumen jarak jauh**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Run Command**.

1. Pilih **Jalankan perintah**.

1. Di daftar **Dokumen**, pilih **`AWS-RunDocument`**.

1. Masuk **Parameter perintah**, untuk **Jenis sumber**, pilih satu opsi. 
   + Jika Anda memilih **GitHub**, tentukan informasi **Info Sumber** dalam format berikut:

     ```
     {
         "owner": "owner_name",
         "repository": "repository_name",
         "path": "path_to_document",
         "getOptions":"branch:branch_name",
         "tokenInfo": "{{ssm-secure:secure-string-token}}"
     }
     ```

     Contoh:

     ```
     {
         "owner":"TestUser",
         "repository":"GitHubTestExamples",
         "path":"scripts/python/test-script",
         "getOptions":"branch:exampleBranch",
         "tokenInfo":"{{ssm-secure:my-secure-string-token}}"
     }
     ```
**catatan**  
`getOptions` adalah pilihan tambahan untuk mengambil konten dari selain cabang utama, atau dari komit tertentu dalam repositori. `getOptions` dapat dihilangkan jika Anda menggunakan perbaikan terbaru di cabang utama. Parameter `branch` diperlukan hanya jika dokumen SSM Anda disimpan di cabang selain `master`.  
Untuk menggunakan versi dokumen SSM Anda dalam *Komitmen* di repositori anda, gunakan `commitID` dengan `getOptions` daripada `branch`. Sebagai contoh:  

     ```
     "getOptions": "commitID:bbc1ddb94...b76d3bEXAMPLE",
     ```
   + Jika Anda memilih **S3**, tentukan **Info sumber** dalam format berikut:

     ```
     {"path":"URL_to_document_in_S3"}
     ```

     Contoh:

     ```
     {"path":"https://s3.amazonaws.com/amzn-s3-demo-bucket/scripts/ruby/mySSMdoc.json"}
     ```
   + Jika Anda memilih **SSMDocument**, tentukan informasi **Info Sumber** dalam format berikut:

     ```
     {"name": "document_name"}
     ```

     Contoh:

     ```
     {"name": "mySSMdoc"}
     ```

1. Di **Parameter dokumen**, masukkan parameter untuk dokumen SSM jarak jauh. Sebagai contoh, jika Anda menjalankan dokumen `AWS-RunPowerShell`, Anda dapat menentukan:

   ```
   {"commands": ["date", "echo \"Hello World\""]}
   ```

   Jika Anda menjalankan dokumen `AWS-ConfigureAWSPack`, Anda dapat menentukan:

   ```
   {
      "action":"Install",
      "name":"AWSPVDriver"
   }
   ```

1. Di bagian **Target**, pilih node terkelola tempat Anda ingin menjalankan operasi ini dengan menentukan tag, memilih instance atau perangkat tepi secara manual, atau menentukan grup sumber daya.
**Tip**  
Jika node terkelola yang Anda harapkan tidak terdaftar, lihat [Memecahkan masalah ketersediaan node terkelola](fleet-manager-troubleshooting-managed-nodes.md) untuk tips pemecahan masalah.

1. Untuk **Parameter lainnya**:
   + Untuk **Komentar**, ketik informasi tentang perintah ini.
   + Untuk **Waktu habis (detik)**, tentukan jumlah detik untuk menunggu sistem sebelum gagal menjalankan perintah keseluruhan. 

1. Untuk **Pengendalian rate**:
   + Untuk **Konkurensi**, tentukan jumlah atau persentase dari simpul terkelola untuk menjalankan perintah pada saat yang sama.
**catatan**  
Jika Anda memilih target dengan menentukan tag yang diterapkan pada node terkelola atau dengan menentukan grup AWS sumber daya, dan Anda tidak yakin berapa banyak node terkelola yang ditargetkan, maka batasi jumlah target yang dapat menjalankan dokumen pada saat yang sama dengan menentukan persentase.
   + Untuk **Ambang kesalahan**, tentukan kapan harus berhenti menjalankan perintah pada simpul terkelola lain setelah gagal pada jumlah atau persentase simpul. Misalnya, jika Anda menentukan tiga kesalahan, Systems Manager berhenti mengirim perintah ketika kesalahan keempat diterima. Node terkelola yang masih memproses perintah mungkin juga mengirim kesalahan.

1. (Opsional) Untuk **Opsi output**, untuk menyimpan output perintah ke file, pilih kotak **Tuliskan output perintah ke bucket S3**. Masukkan nama bucket dan prefiks (folder) di kotak.
**catatan**  
Izin S3 yang memberikan kemampuan untuk menulis data ke bucket S3 adalah izin profil instans (untuk instans EC2) atau peran layanan IAM (mesin yang diaktifkan hibrida) yang ditetapkan ke instance, bukan milik pengguna IAM yang melakukan tugas ini. Untuk informasi selengkapnya, lihat [Mengonfigurasi izin instans yang diperlukan untuk Systems Manager](setup-instance-permissions.md) atau [Membuat peran layanan IAM untuk lingkungan hibrid](hybrid-multicloud-service-role.md). Selain itu, jika bucket S3 yang ditentukan berbeda Akun AWS, pastikan bahwa profil instance atau peran layanan IAM yang terkait dengan node terkelola memiliki izin yang diperlukan untuk menulis ke bucket tersebut.

1. Di bagian **Notifikasi SNS**, jika Anda ingin notifikasi dikirim tentang status eksekusi perintah, pilih kotak centang **Aktifkan notifikasi SNS**.

   Untuk informasi selengkapnya tentang mengonfigurasi notifikasi Run Command Amazon SNS, lihat. [Pemantauan perubahan status Systems Manager menggunakan notifikasi Amazon SNS](monitoring-sns-notifications.md)

1. Pilih **Jalankan**.

**catatan**  
Untuk informasi tentang me-reboot server dan instance saat menggunakan Run Command untuk memanggil skrip, lihat. [Menangani reboot saat menjalankan perintah](send-commands-reboot.md)

# Membagikan dokumen SSM
<a name="documents-ssm-sharing"></a>

Anda dapat berbagi dokumen AWS Systems Manager (SSM) secara pribadi atau publik dengan akun yang sama. Wilayah AWS Untuk membagikan dokumen secara pribadi, Anda mengubah izin dokumen dan mengizinkan individu tertentu untuk mengaksesnya sesuai dengan ID Akun AWS . Untuk membagikan dokumen SSM ke publik, Anda dapat mengubah izin dokumen dan menentukan `All`. Dokumen tidak dapat dibagikan secara publik dan pribadi secara bersamaan.

**Awas**  
Gunakan dokumen SSM bersama hanya dari sumber tepercaya. Ketika menggunakan dokumen bersama, hati-hati meninjau konten dokumen sebelum menggunakannya sehingga Anda dapat memahami bagaimana hal itu akan mengubah konfigurasi instans Anda. Untuk informasi selengkapnya tentang praktik terbaik dokumen bersama, lihat [Praktik terbaik untuk dokumen SSM bersama](#best-practices-shared). 

**Batasan**  
Ketika Anda mulai bekerja dengan dokumen SSM, perhatikan batasan berikut.
+ Hanya pemilik yang dapat berbagi dokumen.
+ Anda harus berhenti berbagikan dokumen sebelum dapat menghapusnya. Untuk informasi selengkapnya, lihat [Memodifikasi izin untuk dokumen SSM bersama](#modify-permissions-shared).
+ Anda dapat berbagi dokumen dengan maksimum 1000 Akun AWS. Anda dapat meminta peningkatan pada batas ini di [Pusat Dukungan](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase). Untuk **Jenis batas**, pilih *EC2 Systems Manager* dan jelaskan alasan Anda atas permintaan tersebut.
+ Anda dapat berbagi secara publik maksimal lima dokumen SSM. Anda dapat meminta peningkatan pada batas ini di [Pusat Dukungan](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase). Untuk **Jenis batas**, pilih *EC2 Systems Manager* dan jelaskan alasan Anda atas permintaan tersebut.
+ Dokumen dapat dibagikan dengan akun lain Wilayah AWS hanya dalam hal yang sama. Berbagi lintas wilayah tidak didukung.

**penting**  
Di Systems Manager, dokumen SSM *milik Amazon* adalah dokumen yang dibuat dan dikelola oleh Amazon Web Services itu sendiri. Dokumen *milik Amazon* menyertakan awalan seperti `AWS-*` pada nama dokumen. Pemilik dokumen dianggap Amazon, bukan akun pengguna tertentu di dalamnya AWS. Dokumen-dokumen ini tersedia untuk umum untuk digunakan semua orang.

Untuk informasi selengkapnya tentang kuota layanan Systems Manager, lihat [Service Quotas AWS Systems Manager](https://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm).

**Topics**
+ [Praktik terbaik untuk dokumen SSM bersama](#best-practices-shared)
+ [Memblokir berbagi dokumen SSM untuk publik](#block-public-access)
+ [Berbagi dokumen SSM](#ssm-how-to-share)
+ [Memodifikasi izin untuk dokumen SSM bersama](#modify-permissions-shared)
+ [Menggunakan dokumen SSM bersama](#using-shared-documents)

## Praktik terbaik untuk dokumen SSM bersama
<a name="best-practices-shared"></a>

Tinjau pedoman berikut sebelum Anda berbagi atau menggunakan dokumen bersama. 

**Hapus informasi sensitif**  
Tinjau dokumen AWS Systems Manager (SSM) Anda dengan hati-hati dan hapus informasi sensitif apa pun. Misalnya, verifikasi bahwa dokumen tidak menyertakan AWS kredensil Anda. Jika Anda berbagi dokumen dengan individu tertentu, pengguna tersebut dapat melihat informasi dalam dokumen. Jika Anda berbagi dokumen secara publik, siapa pun dapat melihat informasi dalam dokumen.

**Memblokir berbagi dokumen untuk publik**  
Tinjau semua dokumen SSM yang dibagikan secara publik di akun Anda dan konfirmasikan apakah Anda ingin terus membagikannya. Untuk berhenti berbagi dokumen dengan publik, Anda harus mengubah pengaturan izin dokumen seperti yang dijelaskan di [Memodifikasi izin untuk dokumen SSM bersama](#modify-permissions-shared) bagian topik ini. Mengaktifkan setelan blokir berbagi publik tidak memengaruhi dokumen apa pun yang saat ini Anda bagikan dengan publik. Kecuali jika kasus penggunaan Anda mengharuskan Anda untuk berbagi dokumen dengan publik, sebaiknya aktifkan setelan blokir berbagi publik untuk dokumen SSM Anda di bagian **Preferensi** pada konsol Systems Manager Documents. Mengaktifkan pengaturan ini untuk mencegah akses yang tidak diinginkan ke dokumen SSM Anda. Pengaturan blokir berbagi publik adalah pengaturan tingkat akun yang dapat berbeda untuk masing-masing Wilayah AWS.

**Batasi Run Command tindakan menggunakan kebijakan kepercayaan IAM**  
Buat kebijakan restriktif AWS Identity and Access Management (IAM) untuk pengguna yang akan memiliki akses ke dokumen. Kebijakan IAM menentukan dokumen SSM mana yang dapat dilihat pengguna di konsol Amazon Elastic Compute Cloud (Amazon EC2) atau dengan menelepon menggunakan () atau. `ListDocuments` AWS Command Line Interface AWS CLI AWS Tools for Windows PowerShell Kebijakan ini juga membatasi tindakan yang dapat dilakukan pengguna dengan dokumen SSM. Anda dapat membuat kebijakan yang lebih ketat sehingga pengguna hanya dapat menggunakan dokumen tertentu. Untuk informasi selengkapnya, lihat [Contoh kebijakan yang dikelola pelanggan](security_iam_id-based-policy-examples.md#customer-managed-policies).

**Mengunakan dengan hati-hati saat menggunakan dokumen SSM bersama**  
Tinjau isi setiap dokumen yang dibagikan dengan Anda, terutama dokumen publik, untuk memahami perintah yang akan dijalankan di instans Anda. Dokumen dapat dengan sengaja atau tidak sengaja memiliki dampak negatif setelah dijalankan. Jika dokumen referensi jaringan eksternal, meninjau sumber eksternal sebelum Anda menggunakan dokumen. 

**Kirim perintah menggunakan hash dokumen**  
Ketika Anda berbagi dokumen, sistem menciptakan hash Sha-256 dan menetapkannya ke dokumen. Sistem ini juga menyimpan snapshot dari konten dokumen. Ketika Anda mengirim perintah menggunakan dokumen bersama, Anda dapat menentukan hash dalam perintah Anda untuk memastikan bahwa kondisi berikut ini benar:  
+ Anda menjalankan perintah dari dokumen Systems Manager yang benar
+ Konten dokumen tidak berubah sejak dibagikan dengan Anda.
Jika hash tidak cocok dengan dokumen tertentu atau jika isi dari dokumen bersama telah berubah, perintah mengembalikan pengecualian `InvalidDocument`. Hash tidak dapat memverifikasi konten dokumen dari lokasi eksternal.

**Gunakan parameter interpolasi untuk meningkatkan keamanan**  
Untuk parameter `String` tipe dalam dokumen SSM Anda, gunakan parameter dan nilai `interpolationType": "ENV_VAR` untuk meningkatkan keamanan terhadap serangan injeksi perintah dengan memperlakukan input parameter sebagai literal string daripada perintah yang berpotensi dapat dieksekusi. Dalam hal ini, agen membuat variabel lingkungan bernama `SSM_parameter-name` dengan nilai parameter. Kami menyarankan untuk memperbarui semua dokumen SSM Anda yang ada yang menyertakan parameter `String` tipe untuk disertakan`"interpolationType": "ENV_VAR"`. Untuk informasi selengkapnya, lihat [Menulis konten dokumen SSM](documents-creating-content.md#writing-ssm-doc-content).

## Memblokir berbagi dokumen SSM untuk publik
<a name="block-public-access"></a>

Sebelum Anda mulai, tinjau semua dokumen SSM yang dibagikan secara publik di Anda Akun AWS dan konfirmasikan apakah Anda ingin terus membagikannya. Untuk berhenti berbagi dokumen SSM dengan publik, Anda harus mengubah pengaturan izin dokumen seperti yang dijelaskan di [Memodifikasi izin untuk dokumen SSM bersama](#modify-permissions-shared) bagian topik ini. Mengaktifkan setelan blokir berbagi publik tidak memengaruhi dokumen SSM apa pun yang saat ini Anda bagikan dengan publik. Dengan mengaktifkan pengaturan blok berbagi publik, Anda tidak akan dapat berbagi dokumen SSM tambahan apa pun dengan publik.

Kecuali jika kasus penggunaan Anda mengharuskan Anda untuk berbagi dokumen dengan publik, sebaiknya aktifkan pengaturan blokir berbagi publik untuk dokumen SSM Anda. Mengaktifkan pengaturan ini untuk mencegah akses yang tidak diinginkan ke dokumen SSM Anda. Pengaturan blokir berbagi publik adalah pengaturan tingkat akun yang dapat berbeda untuk masing-masing Wilayah AWS. Selesaikan tugas-tugas berikut untuk memblokir berbagi publik untuk dokumen SSM apa pun yang saat ini tidak Anda bagikan.

### Memblokir berbagi publik (konsol)
<a name="block-public-access-console"></a>

**Untuk memblokir berbagi dokumen SSM secara publik**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Dokumen**.

1. Pilih **Preferensi**, lalu pilih **Edit** di bagian **Memblokir berbagi publik**.

1. Pilih opsi kotak centang **Memblokir berbagi publik**, dan kemudian pilih **Simpan**. 

### Blokir berbagi publik (baris perintah)
<a name="block-public-access-cli"></a>

Buka AWS Command Line Interface (AWS CLI) atau AWS Tools for Windows PowerShell di komputer lokal Anda dan jalankan perintah berikut untuk memblokir berbagi publik dokumen SSM Anda.

------
#### [ Linux & macOS ]

```
aws ssm update-service-setting  \
    --setting-id /ssm/documents/console/public-sharing-permission \
    --setting-value Disable \
    --region 'The Wilayah AWS you want to block public sharing in'
```

------
#### [ Windows ]

```
aws ssm update-service-setting ^
    --setting-id /ssm/documents/console/public-sharing-permission ^
    --setting-value Disable ^
    --region "The Wilayah AWS you want to block public sharing in"
```

------
#### [ PowerShell ]

```
Update-SSMServiceSetting `
    -SettingId /ssm/documents/console/public-sharing-permission `
    -SettingValue Disable `
    –Region The Wilayah AWS you want to block public sharing in
```

------

Konfirmasikan nilai pengaturan yang diperbarui menggunakan perintah berikut.

------
#### [ Linux & macOS ]

```
aws ssm get-service-setting   \
    --setting-id /ssm/documents/console/public-sharing-permission \
    --region The Wilayah AWS you blocked public sharing in
```

------
#### [ Windows ]

```
aws ssm get-service-setting  ^
    --setting-id /ssm/documents/console/public-sharing-permission ^
    --region "The Wilayah AWS you blocked public sharing in"
```

------
#### [ PowerShell ]

```
Get-SSMServiceSetting `
    -SettingId /ssm/documents/console/public-sharing-permission `
    -Region The Wilayah AWS you blocked public sharing in
```

------

### Membatasi akses untuk memblokir berbagi publik dengan IAM
<a name="block-public-access-changes-iam"></a>

Anda dapat membuat kebijakan AWS Identity and Access Management (IAM) yang membatasi pengguna untuk memodifikasi setelan blokir berbagi publik. Hal ini mencegah pengguna mengizinkan akses yang tidak diinginkan ke dokumen SSM Anda. 

Berikut ini adalah contoh kebijakan IAM yang mencegah pengguna memperbarui pengaturan blokir berbagi publik. Untuk menggunakan contoh ini, Anda harus mengganti contoh ID akun Amazon Web Services dengan ID akun Anda sendiri.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "ssm:UpdateServiceSetting",
            "Resource": "arn:aws:ssm:*:444455556666:servicesetting/ssm/documents/console/public-sharing-permission"
        }
    ]
}
```

------

## Berbagi dokumen SSM
<a name="ssm-how-to-share"></a>

Anda dapat berbagi dokumen AWS Systems Manager (SSM) dengan menggunakan konsol Systems Manager. Saat berbagi dokumen dari konsol, hanya versi default dokumen yang dapat dibagikan. Anda juga dapat membagikan dokumen SSM secara terprogram dengan memanggil operasi `ModifyDocumentPermission` API menggunakan AWS Command Line Interface (AWS CLI) AWS Tools for Windows PowerShell, atau SDK. AWS Sebelum Anda berbagi dokumen, dapatkan orang-orang yang ingin Anda bagikan. Akun AWS IDs Anda akan menentukan akun ini IDs ketika Anda membagikan dokumen.

### Bagikan dokumen (konsol)
<a name="share-using-console"></a>

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Dokumen**.

1. Dalam daftar dokumen, pilih dokumen yang ingin Anda bagikan, lalu pilih **Tampilkan detail**. Pada tab **Izin**, verifikasi bahwa Anda adalah pemilik dokumen. Hanya pemilik dokumen yang dapat berbagi dokumen.

1. Pilih **Edit**.

1. Untuk berbagi perintah secara publik, pilih **publik** lalu pilih **Simpan**. Untuk berbagi perintah secara pribadi, pilih **Pribadi**, masukkan ID Akun AWS , pilih **Tambah izin**, lalu pilih **Simpan**. 

### Berbagi dokumen (baris perintah)
<a name="share-using-cli"></a>

Prosedur berikut mengharuskan Anda menentukan Wilayah AWS untuk sesi baris perintah Anda.

1. Buka AWS CLI atau AWS Tools for Windows PowerShell di komputer lokal Anda dan jalankan perintah berikut untuk menentukan kredensil Anda. 

   Dalam perintah berikut, ganti *region* dengan informasi Anda sendiri. Untuk daftar *region* nilai yang didukung, lihat kolom **Region** di [titik akhir layanan Systems Manager](https://docs.aws.amazon.com/general/latest/gr/ssm.html#ssm_region) di *Referensi Umum Amazon Web Services*.

------
#### [ Linux & macOS ]

   ```
   aws config
   
   AWS Access Key ID: [your key]
   AWS Secret Access Key: [your key]
   Default region name: region
   Default output format [None]:
   ```

------
#### [ Windows ]

   ```
   aws config
   
   AWS Access Key ID: [your key]
   AWS Secret Access Key: [your key]
   Default region name: region
   Default output format [None]:
   ```

------
#### [ PowerShell ]

   ```
   Set-AWSCredentials –AccessKey your key –SecretKey your key
   Set-DefaultAWSRegion -Region region
   ```

------

1. Gunakan perintah berikut untuk mencantumkan semua dokumen SSM yang tersedia untuk Anda. Daftar ini mencakup dokumen yang Anda buat dan dokumen yang dibagikan dengan Anda.

------
#### [ Linux & macOS ]

   ```
   aws ssm list-documents
   ```

------
#### [ Windows ]

   ```
   aws ssm list-documents
   ```

------
#### [ PowerShell ]

   ```
   Get-SSMDocumentList
   ```

------

1. Gunakan perintah berikut untuk mendapatkan dokumen tertentu.

------
#### [ Linux & macOS ]

   ```
   aws ssm get-document \
       --name document name
   ```

------
#### [ Windows ]

   ```
   aws ssm get-document ^
       --name document name
   ```

------
#### [ PowerShell ]

   ```
   Get-SSMDocument `
       –Name document name
   ```

------

1. Gunakan perintah berikut untuk mendapatkan deskripsi dokumen.

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-document \
       --name document name
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-document ^
       --name document name
   ```

------
#### [ PowerShell ]

   ```
   Get-SSMDocumentDescription `
       –Name document name
   ```

------

1. Gunakan perintah berikut untuk menampilkan izin untuk dokumen.

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-document-permission \
       --name document name \
       --permission-type Share
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-document-permission ^
       --name document name ^
       --permission-type Share
   ```

------
#### [ PowerShell ]

   ```
   Get-SSMDocumentPermission `
       –Name document name `
       -PermissionType Share
   ```

------

1. Gunakan perintah berikut untuk mengubah izin untuk dokumen dan berbagi. Anda harus menjadi pemilik dokumen untuk mengedit izin. Secara opsional, untuk dokumen yang dibagikan dengan spesifik Akun AWS IDs, Anda dapat menentukan versi dokumen yang ingin Anda bagikan menggunakan `--shared-document-version` parameter. Jika Anda tidak menentukan versi, sistem membagikan `Default` versi dokumen. Jika Anda membagikan dokumen secara publik (dengan`all`), semua versi dokumen yang ditentukan akan dibagikan secara default. Contoh perintah berikut secara pribadi membagikan dokumen dengan individu tertentu, berdasarkan Akun AWS ID orang tersebut.

------
#### [ Linux & macOS ]

   ```
   aws ssm modify-document-permission \
       --name document name \
       --permission-type Share \
       --account-ids-to-add Akun AWS ID
   ```

------
#### [ Windows ]

   ```
   aws ssm modify-document-permission ^
       --name document name ^
       --permission-type Share ^
       --account-ids-to-add Akun AWS ID
   ```

------
#### [ PowerShell ]

   ```
   Edit-SSMDocumentPermission `
       –Name document name `
       -PermissionType Share `
       -AccountIdsToAdd Akun AWS ID
   ```

------

1. Gunakan perintah berikut untuk berbagi dokumen secara publik.
**catatan**  
Jika Anda membagikan dokumen secara publik (dengan`all`), semua versi dokumen yang ditentukan akan dibagikan secara default. 

------
#### [ Linux & macOS ]

   ```
   aws ssm modify-document-permission \
       --name document name \
       --permission-type Share \
       --account-ids-to-add 'all'
   ```

------
#### [ Windows ]

   ```
   aws ssm modify-document-permission ^
       --name document name ^
       --permission-type Share ^
       --account-ids-to-add "all"
   ```

------
#### [ PowerShell ]

   ```
   Edit-SSMDocumentPermission `
       -Name document name `
       -PermissionType Share `
       -AccountIdsToAdd ('all')
   ```

------

## Memodifikasi izin untuk dokumen SSM bersama
<a name="modify-permissions-shared"></a>

Jika Anda berbagi perintah, pengguna dapat melihat dan menggunakan perintah itu sampai Anda menghapus akses ke dokumen AWS Systems Manager (SSM) atau menghapus dokumen SSM. Namun, Anda tidak dapat menghapus dokumen selama dokumen dibagikan. Anda harus berhenti membagikan terlebih dahulu dan kemudian menghapusnya.

### Berhenti membagikan dokumen (konsol)
<a name="unshare-using-console"></a>

**Berhenti membagikan dokumen**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Dokumen**.

1. Dalam daftar dokumen, pilih dokumen yang ingin Anda hentikan berbagi, lalu pilih **Detail**. Di bagian **Izin**, verifikasi bahwa Anda adalah pemilik dokumen. Hanya pemilik dokumen yang dapat berhenti berbagi dokumen.

1. Pilih **Edit**.

1. Pilih **X** untuk menghapus Akun AWS ID yang seharusnya tidak lagi memiliki akses ke perintah, lalu pilih **Simpan**. 

### Berhenti berbagi dokumen (baris perintah)
<a name="unshare-using-cli"></a>

Buka AWS CLI atau AWS Tools for Windows PowerShell di komputer lokal Anda dan jalankan perintah berikut untuk berhenti berbagi perintah.

------
#### [ Linux & macOS ]

```
aws ssm modify-document-permission \
    --name document name \
    --permission-type Share \
    --account-ids-to-remove 'Akun AWS ID'
```

------
#### [ Windows ]

```
aws ssm modify-document-permission ^
    --name document name ^
    --permission-type Share ^
    --account-ids-to-remove "Akun AWS ID"
```

------
#### [ PowerShell ]

```
Edit-SSMDocumentPermission `
    -Name document name `
    -PermissionType Share `
    –AccountIdsToRemove Akun AWS ID
```

------

## Menggunakan dokumen SSM bersama
<a name="using-shared-documents"></a>

Saat Anda membagikan dokumen AWS Systems Manager (SSM), sistem menghasilkan Nama Sumber Daya Amazon (ARN) dan menetapkannya ke perintah. Jika Anda memilih dan menjalankan dokumen bersama dari konsol Systems Manager, Anda tidak akan melihat ARN. Namun, jika Anda ingin menjalankan dokumen SSM bersama menggunakan metode selain konsol Systems Manager, Anda harus menentukan ARN lengkap dokumen untuk parameter permintaan`DocumentName`. Anda akan ditampilkan ARN penuh untuk dokumen SSM ketika Anda menjalankan perintah untuk daftar dokumen. 

**catatan**  
Anda tidak diharuskan ARNs untuk menentukan dokumen AWS publik (dokumen yang dimulai dengan`AWS-*`) atau dokumen yang Anda miliki.

### Menggunakan dokumen SSM bersama (baris perintah)
<a name="using-shared-documents-cli"></a>

 **Untuk mencantumkan semua dokumen SSM publik** 

------
#### [ Linux & macOS ]

```
aws ssm list-documents \
    --filters Key=Owner,Values=Public
```

------
#### [ Windows ]

```
aws ssm list-documents ^
    --filters Key=Owner,Values=Public
```

------
#### [ PowerShell ]

```
$filter = New-Object Amazon.SimpleSystemsManagement.Model.DocumentKeyValuesFilter
$filter.Key = "Owner"
$filter.Values = "Public"

Get-SSMDocumentList `
    -Filters @($filter)
```

------

 **Untuk membuat daftar dokumen SSM pribadi yang telah dibagikan dengan Anda** 

------
#### [ Linux & macOS ]

```
aws ssm list-documents \
    --filters Key=Owner,Values=Private
```

------
#### [ Windows ]

```
aws ssm list-documents ^
    --filters Key=Owner,Values=Private
```

------
#### [ PowerShell ]

```
$filter = New-Object Amazon.SimpleSystemsManagement.Model.DocumentKeyValuesFilter
$filter.Key = "Owner"
$filter.Values = "Private"

Get-SSMDocumentList `
    -Filters @($filter)
```

------

 **Untuk mencantumkan semua dokumen SSM yang tersedia untuk Anda** 

------
#### [ Linux & macOS ]

```
aws ssm list-documents
```

------
#### [ Windows ]

```
aws ssm list-documents
```

------
#### [ PowerShell ]

```
Get-SSMDocumentList
```

------

 **Untuk mendapatkan informasi tentang dokumen SSM yang telah dibagikan dengan Anda** 

------
#### [ Linux & macOS ]

```
aws ssm describe-document \
    --name arn:aws:ssm:us-east-2:12345678912:document/documentName
```

------
#### [ Windows ]

```
aws ssm describe-document ^
    --name arn:aws:ssm:us-east-2:12345678912:document/documentName
```

------
#### [ PowerShell ]

```
Get-SSMDocumentDescription `
    –Name arn:aws:ssm:us-east-2:12345678912:document/documentName
```

------

 **Untuk menjalankan dokumen SSM bersama** 

------
#### [ Linux & macOS ]

```
aws ssm send-command \
    --document-name arn:aws:ssm:us-east-2:12345678912:document/documentName \
    --instance-ids ID
```

------
#### [ Windows ]

```
aws ssm send-command ^
    --document-name arn:aws:ssm:us-east-2:12345678912:document/documentName ^
    --instance-ids ID
```

------
#### [ PowerShell ]

```
Send-SSMCommand `
    –DocumentName arn:aws:ssm:us-east-2:12345678912:document/documentName `
    –InstanceIds ID
```

------

# Mencari dokumen SSM
<a name="ssm-documents-searching"></a>

Anda dapat mencari dokumen SSM AWS Systems Manager (SSM) untuk dokumen SSM dengan menggunakan pencarian teks gratis atau pencarian berbasis filter. Anda juga dapat dokumen favorit untuk membantu Anda menemukan dokumen SSM yang sering digunakan. Bagian berikut menjelaskan cara menggunakan fitur-fitur ini.

## Menggunakan pencarian teks bebas
<a name="ssm-documents-searching-free-text"></a>

Kotak pencarian di halaman **Dokumen** Systems Manager mendukung pencarian teks bebas. Pencarian teks bebas membandingkan istilah pencarian atau istilah yang Anda masukkan terhadap nama dokumen di setiap dokumen SSM. Jika Anda memasukkan istilah pencarian tunggal, misalnya **ansible**, kemudian Systems Manager mengembalikan semua dokumen SSM di mana istilah ini ditemukan. Jika Anda memasukkan beberapa istilah pencarian, kemudian pencarian Systems Manager dengan menggunakan pernyataan `OR`. Misalnya, jika Anda menentukan **ansible** dan **linux**, kemudian pencarian mengembalikan semua dokumen dengan *baik* kata kunci dalam nama mereka.

Jika Anda memasukkan istilah pencarian teks bebas dan memilih opsi pencarian, seperti **Jenis platform**, lalu cari menggunakan pernyataan `AND` dan mengembalikan semua dokumen dengan kata kunci dalam nama mereka dan jenis platform yang ditentukan.

**catatan**  
Perhatikan rincian berikut tentang pencarian teks bebas.  
Pencarian teks bebas adalah *bukan* kasus sensitif.
Istilah pencarian membutuhkan minimal tiga karakter dan maksimal 20 karakter.
Pencarian teks bebas menerima hingga lima istilah penelusuran.
Jika Anda memasukkan spasi di antara istilah pencarian, sistem mencakup ruang saat mencari.
Anda dapat menggabungkan pencarian teks bebas dengan opsi pencarian lain seperti **Jenis dokumen** atau **Jenis platform**.
**Prefiks Nama Dokumen** memfilter dan mencari teks bebas tidak dapat digunakan bersama-sama. Mereka bersifat eksklusif.

**Untuk mencari dokumen SSM**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Dokumen**.

1. Masukkan istilah pencarian Anda di kotak pencarian, dan tekan Enter.

### Melakukan pencarian dokumen teks gratis dengan menggunakan AWS CLI
<a name="ssm-documents-searching-free-text-cli"></a>

**Untuk melakukan pencarian dokumen teks bebas dengan menggunakan CLI**

1. Instal dan konfigurasikan AWS Command Line Interface (AWS CLI), jika Anda belum melakukannya.

   Untuk selengkapnya, lihat [Menginstal atau memperbarui versi terbaru AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

1. Untuk melakukan pencarian dokumen teks bebas dengan satu istilah, jalankan perintah berikut. Dalam perintah ini, ganti *search\$1term* dengan informasi Anda sendiri.

   ```
   aws ssm list-documents --filters Key="SearchKeyword",Values="search_term"
   ```

   Inilah contohnya.

   ```
   aws ssm list-documents --filters Key="SearchKeyword",Values="aws-asg" --region us-east-2
   ```

   Untuk mencari menggunakan beberapa istilah yang membuat pernyataan `AND`, jalankan perintah berikut. Dalam perintah ini, ganti *search\$1term\$11* dan *search\$1term\$12* dengan informasi Anda sendiri.

   ```
   aws ssm list-documents --filters Key="SearchKeyword",Values="search_term_1","search_term_2","search_term_3" --region us-east-2
   ```

   Inilah contohnya.

   ```
   aws ssm list-documents --filters Key="SearchKeyword",Values="aws-asg","aws-ec2","restart" --region us-east-2
   ```

## Menggunakan filter
<a name="ssm-documents-searching-filters"></a>

**Dokumen** Systems Manager secara otomatis menampilkan filter berikut ketika Anda memilih kotak pencarian. 
+ Prefiks nama dokumen
+ Jenis platform
+ Jenis dokumen
+ Tombol tag

![\[Opsi filter pada halaman Dokumen SSM.\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/images/ssm-documents-filters-1.png)


Anda dapat mencari dokumen SSM dengan menggunakan filter tunggal. Jika Anda ingin mengembalikan kumpulan dokumen SSM yang lebih spesifik, Anda dapat menerapkan beberapa filter. Berikut adalah contoh pencarian yang menggunakan filter **Jenis platform** dan **Prefiks nama dokumen**.

![\[Menerapkan beberapa pilihan filter pada halaman SSM Documents.\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/images/ssm-documents-filters-2.png)


Jika Anda menerapkan beberapa filter, Systems Manager membuat pernyataan pencarian yang berbeda berdasarkan filter yang Anda pilih: 
+ Jika Anda menerapkan filter *sama* beberapa kali, misalnya **Prefiks nama dokumen**, kemudian Systems Manager menggunakan pencarian dengan pernyataan `OR`. Sebagai contoh, jika Anda menentukan satu filter **Prefiks nama dokumen**=**AWS** dan filter kedua **Prefiks nama dokumen** = **Lambda**, kemudian pencarian mengembalikan semua dokumen dengan prefiks "`AWS`" dan semua dokumen dengan prefiks "`Lambda`".
+ Jika Anda menerapkan filter *berbeda*, misalnya **Prefiks nama dokumen** dan **Jenis platform**, kemudian Systems Manager menggunakan pencarian dengan pernyataan `AND`. Sebagai contoh, jika Anda menentukan **Prefiks nama dokumen** = filter **AWS** dan **Jenis platform** = filter **Linux**, kemudian pencarian mengembalikan semua dokumen prefiks "`AWS`" yang khusus untuk platform Linux.

**catatan**  
Pencarian yang menggunakan filter peka terhadap huruf besar-kecil. 

## Menambahkan dokumen ke favorit Anda
<a name="favorite-documents"></a>

Untuk membantu Anda menemukan dokumen SSM yang sering digunakan, tambahkan dokumen ke favorit Anda. Anda dapat memfavoritkan hingga 20 dokumen per jenis dokumen, per Akun AWS dan Wilayah AWS. Anda dapat memilih, memodifikasi, dan melihat favorit Anda dari dokumen Konsol Manajemen AWS. Prosedur berikut menjelaskan cara memilih, memodifikasi, dan melihat favorit Anda.

**Untuk memfavoritkan dokumen SSM**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Dokumen**.

1. Pilih ikon bintang di sebelah nama dokumen yang ingin Anda favoritkan.

**Untuk menghapus dokumen SSM dari favorit Anda**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Dokumen**.

1. Hapus pilihan ikon bintang di sebelah nama dokumen yang ingin Anda hapus dari favorit Anda.

**Untuk melihat favorit Anda dari dokumen Konsol Manajemen AWS**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Dokumen**.

1. Pilih tab **Favorit**.

# Memecahkan masalah penanganan parameter
<a name="parameter-troubleshooting"></a>

## Masalah penanganan parameter umum
<a name="common-parameter-issues"></a>

**Variabel lingkungan tidak tersedia selama eksekusi**  
**Masalah:** Perintah gagal karena variabel lingkungan (`SSM_parameter-name`) tidak ditemukan.  
**Kemungkinan penyebabnya:**  
+ SSM Agentversi tidak mendukung interpolasi variabel lingkungan
+ `interpolationType`tidak diatur ke `ENV_VAR`
+ Nama parameter tidak cocok dengan nama variabel lingkungan yang diharapkan
**Solusi:**  
+ Verifikasi SSM Agent versi 3.3.2746.0 atau yang lebih baru
+ Tambahkan logika fallback untuk versi agen yang lebih lama:

  ```
  if [ -z "${SSM_parameterName+x}" ]; then
      export SSM_parameterName="{{parameterName}}"
  fi
  ```

**Nilai parameter yang mengandung karakter khusus**  
**Masalah:** Perintah gagal ketika nilai parameter berisi spasi, tanda kutip, atau karakter khusus lainnya.  
**Solusi:**  
+ Gunakan kutipan yang tepat saat mereferensikan variabel lingkungan:

  ```
  # Correct
  echo "$SSM_parameter-name"
  
  # Incorrect
  echo $SSM_parameter-name
  ```
+ Tambahkan validasi masukan menggunakan `allowedPattern` untuk membatasi karakter khusus

**Perilaku tidak konsisten di seluruh platform**  
**Masalah:** Penanganan parameter bekerja secara berbeda di Linux dan Windows Server sistem.  
**Solusi:**  
+ Gunakan sintaks variabel lingkungan khusus platform:

  ```
  # PowerShell
  $env:SSM_parameter-name
  
  # Bash
  $SSM_parameter-name
  ```
+ Gunakan pemeriksaan prasyarat khusus platform dalam dokumen Anda

**Nilai parameter tidak lolos dengan benar**  
**Masalah:** Kerentanan injeksi perintah meskipun menggunakan interpolasi variabel lingkungan.  
**Solusi:**  
+ Selalu gunakan escaping yang tepat saat menyertakan nilai parameter dalam perintah:

  ```
  # Correct
  mysql_command="mysql -u \"$SSM_username\" -p\"$SSM_password\""
  
  # Incorrect
  mysql_command="mysql -u $SSM_username -p$SSM_password"
  ```

## Kiat validasi parameter
<a name="parameter-validation"></a>

Gunakan teknik ini untuk memvalidasi penanganan parameter Anda:

1. Uji ketersediaan variabel lingkungan:

   ```
   #!/bin/bash
   # Print all SSM_ environment variables
   env | grep ^SSM_
   
   # Test specific parameter
   if [ -n "$SSM_parameter" ]; then
       echo "Parameter is available"
   else
       echo "Parameter is not available"
   fi
   ```

1. Verifikasi pola parameter:

   ```
   parameters:
     myParameter:
       type: String
       allowedPattern: "^[a-zA-Z0-9_-]+$"
       description: "Test this pattern with sample inputs"
   ```

1. Sertakan penanganan kesalahan:

   ```
   if [[ ! "$SSM_parameter" =~ ^[a-zA-Z0-9_-]+$ ]]; then
       echo "Parameter validation failed"
       exit 1
   fi
   ```

# AWS Systems Manager Maintenance Windows
<a name="maintenance-windows"></a>

Maintenance Windows, alat di AWS Systems Manager, membantu Anda menentukan jadwal kapan harus melakukan tindakan yang berpotensi mengganggu pada node Anda seperti menambal sistem operasi, memperbarui driver, atau menginstal perangkat lunak atau tambalan.

**catatan**  
State Managerdan Maintenance Windows dapat melakukan beberapa jenis pembaruan serupa pada node terkelola Anda. Pilihan mana yang Anda pilih bergantung pada apakah Anda perlu mengotomatisasi kepatuhan sistem atau melakukan tugas prioritas tinggi dan sensitif terhadap waktu selama periode yang ditentukan.  
Untuk informasi selengkapnya, lihat [Memilih antara State Manager dan Maintenance Windows](state-manager-vs-maintenance-windows.md).

DenganMaintenance Windows, Anda dapat menjadwalkan tindakan pada berbagai jenis AWS sumber daya lainnya, seperti bucket Amazon Simple Storage Service (Amazon S3), antrian Amazon Simple Queue Service (Amazon AWS Key Management Service SQS), kunci (), dan banyak lagi.AWS KMS

Untuk daftar lengkap jenis sumber daya yang didukung yang dapat Anda sertakan dalam target jendela pemeliharaan, lihat [Sumber daya yang dapat Anda gunakan AWS Resource Groups dan Editor Tag](https://docs.aws.amazon.com/ARG/latest/userguide/supported-resources.html#supported-resources-console) di *Panduan AWS Resource Groups Pengguna*. Untuk memulaiMaintenance Windows, buka [konsol Systems Manager](https://console.aws.amazon.com//systems-manager/maintenance-windows). Di panel navigasi, pilih **Maintenance Windows**.

Setiap jendela pemeliharaan memiliki jadwal, durasi maksimum, satu set target terdaftar (node terkelola atau AWS sumber daya lain yang ditindaklanjuti), dan serangkaian tugas terdaftar. Anda dapat menambahkan tanda ke windows pemeliharaan pada saat membuatnya. (Tanda adalah kunci yang membantu mengidentifikasi dan mengurutkan sumber daya dalam organisasi Anda.) Anda juga dapat menentukan tanggal agar jendela pemeliharaan tidak dijalankan sebelum atau sesudah, dan Anda dapat menentukan zona waktu internasional untuk mendasarkan jadwal jendela pemeliharaan. 

Untuk penjelasan tentang cara berbagai pilihan terkait jadwal untuk windows pemeliharaan berkaitan satu sama lain, lihat [Penjadwalan jendela pemeliharaan dan pilihan periode aktif](maintenance-windows-schedule-options.md).

Untuk informasi lebih lanjut tentang penggunaan pilihan `--schedule`, lihat [Referensi: Ekspresi cron dan rate untuk Systems Manager](reference-cron-and-rate-expressions.md).

**Jenis data yang didukung**  
Dengan jendela pemeliharaan, Anda dapat menjalankan empat jenis tugas:
+ Perintah diRun Command, alat di Systems Manager

  Untuk informasi selengkapnya tentang Run Command, lihat [AWS Systems Manager Run Command](run-command.md).
+ Alur kerja dalam Otomasi, alat di Systems Manager

  Untuk informasi lebih lanjut tentang alur kerja Otomatisasi, lihat [AWS Systems Manager Otomatisasi](systems-manager-automation.md).
+ Fungsi di AWS Lambda

  *Untuk informasi selengkapnya tentang fungsi Lambda, lihat [Memulai Lambda](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html) di Panduan Pengembang.AWS Lambda *
+ Tugas di AWS Step Functions
**catatan**  
Tugas jendela pemeliharaan hanya mendukung Step Functions Alur kerja mesin status standar. Mereka tidak mendukung alur kerja mesin status Express. *Untuk informasi tentang jenis alur kerja mesin status, lihat Alur [Kerja Standar vs Ekspres di Panduan Pengembang](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-standard-vs-express.html)AWS Step Functions .*

  Untuk informasi selengkapnya, lihat Step Functions dalam *Panduan Developer [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/)*.

Ini berarti Anda dapat menggunakan jendela pemeliharaan untuk melakukan tugas-tugas seperti berikut pada target yang Anda pilih.
+ Menginstal atau memperbarui aplikasi.
+ Menerapkan patch.
+ Instal atau perbaruiSSM Agent.
+ Jalankan PowerShell perintah dan skrip shell Linux dengan menggunakan Run Command tugas Systems Manager.
+ Build Amazon Machine Images (AMIs), boot-strap software, dan konfigurasi node dengan menggunakan tugas Systems Manager Automation.
+ Jalankan AWS Lambda fungsi yang memanggil tindakan tambahan, seperti memindai node Anda untuk pembaruan tambalan.
+ Jalankan AWS Step Functions state machine untuk melakukan tugas-tugas seperti menghapus node dari lingkungan Elastic Load Balancing, menambal node, dan kemudian menambahkan node kembali ke lingkungan Elastic Load Balancing.
+ Target node yang offline dengan menentukan grup AWS sumber daya sebagai target.

**catatan**  
Satu atau lebih target harus ditentukan untuk tugas Run Command tipe jendela pemeliharaan. Bergantung pada tugasnya, target bersifat opsional untuk jenis tugas jendela pemeliharaan lainnya (Otomasi, AWS Lambda, dan AWS Step Functions). Untuk informasi lebih lanjut tentang menjalankan tugas yang tidak menentukan target, lihat [Pendaftaran tugas jendela pemeliharaan tanpa target](maintenance-windows-targetless-tasks.md).

**EventBridge dukungan**  
Alat Systems Manager ini didukung sebagai jenis *peristiwa* dalam EventBridge aturan Amazon. Untuk informasi selengkapnya, lihat [Memantau peristiwa Systems Manager dengan Amazon EventBridge](monitoring-eventbridge-events.md) dan [Referensi: Pola dan jenis EventBridge acara Amazon untuk Systems Manager](reference-eventbridge-events.md).

**Topics**
+ [Menyiapkan Maintenance Windows](setting-up-maintenance-windows.md)
+ [Membuat dan mengelola jendela pemeliharaan menggunakan konsol](sysman-maintenance-working.md)
+ [Tutorial](maintenance-windows-tutorials.md)
+ [Menggunakan parameter semu saat mendaftarkan tugas jendela pemeliharaan](maintenance-window-tasks-pseudo-parameters.md)
+ [Penjadwalan jendela pemeliharaan dan pilihan periode aktif](maintenance-windows-schedule-options.md)
+ [Pendaftaran tugas jendela pemeliharaan tanpa target](maintenance-windows-targetless-tasks.md)
+ [Pemecahan masalah windows pemeliharaan](troubleshooting-maintenance-windows.md)

# Menyiapkan Maintenance Windows
<a name="setting-up-maintenance-windows"></a>

Sebelum pengguna di Anda Akun AWS dapat membuat dan menjadwalkan tugas jendela pemeliharaan menggunakan Maintenance Windows, alat di AWS Systems Manager, mereka harus diberikan izin yang diperlukan. Selain itu, Anda harus membuat peran layanan IAM untuk jendela pemeliharaan dan kebijakan IAM untuk melampirkannya.

**Sebelum Anda mulai**  
Selain izin yang Anda konfigurasikan di bagian ini, Entitas IAM (pengguna, peran, atau grup yang akan bekerja dengan jendela pemeliharaan harus sudah memiliki izin jendela pemeliharaan umum. Anda dapat memberikan izin ini dengan menetapkan kebijakan IAM `AmazonSSMFullAccess` ke Entitas, atau menetapkan kebijakan IAM khusus yang menyediakan sekumpulan izin akses yang lebih kecil untuk Systems Manager yang mencakup tugas jendela pemeliharaan.

**Topics**
+ [Kontrol akses ke jendela pemeliharaan menggunakan konsol](configuring-maintenance-window-permissions-console.md)
+ [Kontrol akses ke jendela pemeliharaan menggunakan AWS CLI](configuring-maintenance-window-permissions-cli.md)

# Kontrol akses ke jendela pemeliharaan menggunakan konsol
<a name="configuring-maintenance-window-permissions-console"></a>

Prosedur berikut menjelaskan cara menggunakan AWS Systems Manager konsol untuk membuat izin dan peran yang diperlukan untuk jendela pemeliharaan.

**Topics**
+ [Tugas 1: Membuat kebijakan khusus untuk peran layanan jendela pemeliharaan Anda menggunakan konsol](#create-custom-policy-console)
+ [Tugas 2: Buat peran layanan khusus untuk jendela pemeliharaan menggunakan konsol](#create-custom-role-console)
+ [Tugas 3: Berikan izin kepada pengguna tertentu untuk mendaftarkan tugas jendela pemeliharaan menggunakan konsol](#allow-maintenance-window-access-console)
+ [Tugas 4: Mencegah pengguna tertentu mendaftarkan tugas jendela pemeliharaan menggunakan konsol](#deny-maintenance-window-access-console)

## Tugas 1: Membuat kebijakan khusus untuk peran layanan jendela pemeliharaan Anda menggunakan konsol
<a name="create-custom-policy-console"></a>

Tugas jendela pemeliharaan memerlukan peran IAM untuk memberikan izin yang diperlukan untuk berjalan pada sumber daya target. Izin diberikan melalui kebijakan IAM yang dilampirkan pada peran. Jenis tugas yang Anda jalankan dan persyaratan operasional lainnya menentukan isi kebijakan ini. Kami menyediakan kebijakan dasar yang dapat Anda sesuaikan dengan kebutuhan Anda. Bergantung pada tugas dan jenis tugas yang dijalankan jendela pemeliharaan, Anda mungkin tidak memerlukan semua izin dalam kebijakan ini, dan Anda mungkin perlu menyertakan izin tambahan. Anda melampirkan kebijakan ini ke peran yang Anda buat nanti[Tugas 2: Buat peran layanan khusus untuk jendela pemeliharaan menggunakan konsol](#create-custom-role-console).

**Untuk membuat kebijakan khusus menggunakan konsol**

1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di panel navigasi, pilih **Kebijakan** dan kemudian pilih **Buat kebijakan**.

1. Di area **Editor kebijakan**, pilih **JSON**.

1. Ganti konten default dengan yang berikut:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ssm:SendCommand",
                   "ssm:CancelCommand",
                   "ssm:ListCommands",
                   "ssm:ListCommandInvocations",
                   "ssm:GetCommandInvocation",
                   "ssm:GetAutomationExecution",
                   "ssm:StartAutomationExecution",
                   "ssm:ListTagsForResource",
                   "ssm:DescribeInstanceInformation",
                   "ssm:GetParameters"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "states:DescribeExecution",
                   "states:StartExecution"
               ],
               "Resource": [
                   "arn:aws:states:*:*:execution:*:*",
                   "arn:aws:states:*:*:stateMachine:*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "lambda:InvokeFunction"
               ],
               "Resource": [
                   "arn:aws:lambda:*:*:function:*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "resource-groups:ListGroups",
                   "resource-groups:ListGroupResources"
               ],
               "Resource": [
                   "*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "tag:GetResources"
               ],
               "Resource": [
                   "*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": "iam:PassRole",
               "Resource": "arn:aws:iam::111122223333:role/maintenance-window-role-name",
               "Condition": {
                   "StringEquals": {
                       "iam:PassedToService": [
                           "ssm.amazonaws.com"
                       ]
                   }
               }
           }
       ]
   }
   ```

------

1. Ubah konten JSON sesuai kebutuhan untuk tugas pemeliharaan yang Anda jalankan di akun Anda. Perubahan yang Anda buat khusus untuk operasi yang Anda rencanakan. 

   Contoh:
   + Anda dapat memberikan Amazon Resource Names (ARNs) untuk fungsi dan mesin status tertentu alih-alih menggunakan kualifikasi wildcard (\$1).
   + Jika Anda tidak berencana untuk menjalankan AWS Step Functions tugas, Anda dapat menghapus `states` izin dan (ARNs).
   + Jika Anda tidak berencana untuk menjalankan AWS Lambda tugas, Anda dapat menghapus `lambda` izin dan ARNs.
   + Jika Anda tidak berencana untuk menjalankan tugas Otomasi, Anda dapat menghapus `ssm:GetAutomationExecution` dan `ssm:StartAutomationExecution` izin.
   + Tambahkan izin tambahan yang mungkin diperlukan untuk menjalankan tugas. Misalnya, beberapa tindakan Otomatisasi menggunakan tumpukan AWS CloudFormation . Oleh karena itu, izin `cloudformation:CreateStack`, `cloudformation:DescribeStacks`, dan `cloudformation:DeleteStack` diperlukan. 

     Untuk contoh lain, runbook Otomasi `AWS-CopySnapshot` memerlukan izin untuk membuat snapshot Amazon Elastic Block Store (Amazon EBS). Oleh karena itu, peran layanan memerlukan izin`ec2:CreateSnapshot`. 

     [Untuk informasi tentang izin peran yang diperlukan oleh runbook Otomasi, lihat deskripsi buku runbook di Referensi Buku Runbook Otomasi AWS Systems Manager .](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-runbook-reference.html)

1. Setelah menyelesaikan revisi kebijakan, pilih **Berikutnya**.

1. Untuk **nama Kebijakan**, masukkan nama yang mengidentifikasi ini sebagai kebijakan yang dilampirkan pada peran layanan yang Anda buat. Sebagai contoh: **my-maintenance-window-role-policy**.

1. (Opsional) Di area **Tambahkan tag**, tambahkan satu atau beberapa pasangan nilai kunci tag untuk mengatur, melacak, atau mengontrol akses kebijakan ini. 

1. Pilih **Buat kebijakan**.

   Catat nama yang Anda tentukan untuk kebijakan tersebut. Anda merujuknya di prosedur selanjutnya,[Tugas 2: Buat peran layanan khusus untuk jendela pemeliharaan menggunakan konsol](#create-custom-role-console).

## Tugas 2: Buat peran layanan khusus untuk jendela pemeliharaan menggunakan konsol
<a name="create-custom-role-console"></a>

Kebijakan yang Anda buat di tugas sebelumnya dilampirkan ke peran layanan jendela pemeliharaan yang Anda buat dalam tugas ini. Saat pengguna mendaftarkan tugas jendela pemeliharaan, mereka menentukan peran IAM ini sebagai bagian dari konfigurasi tugas. Izin dalam peran ini memungkinkan Systems Manager menjalankan tugas di jendela pemeliharaan atas nama Anda.

**penting**  
Sebelumnya, konsol Systems Manager memberi Anda kemampuan untuk memilih peran tertaut layanan IAM AWS terkelola yang akan digunakan sebagai peran `AWSServiceRoleForAmazonSSM` pemeliharaan untuk tugas Anda. Menggunakan peran ini dan kebijakan terkait,`AmazonSSMServiceRolePolicy`, untuk tugas jendela pemeliharaan tidak lagi disarankan. Jika Anda menggunakan peran ini untuk tugas jendela pemeliharaan sekarang, kami mendorong Anda untuk berhenti menggunakannya. Sebagai gantinya, buat peran IAM Anda sendiri yang memungkinkan komunikasi antara Systems Manager dan lainnya Layanan AWS saat tugas jendela pemeliharaan Anda berjalan.

Gunakan prosedur berikut untuk membuat peran layanan kustomMaintenance Windows, sehingga Systems Manager dapat menjalankan Maintenance Windows tugas atas nama Anda. Anda melampirkan kebijakan yang Anda buat di tugas sebelumnya ke peran layanan kustom yang Anda buat.

**Untuk membuat peran layanan kustom untuk jendela pemeliharaan menggunakan konsol**

1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di panel navigasi, pilih **Peran**, lalu pilih **Buat peran**.

1. Untuk **Pilih entitas tepercaya**, buat pilihan berikut:

   1. Untuk **jenis entitas Tepercaya**, pilih **AWS layanan**.

   1. Untuk **kasus Penggunaan**, pilih **Systems Manager**

   1. Pilih **Systems Manager**.

      Gambar berikut menyoroti lokasi opsi Systems Manager.  
![\[Systems Manager adalah salah satu opsi untuk kasus Use.\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/images/iam_use_cases_for_MWs.png)

1. Pilih **Berikutnya**. 

1. Di area **Kebijakan izin**, di kotak pencarian, masukkan nama kebijakan yang Anda buat[Tugas 1: Membuat kebijakan khusus untuk peran layanan jendela pemeliharaan Anda menggunakan konsol](#create-custom-policy-console), pilih kotak di samping namanya, lalu pilih **Berikutnya**.

1. Untuk **nama Peran**, masukkan nama yang mengidentifikasi peran ini sebagai Maintenance Windows peran. Sebagai contoh: **my-maintenance-window-role**.

1. (Opsional) Ubah deskripsi peran default untuk mencerminkan tujuan dari peran ini. Sebagai contoh: **Performs maintenance window tasks on your behalf**.

1. Untuk **Langkah 1: Pilih entitas tepercaya**, verifikasi bahwa kebijakan berikut ditampilkan di kotak **Kebijakan tepercaya**.

------
#### [ JSON ]

****  

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

------

1. Untuk **Langkah 2: Tambahkan izin**, verifikasi bahwa kebijakan yang Anda buat [Tugas 1: Membuat kebijakan khusus untuk peran layanan jendela pemeliharaan Anda menggunakan konsol](#create-custom-policy-console) ada.

1. (Opsional) Pada **Langkah 3: Tambahkan tag**, tambahkan satu atau beberapa pasangan nilai kunci tag untuk mengatur, melacak, atau mengontrol akses untuk peran ini. 

1. Pilih **Buat peran**. Sistem mengembalikan Anda ke halaman **Peran**.

1. Pilih nama peran IAM yang baru saja Anda buat.

1. Salin atau catat nama peran dan nilai **ARN** di area **Ringkasan**. Pengguna di akun Anda menentukan informasi ini saat mereka membuat jendela pemeliharaan.

## Tugas 3: Berikan izin kepada pengguna tertentu untuk mendaftarkan tugas jendela pemeliharaan menggunakan konsol
<a name="allow-maintenance-window-access-console"></a>

Memberikan izin kepada pengguna untuk mengakses peran layanan khusus untuk jendela pemeliharaan memungkinkan mereka menggunakannya dengan tugas jendela pemeliharaan mereka. Ini merupakan tambahan dari izin yang telah Anda berikan kepada mereka untuk bekerja dengan perintah Systems Manager API untuk Maintenance Windows alat tersebut. Peran IAM ini menyampaikan izin yang diperlukan untuk menjalankan tugas jendela pemeliharaan. Akibatnya, pengguna tidak dapat mendaftarkan tugas dengan jendela pemeliharaan menggunakan peran layanan kustom Anda tanpa kemampuan untuk meneruskan izin IAM ini.

Saat Anda mendaftarkan tugas dengan jendela pemeliharaan, Anda menentukan peran layanan untuk menjalankan operasi tugas yang sebenarnya. Ini merupakan peran yang diasumsikan layanan saat menjalankan tugas atas nama Anda. Sebelum itu, untuk mendaftarkan tugas itu sendiri, tetapkan `PassRole` kebijakan IAM ke entitas IAM (seperti pengguna atau grup). Hal ini memungkinkan entitas IAM untuk menentukan, sebagai bagian dari mendaftarkan tugas-tugas tersebut dengan jendela pemeliharaan, peran yang harus digunakan saat menjalankan tugas. Untuk selengkapnya, lihat [Memberikan izin pengguna untuk meneruskan peran ke Layanan AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) dalam *Panduan Pengguna IAM*.

**Untuk mengonfigurasi izin agar pengguna dapat mendaftarkan tugas jendela pemeliharaan**

Jika entitas IAM (pengguna, peran, atau grup) diatur dengan izin administrator, maka pengguna atau peran IAM memiliki akses ke Windows Pemeliharaan. Untuk entitas IAM tanpa izin administrator, administrator harus memberikan izin berikut ke entitas IAM. Ini adalah izin minimum yang diperlukan untuk mendaftarkan tugas dengan jendela pemeliharaan:
+ Kebijakan `AmazonSSMFullAccess` terkelola, atau kebijakan yang memberikan izin yang sebanding.
+ Berikut `iam:PassRole` dan `iam:ListRoles` izin.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": "iam:PassRole",
              "Resource": "arn:aws:iam::111122223333:role/my-maintenance-window-role"
          },
          {
              "Effect": "Allow",
              "Action": "iam:ListRoles",
              "Resource": "arn:aws:iam::111122223333:role/"
          },
          {
              "Effect": "Allow",
              "Action": "iam:ListRoles",
              "Resource": "arn:aws:iam::111122223333:role/aws-service-role/ssm.amazonaws.com/"
          }
      ]
  }
  ```

------

  *my-maintenance-window-role*mewakili nama peran layanan jendela pemeliharaan kustom yang Anda buat sebelumnya.

  *account-id*mewakili ID Anda Akun AWS. Penambahan izin ini untuk `arn:aws:iam::account-id:role/` sumber daya memungkinkan pengguna untuk melihat dan memilih dari peran pelanggan di konsol saat membuat tugas jendela pemeliharaan. Penambahan izin ini untuk `arn:aws:iam::account-id:role/aws-service-role/ssm.amazonaws.com/` memungkinkan pengguna untuk memilih peran terkait layanan Systems Manager di konsol saat membuat tugas jendela pemeliharaan. 

  Untuk memberikan akses dan menambahkan izin bagi pengguna, grup, atau peran Anda:
  + Pengguna dan grup di AWS IAM Identity Center:

    Buat rangkaian izin. Ikuti instruksi di [Buat rangkaian izin](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html) dalam *Panduan Pengguna AWS IAM Identity Center *.
  + Pengguna yang dikelola di IAM melalui penyedia identitas:

    Buat peran untuk federasi identitas. Ikuti instruksi dalam [Buat peran untuk penyedia identitas pihak ketiga (federasi)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) dalam *Panduan Pengguna IAM*.
  + Pengguna IAM:
    + Buat peran yang dapat diambil pengguna Anda. Ikuti instruksi dalam [Buat peran untuk pengguna IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) dalam *Panduan Pengguna IAM*.
    + (Tidak disarankan) Lampirkan kebijakan langsung ke pengguna atau tambahkan pengguna ke grup pengguna. Ikuti petunjuk dalam [Menambahkan izin ke pengguna (konsol)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) dalam *Panduan Pengguna IAM*.

**Untuk mengonfigurasi izin untuk grup yang diizinkan untuk mendaftarkan tugas jendela pemeliharaan menggunakan konsol**

1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Pada panel navigasi, pilih **User groups** (Grup pengguna).

1. Dalam daftar grup, pilih nama grup yang ingin Anda tetapkan `iam:PassRole` izinnya, atau buat grup baru terlebih dahulu jika perlu 

1. Pada tab **Izin**, pilih **Tambahkan izin, Buat kebijakan sebaris**.

1. Di area **Editor kebijakan**, pilih **JSON**, dan ganti isi default kotak dengan yang berikut ini.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "iam:PassRole",
               "Resource": "arn:aws:iam::111122223333:role/my-maintenance-window-role"
           },
           {
               "Effect": "Allow",
               "Action": "iam:ListRoles",
               "Resource": "arn:aws:iam::111122223333:role/"
           },
           {
               "Effect": "Allow",
               "Action": "iam:ListRoles",
               "Resource": "arn:aws:iam::111122223333:role/aws-service-role/ssm.amazonaws.com/"
           }
       ]
   }
   ```

------

   *my-maintenance-window-role*mewakili nama peran jendela pemeliharaan kustom yang Anda buat sebelumnya.

   *account-id*mewakili ID Anda Akun AWS. Penambahan izin ini untuk `arn:aws:iam::account-id:role/` sumber daya memungkinkan pengguna untuk melihat dan memilih dari peran pelanggan di konsol saat membuat tugas jendela pemeliharaan. Penambahan izin ini untuk `arn:aws:iam::account-id:role/aws-service-role/ssm.amazonaws.com/` memungkinkan pengguna untuk memilih peran terkait layanan Systems Manager di konsol saat membuat tugas jendela pemeliharaan. 

1. Pilih **Berikutnya**.

1. Pada halaman **Tinjau dan buat**, masukkan nama di kotak **Nama kebijakan** untuk mengidentifikasi `PassRole` kebijakan ini, seperti**my-group-iam-passrole-policy**, lalu pilih **Buat kebijakan**.

## Tugas 4: Mencegah pengguna tertentu mendaftarkan tugas jendela pemeliharaan menggunakan konsol
<a name="deny-maintenance-window-access-console"></a>

Anda dapat menolak `ssm:RegisterTaskWithMaintenanceWindow` izin untuk pengguna di Anda Akun AWS yang Anda tidak ingin mendaftarkan tugas dengan jendela pemeliharaan. Ini memberikan lapisan pencegahan ekstra bagi pengguna yang tidak boleh mendaftarkan tugas jendela pemeliharaan.

**Untuk mengonfigurasi izin untuk grup yang tidak diizinkan mendaftarkan tugas jendela pemeliharaan menggunakan konsol**

1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Pada panel navigasi, pilih **User groups** (Grup pengguna).

1. Dalam daftar grup, pilih nama grup yang ingin Anda tolak `ssm:RegisterTaskWithMaintenanceWindow` izinnya, atau buat grup baru terlebih dahulu jika perlu.

1. Pada tab **Izin**, pilih **Tambahkan izin, Buat kebijakan sebaris**.

1. Di area **Editor kebijakan**, pilih **JSON**, lalu ganti isi default kotak dengan yang berikut ini.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Deny",
               "Action": "ssm:RegisterTaskWithMaintenanceWindow",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Pilih **Berikutnya**.

1. Pada halaman **Tinjau dan buat**, untuk **nama Kebijakan**, masukkan nama untuk mengidentifikasi kebijakan ini, seperti**my-groups-deny-mw-tasks-policy**, lalu pilih **Buat kebijakan**.

# Kontrol akses ke jendela pemeliharaan menggunakan AWS CLI
<a name="configuring-maintenance-window-permissions-cli"></a>

Prosedur berikut menjelaskan cara menggunakan AWS Command Line Interface (AWS CLI) untuk membuat izin dan peran yang diperlukan untukMaintenance Windows, alat di AWS Systems Manager.

**Topics**
+ [Tugas 1: Membuat kebijakan kepercayaan dan file kebijakan yang dikelola pelanggan dalam format JSON](#create-custom-policy-json-files-cli)
+ [Tugas 2: Membuat dan memverifikasi peran layanan khusus untuk jendela pemeliharaan menggunakan AWS CLI](#create-custom-role-cli)
+ [Tugas 3: Berikan izin kepada pengguna tertentu untuk mendaftarkan tugas jendela pemeliharaan menggunakan AWS CLI](#allow-maintenance-window-access-cli)
+ [Tugas 4: Mencegah pengguna tertentu dari mendaftarkan tugas jendela pemeliharaan menggunakan AWS CLI](#deny-maintenance-window-access-cli)

## Tugas 1: Membuat kebijakan kepercayaan dan file kebijakan yang dikelola pelanggan dalam format JSON
<a name="create-custom-policy-json-files-cli"></a>

Tugas jendela pemeliharaan memerlukan peran IAM untuk memberikan izin yang diperlukan untuk berjalan pada sumber daya target. Izin diberikan melalui kebijakan IAM yang dilampirkan pada peran. Jenis tugas yang Anda jalankan dan persyaratan operasional lainnya menentukan isi kebijakan ini. Kami menyediakan kebijakan dasar yang dapat Anda sesuaikan dengan kebutuhan Anda. Bergantung pada tugas dan jenis tugas yang dijalankan jendela pemeliharaan, Anda mungkin tidak memerlukan semua izin dalam kebijakan ini, dan Anda mungkin perlu menyertakan izin tambahan. 

Dalam tugas ini, Anda menentukan izin yang diperlukan untuk peran jendela pemeliharaan kustom Anda dalam sepasang file JSON. Anda melampirkan kebijakan ini ke peran yang Anda buat nanti[Tugas 2: Membuat dan memverifikasi peran layanan khusus untuk jendela pemeliharaan menggunakan AWS CLI](#create-custom-role-cli). 

**Untuk membuat kebijakan kepercayaan dan file kebijakan yang dikelola pelanggan**

1. Salin dan tempelkan kebijakan kepercayaan berikut ke dalam file teks. Simpan file ini dengan nama dan ekstensi file berikut:**mw-role-trust-policy.json**.

------
#### [ JSON ]

****  

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

------

1. Salin dan tempel kebijakan JSON berikut ke file teks yang berbeda. Di direktori yang sama tempat Anda membuat file pertama, simpan file ini dengan nama dan ekstensi file berikut:**mw-role-custom-policy.json**.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ssm:SendCommand",
                   "ssm:CancelCommand",
                   "ssm:ListCommands",
                   "ssm:ListCommandInvocations",
                   "ssm:GetCommandInvocation",
                   "ssm:GetAutomationExecution",
                   "ssm:StartAutomationExecution",
                   "ssm:ListTagsForResource",
                   "ssm:GetParameters"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "states:DescribeExecution",
                   "states:StartExecution"
               ],
               "Resource": [
                   "arn:aws:states:*:*:execution:*:*",
                   "arn:aws:states:*:*:stateMachine:*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "lambda:InvokeFunction"
               ],
               "Resource": [
                   "arn:aws:lambda:*:*:function:*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "resource-groups:ListGroups",
                   "resource-groups:ListGroupResources"
               ],
               "Resource": [
                   "*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "tag:GetResources"
               ],
               "Resource": [
                   "*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": "iam:PassRole",
               "Resource": "arn:aws:iam::111122223333:role/maintenance-window-role-name",
               "Condition": {
                   "StringEquals": {
                       "iam:PassedToService": [
                           "ssm.amazonaws.com"
                       ]
                   }
               }
           }
       ]
   }
   ```

------

1. Ubah konten sesuai `mw-role-custom-policy.json` kebutuhan untuk tugas pemeliharaan yang Anda jalankan di akun Anda. Perubahan yang Anda buat khusus untuk operasi yang Anda rencanakan. 

   Contoh:
   + Anda dapat memberikan Amazon Resource Names (ARNs) untuk fungsi dan mesin status tertentu alih-alih menggunakan kualifikasi wildcard (\$1).
   + Jika Anda tidak berencana untuk menjalankan AWS Step Functions tugas, Anda dapat menghapus `states` izin dan (ARNs).
   + Jika Anda tidak berencana untuk menjalankan AWS Lambda tugas, Anda dapat menghapus `lambda` izin dan ARNs.
   + Jika Anda tidak berencana untuk menjalankan tugas Otomasi, Anda dapat menghapus `ssm:GetAutomationExecution` dan `ssm:StartAutomationExecution` izin.
   + Tambahkan izin tambahan yang mungkin diperlukan untuk menjalankan tugas. Misalnya, beberapa tindakan Otomatisasi menggunakan tumpukan AWS CloudFormation . Oleh karena itu, izin `cloudformation:CreateStack`, `cloudformation:DescribeStacks`, dan `cloudformation:DeleteStack` diperlukan. 

     Untuk contoh lain, runbook Otomasi `AWS-CopySnapshot` memerlukan izin untuk membuat snapshot Amazon Elastic Block Store (Amazon EBS). Oleh karena itu, peran layanan memerlukan izin`ec2:CreateSnapshot`. 

     [Untuk informasi tentang izin peran yang diperlukan oleh runbook Otomasi, lihat deskripsi buku runbook di Referensi Buku Runbook Otomasi AWS Systems Manager .](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-runbook-reference.html)

   Simpan file lagi setelah melakukan perubahan yang diperlukan.

## Tugas 2: Membuat dan memverifikasi peran layanan khusus untuk jendela pemeliharaan menggunakan AWS CLI
<a name="create-custom-role-cli"></a>

Kebijakan yang Anda buat di tugas sebelumnya dilampirkan ke peran layanan jendela pemeliharaan yang Anda buat dalam tugas ini. Saat pengguna mendaftarkan tugas jendela pemeliharaan, mereka menentukan peran IAM ini sebagai bagian dari konfigurasi tugas. Izin dalam peran ini memungkinkan Systems Manager menjalankan tugas di jendela pemeliharaan atas nama Anda.

**penting**  
Sebelumnya, konsol Systems Manager memberi Anda kemampuan untuk memilih peran tertaut layanan IAM AWS terkelola yang akan digunakan sebagai peran `AWSServiceRoleForAmazonSSM` pemeliharaan untuk tugas Anda. Menggunakan peran ini dan kebijakan terkait,`AmazonSSMServiceRolePolicy`, untuk tugas jendela pemeliharaan tidak lagi disarankan. Jika Anda menggunakan peran ini untuk tugas jendela pemeliharaan sekarang, kami mendorong Anda untuk berhenti menggunakannya. Sebagai gantinya, buat peran IAM Anda sendiri yang memungkinkan komunikasi antara Systems Manager dan lainnya Layanan AWS saat tugas jendela pemeliharaan Anda berjalan.

Dalam tugas ini, Anda menjalankan perintah CLI untuk membuat peran layanan windows pemeliharaan, menambahkan konten kebijakan dari file JSON yang Anda buat. 

**Buat peran layanan khusus untuk jendela pemeliharaan menggunakan AWS CLI**

1. Buka AWS CLI dan jalankan perintah berikut di direktori tempat Anda ditempatkan `mw-role-custom-policy.json` dan`mw-role-trust-policy.json`. Perintah membuat peran layanan jendela pemeliharaan yang dipanggil `my-maintenance-window-role` dan melampirkan *kebijakan kepercayaan* padanya.

------
#### [ Linux & macOS ]

   ```
   aws iam create-role \
       --role-name "my-maintenance-window-role" \
       --assume-role-policy-document file://mw-role-trust-policy.json
   ```

------
#### [ Windows ]

   ```
   aws iam create-role ^
       --role-name "my-maintenance-window-role" ^
       --assume-role-policy-document file://mw-role-trust-policy.json
   ```

------

   Sistem mengembalikan informasi seperti berikut ini.

   ```
   {
       "Role": {
           "AssumeRolePolicyDocument": {
               "Version": "2012-10-17", 		 	 	 		 	 	 
               "Statement": [
                   {
                       "Action": "sts:AssumeRole",
                       "Effect": "Allow",
                       "Principal": {
                           "Service": "ssm.amazonaws.com"
                       }
                   }
               ]
           },
           "RoleId": "AROAIIZKPBKS2LEXAMPLE",
           "CreateDate": "2024-08-19T03:40:17.373Z",
           "RoleName": "my-maintenance-window-role",
           "Path": "/",
           "Arn": "arn:aws:iam::123456789012:role/my-maintenance-window-role"
       }
   }
   ```
**catatan**  
Catat nilai `RoleName` dan `Arn`. Anda memasukkannya ke dalam perintah berikutnya.

1. Jalankan perintah berikut untuk melampirkan *kebijakan yang dikelola pelanggan* ke peran. Ganti *account-id* placeholder dengan ID Anda sendiri Akun AWS 

------
#### [ Linux & macOS ]

   ```
   aws iam attach-role-policy \
       --role-name "my-maintenance-window-role" \
       --policy-arn "arn:aws:iam::account-id:policy/mw-role-custom-policy.json"
   ```

------
#### [ Windows ]

   ```
   aws iam attach-role-policy ^
       --role-name "my-maintenance-window-role" ^
       --policy-arn "arn:aws:iam::account-id:policy/mw-role-custom-policy.json"
   ```

------

1. Jalankan perintah berikut untuk memverifikasi bahwa peran Anda telah dibuat, dan bahwa kebijakan kepercayaan telah dilampirkan.

   ```
   aws iam get-role --role-name my-maintenance-window-role
   ```

   Perintah mengembalikan informasi yang mirip dengan berikut ini:

   ```
   {
       "Role": {
           "Path": "/",
           "RoleName": "my-maintenance-window-role",
           "RoleId": "AROA123456789EXAMPLE",
           "Arn": "arn:aws:iam::123456789012:role/my-maintenance-window-role",
           "CreateDate": "2024-08-19T14:13:32+00:00",
           "AssumeRolePolicyDocument": {
               "Version": "2012-10-17", 		 	 	 		 	 	 
               "Statement": [
                   {
                       "Effect": "Allow",
                       "Principal": {
                           "Service": "ssm.amazonaws.com"
                       },
                       "Action": "sts:AssumeRole"
                   }
               ]
           },
           "MaxSessionDuration": 3600,
           "RoleLastUsed": {
               "LastUsedDate": "2024-08-19T14:30:44+00:00",
               "Region": "us-east-2"
           }
       }
   }
   ```

1. Jalankan perintah berikut untuk memverifikasi bahwa kebijakan yang dikelola pelanggan telah dilampirkan ke peran tersebut.

   ```
   aws iam list-attached-role-policies --role-name my-maintenance-window-role
   ```

   Perintah mengembalikan informasi yang mirip dengan berikut ini:

   ```
   {
       "AttachedPolicies": [
           {
               "PolicyName": "mw-role-custom-policy",
               "PolicyArn": "arn:aws:iam::123456789012:policy/mw-role-custom-policy"
           }
       ]
   }
   ```

## Tugas 3: Berikan izin kepada pengguna tertentu untuk mendaftarkan tugas jendela pemeliharaan menggunakan AWS CLI
<a name="allow-maintenance-window-access-cli"></a>

Memberikan izin kepada pengguna untuk mengakses peran layanan khusus untuk jendela pemeliharaan memungkinkan mereka menggunakannya dengan tugas jendela pemeliharaan mereka. Ini merupakan tambahan dari izin yang telah Anda berikan kepada mereka untuk bekerja dengan perintah Systems Manager API untuk Maintenance Windows alat tersebut. Peran IAM ini menyampaikan izin yang diperlukan untuk menjalankan tugas jendela pemeliharaan. Akibatnya, pengguna tidak dapat mendaftarkan tugas dengan jendela pemeliharaan menggunakan peran layanan kustom Anda tanpa kemampuan untuk meneruskan izin IAM ini.

Saat Anda mendaftarkan tugas dengan jendela pemeliharaan, Anda menentukan peran layanan untuk menjalankan operasi tugas yang sebenarnya. Ini merupakan peran yang diasumsikan layanan saat menjalankan tugas atas nama Anda. Sebelum itu, untuk mendaftarkan tugas itu sendiri, tetapkan `PassRole` kebijakan IAM ke entitas IAM (seperti pengguna atau grup). Hal ini memungkinkan entitas IAM untuk menentukan, sebagai bagian dari mendaftarkan tugas-tugas tersebut dengan jendela pemeliharaan, peran yang harus digunakan saat menjalankan tugas. Untuk selengkapnya, lihat [Memberikan izin pengguna untuk meneruskan peran ke Layanan AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) dalam *Panduan Pengguna IAM*.

**Untuk mengonfigurasi izin bagi pengguna yang diizinkan untuk mendaftarkan tugas jendela pemeliharaan menggunakan AWS CLI**

1. Salin dan tempel kebijakan AWS Identity and Access Management (IAM) berikut ke editor teks dan simpan dengan nama dan ekstensi file berikut:`mw-passrole-policy.json`.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "iam:PassRole",
               "Resource": "arn:aws:iam::111122223333:role/my-maintenance-window-role"
           },
           {
               "Effect": "Allow",
               "Action": "iam:ListRoles",
               "Resource": "arn:aws:iam::111122223333:role/"
           },
           {
               "Effect": "Allow",
               "Action": "iam:ListRoles",
               "Resource": "arn:aws:iam::111122223333:role/aws-service-role/ssm.amazonaws.com/"
           }
       ]
   }
   ```

------

   Ganti *my-maintenance-window-role* dengan nama peran jendela pemeliharaan kustom yang Anda buat sebelumnya.

   Ganti *account-id* dengan ID Anda Akun AWS. Penambahan izin ini untuk `arn:aws:iam::account-id:role/` sumber daya memungkinkan pengguna dalam grup untuk melihat dan memilih dari peran pelanggan di konsol saat membuat tugas jendela pemeliharaan. Penambahan izin ini untuk `arn:aws:iam::account-id:role/aws-service-role/ssm.amazonaws.com/` memungkinkan pengguna di grup untuk memilih peran terkait layanan Systems Manager di konsol saat membuat tugas jendela pemeliharaan. 

1. Buka AWS CLI.

1. Bergantung pada apakah Anda menetapkan izin ke entitas IAM (pengguna atau grup), jalankan salah satu perintah berikut.
   + **Untuk entitas IAM:**

------
#### [ Linux & macOS ]

     ```
     aws iam put-user-policy \
         --user-name "user-name" \
         --policy-name "policy-name" \
         --policy-document file://path-to-document
     ```

------
#### [ Windows ]

     ```
     aws iam put-user-policy ^
         --user-name "user-name" ^
         --policy-name "policy-name" ^
         --policy-document file://path-to-document
     ```

------

     Untuk*user-name*, tentukan pengguna yang memberikan tugas ke jendela pemeliharaan. Untuk*policy-name*, tentukan nama yang ingin Anda gunakan untuk mengidentifikasi kebijakan, seperti**my-iam-passrole-policy**. Untuk*path-to-document*, tentukan jalur ke file yang Anda simpan di langkah 1. Misalnya: `file://C:\Temp\mw-passrole-policy.json`
**catatan**  
Untuk memberikan akses bagi pengguna untuk mendaftarkan tugas untuk jendela pemeliharaan menggunakan konsol Systems Manager, Anda juga harus menetapkan `AmazonSSMFullAccess` kebijakan tersebut kepada pengguna Anda (atau kebijakan IAM yang menyediakan sekumpulan izin akses yang lebih kecil untuk Systems Manager yang mencakup tugas jendela pemeliharaan). Jalankan perintah berikut untuk menetapkan `AmazonSSMFullAccess` kebijakan kepada pengguna Anda.  

     ```
     aws iam attach-user-policy \
         --policy-arn "arn:aws:iam::aws:policy/AmazonSSMFullAccess" \
         --user-name "user-name"
     ```

     ```
     aws iam attach-user-policy ^
         --policy-arn "arn:aws:iam::aws:policy/AmazonSSMFullAccess" ^
         --user-name "user-name"
     ```
   + **Untuk grup IAM**:

------
#### [ Linux & macOS ]

     ```
     aws iam put-group-policy \
         --group-name "group-name" \
         --policy-name "policy-name" \
         --policy-document file://path-to-document
     ```

------
#### [ Windows ]

     ```
     aws iam put-group-policy ^
         --group-name "group-name" ^
         --policy-name "policy-name" ^
         --policy-document file://path-to-document
     ```

------

     Untuk*group-name*, tentukan grup yang anggotanya menetapkan tugas ke jendela pemeliharaan. Untuk*policy-name*, tentukan nama yang ingin Anda gunakan untuk mengidentifikasi kebijakan, seperti**my-iam-passrole-policy**. Untuk*path-to-document*, tentukan jalur ke file yang Anda simpan di langkah 1. Sebagai contoh: `file://C:\Temp\mw-passrole-policy.json`
**catatan**  
Untuk memberikan akses kepada anggota grup untuk mendaftarkan tugas untuk windows pemeliharaan menggunakan konsol Systems Manager, Anda juga harus menetapkan kebijakan `AmazonSSMFullAccess` ke grup Anda. Jalankan perintah berikut untuk menetapkan kebijakan ini ke grup Anda.  

     ```
     aws iam attach-group-policy \
         --policy-arn "arn:aws:iam::aws:policy/AmazonSSMFullAccess" \
         --group-name "group-name"
     ```

     ```
     aws iam attach-group-policy ^
         --policy-arn "arn:aws:iam::aws:policy/AmazonSSMFullAccess" ^
         --group-name "group-name"
     ```

1. Jalankan perintah berikut untuk memastikan kebijakan telah ditetapkan ke grup.

------
#### [ Linux & macOS ]

   ```
   aws iam list-group-policies \
       --group-name "group-name"
   ```

------
#### [ Windows ]

   ```
   aws iam list-group-policies ^
       --group-name "group-name"
   ```

------

## Tugas 4: Mencegah pengguna tertentu dari mendaftarkan tugas jendela pemeliharaan menggunakan AWS CLI
<a name="deny-maintenance-window-access-cli"></a>

Anda dapat menolak `ssm:RegisterTaskWithMaintenanceWindow` izin untuk pengguna di Anda Akun AWS yang Anda tidak ingin mendaftarkan tugas dengan jendela pemeliharaan. Ini memberikan lapisan pencegahan ekstra bagi pengguna yang tidak boleh mendaftarkan tugas jendela pemeliharaan.

Tergantung dari apakah Anda menolak izin `ssm:RegisterTaskWithMaintenanceWindow` untuk pengguna individu atau grup, gunakan salah satu dari prosedur berikut ini untuk mencegah pengguna dari mendaftarkan tugas dengan jendela pemeliharaan. 

**Untuk mengonfigurasi izin bagi pengguna yang tidak diizinkan mendaftarkan tugas jendela pemeliharaan menggunakan AWS CLI**

1. Salin dan tempelkan kebijakan IAM berikut ke editor teks dan simpan dengan nama dan ekstensi file berikut: **deny-mw-tasks-policy.json**.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Deny",
               "Action": "ssm:RegisterTaskWithMaintenanceWindow",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Buka AWS CLI.

1. Bergantung pada apakah Anda menetapkan izin ke entitas IAM (pengguna atau grup), jalankan salah satu perintah berikut.
   + **Untuk pengguna:**

------
#### [ Linux & macOS ]

     ```
     aws iam put-user-policy \
         --user-name "user-name" \
         --policy-name "policy-name" \
         --policy-document file://path-to-document
     ```

------
#### [ Windows ]

     ```
     aws iam put-user-policy ^
         --user-name "user-name" ^
         --policy-name "policy-name" ^
         --policy-document file://path-to-document
     ```

------

     Untuk*user-name*, tentukan pengguna untuk mencegah dari menetapkan tugas ke jendela pemeliharaan. Untuk*policy-name*, tentukan nama yang ingin Anda gunakan untuk mengidentifikasi kebijakan, seperti**my-deny-mw-tasks-policy**. Untuk*path-to-document*, tentukan jalur ke file yang Anda simpan di langkah 1. Misalnya: `file://C:\Temp\deny-mw-tasks-policy.json`
   + **Untuk grup:**

------
#### [ Linux & macOS ]

     ```
     aws iam put-group-policy \
         --group-name "group-name" \
         --policy-name "policy-name" \
         --policy-document file://path-to-document
     ```

------
#### [ Windows ]

     ```
     aws iam put-group-policy ^
         --group-name "group-name" ^
         --policy-name "policy-name" ^
         --policy-document file://path-to-document
     ```

------

     Untuk*group-name*, tentukan grup yang mencegah dari menetapkan tugas ke jendela pemeliharaan. Untuk*policy-name*, tentukan nama yang ingin Anda gunakan untuk mengidentifikasi kebijakan, seperti**my-deny-mw-tasks-policy**. Untuk*path-to-document*, tentukan jalur ke file yang Anda simpan di langkah 1. Sebagai contoh: `file://C:\Temp\deny-mw-tasks-policy.json`

1. Jalankan perintah berikut untuk memastikan kebijakan telah ditetapkan ke grup.

------
#### [ Linux & macOS ]

   ```
   aws iam list-group-policies \
       --group-name "group-name"
   ```

------
#### [ Windows ]

   ```
   aws iam list-group-policies ^
       --group-name "group-name"
   ```

------

# Membuat dan mengelola jendela pemeliharaan menggunakan konsol
<a name="sysman-maintenance-working"></a>

Bagian ini menjelaskan cara membuat, mengonfigurasi, memperbarui, dan menghapus jendela pemeliharaan menggunakan AWS Systems Manager konsol. Bagian ini juga menyediakan informasi tentang pengelolaan target dan tugas jendela pemeliharaan.

**penting**  
Kami merekomendasikan agar Anda terlebih dahulu membuat dan mengonfigurasi windows pemeliharaan di lingkungan pengujian. 

**Sebelum Anda mulai**  
Sebelum Anda membuat jendela pemeliharaan, Anda harus mengkonfigurasi akses keMaintenance Windows, alat di AWS Systems Manager. Lihat informasi yang lebih lengkap di [Menyiapkan Maintenance Windows](setting-up-maintenance-windows.md).

**Topics**
+ [Buat jendela pemeliharaan menggunakan konsol](sysman-maintenance-create-mw.md)
+ [Tetapkan target ke jendela pemeliharaan menggunakan konsol](sysman-maintenance-assign-targets.md)
+ [Tetapkan tugas ke jendela pemeliharaan menggunakan konsol](sysman-maintenance-assign-tasks.md)
+ [Nonaktifkan atau aktifkan jendela pemeliharaan menggunakan konsol](sysman-maintenance-disable.md)
+ [Perbarui atau hapus sumber daya jendela pemeliharaan menggunakan konsol](sysman-maintenance-update.md)

# Buat jendela pemeliharaan menggunakan konsol
<a name="sysman-maintenance-create-mw"></a>

Dalam prosedur ini, Anda membuat jendela pemeliharaan diMaintenance Windows, alat di AWS Systems Manager. Anda dapat menentukan pilihan dasarnya, seperti nama, jadwal, dan durasi. Di langkah berikutnya, Anda memilih target, atau sumber daya, yang diperbarui olehnya dan tugas yang dijalankan saat jendela pemeliharaan berjalan.

**catatan**  
Untuk penjelasan tentang cara berbagai pilihan terkait jadwal untuk windows pemeliharaan berkaitan satu sama lain, lihat [Penjadwalan jendela pemeliharaan dan pilihan periode aktif](maintenance-windows-schedule-options.md).  
Untuk informasi lebih lanjut tentang penggunaan pilihan `--schedule`, lihat [Referensi: Ekspresi cron dan rate untuk Systems Manager](reference-cron-and-rate-expressions.md).

**Untuk membuat jendela pemeliharaan menggunakan konsol**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Maintenance Windows**. 

1. Pilih **Buat jendela pemeliharaan**.

1. Untuk **Nama**, masukkan nama deskriptif untuk membantu Anda mengidentifikasi jendela pemeliharaan ini.

1. (Opsional) Untuk **Deskripsi**, masukkan deskripsi untuk mengidentifikasi bagaimana jendela pemeliharaan ini akan digunakan.

1. (Opsional) Jika Anda ingin mengizinkan tugas jendela pemeliharaan berjalan pada node terkelola, bahkan jika Anda belum mendaftarkan node tersebut sebagai target, pilih **Izinkan target yang tidak terdaftar**. 

   Jika Anda memilih opsi ini, maka Anda dapat memilih node yang tidak terdaftar (dengan ID node) saat Anda mendaftarkan tugas dengan jendela pemeliharaan. 

   Jika Anda tidak memilih opsi ini, maka Anda harus memilih target yang terdaftar sebelumnya saat Anda mendaftarkan tugas dengan jendela pemeliharaan.

1. Tentukan jadwal untuk jendela pemeliharaan dengan menggunakan salah satu dari tiga pilihan penjadwalan.

   Untuk informasi tentang membangun cron/rate ekspresi, lihat[Referensi: Ekspresi cron dan rate untuk Systems Manager](reference-cron-and-rate-expressions.md).

1. Untuk **Durasi**, masukkan jumlah jam yang akan dijalankan oleh jendela pemeliharaan. Nilai yang Anda tentukan menentukan waktu selesai tertentu untuk jendela pemeliharaan berdasarkan waktu dimulainya. Tidak ada tugas jendela pemeliharaan yang diizinkan untuk memulai setelah waktu selesai dikurangi jumlah jam yang Anda tentukan untuk **Berhenti memulai tugas** di langkah berikutnya.

   Sebagai contoh, jika jendela pemeliharaan dimulai pada pukul 3 sore, durasinya tiga jam, dan nilai **Berhenti memulai tugas** adalah satu jam, tidak ada tugas jendela pemeliharaan yang dapat memulai setelah pukul 5 sore.

1. Untuk **Berhenti memulai tugas**, masukkan jumlah jam sebelum akhir jendela pemeliharaan dimana sistem harus berhenti menjadwalkan tugas baru untuk dijalankan.

1. (Opsional) Untuk **tanggal mulai Window**, tentukan tanggal dan waktu, dalam format ISO-8601 Extended, untuk saat Anda ingin jendela pemeliharaan menjadi aktif. Ini memungkinkan Anda menunda aktivasi jendela pemeliharaan hingga tanggal yang ditentukan di masa depan.
**catatan**  
Anda tidak dapat menentukan tanggal dan waktu mulai yang terjadi di masa lalu.

1. (Opsional) Untuk **tanggal akhir Window**, tentukan tanggal dan waktu, dalam format ISO-8601 Extended, untuk saat Anda ingin jendela pemeliharaan menjadi tidak aktif. Hal ini memungkinkan Anda untuk mengatur tanggal dan waktu di masa depan setelah jendela pemeliharaan tidak lagi berjalan.

1. (Opsional) Untuk **zona waktu Jadwal**, tentukan zona waktu yang akan digunakan sebagai dasar kapan jendela pemeliharaan terjadwal berjalan, dalam format Internet Assigned Numbers Authority (IANA). Misalnya: "America/Los\$1Angeles", "etc/UTC", or "Asia/Seoul”.

   Untuk informasi lebih lanjut tentang format yang valid, lihat [Basis Data Zona Waktu](https://www.iana.org/time-zones) di situs web IANA.

1. (Opsional) Untuk **offset Jadwal**, masukkan jumlah hari untuk menunggu setelah tanggal dan waktu yang ditentukan oleh ekspresi cron atau rate sebelum menjalankan jendela pemeliharaan. Anda dapat menentukan antara satu dan enam hari.
**catatan**  
Opsi ini hanya tersedia jika Anda menentukan jadwal dengan memasukkan ekspresi cron atau rate secara manual.

1. (Opsional) Di area **Kelola tag**, terapkan satu atau beberapa name/value pasangan kunci tag ke jendela pemeliharaan.

   Tanda adalah metadata opsional yang Anda tetapkan ke sumber daya. Tag memungkinkan Anda untuk mengkategorikan sumber daya dengan berbagai cara, seperti berdasarkan tujuan, pemilik, atau lingkungan. Misalnya, Anda mungkin ingin menandai jendela pemeliharaan untuk mengidentifikasi jenis tugas yang dijalankannya, jenis target, dan lingkungan tempat ia berjalan. Dalam hal ini, Anda dapat menentukan name/value pasangan kunci berikut:
   + `Key=TaskType,Value=AgentUpdate`
   + `Key=OS,Value=Windows`
   + `Key=Environment,Value=Production`

1. Pilih **Buat jendela pemeliharaan**. Sistem mengembalikan Anda ke halaman jendela pemeliharaan. Tahapan jendela pemeliharaan yang baru saja Anda buat adalah**Diaktifkan**.

# Tetapkan target ke jendela pemeliharaan menggunakan konsol
<a name="sysman-maintenance-assign-targets"></a>

Di prosedur ini, Anda mendaftarkan target dengan jendela pemeliharaan. Dengan kata lain, Anda menentukan sumber daya yang ditindak oleh jendela pemeliharaan.

**catatan**  
Jika satu tugas jendela pemeliharaan terdaftar dengan beberapa target, permintaan tugasnya terjadi secara berurutan dan tidak secara paralel. Jika tugas Anda harus berjalan pada beberapa target di waktu yang sama, daftarkan tugas untuk setiap target secara individual dan tetapkan pada setiap tugas tingkat prioritas yang sama.

**Untuk menetapkan target ke jendela pemeliharaan menggunakan konsol**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Maintenance Windows**. 

1. Di daftar windows pemeliharaan, pilih jendela pemeliharaan untuk menambahkan target.

1. Pilih **Tindakan**, lalu pilih **Daftarkan target**.

1. (Opsional) Untuk **Nama target**, masukkan nama untuk target.

1. (Opsional) Untuk **Deskripsi**, masukkan deskripsi.

1. (Opsional) Untuk **informasi Pemilik**, tentukan informasi yang akan disertakan dalam EventBridge peristiwa Amazon apa pun yang muncul saat menjalankan tugas untuk target ini di jendela pemeliharaan ini.

   Untuk informasi tentang penggunaan EventBridge untuk memantau peristiwa Systems Manager, lihat[Memantau peristiwa Systems Manager dengan Amazon EventBridge](monitoring-eventbridge-events.md).

1. Di area **Target**, pilih salah satu pilihan yang dijelaskan di tabel berikut.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/sysman-maintenance-assign-targets.html)

1. Pilih **Daftarkan target**.

Jika Anda ingin menetapkan lebih banyak target untuk jendela pemeliharaan ini, pilih tab **Target**, dan kemudian pilih **Daftarkan target**. Dengan pilihan ini, Anda dapat memilih berbagai cara penargetan. Misalnya, jika sebelumnya Anda menargetkan node berdasarkan ID node, Anda dapat mendaftarkan target baru dan node target dengan menentukan tag yang diterapkan pada node terkelola atau memilih jenis sumber daya dari grup sumber daya.

# Tetapkan tugas ke jendela pemeliharaan menggunakan konsol
<a name="sysman-maintenance-assign-tasks"></a>

Di prosedur ini, Anda menambahkan tugas ke jendela pemeliharaan. Tugas adalah tindakan yang dilakukan saat jendela pemeliharaan berjalan.

Empat jenis tugas berikut dapat ditambahkan ke jendela pemeliharaan:
+ AWS Systems Manager Run Commandperintah
+ Alur kerja Otomatisasi Systems Manager
+ AWS Step Functions tugas
+ AWS Lambda fungsi
**penting**  
Kebijakan IAM untuk Maintenance Windows mengharuskan Anda menambahkan awalan ke nama fungsi `SSM` Lambda (atau alias). Sebelum Anda melanjutkan untuk mendaftarkan jenis tugas ini, perbarui namanya AWS Lambda untuk disertakan`SSM`. Misalnya, jika nama fungsi Lambda Anda adalah `MyLambdaFunction`, ubah ke `SSMMyLambdaFunction`.

**Untuk menetapkan tugas ke jendela pemeliharaan**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Maintenance Windows**. 

1. Di daftar windows pemeliharaan, pilih jendela pemeliharaan.

1. Pilih **Tindakan**, lalu pilih pilihan untuk jenis tugas yang ingin Anda daftarkan dengan jendela pemeliharaan.
   + **Daftar Jalankan tugas perintah**
   + **Daftarkan tugas Otomasi**
   + **Daftarkan tugas Lambda**
   + **Daftarkan tugas Step Functions**
**catatan**  
Tugas jendela pemeliharaan hanya mendukung Step Functions Alur kerja mesin status standar. Mereka tidak mendukung alur kerja mesin status Express. *Untuk informasi tentang jenis alur kerja mesin status, lihat Alur [Kerja Standar vs Ekspres di Panduan Pengembang](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-standard-vs-express.html)AWS Step Functions .*

1. (Opsional) Untuk **Nama**, masukkan nama untuk tugas tersebut.

1. (Opsional) Untuk **Deskripsi**, masukkan deskripsi.

1. **Untuk **cutoff pemanggilan tugas baru**, jika Anda tidak ingin pemanggilan tugas baru dimulai setelah batas waktu jendela pemeliharaan tercapai, pilih Diaktifkan.**

   Ketika opsi ini *tidak* diaktifkan, tugas terus berjalan ketika batas waktu tercapai dan memulai pemanggilan tugas baru hingga selesai. 
**catatan**  
Status untuk tugas yang tidak selesai saat Anda mengaktifkan opsi ini adalah`TIMED_OUT`. 

1. Untuk langkah ini, pilih tab untuk jenis tugas yang Anda pilih.

------
#### [ Run Command  ]

   1. Dalam daftar **dokumen Command**, pilih dokumen Systems Manager Command (dokumen SSM) yang mendefinisikan tugas yang akan dijalankan.

   1. Untuk **versi Dokumen**, pilih versi dokumen yang akan digunakan.

   1. Untuk **Prioritas tugas**, tentukan prioritas untuk tugas ini. Nol (`0`) adalah prioritas tertinggi. Tugas di jendela pemeliharaan dijadwalkan dalam urutan prioritas dengan tugas yang memiliki prioritas yang sama dijadwalkan secara paralel.

------
#### [ Automation ]

   1.  Dalam daftar **dokumen Otomasi**, pilih runbook Otomasi yang mendefinisikan tugas yang akan dijalankan.

   1. Untuk **Versi dokumen**, pilih versi runbook untuk digunakan.

   1. Untuk **Prioritas tugas**, tentukan prioritas untuk tugas ini. Nol (`0`) adalah prioritas tertinggi. Tugas di jendela pemeliharaan dijadwalkan dalam urutan prioritas dengan tugas yang memiliki prioritas yang sama dijadwalkan secara paralel.

------
#### [ Lambda ]

   1. Di area **parameter Lambda**, pilih fungsi Lambda dari daftar.

   1. (Opsional) Berikan konten apa pun untuk **Payload**, **Konteks Klien**, atau **Kualifikasi** yang ingin Anda sertakan.
**catatan**  
Dalam beberapa kasus, Anda dapat menggunakan *parameter semu* sebagai bagian dari `Payload` nilai Anda. Kemudian ketika tugas jendela pemeliharaan berjalan, ia melewati nilai yang benar alih-alih placeholder parameter semu. Untuk informasi, lihat [Menggunakan parameter semu saat mendaftarkan tugas jendela pemeliharaan](maintenance-window-tasks-pseudo-parameters.md).

   1. Untuk **Prioritas tugas**, tentukan prioritas untuk tugas ini. Nol (`0`) adalah prioritas tertinggi. Tugas di jendela pemeliharaan dijadwalkan dalam urutan prioritas dengan tugas yang memiliki prioritas yang sama dijadwalkan secara paralel.

------
#### [ Step Functions ]

   1. Di area **parameter Step Functions**, pilih mesin status dari daftar.

   1. (Opsional) Berikan nama untuk eksekusi mesin status dan konten apa pun untuk **Input** yang ingin Anda sertakan.
**catatan**  
Dalam beberapa kasus, Anda dapat menggunakan *parameter semu* sebagai bagian dari `Input` nilai Anda. Kemudian ketika tugas jendela pemeliharaan berjalan, ia melewati nilai yang benar alih-alih placeholder parameter semu. Untuk informasi, lihat [Menggunakan parameter semu saat mendaftarkan tugas jendela pemeliharaan](maintenance-window-tasks-pseudo-parameters.md).

   1. Untuk **Prioritas tugas**, tentukan prioritas untuk tugas ini. Nol (`0`) adalah prioritas tertinggi. Tugas di jendela pemeliharaan dijadwalkan dalam urutan prioritas dengan tugas yang memiliki prioritas yang sama dijadwalkan secara paralel.

------

1. Di area **Target**, pilih salah satu dari berikut ini:
   + **Pemilihan grup target terdaftar**: Pilih satu atau beberapa target jendela pemeliharaan yang telah Anda daftarkan dengan jendela pemeliharaan saat ini.
   + **Pemilihan target yang tidak terdaftar**: Pilih sumber daya yang tersedia satu per satu sebagai target untuk tugas.

     Jika node terkelola yang Anda harapkan tidak terdaftar, lihat [Memecahkan masalah ketersediaan node terkelola](fleet-manager-troubleshooting-managed-nodes.md) untuk tips pemecahan masalah.
   + **Target tugas tidak diperlukan**: Target untuk tugas mungkin sudah ditentukan dalam fungsi lain untuk semua kecuali tugas Run Command -type.

     Tentukan satu atau beberapa target untuk tugas Run Command tipe jendela pemeliharaan. Bergantung pada tugasnya, target bersifat opsional untuk jenis tugas jendela pemeliharaan lainnya (Otomasi, AWS Lambda, dan AWS Step Functions). Untuk informasi lebih lanjut tentang menjalankan tugas yang tidak menentukan target, lihat [Pendaftaran tugas jendela pemeliharaan tanpa target](maintenance-windows-targetless-tasks.md).
**catatan**  
Dalam banyak kasus, Anda tidak perlu secara eksplisit menentukan target untuk tugas otomatisasi. Misalnya, katakanlah bahwa Anda membuat tugas jenis otomatisasi untuk memperbarui Amazon Machine Image (AMI) untuk Linux menggunakan `AWS-UpdateLinuxAmi` runbook. Ketika tugas berjalan, AMI diperbarui dengan paket distribusi Linux terbaru yang tersedia dan perangkat lunak Amazon. Contoh baru dibuat dari AMI telah menginstal pembaruan ini. Karena ID AMI yang akan diperbarui ditentukan dalam parameter input untuk runbook, tidak perlu untuk menentukan target lagi dalam tugas jendela pemeliharaan.

1. *Hanya tugas otomatisasi:*

   Di area **parameter Input**, berikan nilai untuk parameter yang diperlukan atau opsional yang diperlukan untuk menjalankan tugas Anda.
**catatan**  
Dalam beberapa kasus, Anda dapat menggunakan *parameter semu untuk nilai parameter* input tertentu. Kemudian ketika tugas jendela pemeliharaan berjalan, ia melewati nilai yang benar alih-alih placeholder parameter semu. Untuk informasi, lihat [Menggunakan parameter semu saat mendaftarkan tugas jendela pemeliharaan](maintenance-window-tasks-pseudo-parameters.md).

1. Untuk **Pengendalian rate**:
   + Untuk **Konkurensi**, tentukan jumlah atau persentase dari simpul terkelola untuk menjalankan perintah pada saat yang sama.
**catatan**  
Jika Anda memilih target dengan menentukan tag yang diterapkan pada node terkelola atau dengan menentukan grup AWS sumber daya, dan Anda tidak yakin berapa banyak node terkelola yang ditargetkan, maka batasi jumlah target yang dapat menjalankan dokumen pada saat yang sama dengan menentukan persentase.
   + Untuk **Ambang kesalahan**, tentukan kapan harus berhenti menjalankan perintah pada simpul terkelola lain setelah gagal pada jumlah atau persentase simpul. Misalnya, jika Anda menentukan tiga kesalahan, Systems Manager berhenti mengirim perintah ketika kesalahan keempat diterima. Node terkelola yang masih memproses perintah mungkin juga mengirim kesalahan.

1. (Opsional) Untuk **peran layanan IAM**, pilih peran untuk memberikan izin bagi Systems Manager untuk mengasumsikan saat menjalankan tugas jendela pemeliharaan.

   Jika Anda tidak menentukan ARN peran layanan, Systems Manager menggunakan peran terkait layanan di akun Anda. Peran ini tidak tercantum dalam menu drop-down. Jika tidak ada peran terkait layanan yang sesuai untuk Systems Manager di akun Anda, peran tersebut dibuat saat tugas berhasil didaftarkan. 
**catatan**  
Untuk meningkatkan postur keamanan, kami sangat menyarankan untuk membuat kebijakan khusus dan peran layanan khusus untuk menjalankan tugas jendela pemeliharaan Anda. Kebijakan ini dapat dibuat untuk hanya memberikan izin yang diperlukan untuk tugas jendela pemeliharaan khusus Anda. Untuk informasi selengkapnya, lihat [Menyiapkan Maintenance Windows](setting-up-maintenance-windows.md).

1. *Run Commandtugas saja:*

   (Opsional) Untuk **opsi Output**, lakukan hal berikut:
   + Pilih kotak centang **Aktifkan penulisan ke S3** untuk menyimpan output perintah ke file. Masukkan nama bucket dan prefiks (folder) di dalam kotak.
   + Pilih kotak centang **CloudWatch output** untuk menulis output lengkap ke Amazon CloudWatch Logs. Masukkan nama grup CloudWatch log Log.
**catatan**  
Izin yang memberikan kemampuan untuk menulis data ke bucket S3 atau CloudWatch Log adalah izin dari profil instance yang ditetapkan ke node, bukan izin pengguna IAM yang melakukan tugas ini. Untuk informasi selengkapnya, lihat [Mengonfigurasi izin instans yang diperlukan untuk Systems Manager](setup-instance-permissions.md). Selain itu, jika bucket atau grup log S3 yang ditentukan berbeda Akun AWS, verifikasi bahwa profil instance yang terkait dengan node memiliki izin yang diperlukan untuk menulis ke bucket tersebut.

1. *Run Commandtugas saja:*

   Di bagian **Notifikasi SNS**, jika Anda ingin notifikasi dikirim tentang status eksekusi perintah, pilih kotak centang **Aktifkan notifikasi SNS**.

   Untuk informasi selengkapnya tentang mengonfigurasi notifikasi Run Command Amazon SNS, lihat. [Pemantauan perubahan status Systems Manager menggunakan notifikasi Amazon SNS](monitoring-sns-notifications.md)

1. *Run Commandtugas saja:*

   Di area **Parameter**, tentukan parameter untuk dokumen. 
**catatan**  
Dalam beberapa kasus, Anda dapat menggunakan *parameter semu untuk nilai parameter* input tertentu. Kemudian ketika tugas jendela pemeliharaan berjalan, ia melewati nilai yang benar alih-alih placeholder parameter semu. Untuk informasi, lihat [Menggunakan parameter semu saat mendaftarkan tugas jendela pemeliharaan](maintenance-window-tasks-pseudo-parameters.md).

1. *Run Commanddan tugas Otomasi saja:*

   (Opsional) Di area **CloudWatch alarm**, untuk **nama Alarm**, pilih CloudWatch alarm yang ada untuk diterapkan pada tugas Anda untuk pemantauan. 

   Jika alarm aktif, tugas dihentikan.
**catatan**  
Untuk melampirkan CloudWatch alarm ke tugas Anda, kepala sekolah IAM yang menjalankan tugas harus memiliki izin untuk `iam:createServiceLinkedRole` tindakan tersebut. Untuk informasi selengkapnya tentang CloudWatch alarm, lihat [Menggunakan CloudWatch alarm Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html).

1. Tergantung pada jenis tugas Anda, pilih salah satu dari berikut ini:
   + **Daftar Jalankan tugas perintah**
   + **Daftarkan tugas Otomasi**
   + **Daftarkan tugas Lambda**
   + **Daftarkan tugas Step Functions**

# Nonaktifkan atau aktifkan jendela pemeliharaan menggunakan konsol
<a name="sysman-maintenance-disable"></a>

Anda dapat menonaktifkan atau mengaktifkan jendela pemeliharaan diMaintenance Windows, alat di AWS Systems Manager. Anda dapat memilih satu jendela pemeliharaan sekaligus untuk menonaktifkan atau mengaktifkan jendela pemeliharaan agar tidak berjalan. Anda juga dapat memilih beberapa atau semua jendela pemeliharaan untuk mengaktifkan dan menonaktifkan.

Bagian ini menjelaskan cara menonaktifkan atau mengaktifkan jendela pemeliharaan dengan menggunakan konsol Systems Manager. Untuk contoh bagaimana melakukan ini dengan menggunakan AWS Command Line Interface (AWS CLI), lihat[Tutorial: Perbarui jendela pemeliharaan menggunakan AWS CLI](maintenance-windows-cli-tutorials-update.md). 

**Topics**
+ [Nonaktifkan jendela pemeliharaan menggunakan konsol](#sysman-maintenance-disable-mw)
+ [Aktifkan jendela pemeliharaan menggunakan konsol](#sysman-maintenance-enable-mw)

## Nonaktifkan jendela pemeliharaan menggunakan konsol
<a name="sysman-maintenance-disable-mw"></a>

Anda dapat menonaktifkan jendela pemeliharaan untuk menjeda tugas selama periode tertentu, dan itu akan tetap tersedia untuk diaktifkan lagi nanti.

**Untuk menonaktifkan jendela pemeliharaan**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Maintenance Windows**. 

1. Menggunakan kotak centang di sebelah jendela pemeliharaan yang ingin Anda nonaktifkan, pilih satu atau beberapa jendela pemeliharaan.

1. Pilih **Nonaktifkan jendela pemeliharaan** di menu **Tindakan**. Sistem meminta Anda untuk mengonfirmasi tindakan Anda. 

## Aktifkan jendela pemeliharaan menggunakan konsol
<a name="sysman-maintenance-enable-mw"></a>

Anda dapat mengaktifkan jendela pemeliharaan untuk melanjutkan tugas.

**catatan**  
Jika jendela pemeliharaan menggunakan jadwal tarif dan tanggal mulai saat ini diatur ke tanggal dan waktu yang lalu, tanggal dan waktu saat ini digunakan sebagai tanggal mulai untuk jendela pemeliharaan. Anda dapat mengubah tanggal mulai jendela pemeliharaan sebelum atau setelah mengaktifkannya. Untuk informasi, lihat [Perbarui atau hapus sumber daya jendela pemeliharaan menggunakan konsol](sysman-maintenance-update.md).

**Untuk mengaktifkan jendela pemeliharaan**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Maintenance Windows**. 

1. Pilih kotak centang di sebelah jendela pemeliharaan untuk mengaktifkan.

1. Pilih **Tindakan, Aktifkan jendela pemeliharaan**. Sistem meminta Anda untuk mengonfirmasi tindakan Anda. 

# Perbarui atau hapus sumber daya jendela pemeliharaan menggunakan konsol
<a name="sysman-maintenance-update"></a>

Anda dapat memperbarui atau menghapus jendela pemeliharaan diMaintenance Windows, alat di AWS Systems Manager. Anda juga dapat memperbarui atau menghapus target atau tugas dari jendela pemeliharaan. Jika Anda mengedit detail jendela pemeliharaan, Anda dapat mengubah jadwal, target, dan tugas. Anda juga dapat menentukan nama dan deskripsi untuk windows, target, dan tugas, yang membantu Anda memahami kegunaan dengan lebih baik, dan mempermudah untuk mengelola antrean windows Anda.

Bagian ini menjelaskan cara memperbarui atau menghapus jendela pemeliharaan, target, dan tugas dengan menggunakan konsol Systems Manager. Untuk contoh cara melakukannya dengan menggunakan AWS Command Line Interface (AWS CLI), lihat [Tutorial: Perbarui jendela pemeliharaan menggunakan AWS CLI](maintenance-windows-cli-tutorials-update.md). 

**Topics**
+ [Memperbarui atau menghapus jendela pemeliharaan menggunakan konsol](#sysman-maintenance-update-mw)
+ [Memperbarui atau membatalkan pendaftaran target jendela pemeliharaan menggunakan konsol](#sysman-maintenance-update-target)
+ [Memperbarui atau membatalkan pendaftaran tugas jendela pemeliharaan menggunakan konsol](#sysman-maintenance-update-tasks)

## Memperbarui atau menghapus jendela pemeliharaan menggunakan konsol
<a name="sysman-maintenance-update-mw"></a>

Anda dapat memperbarui jendela pemeliharaan untuk mengubah nama, deskripsi, dan jadwal, dan apakah jendela pemeliharaan harus mengizinkan target yang tidak terdaftar.

**Untuk memperbarui atau menghapus jendela pemeliharaan**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Maintenance Windows**. 

1. Pilih tombol di sebelah jendela pemeliharaan yang ingin Anda perbarui atau hapus, lalu lakukan salah satu hal berikut:
   + Pilih **Hapus**. Sistem meminta Anda untuk mengonfirmasi tindakan Anda. 
   + Pilih **Edit**. Pada halaman **jendela Edit pemeliharaan**, ubah nilai dan opsi yang Anda inginkan, lalu pilih **Simpan perubahan**.

     Untuk informasi tentang pilihan konfigurasi yang dapat Anda buat, lihat [Buat jendela pemeliharaan menggunakan konsol](sysman-maintenance-create-mw.md).

## Memperbarui atau membatalkan pendaftaran target jendela pemeliharaan menggunakan konsol
<a name="sysman-maintenance-update-target"></a>

Anda dapat memperbarui atau membatalkan pendaftaran target jendela pemeliharaan. Jika Anda memilih untuk memperbarui target jendela pemeliharaan, Anda dapat menentukan nama, deskripsi, dan pemilik target yang baru. Anda juga dapat memilih berbagai target. 

**Untuk memperbarui atau menghapus target jendela pemeliharaan**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Maintenance Windows**. 

1. Pilih nama jendela pemeliharaan yang ingin Anda perbarui, pilih tab **Target**, lalu lakukan salah satu hal berikut:
   + Untuk memperbarui target, pilih tombol di sebelah target untuk memperbarui, lalu pilih **Edit**.
   + **Untuk membatalkan pendaftaran target, pilih tombol di sebelah target untuk membatalkan pendaftaran, lalu pilih Target Deregister.** **Di kotak dialog **target jendela pemeliharaan Deregister**, pilih Deregister.**

## Memperbarui atau membatalkan pendaftaran tugas jendela pemeliharaan menggunakan konsol
<a name="sysman-maintenance-update-tasks"></a>

Anda dapat memperbarui atau membatalkan pendaftaran tugas jendela pemeliharaan. Jika Anda memilih untuk memperbarui, Anda dapat menentukan nama, deskripsi, dan pemilik tugas yang baru. Untuk tugas Run Command dan Otomasi, Anda dapat memilih dokumen SSM yang berbeda untuk tugas tersebut. Akan tetapi, Anda tidak dapat mengedit tugas untuk mengubah jenisnya. Misalnya, jika Anda membuat tugas Otomasi, Anda tidak dapat mengedit tugas itu dan mengubahnya menjadi Run Command tugas. 

**Untuk memperbarui atau menghapus tugas jendela pemeliharaan menggunakan konsol**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Maintenance Windows**. 

1. Pilih nama jendela pemeliharaan yang ingin Anda perbarui.

1. Pilih tab **Tugas**, lalu pilih tombol di sebelah tugas yang akan diperbarui.

1. Lakukan salah satu tindakan berikut:
   + **Untuk membatalkan pendaftaran tugas, pilih Tugas deregister.**
   + Untuk mengedit tugas, pilih **Edit**. Ubah nilai dan opsi yang Anda inginkan, lalu pilih **Edit tugas**.

# Tutorial
<a name="maintenance-windows-tutorials"></a>

Tutorial di bagian ini menunjukkan kepada Anda bagaimana melakukan tugas-tugas umum saat bekerja dengan jendela pemeliharaan.

**Prasyarat lengkap**  
Sebelum mencoba tutorial ini, lengkapi prasyarat berikut.
+ **Konfigurasikan AWS CLI pada mesin lokal Anda** — Sebelum Anda dapat menjalankan AWS CLI perintah, Anda harus menginstal dan mengkonfigurasi CLI pada mesin lokal Anda. Untuk selengkapnya, lihat [Menginstal atau memperbarui versi terbaru AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) dan [Menginstal Alat AWS untuk PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html).
+ **Verifikasi peran dan izin jendela pemeliharaan** — AWS Administrator di akun Anda harus memberi Anda izin AWS Identity and Access Management (IAM) yang Anda perlukan untuk mengelola jendela pemeliharaan menggunakan CLI. Untuk informasi, lihat [Menyiapkan Maintenance Windows](setting-up-maintenance-windows.md).
+ **Membuat atau mengonfigurasi instance yang kompatibel dengan Systems Manager** — Anda memerlukan setidaknya satu instans Amazon Elastic Compute Cloud (Amazon EC2) yang dikonfigurasi untuk digunakan dengan Systems Manager untuk menyelesaikan tutorial. Ini berarti bahwa SSM Agent diinstal pada instance, dan profil instans IAM untuk Systems Manager dilampirkan ke instance. 

  Kami merekomendasikan meluncurkan instance dari satu yang AWS dikelola Amazon Machine Image (AMI) dengan agen yang sudah diinstal sebelumnya. Untuk informasi selengkapnya, lihat [Temukan AMIs dengan yang SSM Agent sudah diinstal sebelumnya](ami-preinstalled-agent.md).

  Untuk informasi tentang menginstal SSM Agent pada sebuah contoh, lihat topik-topik berikut:
  + [Menginstal dan menghapus instalasi secara manual SSM Agent pada instans EC2 untuk Windows Server](manually-install-ssm-agent-windows.md)
  + [Menginstal dan menghapus instalasi secara manual SSM Agent pada instans EC2 untuk Linux](manually-install-ssm-agent-linux.md)

  Untuk informasi tentang mengonfigurasi izin IAM untuk Systems Manager ke instans Anda, lihat [Mengonfigurasi izin instans yang diperlukan untuk Systems](setup-instance-permissions.md) Manager.
+ **Buat sumber daya tambahan sesuai kebutuhan** - Run Command, alat di Systems Manager, mencakup banyak tugas yang tidak mengharuskan Anda membuat sumber daya selain yang tercantum dalam topik prasyarat ini. Oleh karena itu, kami menyediakan yang sederhana Run Command tugas bagi Anda untuk menggunakan pertama kalinya melalui tutorial. Anda juga memerlukan EC2 instance yang dikonfigurasi untuk digunakan dengan Systems Manager, seperti yang dijelaskan sebelumnya dalam topik ini. Setelah Anda mengonfigurasi instance itu, Anda dapat mendaftarkan yang sederhana Run Command tugas. 

  Systems Manager Maintenance Windows alat mendukung menjalankan empat jenis tugas berikut: 
  + Run Command perintah
  + Alur kerja Otomatisasi Systems Manager
  + AWS Lambda fungsi
  + AWS Step Functions tugas

  Secara umum, jika tugas jendela pemeliharaan yang ingin Anda jalankan memerlukan sumber daya tambahan, Anda harus membuatnya terlebih dahulu. Misalnya, jika Anda menginginkan jendela pemeliharaan yang menjalankan AWS Lambda fungsi, buat fungsi Lambda sebelum memulai; untuk Run Command tugas, buat bucket S3 tempat Anda dapat menyimpan output perintah (jika Anda berencana untuk melakukannya); dan seterusnya.

**Topics**
+ [Tutorial: Membuat dan mengelola jendela pemeliharaan menggunakan AWS CLI](maintenance-window-tutorial-cli.md)
+ [Tutorial: Buat jendela pemeliharaan untuk menambal menggunakan konsol](maintenance-window-tutorial-patching.md)

# Tutorial: Membuat dan mengelola jendela pemeliharaan menggunakan AWS CLI
<a name="maintenance-window-tutorial-cli"></a>

Bagian ini menyertakan tutorial yang membantu Anda mempelajari cara menggunakan AWS Command Line Interface (AWS CLI) untuk melakukan hal berikut:
+ Membuat dan mengonfigurasi jendela pemeliharaan
+ Melihat informasi tentang jendela pemeliharaan
+ Melihat informasi tentang tugas windows pemeliharaan dan eksekusi tugas
+ Memperbarui jendela pemeliharaan
+ Menghapus jendela pemeliharaan

**Melacak sumber daya IDs**  
Saat Anda menyelesaikan tugas dalam AWS CLI tutorial ini, lacak sumber daya IDs yang dihasilkan oleh perintah yang Anda jalankan. Anda menggunakan banyak dari hal ini sebagai input untuk perintah berikutnya. Misalnya, saat Anda membuat jendela pemeliharaan, sistem memberi Anda ID jendela pemeliharaan dalam format berikut.

```
{
   "WindowId":"mw-0c50858d01EXAMPLE"
}
```

Catat sistem yang dihasilkan berikut IDs karena tutorial di bagian ini menggunakannya:
+ `WindowId`
+ `WindowTargetId`
+ `WindowTaskId`
+ `WindowExecutionId`
+ `TaskExecutionId`
+ `InvocationId`
+ `ExecutionId`

Anda juga memerlukan ID dari instans EC2 yang Anda rencanakan untuk digunakan dalam tutorial. Sebagai contoh: `i-02573cafcfEXAMPLE`

**Topics**
+ [Tutorial: Membuat dan mengkonfigurasi jendela pemeliharaan menggunakan AWS CLI](maintenance-windows-cli-tutorials-create.md)
+ [Tutorial: Lihat informasi tentang jendela pemeliharaan menggunakan AWS CLI](maintenance-windows-cli-tutorials-describe.md)
+ [Tutorial: Melihat informasi tentang tugas dan eksekusi tugas menggunakan AWS CLI](mw-cli-tutorial-task-info.md)
+ [Tutorial: Perbarui jendela pemeliharaan menggunakan AWS CLI](maintenance-windows-cli-tutorials-update.md)
+ [Tutorial: Hapus jendela pemeliharaan menggunakan AWS CLI](mw-cli-tutorial-delete-mw.md)

# Tutorial: Membuat dan mengkonfigurasi jendela pemeliharaan menggunakan AWS CLI
<a name="maintenance-windows-cli-tutorials-create"></a>

Tutorial ini menunjukkan cara menggunakan AWS Command Line Interface (AWS CLI) untuk membuat dan mengkonfigurasi jendela pemeliharaan, targetnya, dan tugasnya. Jalur utama pada tutorial terdiri dari langkah sederhana. Anda membuat satu jendela pemeliharaan, mengidentifikasi satu target, dan mengatur tugas sederhana untuk jendela pemeliharaan untuk dijalankan. Sepanjang perjalanan, kami memberi informasi yang dapat Anda gunakan untuk mencoba skenario yang lebih rumit.

Saat Anda mengikuti langkah-langkah dalam tutorial ini, ganti nilai dalam *red* teks miring dengan opsi Anda sendiri dan. IDs Misalnya, ganti ID jendela pemeliharaan *mw-0c50858d01EXAMPLE* dan ID instance *i-02573cafcfEXAMPLE* dengan sumber daya IDs yang Anda buat.

**Topics**
+ [Langkah 1: Buat jendela pemeliharaan menggunakan AWS CLI](mw-cli-tutorial-create-mw.md)
+ [Langkah 2: Daftarkan node target dengan jendela pemeliharaan menggunakan AWS CLI](mw-cli-tutorial-targets.md)
+ [Langkah 3: Daftarkan tugas dengan jendela pemeliharaan menggunakan AWS CLI](mw-cli-tutorial-tasks.md)

# Langkah 1: Buat jendela pemeliharaan menggunakan AWS CLI
<a name="mw-cli-tutorial-create-mw"></a>

Pada langkah ini, Anda membuat jendela pemeliharaan dan menentukan pilihan dasar, seperti nama, jadwal, dan durasi. Di langkah berikutnya, Anda memilih instans yang diperbarui olehnya dan tugas yang dijalankannya.

Di contoh, Anda membuat jendela pemeliharaan yang berjalan setiap lima menit. Biasanya, Anda tidak akan menjalankan jendela pemeliharaan sesering ini. Akan tetapi, dengan nilai ini Anda dapat melihat hasil tutorial dengan cepat. Kami akan menunjukkan cara untuk mengubah ke nilai yang lebih tidak sering kepada Anda setelah tugas berjalan dengan sukses.

**catatan**  
Untuk penjelasan tentang cara berbagai pilihan terkait jadwal untuk windows pemeliharaan berkaitan satu sama lain, lihat [Penjadwalan jendela pemeliharaan dan pilihan periode aktif](maintenance-windows-schedule-options.md).  
Untuk informasi lebih lanjut tentang penggunaan pilihan `--schedule`, lihat [Referensi: Ekspresi cron dan rate untuk Systems Manager](reference-cron-and-rate-expressions.md).

**Untuk membuat jendela pemeliharaan menggunakan AWS CLI**

1. Buka AWS Command Line Interface (AWS CLI) dan jalankan perintah berikut di mesin lokal Anda untuk membuat jendela pemeliharaan yang melakukan hal berikut:
   + Berjalan setiap lima menit hingga dua jam (sesuai kebutuhan).
   + Mencegah tugas baru dimulai dalam waktu satu jam setelah akhir operasi jendela pemeliharaan.
   + Mengizinkan target yang tidak terkait (instans yang belum Anda daftarkan dengan jendela pemeliharaan).
   + Menunjukkan melalui penggunaan tanda kustom yang ingin digunakan oleh pembuatnya di tutorial.

------
#### [ Linux & macOS ]

   ```
   aws ssm create-maintenance-window \
       --name "My-First-Maintenance-Window" \
       --schedule "rate(5 minutes)" \
       --duration 2 \
       --cutoff 1 \
       --allow-unassociated-targets \
       --tags "Key=Purpose,Value=Tutorial"
   ```

------
#### [ Windows ]

   ```
   aws ssm create-maintenance-window ^
       --name "My-First-Maintenance-Window" ^
       --schedule "rate(5 minutes)" ^
       --duration 2 ^
       --cutoff 1 ^
       --allow-unassociated-targets ^
       --tags "Key"="Purpose","Value"="Tutorial"
   ```

------

   Sistem mengembalikan informasi seperti berikut ini.

   ```
   {
      "WindowId":"mw-0c50858d01EXAMPLE"
   }
   ```

1. Sekarang jalankan perintah berikut untuk melihat detail tentang windows pemeliharaan ini dan yang lainnya yang sudah ada di akun Anda.

   ```
   aws ssm describe-maintenance-windows
   ```

   Sistem mengembalikan informasi seperti berikut ini.

   ```
   {
      "WindowIdentities":[
         {
               "WindowId": "mw-0c50858d01EXAMPLE",
               "Name": "My-First-Maintenance-Window",
               "Enabled": true,
               "Duration": 2,
               "Cutoff": 1,
               "NextExecutionTime": "2019-05-11T16:46:16.991Z"
         }
      ]
   }
   ```

Lanjutkan ke [Langkah 2: Daftarkan node target dengan jendela pemeliharaan menggunakan AWS CLI](mw-cli-tutorial-targets.md).

# Langkah 2: Daftarkan node target dengan jendela pemeliharaan menggunakan AWS CLI
<a name="mw-cli-tutorial-targets"></a>

Pada langkah ini, Anda mendaftarkan target dengan jendela pemeliharaan baru. Dalam hal ini, Anda menentukan node mana yang akan diperbarui saat jendela pemeliharaan berjalan. 

Untuk contoh mendaftarkan lebih dari satu node pada satu waktu menggunakan node IDs, contoh menggunakan tag untuk mengidentifikasi beberapa node, dan contoh menentukan kelompok sumber daya sebagai target, lihat[Contoh: Mendaftarkan target dengan jendela pemeliharaan](mw-cli-tutorial-targets-examples.md).

**catatan**  
[Anda seharusnya sudah membuat instance Amazon Elastic Compute Cloud (Amazon EC2) untuk digunakan dalam langkah ini, seperti yang dijelaskan dalam prasyarat tutorial. Maintenance Windows](maintenance-windows-tutorials.md)

**Untuk mendaftarkan node target dengan jendela pemeliharaan menggunakan AWS CLI**

1. Jalankan perintah berikut di mesin lokal Anda. Ganti masing-masing *example resource placeholder* dengan informasi Anda sendiri.

------
#### [ Linux & macOS ]

   ```
   aws ssm register-target-with-maintenance-window \
       --window-id "mw-0c50858d01EXAMPLE" \
       --resource-type "INSTANCE" \
       --target "Key=InstanceIds,Values=i-02573cafcfEXAMPLE"
   ```

------
#### [ Windows ]

   ```
   aws ssm register-target-with-maintenance-window ^
       --window-id "mw-0c50858d01EXAMPLE" ^
       --resource-type "INSTANCE" ^
       --target "Key=InstanceIds,Values=i-02573cafcfEXAMPLE"
   ```

------

   Sistem mengembalikan informasi seperti berikut ini.

   ```
   {
      "WindowTargetId":"e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
   }
   ```

1. Sekarang jalankan perintah berikut pada mesin lokal Anda untuk melihat detail tentang target jendela pemeliharaan Anda.

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-maintenance-window-targets \
       --window-id "mw-0c50858d01EXAMPLE"
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-maintenance-window-targets ^
       --window-id "mw-0c50858d01EXAMPLE"
   ```

------

   Sistem mengembalikan informasi seperti berikut ini.

   ```
   {
       "Targets": [
           {
               "WindowId": "mw-0c50858d01EXAMPLE",
               "WindowTargetId": "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE",
               "ResourceType": "INSTANCE",
               "Targets": [
                   {
                       "Key": "InstanceIds",
                       "Values": [
                           "i-02573cafcfEXAMPLE"
                       ]
                   }
               ]
           }
       ]
   }
   ```

Lanjutkan ke [Langkah 3: Daftarkan tugas dengan jendela pemeliharaan menggunakan AWS CLI](mw-cli-tutorial-tasks.md). 

# Contoh: Mendaftarkan target dengan jendela pemeliharaan
<a name="mw-cli-tutorial-targets-examples"></a>

Anda dapat mendaftarkan satu node sebagai target menggunakan ID simpulnya, seperti yang ditunjukkan dalam[Langkah 2: Daftarkan node target dengan jendela pemeliharaan menggunakan AWS CLI](mw-cli-tutorial-targets.md). Anda juga dapat mendaftarkan satu atau lebih node sebagai target menggunakan format perintah di halaman ini.

Secara umum, ada dua metode untuk mengidentifikasi node yang ingin Anda gunakan sebagai target jendela pemeliharaan: menentukan node individu, dan menggunakan tag sumber daya. Metode tanda sumber daya menyediakan lebih banyak pilihan, seperti yang ditunjukkan di contoh 2-3. 

Anda juga dapat menentukan satu atau beberapa grup sumber daya sebagai target jendela pemeliharaan. Grup sumber daya dapat mencakup node dan banyak jenis AWS sumber daya yang didukung lainnya. Contoh 4 dan 5, berikutnya, mendemonstrasikan cara menambahkan grup sumber daya ke target jendela pemeliharaan Anda.

**catatan**  
Jika satu tugas jendela pemeliharaan terdaftar dengan beberapa target, permintaan tugasnya terjadi secara berurutan dan tidak secara paralel. Jika tugas Anda harus berjalan pada beberapa target di waktu yang sama, daftarkan tugas untuk setiap target secara individual dan tetapkan pada setiap tugas tingkat prioritas yang sama.

Untuk informasi selengkapnya tentang membuat dan mengelola grup sumber daya, lihat [Apa itu grup sumber daya?](https://docs.aws.amazon.com/ARG/latest/userguide/resource-groups.html) dalam *Panduan AWS Resource Groups Pengguna* dan [Resource Groups dan Tagging untuk AWS](https://aws.amazon.com/blogs/aws/resource-groups-and-tagging/) di *Blog AWS Berita*.

Untuk informasi tentang kuota untukMaintenance Windows, alat di AWS Systems Manager, selain yang ditentukan dalam contoh berikut, lihat [kuota layanan Systems Manager di kuota](https://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm). *Referensi Umum Amazon Web Services*

## Contoh 1: Daftarkan beberapa target menggunakan node IDs
<a name="mw-target-example-1"></a>

Jalankan perintah berikut pada format mesin lokal Anda untuk mendaftarkan beberapa node sebagai target menggunakan node mereka IDs. Ganti masing-masing *example resource placeholder* dengan informasi Anda sendiri.

------
#### [ Linux & macOS ]

```
aws ssm register-target-with-maintenance-window \
    --window-id "mw-0c50858d01EXAMPLE" \
    --resource-type "INSTANCE" \
    --target "Key=InstanceIds,Values=i-02573cafcfEXAMPLE,i-0471e04240EXAMPLE,i-07782c72faEXAMPLE"
```

------
#### [ Windows ]

```
aws ssm register-target-with-maintenance-window ^
    --window-id "mw-0c50858d01EXAMPLE ^
    --resource-type "INSTANCE" ^
    --target "Key=InstanceIds,Values=i-02573cafcfEXAMPLE,i-0471e04240EXAMPLE,i-07782c72faEXAMPLE
```

------

**Penggunaan yang disarankan**: Paling berguna saat mendaftarkan grup node unik dengan jendela pemeliharaan apa pun untuk pertama kalinya dan mereka *tidak* berbagi tag node umum.

**Kuota:** Anda dapat menentukan hingga 50 node total untuk setiap target jendela pemeliharaan.

## Contoh 2: Daftarkan target menggunakan tag sumber daya yang diterapkan ke node
<a name="mw-target-example-2"></a>

Jalankan perintah berikut di mesin lokal Anda untuk mendaftarkan node yang semuanya sudah ditandai dengan pasangan nilai kunci yang telah Anda tetapkan. Ganti masing-masing *example resource placeholder* dengan informasi Anda sendiri.

------
#### [ Linux & macOS ]

```
aws ssm register-target-with-maintenance-window \
    --window-id "mw-0c50858d01EXAMPLE" \
    --resource-type "INSTANCE" \
    --target "Key=tag:Region,Values=East"
```

------
#### [ Windows ]

```
aws ssm register-target-with-maintenance-window ^
    --window-id "mw-0c50858d01EXAMPLE" ^
    --resource-type "INSTANCE" ^
    --target "Key=tag:Region,Values=East"
```

------

**Penggunaan yang disarankan**: Paling berguna saat mendaftarkan grup node unik dengan jendela pemeliharaan apa pun untuk pertama kalinya dan *mereka* berbagi tag node umum.

**Kuota:** Anda dapat menentukan hingga total lima pasangan nilai kunci untuk setiap target. Jika Anda menentukan lebih dari satu pasangan kunci-nilai, sebuah node harus ditandai dengan *semua* kunci tag dan nilai yang Anda tentukan untuk dimasukkan dalam grup target.

**catatan**  
Anda dapat menandai sekelompok node dengan tag-key `Patch Group` atau `PatchGroup` dan menetapkan node nilai kunci umum, seperti. `my-patch-group` (Anda harus menggunakan`PatchGroup`, tanpa spasi, jika Anda telah [mengizinkan tag dalam metadata instans EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#allow-access-to-tags-in-IMDS).) Patch Manager, alat di Systems Manager, mengevaluasi `PatchGroup` kunci `Patch Group` atau pada node untuk membantu menentukan baseline patch mana yang berlaku untuk mereka. Jika tugas Anda akan menjalankan dokumen `AWS-RunPatchBaseline` SSM (atau dokumen `AWS-ApplyPatchBaseline` SSM lama), Anda dapat menentukan pasangan yang sama `Patch Group` atau `PatchGroup` nilai kunci saat Anda mendaftarkan target dengan jendela pemeliharaan. Sebagai contoh: `--target "Key=tag:PatchGroup,Values=my-patch-group`. Melakukannya memungkinkan Anda menggunakan jendela pemeliharaan untuk memperbarui tambalan pada sekelompok node yang sudah dikaitkan dengan baseline patch yang sama. Untuk informasi selengkapnya, lihat [Grup tambalan](patch-manager-patch-groups.md).

## Contoh 3: Mendaftarkan target menggunakan grup kunci tanda (tanpa nilai tanda)
<a name="mw-target-example-3"></a>

Jalankan perintah berikut di mesin lokal Anda untuk mendaftarkan node yang semuanya memiliki satu atau lebih kunci tag yang ditetapkan padanya, terlepas dari nilai kuncinya. Ganti masing-masing *example resource placeholder* dengan informasi Anda sendiri.

------
#### [ Linux & macOS ]

```
aws ssm register-target-with-maintenance-window \
    --window-id "mw-0c50858d01EXAMPLE" \
    --resource-type "INSTANCE" \
    --target "Key=tag-key,Values=Name,Instance-Type,CostCenter"
```

------
#### [ Windows ]

```
aws ssm register-target-with-maintenance-window ^
    --window-id "mw-0c50858d01EXAMPLE" ^
    --resource-type "INSTANCE" ^
    --target "Key=tag-key,Values=Name,Instance-Type,CostCenter"
```

------

**Penggunaan yang disarankan**: Berguna saat Anda ingin menargetkan node dengan menentukan beberapa *kunci* tag (tanpa nilainya) daripada hanya satu kunci tag atau pasangan nilai kunci tag.

**Kuota:** Anda dapat menentukan hingga total lima kunci tanda untuk setiap target. Jika Anda menentukan lebih dari satu kunci tag, sebuah node harus ditandai dengan *semua* kunci tag yang Anda tentukan untuk dimasukkan dalam grup target.

## Contoh 4: Mendaftarkan target menggunakan nama grup sumber daya
<a name="mw-target-example-4"></a>

Jalankan perintah berikut pada mesin lokal Anda untuk mendaftarkan grup sumber daya tertentu, apa pun jenis sumber daya yang dikandungnya. Ganti *mw-0c50858d01EXAMPLE* dengan informasi Anda sendiri. Jika tugas yang Anda tetapkan ke jendela pemeliharaan tidak berfungsi pada jenis sumber daya yang disertakan dalam grup sumber daya ini, sistem mungkin melaporkan kesalahan. Tugas di mana jenis sumber daya yang didukung ditemukan akan terus berjalan meskipun ada kesalahan ini.

------
#### [ Linux & macOS ]

```
aws ssm register-target-with-maintenance-window \
    --window-id "mw-0c50858d01EXAMPLE" \
    --resource-type "RESOURCE_GROUP" \
    --target "Key=resource-groups:Name,Values=MyResourceGroup"
```

------
#### [ Windows ]

```
aws ssm register-target-with-maintenance-window ^
    --window-id "mw-0c50858d01EXAMPLE" ^
    --resource-type "RESOURCE_GROUP" ^
    --target "Key=resource-groups:Name,Values=MyResourceGroup"
```

------

**Penggunaan yang direkomendasikan**: Paling berguna saat Anda ingin dengan cepat menentukan grup sumber daya sebagai target tanpa mengevaluasi apakah semua jenis sumber dayanya akan ditargetkan oleh jendela pemeliharaan, atau saat Anda tahu bahwa grup sumber daya hanya berisi jenis sumber daya yang ditindak oleh tugas Anda.

**Kuota:** Anda hanya dapat menentukan satu grup sumber daya sebagai target.

## Contoh 5: Mendaftarkan target dengan memfilter jenis sumber daya di grup sumber daya
<a name="mw-target-example-5"></a>

Jalankan perintah berikut pada mesin lokal Anda untuk mendaftarkan jenis sumber daya tertentu dimiliki oleh grup sumber daya yang Anda tentukan saja. Ganti *mw-0c50858d01EXAMPLE* dengan informasi Anda sendiri. Dengan pilihan ini, meski Anda menambahkan tugas untuk jenis sumber daya yang dimiliki oleh grup sumber daya, tugas tidak akan berjalan jika Anda belum secara eksplisit menambahkan jenis sumber daya ke filter.

------
#### [ Linux & macOS ]

```
aws ssm register-target-with-maintenance-window \
    --window-id "mw-0c50858d01EXAMPLE" \
    --resource-type "RESOURCE_GROUP" \
    --target "Key=resource-groups:Name,Values=MyResourceGroup" \
    "Key=resource-groups:ResourceTypeFilters,Values=AWS::EC2::Instance,AWS::ECS::Cluster"
```

------
#### [ Windows ]

```
aws ssm register-target-with-maintenance-window ^
    --window-id "mw-0c50858d01EXAMPLE" ^
    --resource-type "RESOURCE_GROUP" ^
    --target "Key=resource-groups:Name,Values=MyResourceGroup" ^
    "Key=resource-groups:ResourceTypeFilters,Values=AWS::EC2::Instance,AWS::ECS::Cluster"
```

------

**Penggunaan yang disarankan**: Berguna saat Anda ingin mempertahankan kontrol ketat atas jenis AWS sumber daya yang dapat dijalankan oleh jendela pemeliharaan Anda, atau ketika grup sumber daya Anda berisi sejumlah besar jenis sumber daya dan Anda ingin menghindari laporan kesalahan yang tidak perlu di log jendela pemeliharaan Anda.

**Kuota:** Anda hanya dapat menentukan satu grup sumber daya sebagai target.

# Langkah 3: Daftarkan tugas dengan jendela pemeliharaan menggunakan AWS CLI
<a name="mw-cli-tutorial-tasks"></a>

Pada langkah tutorial ini, Anda mendaftarkan AWS Systems Manager Run Command tugas yang menjalankan `df` perintah pada instans Amazon Elastic Compute Cloud (Amazon EC2) untuk Linux. Hasil perintah Linux standar ini menunjukkan berapa banyak ruang yang kosong dan berapa banyak yang digunakan pada sistem file disk dari instans Anda.

-atau-

Jika Anda menargetkan instans Amazon EC2 untuk Windows Server dan bukan Linux, ganti **df** di perintah berikut dengan **ipconfig**. Output dari perintah ini mencantumkan detail tentang alamat IP, subnet mask, dan gateway default untuk adapter pada instans target.

Saat Anda siap mendaftarkan jenis tugas lain, atau menggunakan lebih banyak Run Command opsi Systems Manager yang tersedia, lihat[Contoh: Mendaftarkan tugas dengan jendela pemeliharaan](mw-cli-register-tasks-examples.md). Di sana, kami menyediakan informasi lebih lanjut tentang keempat jenis tugas, dan beberapa pilihan yang paling penting, untuk membantu Anda merencanakan skenario dunia nyata yang lebih ekstensif. 

**Untuk mendaftarkan tugas dengan jendela pemeliharaan**

1. Jalankan perintah berikut pada mesin lokal Anda. Ganti masing-masing *example resource placeholder* dengan informasi Anda sendiri. Versi yang dijalankan dari mesin Windows lokal mencakup karakter keluar (“/”) yang Anda perlukan untuk menjalankan perintah dari alat baris perintah Anda.

------
#### [ Linux & macOS ]

   ```
   aws ssm register-task-with-maintenance-window \
       --window-id mw-0c50858d01EXAMPLE \
       --task-arn "AWS-RunShellScript" \
       --max-concurrency 1 --max-errors 1 \
       --priority 10 \
       --targets "Key=InstanceIds,Values=i-0471e04240EXAMPLE" \
       --task-type "RUN_COMMAND" \
       --task-invocation-parameters '{"RunCommand":{"Parameters":{"commands":["df"]}}}'
   ```

------
#### [ Windows ]

   ```
   aws ssm register-task-with-maintenance-window ^
       --window-id mw-0c50858d01EXAMPLE ^
       --task-arn "AWS-RunShellScript" ^
       --max-concurrency 1 --max-errors 1 ^
       --priority 10 ^
       --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE" ^
       --task-type "RUN_COMMAND" ^
       --task-invocation-parameters={\"RunCommand\":{\"Parameters\":{\"commands\":[\"df\"]}}}
   ```

------

   Sistem mengembalikan informasi seperti berikut ini:

   ```
   {
       "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE"
   }
   ```

1. Sekarang jalankan perintah berikut untuk melihat detail tentang tugas jendela pemeliharaan yang Anda buat. 

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-maintenance-window-tasks \
       --window-id mw-0c50858d01EXAMPLE
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-maintenance-window-tasks ^
       --window-id mw-0c50858d01EXAMPLE
   ```

------

1. Sistem mengembalikan informasi seperti berikut ini.

   ```
   {
       "Tasks": [
           {
               "WindowId": "mw-0c50858d01EXAMPLE",
               "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
               "TaskArn": "AWS-RunShellScript",
               "Type": "RUN_COMMAND",
               "Targets": [
                   {
                       "Key": "InstanceIds",
                       "Values": [
                           "i-02573cafcfEXAMPLE"
                       ]
                   }
               ],
               "TaskParameters": {},
               "Priority": 10,
               "ServiceRoleArn": "arn:aws:iam::123456789012:role/MyMaintenanceWindowServiceRole",
               "MaxConcurrency": "1",
               "MaxErrors": "1"
           }
       ]
   }
   ```

1. Tunggu sampai waktunya tugas dijalankan, berdasarkan jadwal yang Anda tentukan di [Langkah 1: Buat jendela pemeliharaan menggunakan AWS CLI](mw-cli-tutorial-create-mw.md). Misalnya, jika Anda menentukan **--schedule "rate(5 minutes)"**, tunggu selama lima menit. Lalu jalankan perintah berikut untuk melihat informasi tentang eksekusi yang terjadi untuk tugas ini. 

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-maintenance-window-executions \
       --window-id mw-0c50858d01EXAMPLE
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-maintenance-window-executions ^
       --window-id mw-0c50858d01EXAMPLE
   ```

------

   Sistem mengembalikan informasi seperti berikut ini.

   ```
   {
       "WindowExecutions": [
           {
               "WindowId": "mw-0c50858d01EXAMPLE",
               "WindowExecutionId": "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE",
               "Status": "SUCCESS",
               "StartTime": 1557593493.096,
               "EndTime": 1557593498.611
           }
       ]
   }
   ```

**Tip**  
Setelah tugas berjalan dengan sukses, Anda dapat mengurangi nilai yang dijalankan jendela pemeliharaan. Misalnya, jalankan perintah berikut untuk mengurangi frekuensi ke seminggu sekali. Ganti *mw-0c50858d01EXAMPLE* dengan informasi Anda sendiri.  

```
aws ssm update-maintenance-window \
    --window-id mw-0c50858d01EXAMPLE \
    --schedule "rate(7 days)"
```

```
aws ssm update-maintenance-window ^
    --window-id mw-0c50858d01EXAMPLE ^
    --schedule "rate(7 days)"
```
Untuk informasi lebih lanjut tentang pengelolaan jadwal jendela pemeliharaan, lihat [Referensi: Ekspresi cron dan rate untuk Systems Manager](reference-cron-and-rate-expressions.md) dan [Penjadwalan jendela pemeliharaan dan pilihan periode aktif](maintenance-windows-schedule-options.md).  
Untuk informasi tentang menggunakan AWS Command Line Interface (AWS CLI) untuk mengubah jendela pemeliharaan, lihat[Tutorial: Perbarui jendela pemeliharaan menggunakan AWS CLI](maintenance-windows-cli-tutorials-update.md).

Untuk menjalankan AWS CLI perintah latihan untuk melihat detail lebih lanjut tentang tugas jendela pemeliharaan Anda dan pelaksanaannya, lanjutkan ke[Tutorial: Melihat informasi tentang tugas dan eksekusi tugas menggunakan AWS CLI](mw-cli-tutorial-task-info.md).

**Mengakses output perintah tutorial**  
Ini di luar cakupan tutorial ini untuk menggunakan AWS CLI untuk melihat *output* dari Run Command perintah yang terkait dengan eksekusi tugas jendela pemeliharaan Anda.

Anda dapat melihat data ini, bagaimanapun, menggunakan AWS CLI. (Anda juga dapat melihat output di konsol Systems Manager atau di berkas log yang disimpan di bucket Amazon Simple Storage Service (Amazon S3), jika Anda telah mengonfigurasi jendela pemeliharaan untuk menyimpan output perintah di sana.) Anda akan menemukan bahwa output dari perintah **df** pada instans EC2 untuk Linux seperti berikut ini.

```
Filesystem 1K-blocks Used Available Use% Mounted on

devtmpfs 485716 0 485716 0% /dev

tmpfs 503624 0 503624 0% /dev/shm

tmpfs 503624 328 503296 1% /run

tmpfs 503624 0 503624 0% /sys/fs/cgroup

/dev/xvda1 8376300 1464160 6912140 18% /
```

Output dari perintah **ipconfig** pada instans EC2 untuk Windows Server seperti berikut ini.

```
Windows IP Configuration


Ethernet adapter Ethernet 2:

   Connection-specific DNS Suffix  . : example.com
   IPv4 Address. . . . . . . . . . . : 10.24.34.0/23
   Subnet Mask . . . . . . . . . . . : 255.255.255.255
   Default Gateway . . . . . . . . . : 0.0.0.0

Ethernet adapter Ethernet:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . : abc1.wa.example.net

Wireless LAN adapter Local Area Connection* 1:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :

Wireless LAN adapter Wi-Fi:

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::100b:c234:66d6:d24f%4
   IPv4 Address. . . . . . . . . . . : 192.0.2.0
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 192.0.2.0

Ethernet adapter Bluetooth Network Connection:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :
```

# Contoh: Mendaftarkan tugas dengan jendela pemeliharaan
<a name="mw-cli-register-tasks-examples"></a>

Anda dapat mendaftarkan tugas diRun Command, alat di AWS Systems Manager, dengan jendela pemeliharaan menggunakan AWS Command Line Interface (AWS CLI), seperti yang ditunjukkan dalam [Daftarkan tugas dengan jendela pemeliharaan](mw-cli-tutorial-tasks.md). Anda juga dapat mendaftarkan tugas untuk alur kerja, AWS Lambda fungsi, dan AWS Step Functions tugas Systems Manager Automation, seperti yang ditunjukkan nanti dalam topik ini.

**catatan**  
Tentukan satu atau beberapa target untuk tugas Run Command tipe jendela pemeliharaan. Bergantung pada tugasnya, target bersifat opsional untuk jenis tugas jendela pemeliharaan lainnya (Otomasi, AWS Lambda, dan AWS Step Functions). Untuk informasi lebih lanjut tentang menjalankan tugas yang tidak menentukan target, lihat [Pendaftaran tugas jendela pemeliharaan tanpa target](maintenance-windows-targetless-tasks.md).

Dalam topik ini, kami memberikan contoh penggunaan perintah AWS Command Line Interface (AWS CLI) `register-task-with-maintenance-window` untuk mendaftarkan masing-masing dari empat jenis tugas yang didukung dengan jendela pemeliharaan. Contoh hanya untuk demonstrasi, tetapi Anda dapat mengubahnya untuk membuat perintah pendaftaran tugas yang berfungsi. 

**Menggunakan cli-input-json opsi --**  
Untuk mengelola pilhan tugas Anda dengan lebih baik, Anda dapat menggunakan pilihan perintah `--cli-input-json`, dengan nilai pilihan direferensikan di file JSON. 

Untuk menggunakan sampel konten file JSON yang kami sediakan dalam contoh berikut, lakukan hal berikut pada mesin lokal Anda:

1. Membuat file dengan nama seperti `MyRunCommandTask.json`, `MyAutomationTask.json`, atau nama lainnya yang Anda inginkan.

1. Salin konten sampel JSON kami ke dalam file.

1. Ubah konten file untuk pendaftaran tugas Anda, lalu simpan file.

1. Di direktori yang sama tempat Anda menyimpan file, jalankan perintah berikut. Gantikan nama file Anda untuk*MyFile.json*. 

------
#### [ Linux & macOS ]

   ```
   aws ssm register-task-with-maintenance-window \
       --cli-input-json file://MyFile.json
   ```

------
#### [ Windows ]

   ```
   aws ssm register-task-with-maintenance-window ^
       --cli-input-json file://MyFile.json
   ```

------

**Parameter semu dalam tugas jendela pemeliharaan**  
Dalam beberapa contoh, kami menggunakan *parameter pseudo* sebagai metode untuk meneruskan informasi ID ke tugas Anda. Misalnya, `{{TARGET_ID}}` dan `{{RESOURCE_ID}}` dapat digunakan untuk meneruskan AWS sumber daya ke tugas IDs Automation, Lambda, dan Step Functions. Untuk informasi lebih lanjut tentang parameter semu di konten `--task-invocation-parameters`, lihat [Menggunakan parameter semu saat mendaftarkan tugas jendela pemeliharaan](maintenance-window-tasks-pseudo-parameters.md). 

**Info lebih lanjut**  
+ [Opsi parameter untuk perintah register-task-with-maintenance -windows](mw-cli-task-options.md).
+ [https://docs.aws.amazon.com/cli/latest/reference/ssm/register-task-with-maintenance-window.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/register-task-with-maintenance-window.html)dalam *Referensi AWS CLI Perintah*
+ [https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_RegisterTaskWithMaintenanceWindow.html](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_RegisterTaskWithMaintenanceWindow.html) di *Referensi API AWS Systems Manager *

## Contoh pendaftaran tugas
<a name="task-examples"></a>

Bagian berikut menyediakan contoh AWS CLI perintah untuk mendaftarkan jenis tugas yang didukung dan sampel JSON yang dapat digunakan dengan `--cli-input-json` opsi.

### Mendaftarkan Run Command tugas Systems Manager
<a name="register-tasks-tutorial-run-command"></a>

Contoh berikut menunjukkan cara mendaftarkan Run Command tugas Systems Manager dengan jendela pemeliharaan menggunakan file AWS CLI.

------
#### [ Linux & macOS ]

```
aws ssm register-task-with-maintenance-window \
    --window-id mw-0c50858d01EXAMPLE \
    --task-arn "AWS-RunShellScript" \
    --max-concurrency 1 --max-errors 1 --priority 10 \
    --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE" \
    --task-type "RUN_COMMAND" \
    --task-invocation-parameters '{"RunCommand":{"Parameters":{"commands":["df"]}}}'
```

------
#### [ Windows ]

```
aws ssm register-task-with-maintenance-window ^
    --window-id mw-0c50858d01EXAMPLE ^
    --task-arn "AWS-RunShellScript" ^
    --max-concurrency 1 --max-errors 1 --priority 10 ^
    --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE" ^
    --task-type "RUN_COMMAND" ^
    --task-invocation-parameters "{\"RunCommand\":{\"Parameters\":{\"commands\":[\"df\"]}}}"
```

------

**Konten JSON untuk digunakan dengan opsi `--cli-input-json` file:**

```
{
    "TaskType": "RUN_COMMAND",
    "WindowId": "mw-0c50858d01EXAMPLE",
    "Description": "My Run Command task to update SSM Agent on an instance",
    "MaxConcurrency": "1",
    "MaxErrors": "1",
    "Name": "My-Run-Command-Task",
    "Priority": 10,
    "Targets": [
        {
            "Key": "WindowTargetIds",
            "Values": [
                "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
            ]
        }
    ],
    "TaskArn": "AWS-UpdateSSMAgent",
    "TaskInvocationParameters": {
        "RunCommand": {
            "Comment": "A TaskInvocationParameters test comment",
            "NotificationConfig": {
                "NotificationArn": "arn:aws:sns:region:123456789012:my-sns-topic-name",
                "NotificationEvents": [
                    "All"
                ],
                "NotificationType": "Invocation"
            },
            "OutputS3BucketName": "amzn-s3-demo-bucket",
            "OutputS3KeyPrefix": "S3-PREFIX",
            "TimeoutSeconds": 3600
        }
    }
}
```

### Mendaftarkan tugas Otomatisasi Systems Manager
<a name="register-tasks-tutorial-automation"></a>

Contoh berikut mendemonstrasikan cara untuk mendaftarkan tugas Otomatisasi Systems Manager dengan jendela pemeliharaan menggunakan AWS CLI. 

**AWS CLI perintah:**

------
#### [ Linux & macOS ]

```
aws ssm register-task-with-maintenance-window \
    --window-id "mw-0c50858d01EXAMPLE" \
    --task-arn "AWS-RestartEC2Instance" \
    --service-role-arn arn:aws:iam::123456789012:role/MyMaintenanceWindowServiceRole \
    --task-type AUTOMATION \
    --task-invocation-parameters "Automation={DocumentVersion=5,Parameters={InstanceId='{{RESOURCE_ID}}'}}" \
    --priority 0 --name "My-Restart-EC2-Instances-Automation-Task" \
    --description "Automation task to restart EC2 instances"
```

------
#### [ Windows ]

```
aws ssm register-task-with-maintenance-window ^
    --window-id "mw-0c50858d01EXAMPLE" ^
    --task-arn "AWS-RestartEC2Instance" ^
    --service-role-arn arn:aws:iam::123456789012:role/MyMaintenanceWindowServiceRole ^
    --task-type AUTOMATION ^
    --task-invocation-parameters "Automation={DocumentVersion=5,Parameters={InstanceId='{{TARGET_ID}}'}}" ^
    --priority 0 --name "My-Restart-EC2-Instances-Automation-Task" ^
    --description "Automation task to restart EC2 instances"
```

------

**Konten JSON untuk digunakan dengan opsi `--cli-input-json` file:**

```
{
    "WindowId": "mw-0c50858d01EXAMPLE",
        "TaskArn": "AWS-PatchInstanceWithRollback",
    "TaskType": "AUTOMATION","TaskInvocationParameters": {
        "Automation": {
            "DocumentVersion": "1",
            "Parameters": {
                "instanceId": [
                    "{{RESOURCE_ID}}"
                ]
            }
        }
    }
}
```

### Daftarkan AWS Lambda tugas
<a name="register-tasks-tutorial-lambda"></a>

Contoh berikut mendemonstrasikan cara untuk mendaftarkan tugas fungsi Lambda dengan jendela pemeliharaan menggunakan AWS CLI. 

Untuk contoh ini, pengguna yang membuat fungsi Lambda menamainya `SSMrestart-my-instances` dan membuat dua parameter yang disebut `instanceId` dan `targetType`.

**penting**  
Kebijakan IAM untuk Maintenance Windows mengharuskan Anda menambahkan awalan ke nama fungsi `SSM` Lambda (atau alias). Sebelum Anda melanjutkan untuk mendaftarkan jenis tugas ini, perbarui namanya AWS Lambda untuk disertakan`SSM`. Misalnya, jika nama fungsi Lambda Anda adalah `MyLambdaFunction`, ubah ke `SSMMyLambdaFunction`.

**AWS CLI perintah:**

------
#### [ Linux & macOS ]

**penting**  
Jika Anda menggunakan versi 2 dari AWS CLI, Anda harus menyertakan opsi `--cli-binary-format raw-in-base64-out` dalam perintah berikut jika payload Lambda Anda tidak dikodekan base64. `cli_binary_format`Opsi ini hanya tersedia di versi 2. Untuk informasi tentang ini dan setelan AWS CLI `config` file lainnya, lihat [Setelan `config` file yang didukung](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-settings) di *Panduan AWS Command Line Interface Pengguna*.

```
aws ssm register-task-with-maintenance-window \
    --window-id "mw-0c50858d01EXAMPLE" \
    --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" \
    --priority 2 --max-concurrency 10 --max-errors 5 --name "My-Lambda-Example" \
    --description "A description for my LAMBDA example task" --task-type "LAMBDA" \
    --task-arn "arn:aws:lambda:region:123456789012:function:serverlessrepo-SSMrestart-my-instances-C4JF9EXAMPLE" \
    --task-invocation-parameters '{"Lambda":{"Payload":"{\"InstanceId\":\"{{RESOURCE_ID}}\",\"targetType\":\"{{TARGET_TYPE}}\"}","Qualifier": "$LATEST"}}'
```

------
#### [ PowerShell ]

**penting**  
Jika Anda menggunakan versi 2 dari AWS CLI, Anda harus menyertakan opsi `--cli-binary-format raw-in-base64-out` dalam perintah berikut jika payload Lambda Anda tidak dikodekan base64. `cli_binary_format`Opsi ini hanya tersedia di versi 2. Untuk informasi tentang ini dan setelan AWS CLI `config` file lainnya, lihat [Setelan `config` file yang didukung](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-settings) di *Panduan AWS Command Line Interface Pengguna*.

```
aws ssm register-task-with-maintenance-window `
    --window-id "mw-0c50858d01EXAMPLE" `
    --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" `
    --priority 2 --max-concurrency 10 --max-errors 5 --name "My-Lambda-Example" `
    --description "A description for my LAMBDA example task" --task-type "LAMBDA" `
    --task-arn "arn:aws:lambda:region:123456789012:function:serverlessrepo-SSMrestart-my-instances-C4JF9EXAMPLE" `
    --task-invocation-parameters '{\"Lambda\":{\"Payload\":\"{\\\"InstanceId\\\":\\\"{{RESOURCE_ID}}\\\",\\\"targetType\\\":\\\"{{TARGET_TYPE}}\\\"}\",\"Qualifier\": \"$LATEST\"}}'
```

------

**Konten JSON untuk digunakan dengan opsi `--cli-input-json` file:**

```
{
    "WindowId": "mw-0c50858d01EXAMPLE",
    "Targets": [
        {
            "Key": "WindowTargetIds",
            "Values": [
                "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
            ]
        }
    ],
    "TaskArn": "SSM_RestartMyInstances",
    "TaskType": "LAMBDA",
    "MaxConcurrency": "10",
    "MaxErrors": "10",
    "TaskInvocationParameters": {
        "Lambda": {
            "ClientContext": "ew0KICAi--truncated--0KIEXAMPLE",
            "Payload": "{ \"instanceId\": \"{{RESOURCE_ID}}\", \"targetType\": \"{{TARGET_TYPE}}\" }",
            "Qualifier": "$LATEST"
        }
    },
    "Name": "My-Lambda-Task",
    "Description": "A description for my LAMBDA task",
    "Priority": 5
}
```

### Mendaftarkan tugas Step Functions
<a name="register-tasks-tutorial-step-functions"></a>

Contoh berikut mendemonstrasikan cara untuk mendaftarkan tugas mesin tahapan Step Functions dengan jendela pemeliharaan menggunakan AWS CLI.

**catatan**  
Tugas jendela pemeliharaan hanya mendukung Step Functions Alur kerja mesin status standar. Mereka tidak mendukung alur kerja mesin status Express. *Untuk informasi tentang jenis alur kerja mesin status, lihat Alur [Kerja Standar vs Ekspres di Panduan Pengembang](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-standard-vs-express.html)AWS Step Functions .*

Untuk contoh ini, pengguna yang membuat mesin tahapan Step Functions membuat mesin tahapan bernama `SSMMyStateMachine` dengan parameter yang disebut `instanceId`.

**penting**  
Kebijakan AWS Identity and Access Management (IAM) untuk Maintenance Windows mengharuskan Anda mengawali nama mesin status Step Functions. `SSM` Sebelum melanjutkan untuk mendaftarkan jenis tugas ini, Anda harus memperbarui namanya di AWS Step Functions untuk menyertakan `SSM`. Misalnya, jika nama mesin tahapan Anda adalah `MyStateMachine`, ubah ke `SSMMyStateMachine`.

**AWS CLI perintah:**

------
#### [ Linux & macOS ]

```
aws ssm register-task-with-maintenance-window \
    --window-id "mw-0c50858d01EXAMPLE" \
    --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" \
    --task-arn arn:aws:states:region:123456789012:stateMachine:SSMMyStateMachine-MggiqEXAMPLE \
    --task-type STEP_FUNCTIONS \
    --task-invocation-parameters '{"StepFunctions":{"Input":"{\"InstanceId\":\"{{RESOURCE_ID}}\"}", "Name":"{{INVOCATION_ID}}"}}' \
    --priority 0 --max-concurrency 10 --max-errors 5 \
    --name "My-Step-Functions-Task" --description "A description for my Step Functions task"
```

------
#### [ PowerShell ]

```
aws ssm register-task-with-maintenance-window `
    --window-id "mw-0c50858d01EXAMPLE" `
    --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" `
    --task-arn arn:aws:states:region:123456789012:stateMachine:SSMMyStateMachine-MggiqEXAMPLE `
    --task-type STEP_FUNCTIONS `
    --task-invocation-parameters '{\"StepFunctions\":{\"Input\":\"{\\\"InstanceId\\\":\\\"{{RESOURCE_ID}}\\\"}\", \"Name\":\"{{INVOCATION_ID}}\"}}' `
    --priority 0 --max-concurrency 10 --max-errors 5 `
    --name "My-Step-Functions-Task" --description "A description for my Step Functions task"
```

------

**Konten JSON untuk digunakan dengan opsi `--cli-input-json` file:**

```
{
    "WindowId": "mw-0c50858d01EXAMPLE",
    "Targets": [
        {
            "Key": "WindowTargetIds",
            "Values": [
                "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
            ]
        }
    ],
    "TaskArn": "SSM_MyStateMachine",
    "TaskType": "STEP_FUNCTIONS",
    "MaxConcurrency": "10",
    "MaxErrors": "10",
    "TaskInvocationParameters": {
        "StepFunctions": {
            "Input": "{ \"instanceId\": \"{{TARGET_ID}}\" }",
            "Name": "{{INVOCATION_ID}}"
        }
    },
    "Name": "My-Step-Functions-Task",
    "Description": "A description for my Step Functions task",
    "Priority": 5
}
```

# Opsi parameter untuk perintah register-task-with-maintenance -windows
<a name="mw-cli-task-options"></a>

Perintah **register-task-with-maintenance-window** menyediakan beberapa pilihan untuk pengonfigurasian tugas sesuai dengan kebutuhan Anda. Beberapa di antaranya diperlukan, beberapa di antaranya opsional, dan beberapa di antaranya berlaku untuk satu jenis tugas jendela pemeliharaan saja.

Topik ini memberikan informasi tentang beberapa pilihan ini untuk membantu Anda menggunakan sampel di bagian tutorial ini. Untuk informasi lebih lanjut tentang semua pilihan perintah, lihat **[https://docs.aws.amazon.com/cli/latest/reference/ssm/register-task-with-maintenance-window.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/register-task-with-maintenance-window.html)** di *Referensi Perintah AWS CLI *.

**Opsi perintah: `--task-arn`**  
Opsi `--task-arn` ini digunakan untuk menentukan sumber daya tempat tugas beroperasi. Nilai yang Anda tentukan tergantung dari jenis tugas yang Anda daftarkan, seperti yang dijelaskan di tabel berikut.


**TaskArn format untuk tugas jendela pemeliharaan**  

| Jenis tugas jendela pemeliharaan | TaskArn nilai | 
| --- | --- | 
|  **`RUN_COMMAND`** dan ** `AUTOMATION`**  |  `TaskArn` adalah nama dokumen SSM atau Amazon Resource Name (ARN). Sebagai contoh:  `AWS-RunBatchShellScript`  -atau- `arn:aws:ssm:region:111122223333:document/My-Document`.  | 
|  **`LAMBDA`**  |  `TaskArn` adalah nama fungsi atau ARN. Sebagai contoh:  `SSMMy-Lambda-Function` -atau- `arn:aws:lambda:region:111122223333:function:SSMMyLambdaFunction`.  Kebijakan IAM untuk Maintenance Windows mengharuskan Anda menambahkan awalan ke nama fungsi `SSM` Lambda (atau alias). Sebelum Anda melanjutkan untuk mendaftarkan jenis tugas ini, perbarui namanya AWS Lambda untuk disertakan`SSM`. Misalnya, jika nama fungsi Lambda Anda adalah `MyLambdaFunction`, ubah ke `SSMMyLambdaFunction`.   | 
|  **`STEP_FUNCTIONS`**  |  `TaskArn` adalah ARN mesin tahapan. Sebagai contoh:  `arn:aws:states:us-east-2:111122223333:stateMachine:SSMMyStateMachine`.  Kebijakan IAM untuk windows pemeliharaan mengharuskan Anda mengawali nama mesin tahapan Step Functions dengan `SSM`. Sebelum mendaftarkan jenis tugas ini, Anda harus memperbarui namanya di AWS Step Functions untuk menyertakan `SSM`. Misalnya, jika nama mesin tahapan Anda adalah `MyStateMachine`, ubah ke `SSMMyStateMachine`.   | 

**Opsi perintah: `--service-role-arn`**  
Peran AWS Systems Manager untuk diasumsikan saat menjalankan tugas jendela pemeliharaan. 

Untuk informasi selengkapnya, lihat [Menyiapkan Maintenance Windows](setting-up-maintenance-windows.md)

**Opsi perintah: `--task-invocation-parameters`**  
Pilihan `--task-invocation-parameters` digunakan untuk menentukan parameter yang bersifat unik untuk masing-masing dari keempat jenis tugas. Parameter yang didukung untuk masing-masing dari keempat jenis tugas dijelaskan di tabel berikut.

**catatan**  
Untuk informasi tentang penggunaan parameter semu di konten `--task-invocation-parameters`, seperti \$1\$1TARGET\$1ID\$1\$1, lihat [Menggunakan parameter semu saat mendaftarkan tugas jendela pemeliharaan](maintenance-window-tasks-pseudo-parameters.md). 

Pilihan parameter permintaan tugas untuk tugas jendela pemeliharaan


| Jenis tugas jendela pemeliharaan | Parameter yang tersedia  | Contoh | 
| --- | --- | --- | 
|  **`RUN_COMMAND`**  |  `Comment` `DocumentHash` `DocumentHashType` `NotificationConfig` `OutputS3BucketName` `OutPutS3KeyPrefix` `Parameters` `ServiceRoleArn` `TimeoutSeconds`  |  <pre>"TaskInvocationParameters": {<br />        "RunCommand": {<br />            "Comment": "My Run Command task comment",<br />            "DocumentHash": "6554ed3d--truncated--5EXAMPLE",<br />            "DocumentHashType": "Sha256",<br />            "NotificationConfig": {<br />                "NotificationArn": "arn:aws:sns:region:123456789012:my-sns-topic-name",<br />                "NotificationEvents": [<br />                    "FAILURE"<br />                ],<br />                "NotificationType": "Invocation"<br />            },<br />            "OutputS3BucketName": "amzn-s3-demo-bucket",<br />            "OutputS3KeyPrefix": "S3-PREFIX",<br />            "Parameters": {<br />                "commands": [<br />                    "Get-ChildItem$env: temp-Recurse|Remove-Item-Recurse-force"<br />                ]<br />            },<br />            "ServiceRoleArn": "arn:aws:iam::123456789012:role/MyMaintenanceWindowServiceRole",<br />            "TimeoutSeconds": 3600<br />        }<br />    }</pre>  | 
|  **`AUTOMATION`**  |  `DocumentVersion` `Parameters`  |  <pre>"TaskInvocationParameters": {<br />        "Automation": {<br />            "DocumentVersion": "3",<br />            "Parameters": {<br />                "instanceid": [<br />                    "{{TARGET_ID}}"<br />                ]<br />            }<br />        }<br />    }</pre>  | 
|  **`LAMBDA`**  |  `ClientContext` `Payload` `Qualifier`  |  <pre>"TaskInvocationParameters": {<br />        "Lambda": {<br />            "ClientContext": "ew0KICAi--truncated--0KIEXAMPLE",<br />            "Payload": "{ \"targetId\": \"{{TARGET_ID}}\", \"targetType\": \"{{TARGET_TYPE}}\" }",<br />            "Qualifier": "$LATEST"<br />        }<br />    }</pre>  | 
|  **`STEP_FUNCTIONS`**  |  `Input` `Name`  |  <pre>"TaskInvocationParameters": {<br />        "StepFunctions": {<br />            "Input": "{ \"targetId\": \"{{TARGET_ID}}\" }",<br />            "Name": "{{INVOCATION_ID}}"<br />        }<br />    }</pre>  | 

# Tutorial: Lihat informasi tentang jendela pemeliharaan menggunakan AWS CLI
<a name="maintenance-windows-cli-tutorials-describe"></a>

Tutorial ini menyertakan perintah untuk membantu Anda memperbarui atau mendapatkan informasi tentang windows pemeliharaan, tugas, eksekusi, dan permintaan Anda. Contoh diorganisasi oleh perintah untuk mendemonstrasikan cara menggunakan opsi perintah untuk memfilter jenis dari detail yang ingin Anda lihat.

Saat Anda mengikuti langkah-langkah dalam tutorial ini, ganti nilai dalam *red* teks miring dengan opsi Anda sendiri dan. IDs Misalnya, ganti ID jendela pemeliharaan *mw-0c50858d01EXAMPLE* dan ID instance *i-02573cafcfEXAMPLE* dengan sumber daya IDs yang Anda buat.

Untuk informasi tentang pengaturan dan konfigurasi AWS Command Line Interface (AWS CLI), lihat [Menginstal, memperbarui, dan menghapus instalasi dan AWS CLI[Mengonfigurasi](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html). AWS CLI

**Topics**
+ [Contoh untuk 'describe-maintenance-windows'](#mw-cli-tutorials-describe-maintenance-windows)
+ [Contoh untuk 'describe-maintenance-window-targets'](#mw-cli-tutorials-describe-maintenance-window-targets)
+ [Contoh untuk 'describe-maintenance-window-tasks'](#mw-cli-tutorials-describe-maintenance-window-tasks)
+ [Contoh untuk 'describe-maintenance-windows-for-target'](#mw-cli-tutorials-describe-maintenance-windows-for-target)
+ [Contoh untuk 'describe-maintenance-window-executions'](#mw-cli-tutorials-describe-maintenance-window-executions)
+ [Contoh untuk 'describe-maintenance-window-schedule'](#mw-cli-tutorials-describe-maintenance-window-schedule)

## Contoh untuk 'describe-maintenance-windows'
<a name="mw-cli-tutorials-describe-maintenance-windows"></a>

**Daftar semua jendela pemeliharaan di Akun AWS**  
Jalankan perintah berikut.

```
aws ssm describe-maintenance-windows
```

Sistem mengembalikan informasi seperti berikut ini.

```
{
   "WindowIdentities":[
      {
         "WindowId":"mw-0c50858d01EXAMPLE",
         "Name":"My-First-Maintenance-Window",
         "Enabled":true,
         "Duration":2,
         "Cutoff":0,
         "NextExecutionTime": "2019-05-18T17:01:01.137Z"        
      },
      {
         "WindowId":"mw-9a8b7c6d5eEXAMPLE",
         "Name":"My-Second-Maintenance-Window",
         "Enabled":true,
         "Duration":4,
         "Cutoff":1,
         "NextExecutionTime": "2019-05-30T03:30:00.137Z"        
      },
   ]
}
```

**Daftar semua windows pemeliharaan yang diaktifkan**  
Jalankan perintah berikut.

```
aws ssm describe-maintenance-windows --filters "Key=Enabled,Values=true"
```

Sistem mengembalikan informasi seperti berikut ini.

```
{
   "WindowIdentities":[
      {
         "WindowId":"mw-0c50858d01EXAMPLE",
         "Name":"My-First-Maintenance-Window",
         "Enabled":true,
         "Duration":2,
         "Cutoff":0,
         "NextExecutionTime": "2019-05-18T17:01:01.137Z"        
      },
      {
         "WindowId":"mw-9a8b7c6d5eEXAMPLE",
         "Name":"My-Second-Maintenance-Window",
         "Enabled":true,
         "Duration":4,
         "Cutoff":1,
         "NextExecutionTime": "2019-05-30T03:30:00.137Z"        
      },
   ]
}
```

**Daftar semua windows pemeliharaan yang dinonaktifkan**  
Jalankan perintah berikut.

```
aws ssm describe-maintenance-windows --filters "Key=Enabled,Values=false"
```

Sistem mengembalikan informasi seperti berikut ini.

```
{
    "WindowIdentities": [
        {
            "WindowId": "mw-6e5c9d4b7cEXAMPLE",
            "Name": "My-Disabled-Maintenance-Window",
            "Enabled": false,
            "Duration": 2,
            "Cutoff": 1
        }
    ]
}
```

**Daftar semua windows pemeliharaan yang memiliki nama yang dimulai dengan prefiks tertentu**  
Jalankan perintah berikut.

```
aws ssm describe-maintenance-windows --filters "Key=Name,Values=My"
```

Sistem mengembalikan informasi seperti berikut ini.

```
{
    "WindowIdentities": [
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "My-First-Maintenance-Window",
            "Enabled": true,
            "Duration": 2,
            "Cutoff": 0,
            "NextExecutionTime": "2019-05-18T17:01:01.137Z"
        },
        {
            "WindowId": "mw-9a8b7c6d5eEXAMPLE",
            "Name": "My-Second-Maintenance-Window",
            "Enabled": true,
            "Duration": 4,
            "Cutoff": 1,
            "NextExecutionTime": "2019-05-30T03:30:00.137Z"
        },
        {
            "WindowId": "mw-6e5c9d4b7cEXAMPLE",
            "Name": "My-Disabled-Maintenance-Window",
            "Enabled": false,
            "Duration": 2,
            "Cutoff": 1
        }
    ]
}
```

## Contoh untuk 'describe-maintenance-window-targets'
<a name="mw-cli-tutorials-describe-maintenance-window-targets"></a>

**Menampilkan target untuk jendela pemeliharaan yang cocok dengan nilai informasi pemilik tertentu**  
Jalankan perintah berikut.

------
#### [ Linux & macOS ]

```
aws ssm describe-maintenance-window-targets \
    --window-id "mw-6e5c9d4b7cEXAMPLE" \
    --filters "Key=OwnerInformation,Values=CostCenter1"
```

------
#### [ Windows ]

```
aws ssm describe-maintenance-window-targets ^
    --window-id "mw-6e5c9d4b7cEXAMPLE" ^
    --filters "Key=OwnerInformation,Values=CostCenter1"
```

------

**catatan**  
Kunci filter yang didukung adalah `Type`, `WindowTargetId` dan `OwnerInformation`.

Sistem mengembalikan informasi seperti berikut ini.

```
{
    "Targets": [
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "WindowTargetId": "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE",
            "ResourceType": "INSTANCE",
            "Targets": [
                {
                    "Key": "tag:Name",
                    "Values": [
                        "Production"
                    ]
                }
            ],
            "OwnerInformation": "CostCenter1",
            "Name": "Target1"
        }
    ]
}
```

## Contoh untuk 'describe-maintenance-window-tasks'
<a name="mw-cli-tutorials-describe-maintenance-window-tasks"></a>

**Menunjukkan semua tugas terdaftar yang meminta dokumen perintah SSM `AWS-RunPowerShellScript`**  
Jalankan perintah berikut.

------
#### [ Linux & macOS ]

```
aws ssm describe-maintenance-window-tasks \
    --window-id "mw-0c50858d01EXAMPLE" \
    --filters "Key=TaskArn,Values=AWS-RunPowerShellScript"
```

------
#### [ Windows ]

```
aws ssm describe-maintenance-window-tasks ^
    --window-id "mw-0c50858d01EXAMPLE" ^
    --filters "Key=TaskArn,Values=AWS-RunPowerShellScript"
```

------

Sistem mengembalikan informasi seperti berikut ini.

```
{
   "Tasks":[
      {
         "ServiceRoleArn": "arn:aws:iam::111122223333:role/MyMaintenanceWindowServiceRole",
         "MaxErrors":"1",
         "TaskArn":"AWS-RunPowerShellScript",
         "MaxConcurrency":"1",
         "WindowTaskId":"4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
         "TaskParameters":{
            "commands":{
               "Values":[
                  "driverquery.exe"
               ]
            }
         },
         "Priority":3,
         "Type":"RUN_COMMAND",
         "Targets":[
            {
               "TaskTargetId":"i-02573cafcfEXAMPLE",
               "TaskTargetType":"INSTANCE"
            }
         ]
      },
      {
         "ServiceRoleArn":"arn:aws:iam::111122223333:role/MyMaintenanceWindowServiceRole",
         "MaxErrors":"1",
         "TaskArn":"AWS-RunPowerShellScript",
         "MaxConcurrency":"1",
         "WindowTaskId":"4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
         "TaskParameters":{
            "commands":{
               "Values":[
                  "ipconfig"
               ]
            }
         },
         "Priority":1,
         "Type":"RUN_COMMAND",
         "Targets":[
            {
               "TaskTargetId":"i-02573cafcfEXAMPLE",
               "TaskTargetType":"WINDOW_TARGET"
            }
         ]
      }
   ]
}
```

**Menunjukkan semua tugas terdaftar yang memiliki prioritas “3"**  
Jalankan perintah berikut.

------
#### [ Linux & macOS ]

```
aws ssm describe-maintenance-window-tasks \
    --window-id "mw-9a8b7c6d5eEXAMPLE" \
    --filters "Key=Priority,Values=3"
```

------
#### [ Windows ]

```
aws ssm describe-maintenance-window-tasks ^
    --window-id "mw-9a8b7c6d5eEXAMPLE" ^
    --filters "Key=Priority,Values=3"
```

------

Sistem mengembalikan informasi seperti berikut ini.

```
{
   "Tasks":[
      {
         "ServiceRoleArn":"arn:aws:iam::111122223333:role/MyMaintenanceWindowServiceRole",
         "MaxErrors":"1",
         "TaskArn":"AWS-RunPowerShellScript",
         "MaxConcurrency":"1",
         "WindowTaskId":"4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
         "TaskParameters":{
            "commands":{
               "Values":[
                  "driverquery.exe"
               ]
            }
         },
         "Priority":3,
         "Type":"RUN_COMMAND",
         "Targets":[
            {
               "TaskTargetId":"i-02573cafcfEXAMPLE",
               "TaskTargetType":"INSTANCE"
            }
         ]
      }
   ]
}
```

**Tampilkan semua tugas terdaftar yang memiliki prioritas “1" dan gunakan Run Command**  
Jalankan perintah berikut.

------
#### [ Linux & macOS ]

```
aws ssm describe-maintenance-window-tasks \
    --window-id "mw-0c50858d01EXAMPLE" \
    --filters "Key=Priority,Values=1" "Key=TaskType,Values=RUN_COMMAND"
```

------
#### [ Windows ]

```
aws ssm describe-maintenance-window-tasks ^
    --window-id "mw-0c50858d01EXAMPLE" ^
    --filters "Key=Priority,Values=1" "Key=TaskType,Values=RUN_COMMAND"
```

------

Sistem mengembalikan informasi seperti berikut ini.

```
{
    "Tasks": [
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
            "TaskArn": "AWS-RunShellScript",
            "Type": "RUN_COMMAND",
            "Targets": [
                {
                    "Key": "InstanceIds",
                    "Values": [
                        "i-02573cafcfEXAMPLE"
                    ]
                }
            ],
            "TaskParameters": {},
            "Priority": 1,
            "ServiceRoleArn": "arn:aws:iam::111122223333:role/MyMaintenanceWindowServiceRole",
            "MaxConcurrency": "1",
            "MaxErrors": "1"
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "WindowTaskId": "8a5c4629-31b0-4edd-8aea-33698EXAMPLE",
            "TaskArn": "AWS-UpdateSSMAgent",
            "Type": "RUN_COMMAND",
            "Targets": [
                {
                    "Key": "InstanceIds",
                    "Values": [
                        "i-0471e04240EXAMPLE"
                    ]
                }
            ],
            "TaskParameters": {},
            "Priority": 1,
            "ServiceRoleArn": "arn:aws:iam::111122223333:role/MyMaintenanceWindowServiceRole",
            "MaxConcurrency": "1",
            "MaxErrors": "1",
            "Name": "My-Run-Command-Task",
            "Description": "My Run Command task to update SSM Agent on an instance"
        }
    ]
}
```

## Contoh untuk 'describe-maintenance-windows-for-target'
<a name="mw-cli-tutorials-describe-maintenance-windows-for-target"></a>

**Daftar informasi tentang target jendela pemeliharaan atau tugas yang terkait dengan node tertentu**  
Jalankan perintah berikut.

------
#### [ Linux & macOS ]

```
aws ssm describe-maintenance-windows-for-target \
    --resource-type INSTANCE \
    --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE" \
    --max-results 10
```

------
#### [ Windows ]

```
aws ssm describe-maintenance-windows-for-target ^
    --resource-type INSTANCE ^
    --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE" ^
    --max-results 10
```

------

Sistem mengembalikan informasi seperti berikut ini.

```
{
    "WindowIdentities": [
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "My-First-Maintenance-Window"
        },
        {
            "WindowId": "mw-9a8b7c6d5eEXAMPLE",
            "Name": "My-Second-Maintenance-Window"
        }
    ]
}
```

## Contoh untuk 'describe-maintenance-window-executions'
<a name="mw-cli-tutorials-describe-maintenance-window-executions"></a>

**Mencantumkan semua tugas yang berjalan sebelum tanggal tertentu**  
Jalankan perintah berikut.

------
#### [ Linux & macOS ]

```
aws ssm describe-maintenance-window-executions \
    --window-id "mw-9a8b7c6d5eEXAMPLE" \
    --filters "Key=ExecutedBefore,Values=2019-05-12T05:00:00Z"
```

------
#### [ Windows ]

```
aws ssm describe-maintenance-window-executions ^
    --window-id "mw-9a8b7c6d5eEXAMPLE" ^
    --filters "Key=ExecutedBefore,Values=2019-05-12T05:00:00Z"
```

------

Sistem mengembalikan informasi seperti berikut ini.

```
{
    "WindowExecutions": [
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "WindowExecutionId": "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE",
            "Status": "FAILED",
            "StatusDetails": "The following SSM parameters are invalid: LevelUp",
            "StartTime": 1557617747.993,
            "EndTime": 1557617748.101
        },
        {
            "WindowId": "mw-9a8b7c6d5eEXAMPLE",
            "WindowExecutionId": "791b72e0-f0da-4021-8b35-f95dfEXAMPLE",
            "Status": "SUCCESS",
            "StartTime": 1557594085.428,
            "EndTime": 1557594090.978
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "WindowExecutionId": "ecec60fa-6bb0-4d26-98c7-140308EXAMPLE",
            "Status": "SUCCESS",
            "StartTime": 1557593793.483,
            "EndTime": 1557593798.978
        }
    ]
}
```

**Mencantumkan semua tugas yang berjalan setelah tanggal tertentu**  
Jalankan perintah berikut.

------
#### [ Linux & macOS ]

```
aws ssm describe-maintenance-window-executions \
    --window-id "mw-9a8b7c6d5eEXAMPLE" \
    --filters "Key=ExecutedAfter,Values=2018-12-31T17:00:00Z"
```

------
#### [ Windows ]

```
aws ssm describe-maintenance-window-executions ^
    --window-id "mw-9a8b7c6d5eEXAMPLE" ^
    --filters "Key=ExecutedAfter,Values=2018-12-31T17:00:00Z"
```

------

Sistem mengembalikan informasi seperti berikut ini.

```
{
    "WindowExecutions": [
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "WindowExecutionId": "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE",
            "Status": "FAILED",
            "StatusDetails": "The following SSM parameters are invalid: LevelUp",
            "StartTime": 1557617747.993,
            "EndTime": 1557617748.101
        },
        {
            "WindowId": "mw-9a8b7c6d5eEXAMPLE",
            "WindowExecutionId": "791b72e0-f0da-4021-8b35-f95dfEXAMPLE",
            "Status": "SUCCESS",
            "StartTime": 1557594085.428,
            "EndTime": 1557594090.978
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "WindowExecutionId": "ecec60fa-6bb0-4d26-98c7-140308EXAMPLE",
            "Status": "SUCCESS",
            "StartTime": 1557593793.483,
            "EndTime": 1557593798.978
        }
    ]
}
```

## Contoh untuk 'describe-maintenance-window-schedule'
<a name="mw-cli-tutorials-describe-maintenance-window-schedule"></a>

**Menampilkan sepuluh jendela pemeliharaan terjadwal berikutnya berjalan untuk node tertentu**  
Jalankan perintah berikut.

------
#### [ Linux & macOS ]

```
aws ssm describe-maintenance-window-schedule \
    --resource-type INSTANCE \
    --targets "Key=InstanceIds,Values=i-07782c72faEXAMPLE" \
    --max-results 10
```

------
#### [ Windows ]

```
aws ssm describe-maintenance-window-schedule ^
    --resource-type INSTANCE ^
    --targets "Key=InstanceIds,Values=i-07782c72faEXAMPLE" ^
    --max-results 10
```

------

Sistem mengembalikan informasi seperti berikut ini.

```
{
    "ScheduledWindowExecutions": [
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "My-First-Maintenance-Window",
            "ExecutionTime": "2019-05-18T23:35:24.902Z"
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "My-First-Maintenance-Window",
            "ExecutionTime": "2019-05-25T23:35:24.902Z"
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "My-First-Maintenance-Window",
            "ExecutionTime": "2019-06-01T23:35:24.902Z"
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "My-First-Maintenance-Window",
            "ExecutionTime": "2019-06-08T23:35:24.902Z"
        },
        {
            "WindowId": "mw-9a8b7c6d5eEXAMPLE",
            "Name": "My-Second-Maintenance-Window",
            "ExecutionTime": "2019-06-15T23:35:24.902Z"
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "My-First-Maintenance-Window",
            "ExecutionTime": "2019-06-22T23:35:24.902Z"
        },
        {
            "WindowId": "mw-9a8b7c6d5eEXAMPLE",
            "Name": "My-Second-Maintenance-Window",
            "ExecutionTime": "2019-06-29T23:35:24.902Z"
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "My-First-Maintenance-Window",
            "ExecutionTime": "2019-07-06T23:35:24.902Z"
        },
        {
            "WindowId": "mw-9a8b7c6d5eEXAMPLE",
            "Name": "My-Second-Maintenance-Window",
            "ExecutionTime": "2019-07-13T23:35:24.902Z"
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "My-First-Maintenance-Window",
            "ExecutionTime": "2019-07-20T23:35:24.902Z"
        }
    ],
    "NextToken": "AAEABUXdceT92FvtKld/dGHELj5Mi+GKW/EXAMPLE"
}
```

**Menampilkan jadwal jendela pemeliharaan untuk node yang ditandai dengan pasangan kunci-nilai tertentu**  
Jalankan perintah berikut.

------
#### [ Linux & macOS ]

```
aws ssm describe-maintenance-window-schedule \
    --resource-type INSTANCE \
    --targets "Key=tag:prod,Values=rhel7"
```

------
#### [ Windows ]

```
aws ssm describe-maintenance-window-schedule ^
    --resource-type INSTANCE ^
    --targets "Key=tag:prod,Values=rhel7"
```

------

Sistem mengembalikan informasi seperti berikut ini.

```
{
    "ScheduledWindowExecutions": [
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "DemoRateStartDate",
            "ExecutionTime": "2019-10-20T05:34:56-07:00"
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "DemoRateStartDate",
            "ExecutionTime": "2019-10-21T05:34:56-07:00"
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "DemoRateStartDate",
            "ExecutionTime": "2019-10-22T05:34:56-07:00"
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "DemoRateStartDate",
            "ExecutionTime": "2019-10-23T05:34:56-07:00"
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "DemoRateStartDate",
            "ExecutionTime": "2019-10-24T05:34:56-07:00"
        }
    ],
    "NextToken": "AAEABccwSXqQRGKiTZ1yzGELR6cxW4W/EXAMPLE"
}
```

**Menampilkan waktu mulai untuk empat eksekusi berikutnya dari jendela pemeliharaan**  
Jalankan perintah berikut.

------
#### [ Linux & macOS ]

```
aws ssm describe-maintenance-window-schedule \
    --window-id "mw-0c50858d01EXAMPLE" \
    --max-results "4"
```

------
#### [ Windows ]

```
aws ssm describe-maintenance-window-schedule ^
    --window-id "mw-0c50858d01EXAMPLE" ^
    --max-results "4"
```

------

Sistem mengembalikan informasi seperti berikut ini.

```
{
    "WindowSchedule": [
        {
            "ScheduledWindowExecutions": [
                {
                    "ExecutionTime": "2019-10-04T10:10:10Z",
                    "Name": "My-First-Maintenance-Window",
                    "WindowId": "mw-0c50858d01EXAMPLE"
                },
                {
                    "ExecutionTime": "2019-10-11T10:10:10Z",
                    "Name": "My-First-Maintenance-Window",
                    "WindowId": "mw-0c50858d01EXAMPLE"
                },
                {
                    "ExecutionTime": "2019-10-18T10:10:10Z",
                    "Name": "My-First-Maintenance-Window",
                    "WindowId": "mw-0c50858d01EXAMPLE"
                },
                {
                    "ExecutionTime": "2019-10-25T10:10:10Z",
                    "Name": "My-First-Maintenance-Window",
                    "WindowId": "mw-0c50858d01EXAMPLE"
                }
            ]
        }
    ]
}
```

# Tutorial: Melihat informasi tentang tugas dan eksekusi tugas menggunakan AWS CLI
<a name="mw-cli-tutorial-task-info"></a>

Tutorial ini menunjukkan bagaimana menggunakan AWS Command Line Interface (AWS CLI) untuk melihat rincian tentang tugas jendela pemeliharaan selesai Anda. 

Jika Anda melanjutkan langsung dari [Tutorial: Membuat dan mengkonfigurasi jendela pemeliharaan menggunakan AWS CLI](maintenance-windows-cli-tutorials-create.md), pastikan Anda telah memungkinkan cukup waktu bagi jendela pemeliharaan Anda untuk dijalankan setidaknya sekali untuk melihat hasil eksekusi.

Saat Anda mengikuti langkah-langkah dalam tutorial ini, ganti nilai dalam *red* teks miring dengan opsi Anda sendiri dan. IDs Misalnya, ganti ID jendela pemeliharaan *mw-0c50858d01EXAMPLE* dan ID instance *i-02573cafcfEXAMPLE* dengan sumber daya IDs yang Anda buat.

**Untuk melihat informasi tentang tugas dan eksekusi tugas menggunakan AWS CLI**

1. Jalankan perintah berikut untuk melihat daftar eksekusi tugas untuk jendela pemeliharaan tertentu.

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-maintenance-window-executions \
       --window-id "mw-0c50858d01EXAMPLE"
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-maintenance-window-executions ^
       --window-id "mw-0c50858d01EXAMPLE"
   ```

------

   Sistem mengembalikan informasi seperti berikut ini.

   ```
   {
       "WindowExecutions": [
           {
               "WindowId": "mw-0c50858d01EXAMPLE",
               "WindowExecutionId": "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE",
               "Status": "SUCCESS",
               "StartTime": 1557593793.483,
               "EndTime": 1557593798.978
           },
           {
               "WindowId": "mw-0c50858d01EXAMPLE",
               "WindowExecutionId": "791b72e0-f0da-4021-8b35-f95dfEXAMPLE",
               "Status": "SUCCESS",
               "StartTime": 1557593493.096,
               "EndTime": 1557593498.611
           },
           {
               "WindowId": "mw-0c50858d01EXAMPLE",
               "WindowExecutionId": "ecec60fa-6bb0-4d26-98c7-140308EXAMPLE",
               "Status": "SUCCESS",
               "StatusDetails": "No tasks to execute.",
               "StartTime": 1557593193.309,
               "EndTime": 1557593193.334
           }
       ]
   }
   ```

1. Jalankan perintah berikut untuk mendapatkan informasi tentang eksekusi tugas jendela pemeliharaan.

------
#### [ Linux & macOS ]

   ```
   aws ssm get-maintenance-window-execution \
       --window-execution-id "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE"
   ```

------
#### [ Windows ]

   ```
   aws ssm get-maintenance-window-execution ^
       --window-execution-id "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE"
   ```

------

   Sistem mengembalikan informasi seperti berikut ini.

   ```
   {
       "WindowExecutionId": "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE",
       "TaskIds": [
           "c9b05aba-197f-4d8d-be34-e73fbEXAMPLE"
       ],
       "Status": "SUCCESS",
       "StartTime": 1557593493.096,
       "EndTime": 1557593498.611
   }
   ```

1. Jalankan perintah berikut untuk mencantumkan tugas yang dijalankan sebagai bagian dari eksekusi jendela pemeliharaan.

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-maintenance-window-execution-tasks \
       --window-execution-id "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE"
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-maintenance-window-execution-tasks ^
       --window-execution-id "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE"
   ```

------

   Sistem mengembalikan informasi seperti berikut ini.

   ```
   {
       "WindowExecutionTaskIdentities": [
           {
               "WindowExecutionId": "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE",
               "TaskExecutionId": "c9b05aba-197f-4d8d-be34-e73fbEXAMPLE",
               "Status": "SUCCESS",
               "StartTime": 1557593493.162,
               "EndTime": 1557593498.57,
               "TaskArn": "AWS-RunShellScript",
               "TaskType": "RUN_COMMAND"
           }
       ]
   }
   ```

1. Jalankan perintah berikut untuk mendapatkan detail dari eksekusi tugas.

------
#### [ Linux & macOS ]

   ```
   aws ssm get-maintenance-window-execution-task \
       --window-execution-id "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE" \
       --task-id "c9b05aba-197f-4d8d-be34-e73fbEXAMPLE"
   ```

------
#### [ Windows ]

   ```
   aws ssm get-maintenance-window-execution-task ^
       --window-execution-id "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE" ^
       --task-id "c9b05aba-197f-4d8d-be34-e73fbEXAMPLE"
   ```

------

   Sistem mengembalikan informasi seperti berikut ini.

   ```
   {
       "WindowExecutionId": "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE",
       "TaskExecutionId": "c9b05aba-197f-4d8d-be34-e73fbEXAMPLE",
       "TaskArn": "AWS-RunShellScript",
       "ServiceRole": "arn:aws:iam::111122223333:role/MyMaintenanceWindowServiceRole",
       "Type": "RUN_COMMAND",
       "TaskParameters": [
           {
               "aws:InstanceId": {
                   "Values": [
                       "i-02573cafcfEXAMPLE"
                   ]
               },
               "commands": {
                   "Values": [
                       "df"
                   ]
               }
           }
       ],
       "Priority": 10,
       "MaxConcurrency": "1",
       "MaxErrors": "1",
       "Status": "SUCCESS",
       "StartTime": 1557593493.162,
       "EndTime": 1557593498.57
   }
   ```

1. Jalankan perintah berikut untuk mendapatkan permintaan tugas tertentu yang dilakukan untuk eksekusi tugas.

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-maintenance-window-execution-task-invocations \
       --window-execution-id "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE" \
       --task-id "c9b05aba-197f-4d8d-be34-e73fbEXAMPLE"
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-maintenance-window-execution-task-invocations ^
       --window-execution-id "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE" ^
       --task-id "c9b05aba-197f-4d8d-be34-e73fbEXAMPLE"
   ```

------

   Sistem mengembalikan informasi seperti berikut ini.

   ```
   {
       "WindowExecutionTaskInvocationIdentities": [
           {
               "WindowExecutionId": "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE",
               "TaskExecutionId": "c9b05aba-197f-4d8d-be34-e73fbEXAMPLE",
               "InvocationId": "c336d2ab-09de-44ba-8f6a-6136cEXAMPLE",
               "ExecutionId": "76a5a04f-caf6-490c-b448-92c02EXAMPLE",
               "TaskType": "RUN_COMMAND",
               "Parameters": "{\"documentName\":\"AWS-RunShellScript\",\"instanceIds\":[\"i-02573cafcfEXAMPLE\"],\"maxConcurrency\":\"1\",\"maxErrors\":\"1\",\"parameters\":{\"commands\":[\"df\"]}}",
               "Status": "SUCCESS",
               "StatusDetails": "Success",
               "StartTime": 1557593493.222,
               "EndTime": 1557593498.466
           }
       ]
   }
   ```

# Tutorial: Perbarui jendela pemeliharaan menggunakan AWS CLI
<a name="maintenance-windows-cli-tutorials-update"></a>

Tutorial ini menunjukkan bagaimana menggunakan AWS Command Line Interface (AWS CLI) untuk memperbarui jendela pemeliharaan. Ini juga menunjukkan kepada Anda cara memperbarui jenis tugas yang berbeda, termasuk untuk AWS Systems Manager Run Command dan Otomasi, AWS Lambda, dan AWS Step Functions. 

Contoh di bagian ini menggunakan tindakan Systems Manager berikut untuk memperbarui jendela pemeliharaan:
+ [UpdateMaintenanceWindow](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_UpdateMaintenanceWindow.html)
+ [UpdateMaintenanceWindowTarget](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_UpdateMaintenanceWindowTarget.html)
+ [UpdateMaintenanceWindowTask](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_UpdateMaintenanceWindowTask.html)
+ [DeregisterTargetFromMaintenanceWindow](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DeregisterTargetFromMaintenanceWindow.html)

Untuk informasi tentang penggunaan konsol Systems Manager untuk memperbarui jendela pemeliharaan, lihat [Perbarui atau hapus sumber daya jendela pemeliharaan menggunakan konsol](sysman-maintenance-update.md). 

Saat Anda mengikuti langkah-langkah dalam tutorial ini, ganti nilai dalam *red* teks miring dengan opsi Anda sendiri dan. IDs Misalnya, ganti ID jendela pemeliharaan *mw-0c50858d01EXAMPLE* dan ID instance *i-02573cafcfEXAMPLE* dengan sumber daya IDs yang Anda buat.

**Untuk memperbarui jendela pemeliharaan menggunakan AWS CLI**

1. Buka AWS CLI dan jalankan perintah berikut untuk memperbarui target untuk menyertakan nama dan deskripsi.

------
#### [ Linux & macOS ]

   ```
   aws ssm update-maintenance-window-target \
       --window-id "mw-0c50858d01EXAMPLE" \
       --window-target-id "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" \
       --name "My-Maintenance-Window-Target" \
       --description "Description for my maintenance window target"
   ```

------
#### [ Windows ]

   ```
   aws ssm update-maintenance-window-target ^
       --window-id "mw-0c50858d01EXAMPLE" ^
       --window-target-id "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ^
       --name "My-Maintenance-Window-Target" ^
       --description "Description for my maintenance window target"
   ```

------

   Sistem mengembalikan informasi seperti berikut ini.

   ```
   {
       "WindowId": "mw-0c50858d01EXAMPLE",
       "WindowTargetId": "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE",
       "Targets": [
           {
               "Key": "InstanceIds",
               "Values": [
                   "i-02573cafcfEXAMPLE"
               ]
           }
       ],
       "Name": "My-Maintenance-Window-Target",
       "Description": "Description for my maintenance window target"
   }
   ```

1. Jalankan perintah berikut untuk menggunakan pilihan `replace`untuk menghapus bidang deskripsi dan menambahkan target tambahan. Bidang deskripsi dihapus, karena pembaruan tidak mencakup bidang (nilai null). Pastikan untuk menentukan node tambahan yang telah dikonfigurasi untuk digunakan dengan Systems Manager.

------
#### [ Linux & macOS ]

   ```
   aws ssm update-maintenance-window-target \
       --window-id "mw-0c50858d01EXAMPLE" \
       --window-target-id "d208dedf-3f6b-41ff-ace8-8e751EXAMPLE" \
       --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE,i-0471e04240EXAMPLE" \
       --name "My-Maintenance-Window-Target" \
       --replace
   ```

------
#### [ Windows ]

   ```
   aws ssm update-maintenance-window-target ^
       --window-id "mw-0c50858d01EXAMPLE" ^
       --window-target-id "d208dedf-3f6b-41ff-ace8-8e751EXAMPLE" ^
       --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE,i-0471e04240EXAMPLE" ^
       --name "My-Maintenance-Window-Target" ^
       --replace
   ```

------

   Sistem mengembalikan informasi seperti berikut ini.

   ```
   {
       "WindowId": "mw-0c50858d01EXAMPLE",
       "WindowTargetId": "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE",
       "Targets": [
           {
               "Key": "InstanceIds",
               "Values": [
                   "i-02573cafcfEXAMPLE",
                   "i-0471e04240EXAMPLE"
               ]
           }
       ],
       "Name": "My-Maintenance-Window-Target"
   }
   ```

1. Pilihan `start-date` memungkinkan Anda untuk menunda aktivasi jendela pemeliharaan hingga tanggal yang ditentukan di masa depan. Pilihan `end-date` memungkinkan Anda untuk mengatur tanggal dan waktu di masa depan setelah jendela pemeliharaan tidak lagi berjalan. Tentukan pilihan dalam format ISO-8601 Extended.

   Jalankan perintah berikut untuk menentukan tanggal dan rentang waktu untuk eksekusi jendela pemeliharaan terjadwal secara reguler.

------
#### [ Linux & macOS ]

   ```
   aws ssm update-maintenance-window \
       --window-id "mw-0c50858d01EXAMPLE" \
       --start-date "2020-10-01T10:10:10Z" \
       --end-date "2020-11-01T10:10:10Z"
   ```

------
#### [ Windows ]

   ```
   aws ssm update-maintenance-window ^
       --window-id "mw-0c50858d01EXAMPLE" ^
       --start-date "2020-10-01T10:10:10Z" ^
       --end-date "2020-11-01T10:10:10Z"
   ```

------

1. Jalankan perintah berikut untuk memperbarui Run Command tugas.
**Tip**  
Jika target Anda adalah instans Amazon Elastic Compute Cloud (Amazon EC2) untuk Windows Server, ubah `df` ke `ipconfig`, dan `AWS-RunShellScript` ke `AWS-RunPowerShellScript` di perintah berikut ini.

------
#### [ Linux & macOS ]

   ```
   aws ssm update-maintenance-window-task \
       --window-id "mw-0c50858d01EXAMPLE" \
       --window-task-id "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE" \
       --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" \
       --task-arn "AWS-RunShellScript" \
       --service-role-arn "arn:aws:iam::account-id:role/MaintenanceWindowsRole" \
       --task-invocation-parameters "RunCommand={Comment=Revising my Run Command task,Parameters={commands=df}}" \
       --priority 1 --max-concurrency 10 --max-errors 4 \
       --name "My-Task-Name" --description "A description for my Run Command task"
   ```

------
#### [ Windows ]

   ```
   aws ssm update-maintenance-window-task ^
       --window-id "mw-0c50858d01EXAMPLE" ^
       --window-task-id "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE" ^
       --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ^
       --task-arn "AWS-RunShellScript" ^
       --service-role-arn "arn:aws:iam::account-id:role/MaintenanceWindowsRole" ^
       --task-invocation-parameters "RunCommand={Comment=Revising my Run Command task,Parameters={commands=df}}" ^
       --priority 1 --max-concurrency 10 --max-errors 4 ^
       --name "My-Task-Name" --description "A description for my Run Command task"
   ```

------

   Sistem mengembalikan informasi seperti berikut ini.

   ```
   {
       "WindowId": "mw-0c50858d01EXAMPLE",
       "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
       "Targets": [
           {
               "Key": "WindowTargetIds",
               "Values": [
                   "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
               ]
           }
       ],
       "TaskArn": "AWS-RunShellScript",
       "ServiceRoleArn": "arn:aws:iam::111122223333:role/MaintenanceWindowsRole",
       "TaskParameters": {},
       "TaskInvocationParameters": {
           "RunCommand": {
               "Comment": "Revising my Run Command task",
               "Parameters": {
                   "commands": [
                       "df"
                   ]
               }
           }
       },
       "Priority": 1,
       "MaxConcurrency": "10",
       "MaxErrors": "4",
       "Name": "My-Task-Name",
       "Description": "A description for my Run Command task"
   }
   ```

1. Adaptasi dan jalankan perintah berikut untuk memperbarui tugas Lambda.

------
#### [ Linux & macOS ]

   ```
   aws ssm update-maintenance-window-task \
       --window-id mw-0c50858d01EXAMPLE \
       --window-task-id 4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE \
       --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" \
       --task-arn "arn:aws:lambda:region:111122223333:function:SSMTestLambda" \
       --service-role-arn "arn:aws:iam:account-id:role/MaintenanceWindowsRole" \
       --task-invocation-parameters '{"Lambda":{"Payload":"{\"InstanceId\":\"{{RESOURCE_ID}}\",\"targetType\":\"{{TARGET_TYPE}}\"}"}}' \
       --priority 1 --max-concurrency 10 --max-errors 5 \
       --name "New-Lambda-Task-Name" \
       --description "A description for my Lambda task"
   ```

------
#### [ Windows ]

   ```
   aws ssm update-maintenance-window-task ^
       --window-id mw-0c50858d01EXAMPLE ^
       --window-task-id 4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE ^
       --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ^
       --task-arn --task-arn "arn:aws:lambda:region:111122223333:function:SSMTestLambda" ^
       --service-role-arn "arn:aws:iam:account-id:role/MaintenanceWindowsRole" ^
       --task-invocation-parameters '{"Lambda":{"Payload":"{\"InstanceId\":\"{{RESOURCE_ID}}\",\"targetType\":\"{{TARGET_TYPE}}\"}"}}' ^
       --priority 1 --max-concurrency 10 --max-errors 5 ^
       --name "New-Lambda-Task-Name" ^
       --description "A description for my Lambda task"
   ```

------

   Sistem mengembalikan informasi seperti berikut ini.

   ```
   {
       "WindowId": "mw-0c50858d01EXAMPLE",
       "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
       "Targets": [
           {
               "Key": "WindowTargetIds",
               "Values": "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
           }
       ],
       "TaskArn": "arn:aws:lambda:us-east-2:111122223333:function:SSMTestLambda",
       "ServiceRoleArn": "arn:aws:iam::111122223333:role/MaintenanceWindowsRole",
       "TaskParameters": {},
       "TaskInvocationParameters": {
           "Lambda": {
               "Payload": "e30="
           }
       },
       "Priority": 1,
       "MaxConcurrency": "10",
       "MaxErrors": "5",
       "Name": "New-Lambda-Task-Name",
       "Description": "A description for my Lambda task"
   }
   ```

1. Jika Anda memperbarui tugas Step Functions, sesuaikan dan jalankan perintah berikut untuk memperbaruinya task-invocation-parameters.

------
#### [ Linux & macOS ]

   ```
   aws ssm update-maintenance-window-task \
       --window-id "mw-0c50858d01EXAMPLE" \
       --window-task-id "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE" \
       --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" \
       --task-arn "arn:aws:states:region:execution:SSMStepFunctionTest" \
       --service-role-arn "arn:aws:iam:account-id:role/MaintenanceWindowsRole" \
       --task-invocation-parameters '{"StepFunctions":{"Input":"{\"InstanceId\":\"{{RESOURCE_ID}}\"}"}}' \
       --priority 0 --max-concurrency 10 --max-errors 5 \
       --name "My-Step-Functions-Task" \
       --description "A description for my Step Functions task"
   ```

------
#### [ Windows ]

   ```
   aws ssm update-maintenance-window-task ^
       --window-id "mw-0c50858d01EXAMPLE" ^
       --window-task-id "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE" ^
       --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ^
       --task-arn "arn:aws:states:region:execution:SSMStepFunctionTest" ^
       --service-role-arn "arn:aws:iam:account-id:role/MaintenanceWindowsRole" ^
       --task-invocation-parameters '{"StepFunctions":{"Input":"{\"InstanceId\":\"{{RESOURCE_ID}}\"}"}}' ^
       --priority 0 --max-concurrency 10 --max-errors 5 ^
       --name "My-Step-Functions-Task" ^
       --description "A description for my Step Functions task"
   ```

------

   Sistem mengembalikan informasi seperti berikut ini.

   ```
   {
       "WindowId": "mw-0c50858d01EXAMPLE",
       "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
       "Targets": [
           {
               "Key": "WindowTargetIds",
               "Values": [
                   "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
               ]
           }
       ],
       "TaskArn": "arn:aws:states:us-east-2:111122223333:execution:SSMStepFunctionTest",
       "ServiceRoleArn": "arn:aws:iam::111122223333:role/MaintenanceWindowsRole",
       "TaskParameters": {},
       "TaskInvocationParameters": {
           "StepFunctions": {
               "Input": "{\"instanceId\":\"{{RESOURCE_ID}}\"}"
           }
       },
       "Priority": 0,
       "MaxConcurrency": "10",
       "MaxErrors": "5",
       "Name": "My-Step-Functions-Task",
       "Description": "A description for my Step Functions task"
   }
   ```

1. Jalankan perintah berikut untuk membatalkan pendaftaran target dari jendela pemeliharaan. Contoh ini menggunakan parameter `safe` untuk menentukan apakah target direferensikan oleh tugas dan karenanya aman untuk dibatalkan pendaftarannya.

------
#### [ Linux & macOS ]

   ```
   aws ssm deregister-target-from-maintenance-window \
       --window-id "mw-0c50858d01EXAMPLE" \
       --window-target-id "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" \
       --safe
   ```

------
#### [ Windows ]

   ```
   aws ssm deregister-target-from-maintenance-window ^
       --window-id "mw-0c50858d01EXAMPLE" ^
       --window-target-id "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ^
       --safe
   ```

------

   Sistem mengembalikan informasi seperti berikut ini.

   ```
   An error occurred (TargetInUseException) when calling the DeregisterTargetFromMaintenanceWindow operation: 
   This Target cannot be deregistered because it is still referenced in Task: 4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE
   ```

1. Jalankan perintah berikut untuk membatalkan pendaftaran target dari jendela pemeliharaan meski target direferensikan oleh tugas. Anda dapat memaksakan operasi pembatalan pendaftaran dengan menggunakan parameter `no-safe`.

------
#### [ Linux & macOS ]

   ```
   aws ssm deregister-target-from-maintenance-window \
       --window-id "mw-0c50858d01EXAMPLE" \
       --window-target-id "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" \
       --no-safe
   ```

------
#### [ Windows ]

   ```
   aws ssm deregister-target-from-maintenance-window ^
       --window-id "mw-0c50858d01EXAMPLE" ^
       --window-target-id "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ^
       --no-safe
   ```

------

   Sistem mengembalikan informasi seperti berikut ini.

   ```
   {
       "WindowId": "mw-0c50858d01EXAMPLE",
       "WindowTargetId": "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
   }
   ```

1. Jalankan perintah berikut untuk memperbarui Run Command tugas. Contoh ini menggunakan Parameter Store parameter Systems Manager yang disebut`UpdateLevel`, yang diformat sebagai berikut: '' `{{ssm:UpdateLevel}}`

------
#### [ Linux & macOS ]

   ```
   aws ssm update-maintenance-window-task \
       --window-id "mw-0c50858d01EXAMPLE" \
       --window-task-id "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE" \
       --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE"  \
       --task-invocation-parameters "RunCommand={Comment=A comment for my task update,Parameters={UpdateLevel='{{ssm:UpdateLevel}}'}}"
   ```

------
#### [ Windows ]

   ```
   aws ssm update-maintenance-window-task ^
       --window-id "mw-0c50858d01EXAMPLE" ^
       --window-task-id "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE" ^
       --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE"  ^
       --task-invocation-parameters "RunCommand={Comment=A comment for my task update,Parameters={UpdateLevel='{{ssm:UpdateLevel}}'}}"
   ```

------

   Sistem mengembalikan informasi seperti berikut ini.

   ```
   {
       "WindowId": "mw-0c50858d01EXAMPLE",
       "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
       "Targets": [
           {
               "Key": "InstanceIds",
               "Values": [
                   "i-02573cafcfEXAMPLE"
               ]
           }
       ],
       "TaskArn": "AWS-RunShellScript",
       "ServiceRoleArn": "arn:aws:iam::111122223333:role/MyMaintenanceWindowServiceRole",
       "TaskParameters": {},
       "TaskInvocationParameters": {
           "RunCommand": {
               "Comment": "A comment for my task update",
               "Parameters": {
                   "UpdateLevel": [
                       "{{ssm:UpdateLevel}}"
                   ]
               }
           }
       },
       "Priority": 10,
       "MaxConcurrency": "1",
       "MaxErrors": "1"
   }
   ```

1. Jalankan perintah berikut untuk memperbarui tugas Otomatisasi untuk menentukan parameter `WINDOW_ID` dan `WINDOW_TASK_ID` untuk parameter `task-invocation-parameters`:

------
#### [ Linux & macOS ]

   ```
   aws ssm update-maintenance-window-task \
       --window-id "mw-0c50858d01EXAMPLE" \
       --window-task-id "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE" \
       --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE \
       --task-arn "AutoTestDoc" \
       --service-role-arn "arn:aws:iam:account-id:role/MyMaintenanceWindowServiceRole \
       --task-invocation-parameters "Automation={Parameters={InstanceId='{{RESOURCE_ID}}',initiator='{{WINDOW_ID}}.Task-{{WINDOW_TASK_ID}}'}}" \
       --priority 3 --max-concurrency 10 --max-errors 5
   ```

------
#### [ Windows ]

   ```
   aws ssm update-maintenance-window-task ^
       --window-id "mw-0c50858d01EXAMPLE" ^
       --window-task-id "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE" ^
       --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE ^
       --task-arn "AutoTestDoc" ^
       --service-role-arn "arn:aws:iam:account-id:role/MyMaintenanceWindowServiceRole ^
       --task-invocation-parameters "Automation={Parameters={InstanceId='{{RESOURCE_ID}}',initiator='{{WINDOW_ID}}.Task-{{WINDOW_TASK_ID}}'}}" ^
       --priority 3 --max-concurrency 10 --max-errors 5
   ```

------

   Sistem mengembalikan informasi seperti berikut ini.

   ```
   {
       "WindowId": "mw-0c50858d01EXAMPLE",
       "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
       "Targets": [
           {
               "Key": "WindowTargetIds",
               "Values": [
                   "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
               ]
           }
       ],
       "TaskArn": "AutoTestDoc",
       "ServiceRoleArn": "arn:aws:iam::111122223333:role/MyMaintenanceWindowServiceRole",
       "TaskParameters": {},
       "TaskInvocationParameters": {
           "Automation": {
               "Parameters": {
                   "multi": [
                       "{{WINDOW_TASK_ID}}"
                   ],
                   "single": [
                       "{{WINDOW_ID}}"
                   ]
               }
           }
       },
       "Priority": 0,
       "MaxConcurrency": "10",
       "MaxErrors": "5",
       "Name": "My-Automation-Task",
       "Description": "A description for my Automation task"
   }
   ```

# Tutorial: Hapus jendela pemeliharaan menggunakan AWS CLI
<a name="mw-cli-tutorial-delete-mw"></a>

Untuk menghapus jendela pemeliharaan yang Anda buat di tutorial ini, jalankan perintah berikut.

```
aws ssm delete-maintenance-window --window-id "mw-0c50858d01EXAMPLE"
```

Sistem mengembalikan informasi seperti berikut ini.

```
{
   "WindowId":"mw-0c50858d01EXAMPLE"
}
```

# Tutorial: Buat jendela pemeliharaan untuk menambal menggunakan konsol
<a name="maintenance-window-tutorial-patching"></a>

**penting**  
Anda dapat terus menggunakan topik warisan ini untuk membuat jendela pemeliharaan untuk patching. Namun, kami menyarankan Anda menggunakan kebijakan tambalan sebagai gantinya. Untuk informasi selengkapnya, lihat [Konfigurasi kebijakan tambalan di Quick Setup](patch-manager-policies.md) dan [Mengonfigurasi penambalan untuk instance di organisasi menggunakan kebijakan tambalan Quick Setup](quick-setup-patch-manager.md). 

Untuk meminimalkan dampak pada ketersediaan server Anda, kami merekomendasikan Anda mengkonfigurasi jendela pemeliharaan untuk menjalankan patching pada waktu yang tidak akan mengganggu operasi bisnis Anda.

Anda harus mengonfigurasi peran dan izin untukMaintenance Windows, alat di AWS Systems Manager, sebelum memulai prosedur ini. Untuk informasi selengkapnya, lihat [Menyiapkan Maintenance Windows](setting-up-maintenance-windows.md). 

**Untuk membuat jendela pemeliharaan untuk patching**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Maintenance Windows**.

1. Pilih **Buat jendela pemeliharaan**.

1. Untuk **Nama**, masukkan nama yang menunjuk ini sebagai jendela pemeliharaan untuk melakukan patching pada pembaruan kritis dan penting.

1. (Opsional) Untuk **Deskripsi**, masukkan deskripsi. 

1. Pilih **Izinkan target yang tidak terdaftar** jika Anda ingin mengizinkan tugas jendela pemeliharaan berjalan pada node terkelola, bahkan jika Anda belum mendaftarkan node tersebut sebagai target.

   Jika Anda memilih opsi ini, maka Anda dapat memilih node yang tidak terdaftar (dengan ID node) saat Anda mendaftarkan tugas dengan jendela pemeliharaan.

   Jika Anda tidak memilih pilihan ini, maka Anda harus memilih target yang terdaftar sebelumnya saat mendaftarkan tugas dengan jendela pemeliharaan. 

1. Di bagian atas bagian **Jadwal**, tentukan jadwal untuk jendela pemeliharaan dengan menggunakan salah satu dari tiga opsi penjadwalan.

   Untuk informasi tentang membangun cron/rate ekspresi, lihat[Referensi: Ekspresi cron dan rate untuk Systems Manager](reference-cron-and-rate-expressions.md).

1. Untuk **Durasi**, masukkan jumlah jam yang akan dijalankan oleh jendela pemeliharaan. Nilai yang Anda tentukan menentukan waktu selesai tertentu untuk jendela pemeliharaan berdasarkan waktu dimulainya. Tidak ada tugas jendela pemeliharaan yang diizinkan untuk memulai setelah waktu selesai dikurangi jumlah jam yang Anda tentukan untuk **Berhenti memulai tugas** di langkah berikutnya. 

   Sebagai contoh, jika jendela pemeliharaan dimulai pada pukul 3 sore, durasinya tiga jam, dan nilai **Berhenti memulai tugas** adalah satu jam, tidak ada tugas jendela pemeliharaan yang dapat memulai setelah pukul 5 sore. 

1. Untuk **Berhenti memulai tugas**, masukkan jumlah jam sebelum akhir jendela pemeliharaan dimana sistem harus berhenti menjadwalkan tugas baru untuk dijalankan. 

1. (Opsional) Untuk **tanggal mulai Window**, tentukan tanggal dan waktu, dalam format ISO-8601 Extended, untuk saat Anda ingin jendela pemeliharaan menjadi aktif. Ini memungkinkan Anda menunda aktivasi jendela pemeliharaan hingga tanggal yang ditentukan di masa depan.

1. (Opsional) Untuk **tanggal akhir Window**, tentukan tanggal dan waktu, dalam format ISO-8601 Extended, untuk saat Anda ingin jendela pemeliharaan menjadi tidak aktif. Hal ini memungkinkan Anda untuk mengatur tanggal dan waktu di masa depan setelah jendela pemeliharaan tidak lagi berjalan.

1. (Opsional) Untuk **zona waktu Jadwal, tentukan zona** waktu yang menjadi dasar eksekusi jendela pemeliharaan terjadwal, dalam format Internet Assigned Numbers Authority (IANA). Misalnya: "America/Los\$1Angeles", "etc/UTC", or "Asia/Seoul”.

   Untuk informasi lebih lanjut tentang format yang valid, lihat [Basis Data Zona Waktu](https://www.iana.org/time-zones) di situs web IANA.

1. (Opsional) Di area **Kelola tag**, terapkan satu atau beberapa name/value pasangan kunci tag ke jendela pemeliharaan.

   Tanda adalah metadata opsional yang Anda tetapkan ke sumber daya. Tag memungkinkan Anda untuk mengkategorikan sumber daya dengan berbagai cara, seperti berdasarkan tujuan, pemilik, atau lingkungan. Misalnya, Anda mungkin ingin menandai jendela pemeliharaan ini untuk mengidentifikasi jenis tugas yang dijalankannya. Dalam hal ini, Anda dapat menentukan name/value pasangan kunci berikut:
   + `Key=TaskType,Value=Patching`

1. Pilih **Buat jendela pemeliharaan**.

1. Dalam daftar jendela pemeliharaan, pilih jendela pemeliharaan yang baru saja Anda buat, lalu pilih **Tindakan**, **Daftarkan target**.

1. (Opsional) Di bagian **Detail target jendela pemeliharaan**, berikan nama, deskripsi, dan informasi pemilik (nama atau alias Anda) untuk target ini.

1. Untuk **pemilihan Target**, pilih **Tentukan tag instance**.

1. Untuk **Tentukan tag instance**, masukkan kunci tag dan nilai tag untuk mengidentifikasi node yang akan didaftarkan dengan jendela pemeliharaan, lalu pilih **Tambah**.

1. Pilih **Daftarkan target**. Sistem ini membuat target jendela pemeliharaan.

1. Di halaman detail jendela pemeliharaan yang Anda buat, pilih **Tindakan**, **Daftarkan tugas Run Command**.

1. (Opsional) Untuk **Detail tugas jendela pemeliharaan**, berikan nama dan deskripsi untuk tugas ini.

1. Untuk **Dokumen perintah**, pilih `AWS-RunPatchBaseline`.

1. Untuk **Prioritas tugas**, pilih prioritas. Nol (`0`) adalah prioritas tertinggi.

1. Untuk **Target**, di bawah **Target berdasarkan**, pilih target jendela pemeliharaan yang Anda buat sebelumnya dalam prosedur ini.

1. Untuk **Pengendalian rate**:
   + Untuk **Konkurensi**, tentukan jumlah atau persentase dari simpul terkelola untuk menjalankan perintah pada saat yang sama.
**catatan**  
Jika Anda memilih target dengan menentukan tag yang diterapkan pada node terkelola atau dengan menentukan grup AWS sumber daya, dan Anda tidak yakin berapa banyak node terkelola yang ditargetkan, maka batasi jumlah target yang dapat menjalankan dokumen pada saat yang sama dengan menentukan persentase.
   + Untuk **Ambang kesalahan**, tentukan kapan harus berhenti menjalankan perintah pada simpul terkelola lain setelah gagal pada jumlah atau persentase simpul. Misalnya, jika Anda menentukan tiga kesalahan, Systems Manager berhenti mengirim perintah ketika kesalahan keempat diterima. Node terkelola yang masih memproses perintah mungkin juga mengirim kesalahan.

1. (Opsional) Untuk **peran layanan IAM**, pilih peran untuk memberikan izin bagi Systems Manager untuk mengasumsikan saat menjalankan tugas jendela pemeliharaan.

   Jika Anda tidak menentukan ARN peran layanan, Systems Manager menggunakan peran terkait layanan di akun Anda. Jika tidak ada peran terkait layanan yang sesuai untuk Systems Manager di akun Anda, peran tersebut dibuat saat tugas berhasil didaftarkan.
**catatan**  
Untuk meningkatkan postur keamanan, kami sangat menyarankan untuk membuat kebijakan khusus dan peran layanan khusus untuk menjalankan tugas jendela pemeliharaan Anda. Kebijakan ini dapat dibuat untuk hanya memberikan izin yang diperlukan untuk tugas jendela pemeliharaan khusus Anda. Untuk informasi selengkapnya, lihat [Menyiapkan Maintenance Windows](setting-up-maintenance-windows.md).

1. (Opsional) Untuk **Opsi output**, untuk menyimpan output perintah ke file, pilih kotak **Aktifkan output penulisan ke S3**. Masukkan nama bucket dan prefiks (folder) di dalam kotak.
**catatan**  
Izin S3 yang memberikan kemampuan untuk menulis data ke bucket S3 adalah izin dari profil instance yang ditetapkan ke node terkelola, bukan izin pengguna IAM yang melakukan tugas ini. Untuk informasi selengkapnya, lihat [Mengonfigurasi izin instans yang diperlukan untuk Systems Manager](setup-instance-permissions.md) atau [Membuat peran layanan IAM untuk lingkungan hibrid](hybrid-multicloud-service-role.md). Selain itu, jika bucket S3 yang ditentukan berbeda Akun AWS, verifikasi bahwa profil instance atau peran layanan IAM yang terkait dengan node terkelola memiliki izin yang diperlukan untuk menulis ke bucket tersebut.

   Untuk mengalirkan output ke grup CloudWatch log Amazon Logs, pilih kotak **CloudWatch output**. Masukkan nama grup log di kotak.

1. Di bagian **Notifikasi SNS**, jika Anda menginginkan notifikasi tentang status eksekusi perintah dikirimkan, pilih kotak centang **Mengaktifkan notifikasi SNS**.

   Untuk informasi selengkapnya tentang mengonfigurasi notifikasi Run Command Amazon SNS, lihat. [Pemantauan perubahan status Systems Manager menggunakan notifikasi Amazon SNS](monitoring-sns-notifications.md)

1. Untuk **Parameter**:
   + Untuk **Operasi**, pilih **Pindai** untuk memindai patch yang hilang, atau pilih **Instal** untuk memindai dan menginstal patch yang hilang.
   + Anda tidak perlu memasukkan apa pun di bidang **Snapshot Id**. Sistem ini secara otomatis membuat dan menyediakan parameter ini.
   + Anda tidak perlu memasukkan apa pun di bidang **Install Override List** kecuali Anda Patch Manager ingin menggunakan kumpulan tambalan yang berbeda dari yang ditentukan untuk baseline patch. Untuk informasi, lihat [Nama parameter: `InstallOverrideList`](patch-manager-aws-runpatchbaseline.md#patch-manager-aws-runpatchbaseline-parameters-installoverridelist).
   + Untuk **RebootOption**, tentukan apakah Anda ingin node reboot jika tambalan diinstal selama `Install` operasi, atau jika Patch Manager mendeteksi tambalan lain yang diinstal sejak reboot node terakhir. Untuk informasi, lihat [Nama parameter: `RebootOption`](patch-manager-aws-runpatchbaseline.md#patch-manager-aws-runpatchbaseline-parameters-norebootoption).
   + (Opsional) Untuk **Komentar**, masukkan catatan pelacakan atau pengingat tentang perintah ini.
   + Untuk **Batas waktu (detik)**, masukkan jumlah detik sistem harus menunggu operasi selesai sebelum dianggap tidak berhasil.

1. Pilih **Register Run command task**.

Setelah tugas jendela pemeliharaan selesai, Anda dapat melihat detail kepatuhan tambalan di konsol Systems Manager di [Fleet Manager](fleet-manager.md)alat. 

Anda juga dapat melihat informasi kepatuhan di [Patch Manager](patch-manager.md)alat, di tab **Pelaporan kepatuhan**. 

Anda juga dapat menggunakan [DescribePatchGroupState](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchGroupState.html)dan [DescribeInstancePatchStatesForPatchGroup](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribeInstancePatchStatesForPatchGroup.html) APIs untuk melihat detail kepatuhan. Untuk informasi tentang data kepatuhan patch, lihat [Tentang kepatuhan patch](compliance-about.md#compliance-monitor-patch).

# Jadwal penambalan menggunakan jendela pemeliharaan
<a name="sysman-patch-scheduletasks"></a>

Setelah Anda mengkonfigurasi baseline patch (dan opsional grup patch), Anda dapat menerapkan patch ke node Anda dengan menggunakan jendela pemeliharaan. Jendela pemeliharaan dapat mengurangi dampak pada ketersediaan server dengan membiarkan Anda menentukan waktu untuk melakukan proses patching yang tidak mengganggu operasi bisnis. Jendela pemeliharaan bekerja seperti ini:

1. Buat jendela pemeliharaan dengan sebuah jadwal untuk operasi patching Anda.

1. Pilih target untuk jendela pemeliharaan dengan menentukan `PatchGroup` tag `Patch Group` atau untuk nama tag, dan nilai apa pun yang telah Anda tentukan tag Amazon Elastic Compute Cloud (Amazon EC2), misalnya, “server web” atau “US-EAST-PROD. (Anda harus menggunakan`PatchGroup`, tanpa spasi, jika Anda telah [mengizinkan tag dalam metadata instans EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#allow-access-to-tags-in-IMDS).

1. Buat tugas jendela pemeliharaan baru, dan tentukan dokumen `AWS-RunPatchBaseline`. 

Saat Anda mengonfigurasi tugas, Anda dapat memilih untuk memindai node atau memindai dan menginstal tambalan pada node. Jika Anda memilih untuk memindai node,Patch Manager, alat di AWS Systems Manager, memindai setiap node dan menghasilkan daftar tambalan yang hilang untuk Anda tinjau.

Jika Anda memilih untuk memindai dan menginstal tambalan, Patch Manager memindai setiap node dan membandingkan daftar tambalan yang diinstal dengan daftar tambalan yang disetujui di baseline. Patch Managermengidentifikasi tambalan yang hilang, lalu mengunduh dan menginstal semua tambalan yang hilang dan disetujui.

Jika Anda ingin melakukan pemindaian satu kali atau menginstal untuk memperbaiki masalah, Anda dapat menggunakan Run Command untuk memanggil `AWS-RunPatchBaseline` dokumen secara langsung.

**penting**  
Setelah menginstal patch, Systems Manager me-reboot setiap node. Reboot diperlukan untuk memastikan bahwa tambalan diinstal dengan benar dan untuk memastikan bahwa sistem tidak meninggalkan node dalam keadaan yang berpotensi buruk. (Pengecualian: Jika `RebootOption` parameter disetel ke `NoReboot` dalam `AWS-RunPatchBaseline` dokumen, node terkelola tidak di-boot ulang setelah Patch Manager dijalankan. Untuk informasi lebih lanjut, lihat[Nama parameter: `RebootOption`](patch-manager-aws-runpatchbaseline.md#patch-manager-aws-runpatchbaseline-parameters-norebootoption).) 

# Menggunakan parameter semu saat mendaftarkan tugas jendela pemeliharaan
<a name="maintenance-window-tasks-pseudo-parameters"></a>

Saat Anda mendaftarkan tugas diMaintenance Windows, alat di AWS Systems Manager, Anda menentukan parameter yang unik untuk masing-masing dari empat jenis tugas. (Dalam perintah CLI, ini disediakan menggunakan `--task-invocation-parameters` opsi.)

 Anda juga dapat mereferensikan nilai tertentu menggunakan sintaks *parameter semu*, seperti `{{RESOURCE_ID}}`, `{{TARGET_TYPE}}`, dan `{{WINDOW_TARGET_ID}}`. Ketika tugas jendela pemeliharaan berjalan, ia meneruskan nilai yang benar dan bukan placeholder parameter semu. Daftar lengkap parameter semu yang dapat Anda gunakan disediakan nanti dalam topik ini di[Parameter semu yang didukung](#pseudo-parameters).

**penting**  
Untuk jenis target `RESOURCE_GROUP`, tergantung dari format ID yang diperlukan untuk tugas, Anda dapat memilih antara penggunaan `{{TARGET_ID}}` dan `{{RESOURCE_ID}}`untuk mereferensikan sumber daya saat tugas berjalan. `{{TARGET_ID}}`menampilkan ARN lengkap dari sumber daya. `{{RESOURCE_ID}}` menampilkan hanya nama atau ID dari sumber daya yang lebih singkat, seperti yang ditunjukkan dalam contoh ini.  
Format `{{TARGET_ID}}`: `arn:aws:ec2:us-east-1:123456789012:instance/i-02573cafcfEXAMPLE`
Format `{{RESOURCE_ID}}`: `i-02573cafcfEXAMPLE`
Untuk jenis target `INSTANCE`, baik parameter `{{TARGET_ID}}` maupun `{{RESOURCE_ID}}` menghasilkan ID instans saja. Untuk informasi selengkapnya, lihat [Parameter semu yang didukung](#pseudo-parameters).  
`{{TARGET_ID}}`dan `{{RESOURCE_ID}}` dapat digunakan untuk meneruskan IDs AWS sumber daya hanya ke tugas Otomasi, Lambda, dan Step Functions. Kedua parameter semu ini tidak dapat digunakan dengan Run Command tugas.

## Contoh parameter semu
<a name="pseudo-parameter-examples"></a>

Misalkan payload Anda untuk suatu AWS Lambda tugas perlu mereferensikan instance dengan ID-nya.

Baik Anda menggunakan target jendela `RESOURCE_GROUP` pemeliharaan `INSTANCE` atau pemeliharaan, ini dapat dicapai dengan menggunakan parameter `{{RESOURCE_ID}}` semu. Contoh:

```
"TaskArn": "arn:aws:lambda:us-east-2:111122223333:function:SSMTestFunction",
    "TaskType": "LAMBDA",
    "TaskInvocationParameters": {
        "Lambda": {
            "ClientContext": "ew0KICAi--truncated--0KIEXAMPLE",
            "Payload": "{ \"instanceId\": \"{{RESOURCE_ID}}\" }",
            "Qualifier": "$LATEST"
        }
    }
```

Jika tugas Lambda Anda dimaksudkan untuk dijalankan terhadap jenis target yang didukung lainnya selain instans Amazon Elastic Compute Cloud (Amazon EC2), seperti tabel Amazon DynamoDB, sintaks yang sama dapat digunakan, dan `{{RESOURCE_ID}}` menghasilkan nama tabel saja. Akan tetapi, jika Anda memerlukan ARN lengkap dari tabel, gunakan `{{TARGET_ID}}`, seperti yang ditunjukkan dalam contoh berikut.

```
"TaskArn": "arn:aws:lambda:us-east-2:111122223333:function:SSMTestFunction",
    "TaskType": "LAMBDA",
    "TaskInvocationParameters": {
        "Lambda": {
            "ClientContext": "ew0KICAi--truncated--0KIEXAMPLE",
            "Payload": "{ \"tableArn\": \"{{TARGET_ID}}\" }",
            "Qualifier": "$LATEST"
        }
    }
```

Sintaks yang sama berfungsi untuk penargetan instans atau jenis sumber daya lainnya. Ketika beberapa jenis sumber daya telah ditambahkan ke grup sumber daya, tugas berjalan terhadap masing-masing sumber daya yang sesuai. 

**penting**  
Tidak semua jenis sumber daya yang mungkin disertakan di grup sumber daya menghasilkan nilai untuk parameter `{{RESOURCE_ID}}`. Untuk daftar jenis sumber daya yang didukung, lihat [Parameter semu yang didukung](#pseudo-parameters).

Sebagai contoh lain, untuk menjalankan tugas Otomatisasi yang menghentikan instans EC2, Anda menentukan dokumen Systems Manager `AWS-StopEC2Instance` (dokumen SSM) sebagai nilai `TaskArn` dan menggunakan parameter semu `{{RESOURCE_ID}}`:

```
"TaskArn": "AWS-StopEC2Instance",
    "TaskType": "AUTOMATION"
    "TaskInvocationParameters": {
        "Automation": {
            "DocumentVersion": "1",
            "Parameters": {
                "instanceId": [
                    "{{RESOURCE_ID}}"
                ]
            }
        }
    }
```

Untuk menjalankan tugas Otomatisasi yang menyalin snapshot volume Amazon Elastic Block Store (Amazon EBS), Anda menentukan dokumen SSM `AWS-CopySnapshot` sebagai nilai `TaskArn` dan menggunakan parameter semu `{{RESOURCE_ID}}`.

```
"TaskArn": "AWS-CopySnapshot",
    "TaskType": "AUTOMATION"
    "TaskInvocationParameters": {
        "Automation": {
            "DocumentVersion": "1",
            "Parameters": {
                "SourceRegion": "us-east-2",
                "targetType":"RESOURCE_GROUP",
                "SnapshotId": [
                    "{{RESOURCE_ID}}"
                ]
            }
        }
    }
```

## Parameter semu yang didukung
<a name="pseudo-parameters"></a>

Daftar berikut ini menjelaskan parameter semu yang dapat Anda tentukan menggunakan sintaks `{{PSEUDO_PARAMETER}}` di pilihan `--task-invocation-parameters`.
+ **`WINDOW_ID`**: ID dari jendela pemeliharaan target.
+ **`WINDOW_TASK_ID`**: ID tugas jendela yang sedang berjalan.
+ **`WINDOW_TARGET_ID`**: ID dari target jendela yang menyertakan target (ID target).
+ **`WINDOW_EXECUTION_ID`**: ID dari eksekusi jendela saat ini.
+ **`TASK_EXECUTION_ID`**: ID dari eksekusi tugas saat ini.
+ **`INVOCATION_ID`**: ID dari permintaan saat ini.
+ **`TARGET_TYPE`**: Jenis target. Jenis yang didukung termasuk `RESOURCE_GROUP` dan `INSTANCE`.
+ **`TARGET_ID`**: 

  Jika jenis target yang Anda tentukan adalah`INSTANCE`, parameter `TARGET_ID` semu diganti dengan ID instance. Misalnya, `i-078a280217EXAMPLE`.

  Jika jenis target yang Anda tentukan adalah`RESOURCE_GROUP`, nilai yang direferensikan untuk eksekusi tugas adalah ARN penuh sumber daya. Sebagai contoh: `arn:aws:ec2:us-east-1:123456789012:instance/i-078a280217EXAMPLE`. Tabel berikut menyediakan sampel nilai `TARGET_ID` untuk jenis sumber daya tertentu dalam grup sumber daya. 
**catatan**  
`TARGET_ID`tidak didukung untuk Run Command tugas.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/maintenance-window-tasks-pseudo-parameters.html)
+ **`RESOURCE_ID`**: ID singkat dari jenis sumber daya yang terkandung dalam grup sumber daya. Tabel berikut menyediakan sampel nilai `RESOURCE_ID` untuk jenis sumber daya tertentu dalam grup sumber daya. 
**catatan**  
`RESOURCE_ID`tidak didukung untuk Run Command tugas.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/maintenance-window-tasks-pseudo-parameters.html)
**catatan**  
Jika grup AWS sumber daya yang Anda tentukan menyertakan tipe sumber daya yang tidak menghasilkan `RESOURCE_ID` nilai, dan tidak tercantum dalam tabel sebelumnya, maka `RESOURCE_ID` parameter tidak diisi. Permintaan eksekusi masih akan terjadi untuk sumber daya tersebut. Dalam hal ini, gunakan parameter semu `TARGET_ID` saja, yang akan diganti dengan ARN lengkap dari sumber daya.

# Penjadwalan jendela pemeliharaan dan pilihan periode aktif
<a name="maintenance-windows-schedule-options"></a>

Ketika membuat jendela pemeliharaan, Anda harus menentukan seberapa sering jendela pemeliharaan berjalan dengan menggunakan [Ekspresi cron atau tingkat](reference-cron-and-rate-expressions.md). Secara opsional, Anda dapat menentukan rentang tanggal di mana jendela pemeliharaan dapat berjalan pada jadwal regulernya dan zona waktu yang mendasari jadwal reguler tersebut. 

Akan tetapi, ingatlah bahwa pilihan zona waktu serta pilihan tanggal mulai dan tanggal akhir tidak saling memengaruhi. Waktu tanggal mulai dan tanggal akhir yang Anda tentukan (dengan atau tanpa offset untuk zona waktu Anda) menentukan hanya *periode valid* di mana jendela pemeliharaan dapat berjalan sesuai jadwalnya. Pilihan zona waktu menentukan zona waktu internasional di mana jadwal jendela pemeliharaan didasarkan *selama* periode validnya.

**catatan**  
Anda menentukan tanggal mulai dan akhir dalam format stempel waktu ISO-8601. Misalnya: `2021-04-07T14:29:00-08:00`  
Anda menentukan zona waktu dalam format Internet Assigned Numbers Authority (IANA). Misalnya: `America/Chicago`, `Europe/Berlin` atau `Asia/Tokyo`

**Topics**
+ [Contoh 1: Menentukan tanggal mulai jendela pemeliharaan](#schedule-example-start-date)
+ [Contoh 2: Menentukan tanggal mulai dan tanggal akhir jendela pemeliharaan](#schedule-example-start-end-date)
+ [Contoh 3: Membuat jendela pemeliharaan yang berjalan hanya sekali](#schedule-example-one-time)
+ [Contoh 4: Menentukan jumlah hari offset jadwal untuk jendela pemeliharaan](#schedule-example-schedule-offset)

## Contoh 1: Menentukan tanggal mulai jendela pemeliharaan
<a name="schedule-example-start-date"></a>

Katakanlah Anda menggunakan AWS Command Line Interface (AWS CLI) untuk membuat jendela pemeliharaan dengan opsi berikut:
+ `--start-date 2021-01-01T00:00:00-08:00`
+ `--schedule-timezone "America/Los_Angeles"`
+ `--schedule "cron(0 09 ? * WED *)"`

Contoh:

------
#### [ Linux & macOS ]

```
aws ssm create-maintenance-window \
    --name "My-LAX-Maintenance-Window" \
    --allow-unassociated-targets \
    --duration 3 \
    --cutoff 1 \
    --start-date 2021-01-01T00:00:00-08:00 \
    --schedule-timezone "America/Los_Angeles" \
    --schedule "cron(0 09 ? * WED *)"
```

------
#### [ Windows ]

```
aws ssm create-maintenance-window ^
    --name "My-LAX-Maintenance-Window" ^
    --allow-unassociated-targets ^
    --duration 3 ^
    --cutoff 1 ^
    --start-date 2021-01-01T00:00:00-08:00 ^
    --schedule-timezone "America/Los_Angeles" ^
    --schedule "cron(0 09 ? * WED *)"
```

------

Ini artinya eksekusi pertama dari jendela pemeliharaan tidak akan terjadi sampai *setelah* tanggal dan waktu mulai yang ditentukan, yaitu pukul 00.00 Waktu Pasifik AS pada hari Jumat, 1 Januari 2021. (Zona waktu ini adalah delapan jam lebih lambat dari waktu UTC.) Dalam hal ini, tanggal dan waktu mulai dari periode jendela tidak mewakili kapan jendela pemeliharaan pertama kali berjalan. Jika digunakan bersama-sama, nilai `--schedule-timezone` dan `--schedule` artinya jendela pemeliharaan berjalan pada pukul 9.00 setiap hari Rabu di Zona Waktu Pasifik AS (diwakili oleh “America/Los Angeles” dalam format IANA). Eksekusi pertama dalam periode yang diizinkan yaitu pada hari Rabu, 4 Januari 2021, pukul 9.00 Waktu Pasifik AS.

## Contoh 2: Menentukan tanggal mulai dan tanggal akhir jendela pemeliharaan
<a name="schedule-example-start-end-date"></a>

Anggap saja berikutnya Anda membuat jendela pemeliharaan dengan pilihan ini:
+ `--start-date 2019-01-01T00:03:15+09:00`
+ `--end-date 2019-06-30T00:06:15+09:00`
+ `--schedule-timezone "Asia/Tokyo"`
+ `--schedule "rate(7 days)"`

Sebagai contoh:

------
#### [ Linux & macOS ]

```
aws ssm create-maintenance-window \
    --name "My-NRT-Maintenance-Window" \
    --allow-unassociated-targets \
    --duration 3 \
    --cutoff 1 \
    --start-date 2019-01-01T00:03:15+09:00 \
    --end-date 2019-06-30T00:06:15+09:00 \
    --schedule-timezone "Asia/Tokyo" \
    --schedule "rate(7 days)"
```

------
#### [ Windows ]

```
aws ssm create-maintenance-window ^
    --name "My-NRT-Maintenance-Window" ^
    --allow-unassociated-targets ^
    --duration 3 ^
    --cutoff 1 ^
    --start-date 2019-01-01T00:03:15+09:00 ^
    --end-date 2019-06-30T00:06:15+09:00 ^
    --schedule-timezone "Asia/Tokyo" ^
    --schedule "rate(7 days)"
```

------

Periode yang diizinkan untuk jendela pemeliharaan ini dimulai pada pukul 3.15 Waktu Standar Jepang pada 1 Januari 2019. Periode valid untuk jendela pemeliharaan ini berakhir pada pukul 6.15 Waktu Standar Jepang pada hari Minggu, 30 Juni 2019. (Zona waktu ini sembilan jam lebih cepat dari waktu UTC.) Jika digunakan bersama-sama, nilai `--schedule-timezone` dan `--schedule` artinya jendela pemeliharaan berjalan pada pukul 3.15 setiap hari Selasa di Zona Waktu Standar Jepang (diwakili oleh “Asia/Tokyo” dalam format IANA). Ini karena jendela pemeliharaan berjalan setiap tujuh hari, dan menjadi aktif pada pukul 3.15 pada hari Selasa, 1 Januari. Eksekusi terakhir adalah pukul 3.15 Waktu Standar Jepang pada hari Selasa, 25 Juni 2019. Ini adalah hari Selasa terakhir sebelum periode pemeliharaan yang diizinkan berakhir lima hari kemudian.

## Contoh 3: Membuat jendela pemeliharaan yang berjalan hanya sekali
<a name="schedule-example-one-time"></a>

Sekarang Anda membuat jendela pemeliharaan dengan pilihan ini:
+ `--schedule "at(2020-07-07T15:55:00)"`

Sebagai contoh:

------
#### [ Linux & macOS ]

```
aws ssm create-maintenance-window \
    --name "My-One-Time-Maintenance-Window" \
    --schedule "at(2020-07-07T15:55:00)" \
    --duration 5 \
    --cutoff 2 \
    --allow-unassociated-targets
```

------
#### [ Windows ]

```
aws ssm create-maintenance-window ^
    --name "My-One-Time-Maintenance-Window" ^
    --schedule "at(2020-07-07T15:55:00)" ^
    --duration 5 ^
    --cutoff 2 ^
    --allow-unassociated-targets
```

------

Jendela pemeliharaan ini hanya berjalan satu kali, pada pukul 15.55 waktu UTC pada tanggal 7 Juli 2020. Jendela pemeliharaan diizinkan untuk berjalan hingga lima jam, sesuai kebutuhan, tetapi tugas baru tidak dapat dimulai dua jam sebelum akhir periode pemeliharaan jendela.

## Contoh 4: Menentukan jumlah hari offset jadwal untuk jendela pemeliharaan
<a name="schedule-example-schedule-offset"></a>

Sekarang Anda membuat jendela pemeliharaan dengan pilihan ini:

```
--schedule-offset 2
```

Sebagai contoh:

------
#### [ Linux & macOS ]

```
aws ssm create-maintenance-window \
    --name "My-Cron-Offset-Maintenance-Window" \
    --schedule "cron(0 30 23 ? * TUE#3 *)" \
    --duration 4 \
    --cutoff 1 \
    --schedule-offset 2 \
    --allow-unassociated-targets
```

------
#### [ Windows ]

```
aws ssm create-maintenance-window ^
    --name "My-Cron-Offset-Maintenance-Window" ^
    --schedule "cron(0 30 23 ? * TUE#3 *)" ^
    --duration 4 ^
    --cutoff 1 ^
    --schedule-offset 2 ^
    --allow-unassociated-targets
```

------

Offset jadwal adalah jumlah hari untuk menunggu setelah tanggal dan waktu yang ditentukan oleh ekspresi CRON sebelum menjalankan jendela pemeliharaan.

Di contoh sebelumnya, ekspresi CRON menjadwalkan jendela pemeliharaan untuk berjalan pada hari Selasa ketiga setiap bulan pada pukul 23.30: 

```
--schedule "cron(0 30 23 ? * TUE#3 *)
```

Akan tetapi, pencakupan `--schedule-offset 2` artinya jendela pemeliharaan tidak akan berjalan sampai pukul 23.30 dua hari *setelah* hari Selasa ketiga setiap bulan. 

Offset jadwal didukung untuk ekspresi CRON saja. 

**Info lebih lanjut**  
+ [Referensi: Ekspresi cron dan rate untuk Systems Manager](reference-cron-and-rate-expressions.md)
+ [Buat jendela pemeliharaan menggunakan konsol](sysman-maintenance-create-mw.md)
+ [Tutorial: Membuat dan mengkonfigurasi jendela pemeliharaan menggunakan AWS CLI](maintenance-windows-cli-tutorials-create.md)
+ [CreateMaintenanceWindow](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_CreateMaintenanceWindow.html) di *Referensi API AWS Systems Manager *
+ [https://docs.aws.amazon.com/cli/latest/reference/ssm/create-maintenance-window.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/create-maintenance-window.html)di *AWS Systems Manager bagian Referensi AWS CLI Perintah*
+ [Basis data Zona Waktu](https://www.iana.org/time-zones) pada situs web IANA

# Pendaftaran tugas jendela pemeliharaan tanpa target
<a name="maintenance-windows-targetless-tasks"></a>

Untuk setiap jendela pemeliharaan yang Anda buat, Anda dapat menentukan satu atau beberapa tugas yang akan dilakukan saat jendela pemeliharaan berjalan. Dalam kebanyakan kasus, Anda harus menentukan sumber daya, atau target, yang akan dijalankan oleh tugas. Akan tetapi, dalam beberapa kasus, Anda tidak perlu menentukan target secara eksplisit di tugas.

Satu atau beberapa target harus ditentukan untuk jendela pemeliharaan Systems Manager Run Command -type task. Bergantung pada sifat tugas, target bersifat opsional untuk jenis tugas jendela pemeliharaan lainnya (Systems Manager Automation, AWS Lambda, dan AWS Step Functions). 

Untuk jenis tugas Lambda dan Step Functions, apakah target diperlukan tergantung dari konten dari fungsi atau mesin tahapan yang telah Anda buat.

**catatan**  
Ketika tugas telah mendaftarkan target, Otomatisasi AWS Lambda, dan AWS Step Functions tugas menyelesaikan target dari grup dan tag sumber daya dan mengirim satu pemanggilan per sumber daya yang diselesaikan, yang menghasilkan beberapa pemanggilan tugas. Tetapi katakanlah, misalnya, bahwa Anda hanya menginginkan satu pemanggilan untuk tugas Lambda yang terdaftar dengan grup sumber daya yang berisi lebih dari satu instance. Dalam hal ini, jika Anda bekerja di Konsol Manajemen AWS, pilih opsi **Target tugas tidak diperlukan di tugas** **Daftar Lambda atau Edit halaman tugas** **Lambda**. Jika Anda menggunakan AWS CLI perintah, jangan tentukan target menggunakan `--targets` parameter saat menjalankan [https://docs.aws.amazon.com/cli/latest/reference/ssm/register-task-with-maintenance-window.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/register-task-with-maintenance-window.html)perintah atau [https://docs.aws.amazon.com/cli/latest/reference/ssm/update-maintenance-window-task.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/update-maintenance-window-task.html)perintah.

Dalam banyak kasus, Anda tidak perlu secara eksplisit menentukan target untuk tugas otomatisasi. Misalnya, katakanlah bahwa Anda membuat tugas jenis otomatisasi untuk memperbarui Amazon Machine Image (AMI) untuk Linux menggunakan `AWS-UpdateLinuxAmi` runbook. Ketika tugas berjalan, AMI diperbarui dengan paket distribusi Linux terbaru yang tersedia dan perangkat lunak Amazon. Contoh baru dibuat dari AMI telah menginstal pembaruan ini. Karena ID AMI yang akan diperbarui ditentukan dalam parameter input untuk runbook, tidak perlu untuk menentukan target lagi dalam tugas jendela pemeliharaan.

Demikian pula, misalkan Anda menggunakan AWS Command Line Interface (AWS CLI) untuk mendaftarkan tugas Otomasi jendela pemeliharaan yang menggunakan `AWS-RestartEC2Instance` runbook. Karena node untuk memulai ulang ditentukan dalam `--task-invocation-parameters` argumen, Anda tidak perlu juga menentukan `--targets` opsi. 

**catatan**  
Untuk tugas jendela pemeliharaan tanpa target yang ditentukan, Anda tidak dapat memberikan nilai untuk `--max-errors` dan `--max-concurrency`. Sebagai gantinya, sistem menyisipkan nilai placeholder`1`, yang mungkin dilaporkan dalam respons terhadap perintah seperti dan. [https://docs.aws.amazon.com/cli/latest/reference/ssm/describe-maintenance-window-tasks.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/describe-maintenance-window-tasks.html) Nilai-nilai ini tidak mempengaruhi tugas Anda yang sedang berjalan dan dapat diabaikan.

Contoh berikut menunjukkan menghilangkan`--targets`,`--max-errors`, dan `--max-concurrency` opsi untuk tugas jendela pemeliharaan tanpa target.

------
#### [ Linux & macOS ]

```
aws ssm register-task-with-maintenance-window \
    --window-id "mw-ab12cd34eEXAMPLE" \
    --service-role-arn "arn:aws:iam::123456789012:role/MaintenanceWindowAndAutomationRole" \
    --task-type "AUTOMATION" \
    --name "RestartInstanceWithoutTarget" \
    --task-arn "AWS-RestartEC2Instance" \
    --task-invocation-parameters "{\"Automation\":{\"Parameters\":{\"InstanceId\":[\"i-02573cafcfEXAMPLE\"]}}}" \
    --priority 10
```

------
#### [ Windows ]

```
aws ssm register-task-with-maintenance-window ^
    --window-id "mw-ab12cd34eEXAMPLE" ^
    --service-role-arn "arn:aws:iam::123456789012:role/MaintenanceWindowAndAutomationRole" ^
    --task-type "AUTOMATION" ^
    --name "RestartInstanceWithoutTarget" ^
    --task-arn "AWS-RestartEC2Instance" ^
    --task-invocation-parameters "{\"Automation\":{\"Parameters\":{\"InstanceId\":[\"i-02573cafcfEXAMPLE\"]}}}" ^
    --priority 10
```

------

**catatan**  
Untuk tugas jendela pemeliharaan yang terdaftar sebelum 23 Desember 2020: Jika Anda menetapkan target untuk tugas tersebut dan tidak lagi diperlukan, Anda dapat memperbarui tugas tersebut untuk menghapus target menggunakan konsol Systems Manager atau [https://docs.aws.amazon.com/cli/latest/reference/ssm/update-maintenance-window-task.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/update-maintenance-window-task.html) AWS CLI perintah.

**Info lebih lanjut**  
+ [Pesan kesalahan: “Tugas jendela pemeliharaan tanpa target tidak mendukung MaxConcurrency nilai” dan “Tugas jendela pemeliharaan tanpa target tidak mendukung MaxErrors nilai”](troubleshooting-maintenance-windows.md#maxconcurrency-maxerrors-not-supported)

# Pemecahan masalah windows pemeliharaan
<a name="troubleshooting-maintenance-windows"></a>

Gunakan informasi berikut untuk membantu Anda memecahkan masalah dengan windows pemeliharaan.

**Topics**
+ [Mengedit kesalahan tugas: Pada halaman untuk pengeditan tugas jendela pemeliharaan, daftar IAM role menampilkan pesan kesalahan: “Kami tidak dapat menemukan peran jendela pemeliharaan IAM yang ditentukan untuk tugas ini. Ada kemungkinan telah dihapus, atau mungkin belum dibuat.”](#maintenance-window-role-troubleshooting)
+ [Tidak semua target jendela pemeliharaan diperbarui](#targets-not-updated)
+ [Tugas gagal dengan status pemanggilan tugas: “Peran yang disediakan tidak berisi izin SSM yang benar.”](#incorrect-ssm-permissions)
+ [Tugas gagal dengan pesan kesalahan: “Langkah gagal saat memvalidasi dan menyelesaikan masalah input langkah”](#step-fails)
+ [Pesan kesalahan: “Tugas jendela pemeliharaan tanpa target tidak mendukung MaxConcurrency nilai” dan “Tugas jendela pemeliharaan tanpa target tidak mendukung MaxErrors nilai”](#maxconcurrency-maxerrors-not-supported)

## Mengedit kesalahan tugas: Pada halaman untuk pengeditan tugas jendela pemeliharaan, daftar IAM role menampilkan pesan kesalahan: “Kami tidak dapat menemukan peran jendela pemeliharaan IAM yang ditentukan untuk tugas ini. Ada kemungkinan telah dihapus, atau mungkin belum dibuat.”
<a name="maintenance-window-role-troubleshooting"></a>

**Masalah 1**: Peran jendela pemeliharaan AWS Identity and Access Management (IAM) yang awalnya Anda tentukan telah dihapus setelah Anda membuat tugas.

**Kemungkinan perbaikan**: 1) Pilih peran jendela pemeliharaan IAM yang berbeda, jika ada di akun Anda, atau buat yang baru dan pilih untuk tugas tersebut. 

**Masalah 2**: Jika tugas dibuat menggunakan AWS Command Line Interface (AWS CLI), AWS Tools for Windows PowerShell, atau AWS SDK, nama peran jendela pemeliharaan IAM yang tidak ada dapat ditentukan. Misalnya, peran jendela pemeliharaan IAM dapat dihapus sebelum Anda membuat tugas, atau nama peran mungkin salah ketik, seperti **myrole** dan bukan **my-role**.

**Kemungkinan perbaikan**: Pilih nama yang benar dari peran jendela pemeliharaan IAM yang ingin Anda gunakan, atau buat yang baru untuk menentukan tugas. 

## Tidak semua target jendela pemeliharaan diperbarui
<a name="targets-not-updated"></a>

**Masalah:** Anda menyadari bahwa tugas jendela pemeliharaan tidak berjalan pada semua sumber daya yang ditargetkan oleh jendela pemeliharaan. Misalnya, di hasil eksekusi jendela pemeliharaan, tugas untuk sumber daya yang ditandai sebagai gagal atau waktu habis.

**Solusi:** Alasan paling umum untuk tugas jendela pemeliharaan tidak berjalan pada sumber daya target meliputi konektivitas dan ketersediaan. Sebagai contoh:
+ Systems Manager kehilangan koneksi ke sumber daya sebelum atau selama operasi jendela pemeliharaan.
+ Sumber daya sedang offline atau dihentikan selama operasi jendela pemeliharaan.

Anda dapat menunggu waktu jendela pemeliharaan terjadwal berikutnya untuk menjalankan tugas pada sumber daya. Anda dapat secara manual menjalankan tugas jendela pemeliharaan pada sumber daya yang tidak tersedia atau sedang offline.

## Tugas gagal dengan status pemanggilan tugas: “Peran yang disediakan tidak berisi izin SSM yang benar.”
<a name="incorrect-ssm-permissions"></a>

**Masalah**: Anda telah menentukan peran layanan jendela pemeliharaan untuk tugas, tetapi tugas gagal berjalan dengan sukses dan status pemanggilan tugas melaporkan bahwa “Peran yang disediakan tidak berisi izin SSM yang benar.” 
+ **Solusi**: Di[Tugas 1: Membuat kebijakan khusus untuk peran layanan jendela pemeliharaan Anda menggunakan konsol](configuring-maintenance-window-permissions-console.md#create-custom-policy-console), kami menyediakan kebijakan dasar yang dapat Anda lampirkan ke [peran layanan jendela pemeliharaan kustom](configuring-maintenance-window-permissions-console.md#create-custom-role-console) Anda. Kebijakan ini mencakup izin yang diperlukan untuk banyak skenario tugas. Namun, karena banyaknya tugas yang dapat Anda jalankan, Anda mungkin perlu memberikan izin tambahan dalam kebijakan untuk peran jendela pemeliharaan Anda.

  Misalnya, beberapa tindakan Otomasi bekerja dengan AWS CloudFormation tumpukan. Oleh karena itu, Anda mungkin perlu menambahkan izin tambahan `cloudformation:CreateStack``cloudformation:DescribeStacks`, dan `cloudformation:DeleteStack` kebijakan untuk peran layanan jendela pemeliharaan Anda. 

  Untuk contoh lain, runbook Otomasi `AWS-CopySnapshot` memerlukan izin untuk membuat snapshot Amazon Elastic Block Store (Amazon EBS). Oleh karena itu, Anda mungkin perlu menambahkan izin`ec2:CreateSnapshot`.

  [Untuk informasi tentang izin peran yang diperlukan oleh runbook Otomasi AWS terkelola, lihat deskripsi buku runbook di Referensi Buku Runbook Otomasi AWS Systems Manager .](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-runbook-reference.html)

  Untuk informasi tentang izin peran yang diperlukan oleh dokumen SSM AWS terkelola, tinjau konten dokumen di konsol Systems Manager bagian [Documents](https://console.aws.amazon.com//systems-manager/documents).

  Untuk informasi tentang izin peran yang diperlukan untuk tugas Step Functions, tugas Lambda, dan runbook Otomasi kustom dan dokumen SSM, verifikasi persyaratan izin dengan pembuat sumber daya tersebut.

## Tugas gagal dengan pesan kesalahan: “Langkah gagal saat memvalidasi dan menyelesaikan masalah input langkah”
<a name="step-fails"></a>

**Masalah**: Runbook Otomatisasi atau dokumen Systems Manager Command yang Anda gunakan di tugas mengharuskan Anda menentukan input seperti `InstanceId` atau `SnapshotId`, tetapi nilai tidak disediakan atau tidak disediakan dengan benar.
+ **Solusi 1**: Jika tugas Anda menargetkan sumber daya tunggal, seperti satu node atau snapshot tunggal, masukkan ID-nya dalam parameter input untuk tugas tersebut.
+ **Solusi 2**: Jika tugas Anda menargetkan beberapa sumber daya, seperti membuat gambar dari beberapa node saat Anda menggunakan runbook`AWS-CreateImage`, Anda dapat menggunakan salah satu parameter semu yang didukung untuk tugas jendela pemeliharaan di parameter input untuk mewakili node IDs dalam perintah. 

  Perintah berikut mendaftarkan tugas Otomatisasi Systems Manager dengan jendela pemeliharaan menggunakan AWS CLI. Nilai `--targets` menunjukkan ID target jendela pemeliharaan. Selain itu, meskipun `--targets` parameter menentukan ID target jendela, parameter runbook Otomasi mengharuskan ID node disediakan. Dalam hal ini, perintah menggunakan parameter semu `{{RESOURCE_ID}}` sebagai nilai `InstanceId`.

  **AWS CLI perintah:**

------
#### [ Linux & macOS ]

  Contoh perintah berikut memulai ulang instans Amazon Elastic Compute Cloud (Amazon EC2) yang termasuk dalam grup target jendela pemeliharaan dengan ID E32eECB2-646C-4F4B-8ED1-205FBEXample.

  ```
  aws ssm register-task-with-maintenance-window \
      --window-id "mw-0c50858d01EXAMPLE" \
      --targets Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE \
      --task-arn "AWS-RestartEC2Instance" \
      --service-role-arn arn:aws:iam::123456789012:role/MyMaintenanceWindowServiceRole \
      --task-type AUTOMATION \
      --task-invocation-parameters "Automation={DocumentVersion=5,Parameters={InstanceId='{{RESOURCE_ID}}'}}" \
      --priority 0 --max-concurrency 10 --max-errors 5 --name "My-Restart-EC2-Instances-Automation-Task" \
      --description "Automation task to restart EC2 instances"
  ```

------
#### [ Windows ]

  ```
  aws ssm register-task-with-maintenance-window ^
      --window-id "mw-0c50858d01EXAMPLE" ^
      --targets Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE ^
      --task-arn "AWS-RestartEC2Instance" ^
      --service-role-arn arn:aws:iam::123456789012:role/MyMaintenanceWindowServiceRole ^
      --task-type AUTOMATION ^
      --task-invocation-parameters "Automation={DocumentVersion=5,Parameters={InstanceId='{{RESOURCE_ID}}'}}" ^
      --priority 0 --max-concurrency 10 --max-errors 5 --name "My-Restart-EC2-Instances-Automation-Task" ^
      --description "Automation task to restart EC2 instances"
  ```

------

  Untuk informasi lebih lanjut tentang menggunakan parameter semu untuk tugas jendela pemeliharaan, lihat [Menggunakan parameter semu saat mendaftarkan tugas jendela pemeliharaan](maintenance-window-tasks-pseudo-parameters.md) dan [Contoh pendaftaran tugas](mw-cli-register-tasks-examples.md#task-examples).

## Pesan kesalahan: “Tugas jendela pemeliharaan tanpa target tidak mendukung MaxConcurrency nilai” dan “Tugas jendela pemeliharaan tanpa target tidak mendukung MaxErrors nilai”
<a name="maxconcurrency-maxerrors-not-supported"></a>

**Masalah:** Saat Anda mendaftarkan tugas Run Command -type, Anda harus menentukan setidaknya satu target untuk menjalankan tugas. Untuk jenis tugas lain (Otomasi AWS Lambda,, dan AWS Step Functions), tergantung pada sifat tugas, target bersifat opsional. Pilihan `MaxConcurrency` (jumlah sumber daya untuk menjalankan tugas pada waktu yang sama) dan `MaxErrors` (jumlah kegagalan untuk menjalankan tugas pada sumber daya target sebelum tugas gagal) tidak diperlukan atau didukung untuk tugas jendela pemeliharaan yang tidak menentukan target. Sistem menghasilkan pesan kesalahan ini jika nilai ditentukan untuk salah satu pilihan ini saat tidak ada target tugas yang ditentukan.

**Solusi**: Jika Anda menerima salah satu dari kesalahan ini, hapus nilai untuk konkurensi dan ambang kesalahan sebelum melanjutkan untuk mendaftarkan atau memperbarui tugas jendela pemeliharaan.

Untuk informasi lebih lanjut tentang menjalankan tugas yang tidak menentukan target, lihat [Pendaftaran tugas jendela pemeliharaan tanpa target](maintenance-windows-targetless-tasks.md) di *Panduan Pengguna AWS Systems Manager *.

# AWS Systems Manager Quick Setup
<a name="systems-manager-quick-setup"></a>

GunakanQuick Setup, alat di AWS Systems Manager, untuk mengonfigurasi layanan dan fitur Amazon Web Services yang sering digunakan dengan cepat dengan praktik terbaik yang direkomendasikan. Quick Setupmenyederhanakan pengaturan layanan, termasuk Systems Manager, dengan mengotomatiskan tugas umum atau yang direkomendasikan. Tugas-tugas ini termasuk, misalnya, membuat peran profil instans wajib AWS Identity and Access Management (IAM) dan menyiapkan praktik terbaik operasional, seperti pemindaian patch berkala dan pengumpulan inventaris. Tidak ada biaya untuk menggunakan Quick Setup. Namun, biaya dapat dikeluarkan berdasarkan jenis layanan yang Anda tetapkan dan batas penggunaan tanpa biaya untuk layanan yang digunakan untuk mengatur layanan Anda. Untuk memulaiQuick Setup, buka [konsol Systems Manager](https://console.aws.amazon.com/systems-manager/quick-setup). Di panel navigasi, pilih **Quick Setup**.

**catatan**  
Jika Anda diarahkan Quick Setup untuk membantu mengonfigurasi instans agar dikelola oleh Systems Manager, selesaikan prosedurnya. [Siapkan manajemen host Amazon EC2 menggunakan Quick Setup](quick-setup-host-management.md)

## Apa manfaatnyaQuick Setup?
<a name="quick-setup-features"></a>

Manfaat Quick Setup antara lain sebagai berikut:
+ **Sederhanakan konfigurasi layanan dan fitur**

  Quick Setupmemandu Anda melalui konfigurasi praktik terbaik operasional dan secara otomatis menerapkan konfigurasi tersebut. Quick SetupDasbor menampilkan tampilan real-time dari status penerapan konfigurasi Anda. 
+ **Menyebarkan konfigurasi secara otomatis di beberapa akun**

  Anda dapat menggunakan Quick Setup secara individu Akun AWS atau di beberapa Akun AWS dan Wilayah AWS dengan mengintegrasikan dengan AWS Organizations. Menggunakan Quick Setup di beberapa akun membantu memastikan bahwa organisasi Anda mempertahankan konfigurasi yang konsisten.
+ **Hilangkan penyimpangan konfigurasi**

  Konfigurasi drift terjadi setiap kali pengguna membuat perubahan pada layanan atau fitur yang bertentangan dengan pilihan yang dibuat melalui. Quick Setup Quick Setupsecara berkala memeriksa penyimpangan konfigurasi dan mencoba untuk memperbaikinya.

## Siapa yang harus menggunakanQuick Setup?
<a name="quick-setup-audience"></a>

Quick Setuppaling bermanfaat bagi pelanggan yang sudah memiliki pengalaman dengan layanan dan fitur yang mereka siapkan, dan ingin menyederhanakan proses penyiapan mereka. Jika Anda tidak terbiasa dengan konfigurasi yang Layanan AWS Anda gunakanQuick Setup, sebaiknya Anda mempelajari lebih lanjut tentang layanan ini. Tinjau konten dalam Panduan Pengguna yang relevan sebelum Anda membuat konfigurasi denganQuick Setup.

## Ketersediaan Quick Setup di Wilayah AWS
<a name="quick-setup-getting-started-regions"></a>

Berikut ini Wilayah AWS, Anda dapat menggunakan semua jenis Quick Setup konfigurasi untuk seluruh organisasi, seperti yang dikonfigurasi AWS Organizations, atau hanya untuk akun organisasi dan Wilayah yang Anda pilih. Anda juga dapat menggunakan hanya Quick Setup dengan satu akun di Wilayah ini.
+ AS Timur (Ohio)
+ AS Timur (Virginia Utara)
+ AS Barat (California Utara)
+ AS Barat (Oregon)
+ Asia Pasifik (Mumbai)
+ Asia Pasifik (Seoul)
+ Asia Pasifik (Singapura)
+ Asia Pasifik (Sydney)
+ Asia Pasifik (Tokyo)
+ Kanada (Pusat)
+ Eropa (Frankfurt)
+ Eropa (Stockholm)
+ Eropa (Irlandia)
+ Eropa (London)
+ Eropa (Paris)
+ Amerika Selatan (São Paulo)

Di Wilayah berikut, hanya tipe konfigurasi [Manajemen Host](quick-setup-host-management.md) yang tersedia untuk akun individual:
+ Europe (Milan)
+ Asia Pasifik (Hong Kong)
+ Middle East (Bahrain) (Middle East (Bahrain))
+ China (Beijing)
+ China (Ningxia)
+ AWS GovCloud (AS-Timur)
+ AWS GovCloud (AS-Barat)

 Untuk daftar semua Wilayah yang didukung untuk Systems Manager, lihat kolom **Region** di [titik akhir layanan Systems Manager](https://docs.aws.amazon.com/general/latest/gr/ssm.html#ssm_region) di *Referensi Umum Amazon Web Services*.

# Mulai menggunakan Quick Setup
<a name="quick-setup-getting-started"></a>

Gunakan informasi dalam topik ini untuk membantu Anda bersiap untuk menggunakannyaQuick Setup.

**Topics**
+ [Peran dan izin IAM untuk orientasi Quick Setup](#quick-setup-getting-started-iam)
+ [Orientasi manual untuk bekerja dengan Quick Setup API secara terprogram](#quick-setup-api-manual-onboarding)

## Peran dan izin IAM untuk orientasi Quick Setup
<a name="quick-setup-getting-started-iam"></a>

Quick Setupmeluncurkan pengalaman konsol baru dan API baru. Sekarang Anda dapat berinteraksi dengan API ini menggunakan konsol, AWS CLI, CloudFormation, dan SDKs. Jika Anda ikut serta dalam pengalaman baru, konfigurasi yang ada akan dibuat ulang menggunakan API baru. Bergantung pada jumlah konfigurasi yang ada di akun Anda, proses ini dapat memakan waktu beberapa menit.

Untuk menggunakan Quick Setup konsol baru, Anda harus memiliki izin untuk tindakan berikut:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm-quicksetup:*",
                "cloudformation:DescribeStackSetOperation",
                "cloudformation:ListStacks",
                "cloudformation:DescribeStacks",
                "cloudformation:DescribeStackResources",
                "cloudformation:ListStackSetOperations",
                "cloudformation:ListStackInstances",
                "cloudformation:DescribeStackSet",
                "cloudformation:ListStackSets",
                "cloudformation:DescribeStackInstance",
                "cloudformation:DescribeOrganizationsAccess",
                "cloudformation:ActivateOrganizationsAccess",
                "cloudformation:GetTemplate",
                "cloudformation:ListStackSetOperationResults",
                "cloudformation:DescribeStackEvents",
                "cloudformation:UntagResource",
                "ec2:DescribeInstances",
                "ssm:DescribeAutomationExecutions",
                "ssm:GetAutomationExecution",
                "ssm:ListAssociations",
                "ssm:DescribeAssociation",
                "ssm:GetDocument",
                "ssm:ListDocuments",
                "ssm:DescribeDocument",
                "ssm:ListResourceDataSync",
                "ssm:DescribePatchBaselines",
                "ssm:GetPatchBaseline",
                "ssm:DescribeMaintenanceWindows",
                "ssm:DescribeMaintenanceWindowTasks",
                "ssm:GetOpsSummary",
                "organizations:DeregisterDelegatedAdministrator",
                "organizations:DescribeAccount",
                "organizations:DescribeOrganization",
                "organizations:ListDelegatedAdministrators",
                "organizations:ListRoots",
                "organizations:ListParents",
                "organizations:ListOrganizationalUnitsForParent",
                "organizations:DescribeOrganizationalUnit",
                "organizations:ListAWSServiceAccessForOrganization",
                "s3:GetBucketLocation",
                "s3:ListAllMyBuckets",
                "s3:ListBucket",
                "resource-groups:ListGroups",
                "iam:ListRoles",
                "iam:ListRolePolicies",
                "iam:GetRole",
                "iam:CreatePolicy",
                "organizations:RegisterDelegatedAdministrator",
                "organizations:EnableAWSServiceAccess",
                "cloudformation:TagResource"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "cloudformation:RollbackStack",
                "cloudformation:CreateStack",
                "cloudformation:UpdateStack",
                "cloudformation:DeleteStack"
            ],
            "Resource": [
                "arn:aws:cloudformation:*:*:stack/StackSet-AWS-QuickSetup-*",
                "arn:aws:cloudformation:*:*:stack/AWS-QuickSetup-*",
                "arn:aws:cloudformation:*:*:type/resource/*",
                "arn:aws:cloudformation:*:*:stack/StackSet-SSMQuickSetup"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateStackSet",
                "cloudformation:UpdateStackSet",
                "cloudformation:DeleteStackSet",
                "cloudformation:DeleteStackInstances",
                "cloudformation:CreateStackInstances",
                "cloudformation:StopStackSetOperation"
            ],
            "Resource": [
                "arn:aws:cloudformation:*:*:stackset/AWS-QuickSetup-*",
                "arn:aws:cloudformation:*:*:stackset/SSMQuickSetup",
                "arn:aws:cloudformation:*:*:type/resource/*",
                "arn:aws:cloudformation:*:*:stackset-target/AWS-QuickSetup-*:*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:CreateRole",
                "iam:DeleteRole",
                "iam:AttachRolePolicy",
                "iam:DetachRolePolicy",
                "iam:GetRolePolicy",
                "iam:PutRolePolicy"
            ],
            "Resource": [
                "arn:aws:iam::*:role/AWS-QuickSetup-*",
                "arn:aws:iam::*:role/service-role/AWS-QuickSetup-*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::111122223333:role/AWS-QuickSetup-*",
            "Condition": {
                "StringEquals": {
	            "iam:PassedToService": [
	                "ssm-quicksetup.amazonaws.com",
	                "cloudformation.amazonaws.com"
	            ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:DeleteAssociation",
                "ssm:CreateAssociation",
                "ssm:StartAssociationsOnce"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "ssm:StartAutomationExecution",
            "Resource": [
                "arn:aws:ssm:*:*:document/AWS-EnableExplorer",
                "arn:aws:ssm:*:*:automation-execution/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetOpsSummary",
                "ssm:CreateResourceDataSync",
                "ssm:UpdateResourceDataSync"
            ],
            "Resource": "arn:aws:ssm:*:*:resource-data-sync/AWS-QuickSetup-*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:CreateServiceLinkedRole"
            ],
            "Condition": {
                "StringEquals": {
                    "iam:AWSServiceName": [
                        "accountdiscovery.ssm.amazonaws.com",
                        "ssm.amazonaws.com",
                        "ssm-quicksetup.amazonaws.com",
                        "stacksets.cloudformation.amazonaws.com"
                    ]
                }
            },
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:CreateServiceLinkedRole"
            ],
            "Resource": "arn:aws:iam::*:role/aws-service-role/stacksets.cloudformation.amazonaws.com/AWSServiceRoleForCloudFormationStackSetsOrgAdmin"
        }
    ]
}
```

------

Untuk membatasi pengguna pada izin hanya-baca, hanya izinkan `ssm-quicksetup:List*` dan `ssm-quicksetup:Get*` operasi untuk API. Quick Setup

Selama orientasi, Quick Setup buat peran AWS Identity and Access Management (IAM) berikut atas nama Anda:
+ `AWS-QuickSetup-LocalExecutionRole`— Memberikan CloudFormation izin untuk menggunakan templat apa pun, tidak termasuk templat kebijakan tambalan, dan membuat sumber daya yang diperlukan.
+ `AWS-QuickSetup-LocalAdministrationRole`— Memberikan izin untuk AWS CloudFormation berasumsi. `AWS-QuickSetup-LocalExecutionRole`
+ `AWS-QuickSetup-PatchPolicy-LocalExecutionRole`— Memberikan izin AWS CloudFormation untuk menggunakan templat kebijakan tambalan, dan membuat sumber daya yang diperlukan.
+ `AWS-QuickSetup-PatchPolicy-LocalAdministrationRole`— Memberikan izin untuk AWS CloudFormation berasumsi. `AWS-QuickSetup-PatchPolicy-LocalExecutionRole`

Jika Anda melakukan onboarding akun pengelolaan—akun yang Anda gunakan untuk membuat organisasi AWS Organizations— Quick Setup juga membuat peran berikut atas nama Anda:
+ `AWS-QuickSetup-SSM-RoleForEnablingExplorer`— Memberikan izin ke runbook `AWS-EnableExplorer` otomatisasi. `AWS-EnableExplorer`Runbook mengkonfigurasiExplorer, alat di Systems Manager, untuk menampilkan informasi untuk beberapa Akun AWS dan. Wilayah AWS
+ `AWSServiceRoleForAmazonSSM`Peran terkait layanan yang memberikan akses ke AWS sumber daya yang dikelola dan digunakan oleh Systems Manager.
+ `AWSServiceRoleForAmazonSSM_AccountDiscovery`— Peran terkait layanan yang memberikan izin kepada Systems Manager untuk menelepon untuk menemukan Akun AWS informasi saat Layanan AWS menyinkronkan data. Untuk informasi selengkapnya, lihat [Menggunakan peran untuk mengumpulkan Akun AWS informasi untuk OpsCenter dan Explorer](using-service-linked-roles-service-action-2.md).

Saat melakukan onboarding akun manajemen, Quick Setup aktifkan akses tepercaya antara AWS Organizations dan CloudFormation untuk menerapkan Quick Setup konfigurasi di seluruh organisasi Anda. Untuk mengaktifkan akses tepercaya, akun manajemen Anda harus memiliki izin administrator. Setelah onboarding, Anda tidak lagi memerlukan izin administrator. Untuk informasi selengkapnya, lihat [Mengaktifkan akses tepercaya dengan Organizations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-enable-trusted-access.html).

Untuk informasi tentang jenis AWS Organizations akun, lihat [AWS Organizations terminologi dan konsep](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html) di *Panduan AWS Organizations Pengguna*.

**catatan**  
Quick Setupdigunakan CloudFormation StackSets untuk menyebarkan konfigurasi Anda di seluruh Akun AWS dan Wilayah. Jika jumlah akun target dikalikan dengan jumlah Wilayah melebihi 10.000, konfigurasi gagal diterapkan. Sebaiknya tinjau kasus penggunaan Anda dan buat konfigurasi yang menggunakan lebih sedikit target untuk mengakomodasi pertumbuhan organisasi Anda. Instans tumpukan tidak diterapkan ke akun manajemen organisasi Anda. Untuk informasi selengkapnya, lihat [Pertimbangan saat membuat kumpulan tumpukan dengan izin yang dikelola layanan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-getting-started-create.html?icmpid=docs_cfn_console#stacksets-orgs-considerations). 

## Orientasi manual untuk bekerja dengan Quick Setup API secara terprogram
<a name="quick-setup-api-manual-onboarding"></a>

Jika Anda menggunakan konsol untuk bekerja dengannyaQuick Setup, layanan menangani langkah-langkah orientasi untuk Anda. Jika Anda berencana untuk menggunakan SDKs atau bekerja dengan Quick Setup API, Anda masih dapat menggunakan konsol untuk menyelesaikan langkah-langkah orientasi untuk Anda sehingga Anda tidak perlu melakukannya secara manual. AWS CLI Namun, beberapa pelanggan perlu menyelesaikan langkah-langkah orientasi untuk Quick Setup secara terprogram tanpa berinteraksi dengan konsol. Jika metode ini sesuai dengan kasus penggunaan Anda, Anda harus menyelesaikan langkah-langkah berikut. Semua langkah ini harus diselesaikan dari akun AWS Organizations manajemen Anda.

**Untuk menyelesaikan orientasi manual untuk Quick Setup**

1. Aktifkan akses tepercaya untuk CloudFormation with Organizations. Ini memberi akun manajemen izin yang diperlukan untuk membuat dan mengelola StackSets organisasi Anda. Anda dapat menggunakan CloudFormation tindakan `ActivateOrganizationsAccess` API untuk menyelesaikan langkah ini. Untuk informasi selengkapnya, lihat [ActivateOrganizationsAccess](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateOrganizationsAccess.html) di dalam *Referensi API AWS CloudFormation *. 

1. Aktifkan integrasi Systems Manager dengan Organizations. Hal ini memungkinkan Systems Manager untuk membuat peran terkait layanan di semua akun di organisasi Anda. Hal ini juga memungkinkan Systems Manager untuk melakukan operasi atas nama Anda di organisasi Anda dan akunnya. Anda dapat menggunakan AWS Organizations tindakan `EnableAWSServiceAccess` API untuk menyelesaikan langkah ini. Prinsip layanan untuk Systems Manager adalah `ssm.amazonaws.com` .Untuk informasi selengkapnya, lihat [Mengaktifkan AWSService Akses](https://docs.aws.amazon.com/organizations/latest/APIReference/API_EnableAWSServiceAccess.html) di *Referensi AWS Organizations API*.

1. Buat peran IAM yang diperlukan untukExplorer. Hal ini memungkinkan Quick Setup untuk membuat dasbor untuk konfigurasi Anda sehingga Anda dapat melihat status penerapan dan asosiasi. Buat peran IAM dan lampirkan kebijakan `AWSSystemsManagerEnableExplorerExecutionPolicy` terkelola. Ubah kebijakan kepercayaan agar peran sesuai dengan yang berikut ini. Ganti masing-masing *account ID* dengan informasi Anda.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "ssm.amazonaws.com"
               },
               "Action": "sts:AssumeRole",
               "Condition": {
                   "StringEquals": {
                       "aws:SourceAccount": "111122223333"
                   },
                   "ArnLike": {
                       "aws:SourceArn": "arn:*:ssm:*:111122223333:automation-execution/*"
                   }
               }
           }
       ]
   }
   ```

------

1. Perbarui pengaturan Quick Setup layanan untukExplorer. Anda dapat menggunakan Quick Setup tindakan `UpdateServiceSettings` API untuk menyelesaikan langkah ini. Tentukan ARN untuk peran IAM yang Anda buat pada langkah sebelumnya untuk parameter permintaan. `ExplorerEnablingRoleArn` Untuk informasi selengkapnya, lihat [UpdateServiceSettings](https://docs.aws.amazon.com/quick-setup/latest/APIReference/API_UpdateServiceSettings.html) di dalam *Referensi API Quick Setup*. 

1. Buat peran IAM yang diperlukan CloudFormation StackSets untuk digunakan. Anda harus membuat peran *eksekusi* dan peran *administrasi*.

   1. Buat peran eksekusi. Peran eksekusi harus memiliki setidaknya satu dari `AWSQuickSetupDeploymentRolePolicy` atau kebijakan `AWSQuickSetupPatchPolicyDeploymentRolePolicy` terkelola yang dilampirkan. Jika Anda hanya membuat konfigurasi kebijakan tambalan, Anda dapat menggunakan kebijakan `AWSQuickSetupPatchPolicyDeploymentRolePolicy` terkelola. Semua konfigurasi lain menggunakan `AWSQuickSetupDeploymentRolePolicy` kebijakan. Ubah kebijakan kepercayaan agar peran sesuai dengan yang berikut ini. Ganti masing-masing *account ID* dan *administration role name* dengan informasi Anda.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::111122223333:role/administration role name"
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
      ```

------

   1. Buat peran administrasi. Kebijakan izin harus sesuai dengan yang berikut ini. Ganti masing-masing *account ID* dan *execution role name* dengan informasi Anda.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Action": [
                      "sts:AssumeRole"
                  ],
                  "Resource": "arn:*:iam::111122223333:role/execution role name",
                  "Effect": "Allow"
              }
          ]
      }
      ```

------

      Ubah kebijakan kepercayaan agar peran sesuai dengan yang berikut ini. Ganti masing-masing *account ID* dengan informasi Anda.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "Service": "cloudformation.amazonaws.com"
                  },
                  "Action": "sts:AssumeRole",
                  "Condition": {
                      "StringEquals": {
                          "aws:SourceAccount": "111122223333"
                      },
                      "ArnLike": {
                          "aws:SourceArn": "arn:aws:cloudformation:*:111122223333:stackset/AWS-QuickSetup-*"
                      }
                  }
              }
          ]
      }
      ```

------

# Konfigurasi untuk Asumsikan Peran untuk Systems Manager
<a name="quick-setup-assume-role"></a>

## Untuk membuat peran asumsi untuk Systems Manager Quick Setup:
<a name="create-assume-role"></a>

Systems Manager Quick Setup memerlukan peran yang memungkinkan Systems Manager melakukan tindakan dengan aman di akun Anda. Peran ini memberi Systems Manager izin yang diperlukan untuk menjalankan perintah pada instans Anda dan mengonfigurasi EC2 instans, peran IAM, dan sumber daya Systems Manager lainnya atas nama Anda.

1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di panel navigasi, pilih **Kebijakan**, lalu **Buat** Kebijakan

1. Tambahkan `SsmOnboardingInlinePolicy` kebijakan menggunakan JSON di bawah ini. (Kebijakan ini memungkinkan tindakan yang diperlukan untuk melampirkan izin profil instance ke instance yang Anda tentukan. Misalnya mengizinkan pembuatan profil instance dan mengaitkannya dengan EC2 instance).

1. Setelah selesai, di panel navigasi, pilih **Peran**, lalu pilih **Buat peran**.

1. Untuk **jenis entitas Tepercaya**, simpan sebagai default (layanan).

1. Di bawah **Kasus penggunaan**, pilih **Systems Manager**, lalu pilih **Berikutnya**.

1. Pada halaman **Tambahkan izin**:

1. Tambahkan `SsmOnboardingInlinePolicy` kebijakan

1. Pilih **Berikutnya**

1. Untuk **nama Peran**, masukkan nama deskriptif (misalnya,`AmazonSSMRoleForAutomationAssumeQuickSetup`).

1. (Opsional) Tambahkan tag untuk membantu mengidentifikasi dan mengatur peran.

1. Pilih **Buat peran**.

**penting**  
Peran tersebut harus mencakup hubungan kepercayaan dengan`ssm.amazonaws.com`. Ini secara otomatis dikonfigurasi ketika Anda memilih Systems Manager sebagai layanan di langkah 4.

Setelah membuat peran, Anda dapat memilihnya saat mengonfigurasi Pengaturan Cepat. Peran ini memungkinkan Systems Manager untuk mengelola EC2 instans, peran IAM, dan sumber daya Systems Manager lainnya serta menjalankan perintah atas nama Anda sambil menjaga keamanan melalui izin tertentu dan terbatas.

## Kebijakan Izin
<a name="permissions-policies"></a>

**`SsmOnboardingInlinePolicy`**  
Kebijakan berikut menentukan izin untuk Pengaturan Cepat Systems Manager:

```
{
    "Version": "2012-10-17" 		 	 	 ,
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:CreateInstanceProfile",
                "iam:ListInstanceProfilesForRole",
                "ec2:DescribeIamInstanceProfileAssociations",
                "iam:GetInstanceProfile",
                "iam:AddRoleToInstanceProfile"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:AssociateIamInstanceProfile"
            ],
            "Resource": "arn:aws:ec2:*:*:instance/*",
            "Condition": {
                "Null": {
                    "ec2:InstanceProfile": "true"
                },
                "ArnLike": {
                    "ec2:NewInstanceProfile": "arn:aws:iam::*:instance-profile/[INSTANCE_PROFILE_ROLE_NAME]"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::*:role/[INSTANCE_PROFILE_ROLE_NAME]",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "ec2.amazonaws.com"
                }
            }
        }
    ]
        }
```

**Hubungan kepercayaan**  
*Ini ditambahkan secara otomatis melalui langkah-langkah di atas*

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

# Menggunakan administrator yang didelegasikan untuk Quick Setup
<a name="quick-setup-delegated-administrator"></a>

Setelah Anda mendaftarkan akun administrator yang didelegasikanQuick Setup, pengguna dengan izin yang sesuai di akun tersebut dapat membuat, memperbarui, melihat, dan menghapus manajer konfigurasi yang menargetkan unit organisasi dalam struktur Anda AWS Organizations . Akun administrator yang didelegasikan ini juga dapat mengelola manajer konfigurasi yang sebelumnya dibuat oleh akun manajemen organisasi Anda.

Akun manajemen di Organizations dapat menunjuk satu akun dalam organisasi Anda sebagai administrator yang didelegasikan. Saat Anda mendaftarkan akun sebagai administrator yang didelegasikanQuick Setup, akun ini secara otomatis menjadi administrator yang didelegasikan untuk AWS CloudFormation StackSets dan Systems Manager Explorer juga, karena layanan ini diperlukan untuk menyebarkan dan memantau konfigurasi. Quick Setup

**catatan**  
Pada saat ini, jenis konfigurasi kebijakan tambalan tidak didukung oleh administrator yang didelegasikan untukQuick Setup. Konfigurasi kebijakan tambalan untuk organisasi harus dibuat dan dipelihara di akun manajemen untuk organisasi. Untuk informasi selengkapnya, lihat [Membuat kebijakan tambalan](quick-setup-patch-manager.md#create-patch-policy).

Topik berikut menjelaskan cara mendaftar dan membatalkan pendaftaran administrator yang didelegasikan untuk. Quick Setup

**Topics**
+ [Daftarkan administrator yang didelegasikan untuk Quick Setup](quick-setup-register-delegated-administrator.md)
+ [Membatalkan pendaftaran administrator yang didelegasikan untuk Quick Setup](quick-setup-deregister-delegated-administrator.md)

# Daftarkan administrator yang didelegasikan untuk Quick Setup
<a name="quick-setup-register-delegated-administrator"></a>

Gunakan prosedur berikut untuk mendaftarkan administrator yang didelegasikan. Quick Setup

**Untuk mendaftarkan administrator yang Quick Setup didelegasikan**

1. Masuk ke akun AWS Organizations manajemen Anda.

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Quick Setup**.

1. Pilih **Pengaturan**.

1. Di Quick Setup bagian **Administrator yang didelegasikan**, verifikasi bahwa Anda telah mengonfigurasi peran terkait layanan dan opsi akses layanan yang diperlukan. Jika perlu, pilih tombol **Buat peran** dan **Aktifkan akses** untuk mengonfigurasi opsi ini.

1. Untuk **ID Akun**, masukkan Akun AWS ID. Akun ini harus menjadi akun anggota AWS Organizations.

1. Pilih **Daftar administrator yang didelegasikan**.

# Membatalkan pendaftaran administrator yang didelegasikan untuk Quick Setup
<a name="quick-setup-deregister-delegated-administrator"></a>

Gunakan prosedur berikut untuk membatalkan pendaftaran administrator yang didelegasikan untuk. Quick Setup

**Untuk membatalkan pendaftaran administrator yang didelegasikan Quick Setup**

1. Masuk ke akun AWS Organizations manajemen Anda.

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Quick Setup**.

1. Pilih **Pengaturan**.

1. **Di Quick Setup bagian **Administrator yang didelegasikan**, pilih **Deregister** dari dropdown Tindakan.**

1. Pilih **Konfirmasi**.

# Pelajari Quick Setup terminologi dan detailnya
<a name="quick-setup-using"></a>

Quick Setup, alat di AWS Systems Manager, menampilkan hasil semua manajer konfigurasi yang telah Anda buat di semua Wilayah AWS dalam tabel **Manajer konfigurasi** di Quick Setup halaman beranda. Dari halaman ini, Anda dapat **Melihat detail** setiap konfigurasi, menghapus konfigurasi dari drop-down **Tindakan**, atau **Buat** konfigurasi. Tabel **manajer Konfigurasi** berisi informasi berikut:
+ **Nama** — Nama manajer konfigurasi jika disediakan saat dibuat.
+ **Jenis konfigurasi** — Jenis konfigurasi yang dipilih saat membuat konfigurasi. 
+ **Versi** — Versi jenis konfigurasi yang saat ini digunakan.
+ **Unit organisasi** — Menampilkan unit organisasi (OUs) tempat konfigurasi digunakan jika Anda memilih kumpulan target **khusus**. Unit organisasi dan target khusus hanya tersedia untuk akun manajemen organisasi Anda. Akun manajemen adalah akun yang Anda gunakan untuk membuat organisasi AWS Organizations.
+ **Jenis penyebaran** — Menunjukkan apakah penerapan berlaku untuk seluruh organisasi (`Organizational`) atau hanya akun Anda (`Local`).
+ **Wilayah** — Wilayah tempat konfigurasi digunakan jika Anda memilih kumpulan target atau target **khusus** dalam **akun Anda Saat Ini**. 
+ **Status penerapan — Status** penerapan menunjukkan apakah AWS CloudFormation berhasil menerapkan target atau instance tumpukan. Instance target dan stack berisi opsi konfigurasi yang Anda pilih selama pembuatan konfigurasi.
+ **Status asosiasi** - Status asosiasi adalah status semua asosiasi yang dibuat oleh konfigurasi yang Anda buat. Asosiasi untuk semua target harus berjalan dengan sukses; jika tidak, statusnya **Gagal**.

  Quick Setupmembuat dan menjalankan State Manager asosiasi untuk setiap target konfigurasi. State Manageradalah alat di AWS Systems Manager.

Untuk melihat konfigurasi yang diterapkan ke Wilayah yang sedang Anda jelajahi, pilih tab **Konfigurasi**.

## Detail konfigurasi
<a name="quick-setup-details"></a>

Halaman **detail Konfigurasi** menampilkan informasi tentang penerapan konfigurasi dan asosiasi terkait. Dari halaman ini, Anda dapat mengedit opsi konfigurasi, memperbarui target, atau menghapus konfigurasi. Anda juga dapat melihat detail setiap penerapan konfigurasi untuk mendapatkan informasi lebih lanjut tentang asosiasi. 

Bergantung pada jenis konfigurasi, satu atau lebih grafik status berikut ditampilkan:

**Status penerapan konfigurasi**  
Menampilkan jumlah penerapan yang berhasil, gagal, atau sedang berjalan atau tertunda. Deployment terjadi di akun target tertentu dan Wilayah yang berisi node yang dipengaruhi oleh konfigurasi. 

**Status asosiasi konfigurasi**  
Menampilkan jumlah State Manager asosiasi yang telah berhasil, gagal, atau tertunda. Quick Setupmembuat asosiasi di setiap penerapan untuk opsi konfigurasi yang dipilih.

**Status pengaturan**  
Menampilkan jumlah tindakan yang dilakukan oleh jenis konfigurasi dan statusnya saat ini. 

**Kepatuhan sumber daya**  
Menampilkan jumlah sumber daya yang sesuai dengan kebijakan konfigurasi yang ditentukan.

Tabel **detail Konfigurasi** menampilkan informasi tentang penerapan konfigurasi Anda. Anda dapat melihat detail selengkapnya tentang setiap penerapan dengan memilih penerapan dan kemudian memilih **Lihat** detail. Halaman detail dari setiap penerapan menampilkan asosiasi yang diterapkan ke node dalam penerapan itu.

## Mengedit dan menghapus konfigurasi Anda
<a name="quick-setup-edit-delete"></a>

Anda dapat mengedit opsi konfigurasi konfigurasi dari halaman **detail Konfigurasi** dengan memilih **Tindakan** dan kemudian **Edit opsi konfigurasi**. Saat Anda menambahkan opsi baru ke konfigurasi, Quick Setup jalankan penerapan Anda dan buat asosiasi baru. Saat Anda menghapus opsi dari konfigurasi, Quick Setup jalankan penerapan Anda dan hapus asosiasi terkait apa pun.

**catatan**  
Anda dapat mengedit Quick Setup konfigurasi untuk akun Anda kapan saja. Untuk mengedit konfigurasi **Organisasi**, **status Konfigurasi** harus **Sukses** atau **Gagal**. 

Anda juga dapat memperbarui target yang disertakan dalam konfigurasi Anda dengan memilih **Tindakan** dan **Tambah OUs, Tambah** **Wilayah**, **Hapus OUs, atau Hapus** **Wilayah**. Jika akun Anda tidak dikonfigurasi sebagai akun manajemen atau Anda membuat konfigurasi hanya untuk akun saat ini, Anda tidak dapat memperbarui unit organisasi target (OUs). Menghapus Wilayah atau OU menghapus asosiasi dari Wilayah tersebut atau OUs. 

Secara berkala, Quick Setup merilis versi konfigurasi baru. Anda dapat memilih opsi **Tingkatkan konfigurasi** untuk meningkatkan konfigurasi Anda ke versi terbaru.

Anda dapat menghapus konfigurasi Quick Setup dengan memilih konfigurasi, lalu **Tindakan**, dan kemudian **Hapus konfigurasi**. Atau, Anda dapat menghapus konfigurasi dari halaman **detail Konfigurasi** di bawah dropdown **Tindakan** dan kemudian **Hapus** konfigurasi. Quick Setupkemudian meminta Anda untuk **Hapus semua OUs dan Wilayah** yang mungkin membutuhkan waktu untuk menyelesaikannya. Menghapus konfigurasi juga menghapus semua asosiasi terkait. Proses penghapusan dua langkah ini menghapus semua sumber daya yang digunakan dari semua akun dan Wilayah dan kemudian menghapus konfigurasi.

## Kepatuhan konfigurasi
<a name="quick-setup-compliance"></a>

Anda dapat melihat apakah instans Anda sesuai dengan asosiasi yang dibuat oleh konfigurasi Anda di salah satu Explorer atau Kepatuhan, yang keduanya merupakan alat di dalamnya. AWS Systems Manager Untuk mempelajari lebih lanjut tentang kepatuhan, lihat[Pelajari detail tentang Kepatuhan](compliance-about.md). Untuk mempelajari selengkapnya tentang melihat kepatuhan diExplorer, lihat[AWS Systems Manager Explorer](Explorer.md).

# Menggunakan Quick Setup API untuk mengelola konfigurasi dan penerapan
<a name="quick-setup-api"></a>

Anda dapat menggunakan API yang disediakan oleh Quick Setup untuk membuat dan mengelola konfigurasi dan penerapan menggunakan SDK AWS CLI atau pilihan Anda. Anda juga dapat menggunakan CloudFormation untuk membuat sumber daya manajer konfigurasi yang menyebarkan konfigurasi. Menggunakan API, Anda membuat manajer konfigurasi yang menerapkan *definisi* konfigurasi. Definisi konfigurasi berisi semua informasi yang diperlukan untuk menyebarkan jenis konfigurasi tertentu. Untuk informasi selengkapnya tentang Quick Setup API, lihat [Referensi API Pengaturan Cepat](https://docs.aws.amazon.com/quick-setup/latest/APIReference/).

Contoh berikut menunjukkan cara membuat manajer konfigurasi menggunakan AWS CLI dan CloudFormation.

------
#### [ AWS CLI ]

```
aws ssm-quicksetup create-configuration-manager \
--name configuration manager name \
--description Description of your configuration manager
--configuration-definitions JSON string containing configuration defintion
```

Berikut ini adalah contoh string JSON yang berisi definisi konfigurasi untuk kebijakan patch.

```
'{"Type":"AWSQuickSetupType-PatchPolicy","LocalDeploymentAdministrationRoleArn":"arn:aws:iam::123456789012:role/AWS-QuickSetup-StackSet-Local-AdministrationRole","LocalDeploymentExecutionRoleName":"AWS-QuickSetup-StackSet-Local-ExecutionRole","Parameters":{"ConfigurationOptionsInstallNextInterval":"true","ConfigurationOptionsInstallValue":"cron(0 2 ? * SAT#1 *)","ConfigurationOptionsPatchOperation":"ScanAndInstall","ConfigurationOptionsScanNextInterval":"false","ConfigurationOptionsScanValue":"cron(0 1 * * ? *)","HasDeletedBaseline":"false","IsPolicyAttachAllowed":"true","OutputBucketRegion":"","OutputLogEnableS3":"false","OutputS3BucketName":"","OutputS3KeyPrefix":"","PatchBaselineRegion":"us-east-1","PatchBaselineUseDefault":"custom","PatchPolicyName":"dev-patch-policy","RateControlConcurrency":"5","RateControlErrorThreshold":"0%","RebootOption":"RebootIfNeeded","ResourceGroupName":"","SelectedPatchBaselines":"{\"ALMA_LINUX\":{\"value\":\"arn:aws:ssm:us-east-1:123456789012:patchbaseline/pb-0cb0c4966f86b059b\",\"label\":\"AWS-AlmaLinuxDefaultPatchBaseline\",\"description\":\"Default Patch Baseline for Alma Linux Provided by AWS.\",\"disabled\":false},\"AMAZON_LINUX_2\":{\"value\":\"arn:aws:ssm:us-east-1:123456789012:patchbaseline/pb-0be8c61cde3be63f3\",\"label\":\"AWS-AmazonLinux2DefaultPatchBaseline\",\"description\":\"Baseline containing all Security and Bugfix updates approved for Amazon Linux 2 instances\",\"disabled\":false},\"AMAZON_LINUX_2023\":{\"value\":\"arn:aws:ssm:us-east-1:123456789012:patchbaseline/pb-05c9c9bf778d4c4d0\",\"label\":\"AWS-AmazonLinux2023DefaultPatchBaseline\",\"description\":\"Default Patch Baseline for Amazon Linux 2023 Provided by AWS.\",\"disabled\":false},\"DEBIAN\":{\"value\":\"arn:aws:ssm:us-east-1:123456789012:patchbaseline/pb-09a5f8eb62bde80b1\",\"label\":\"AWS-DebianDefaultPatchBaseline\",\"description\":\"Default Patch Baseline for Debian Provided by AWS.\",\"disabled\":false},\"MACOS\":{\"value\":\"arn:aws:ssm:us-east-1:123456789012:patchbaseline/pb-0ee4f94581368c0d4\",\"label\":\"AWS-MacOSDefaultPatchBaseline\",\"description\":\"Default Patch Baseline for MacOS Provided by AWS.\",\"disabled\":false},\"ORACLE_LINUX\":{\"value\":\"arn:aws:ssm:us-east-1:123456789012:patchbaseline/pb-06bff38e95fe85c02\",\"label\":\"AWS-OracleLinuxDefaultPatchBaseline\",\"description\":\"Default Patch Baseline for Oracle Linux Server Provided by AWS.\",\"disabled\":false},\"REDHAT_ENTERPRISE_LINUX\":{\"value\":\"arn:aws:ssm:us-east-1:123456789012:patchbaseline/pb-0cbb3a633de00f07c\",\"label\":\"AWS-RedHatDefaultPatchBaseline\",\"description\":\"Default Patch Baseline for Redhat Enterprise Linux Provided by AWS.\",\"disabled\":false},\"ROCKY_LINUX\":{\"value\":\"arn:aws:ssm:us-east-1:123456789012:patchbaseline/pb-03ec98bc512aa3ac0\",\"label\":\"AWS-RockyLinuxDefaultPatchBaseline\",\"description\":\"Default Patch Baseline for Rocky Linux Provided by AWS.\",\"disabled\":false},\"UBUNTU\":{\"value\":\"pb-06e3563bd35503f2b\",\"label\":\"custom-UbuntuServer-Blog-Baseline\",\"description\":\"Default Patch Baseline for Ubuntu Provided by AWS.\",\"disabled\":false},\"WINDOWS\":{\"value\":\"pb-016889927b2bb8542\",\"label\":\"custom-WindowsServer-Blog-Baseline\",\"disabled\":false}}","TargetInstances":"","TargetOrganizationalUnits":"ou-9utf-example","TargetRegions":"us-east-1,us-east-2","TargetTagKey":"Patch","TargetTagValue":"true","TargetType":"Tags"}}' \
```

------
#### [ CloudFormation ]

```
AWSTemplateFormatVersion: '2010-09-09'
Resources:
SSMQuickSetupTestConfigurationManager:
Type: "AWS::SSMQuickSetup::ConfigurationManager"
Properties:
    Name: "MyQuickSetup"
    Description: "Test configuration manager"
    ConfigurationDefinitions:
    - Type: "AWSQuickSetupType-CFGRecording"
      Parameters:
        TargetAccounts:
            Ref: AWS::AccountId
        TargetRegions:
            Ref: AWS::Region
        LocalDeploymentAdministrationRoleArn: !Sub "arn:aws:iam::${AWS::AccountId}:role/AWS-QuickSetup-StackSet-ContractTest-AdministrationRole"
        LocalDeploymentExecutionRoleName: "AWS-QuickSetup-StackSet-ContractTest-ExecutionRole"
    Tags:
        foo1: "bar1"
```

------

# Jenis Quick Setup konfigurasi yang didukung
<a name="quick-setup-config-types"></a>

**Jenis konfigurasi yang didukung**  
Quick Setupmemandu Anda melalui konfigurasi praktik terbaik operasional untuk sejumlah Systems Manager dan lainnya Layanan AWS, dan secara otomatis menerapkan konfigurasi tersebut. Quick SetupDasbor menampilkan tampilan real-time dari status penerapan konfigurasi Anda. 

Anda dapat menggunakan Quick Setup secara individu Akun AWS atau di beberapa Akun AWS dan Wilayah dengan mengintegrasikan dengan AWS Organizations. Menggunakan Quick Setup di beberapa akun membantu memastikan bahwa organisasi Anda mempertahankan konfigurasi yang konsisten.

Quick Setupmemberikan dukungan untuk jenis konfigurasi berikut.
+ [Siapkan manajemen host Amazon EC2 menggunakan Quick Setup](quick-setup-host-management.md)
+ [Menyiapkan Konfigurasi Manajemen Host Default untuk organisasi yang menggunakan Quick Setup](quick-setup-default-host-management-configuration.md)
+ [Buat perekam AWS Config konfigurasi menggunakan Quick Setup](quick-setup-config.md)
+ [Menerapkan paket AWS Config kesesuaian menggunakan Quick Setup](quick-setup-cpack.md)
+ [Mengonfigurasi penambalan untuk instance di organisasi menggunakan kebijakan tambalan Quick Setup](quick-setup-patch-manager.md)
+ [Change Managerpengaturan organisasi](change-manager-organization-setup.md)
+ [Mengatur DevOps Guru menggunakan Quick Setup](quick-setup-devops.md)
+ [Menyebarkan Distributor paket menggunakan Quick Setup](quick-setup-distributor.md)
+ [Hentikan dan mulai instans EC2 secara otomatis sesuai jadwal menggunakan Quick Setup](quick-setup-scheduler.md)
+ [OpsCenterpengaturan organisasi](OpsCenter-quick-setup-cross-account.md)
+ [Konfigurasikan Penjelajah Sumber Daya AWS menggunakan Quick Setup](Resource-explorer-quick-setup.md)

# Siapkan manajemen host Amazon EC2 menggunakan Quick Setup
<a name="quick-setup-host-management"></a>

Gunakan alat di Quick Setup AWS Systems Manager, untuk mengonfigurasi peran keamanan yang diperlukan dengan cepat dan alat Systems Manager yang umum digunakan di instans Amazon Elastic Compute Cloud (Amazon EC2) Anda. Anda dapat menggunakan Quick Setup di akun individual atau di beberapa akun dan Wilayah AWS dengan mengintegrasikan dengan AWS Organizations. Alat-alat ini membantu Anda mengelola dan memantau kesehatan instans Anda sambil memberikan izin minimum yang diperlukan untuk memulai. 

Jika Anda tidak terbiasa dengan layanan dan fitur Systems Manager, kami sarankan Anda meninjau *Panduan AWS Systems Manager Pengguna* sebelum membuat konfigurasi denganQuick Setup. Untuk informasi selengkapnya tentang Systems Manager, lihat [Apa itu AWS Systems Manager?](what-is-systems-manager.md).

**penting**  
Quick Setupmungkin bukan alat yang tepat untuk digunakan untuk manajemen EC2 jika salah satu dari berikut ini berlaku untuk Anda:  
Anda mencoba membuat instans EC2 untuk pertama kalinya untuk mencoba AWS kemampuan.
Anda masih baru mengenal manajemen instans EC2.
Sebagai gantinya, kami menyarankan Anda menjelajahi konten berikut:   
[Memulai dengan Amazon EC2](https://aws.amazon.com/ec2/getting-started)
[Luncurkan instans menggunakan wizard instans peluncuran baru di Panduan](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html) *Pengguna Amazon EC2*
[Tutorial: Memulai instans Amazon EC2 Linux di Panduan](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html) *Pengguna Amazon EC2*
Jika Anda sudah terbiasa dengan manajemen instans EC2 dan ingin merampingkan konfigurasi dan manajemen untuk beberapa instans EC2, gunakan. Quick Setup Baik organisasi Anda memiliki lusinan, ribuan, atau jutaan instans EC2, gunakan Quick Setup prosedur berikut untuk mengonfigurasi beberapa opsi untuk instans tersebut, sekaligus.

**catatan**  
Jenis konfigurasi ini memungkinkan Anda mengatur beberapa opsi untuk seluruh organisasi yang ditentukan AWS Organizations, hanya beberapa akun organisasi dan Wilayah, atau satu akun. Salah satu opsi ini adalah memeriksa dan menerapkan pembaruan SSM Agent setiap dua minggu. Jika Anda seorang administrator organisasi, Anda juga dapat memilih untuk memperbarui *semua* instans EC2 di organisasi Anda dengan pembaruan agen setiap dua minggu menggunakan jenis Konfigurasi Manajemen Host Default. Untuk informasi, lihat [Menyiapkan Konfigurasi Manajemen Host Default untuk organisasi yang menggunakan Quick Setup](quick-setup-default-host-management-configuration.md).

## Mengkonfigurasi opsi manajemen host untuk instans EC2
<a name="host-management-configuration"></a>

Untuk mengatur manajemen host, lakukan tugas-tugas berikut di AWS Systems Manager Quick Setup konsol.

**Untuk membuka halaman konfigurasi Manajemen Host**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Quick Setup**.

1. Pada kartu **Manajemen Host**, pilih **Buat**.
**Tip**  
Jika Anda sudah memiliki satu atau beberapa konfigurasi di akun Anda, pertama-tama pilih tab **Perpustakaan** atau tombol **Buat** di bagian **Konfigurasi** untuk melihat kartu.

**Untuk mengonfigurasi opsi manajemen host Systems Manager**
+ Untuk mengonfigurasi fungsionalitas Systems Manager, di bagian **Opsi konfigurasi**, pilih opsi di grup **Systems Manager** yang ingin Anda aktifkan untuk konfigurasi Anda:

     
**Perbarui Agen Systems Manager (SSM) setiap dua minggu**  
Memungkinkan Systems Manager untuk memeriksa setiap dua minggu untuk versi baru agen. Jika ada versi baru, maka Systems Manager secara otomatis memperbarui agen pada node terkelola Anda ke versi terbaru yang dirilis. Quick Setuptidak menginstal agen pada contoh yang belum ada. Untuk informasi tentang yang AMIs telah SSM Agent diinstal sebelumnya, lihat[Temukan AMIs dengan yang SSM Agent sudah diinstal sebelumnya](ami-preinstalled-agent.md).  
Kami mendorong Anda untuk memilih opsi ini untuk memastikan bahwa node Anda selalu menjalankan sebagian besar up-to-date versiSSM Agent. Untuk informasi selengkapnyaSSM Agent, termasuk informasi tentang cara menginstal agen secara manual, lihat[Bekerja dengan SSM Agent](ssm-agent.md).  
**Kumpulkan inventaris dari instans Anda setiap 30 menit**  
Memungkinkan Quick Setup untuk mengkonfigurasi koleksi jenis metadata berikut:  
  + **AWS komponen** — driver EC2, agen, versi, dan banyak lagi.
  + **Aplikasi** — Nama aplikasi, penerbit, versi, dan lainnya.
  + **Detail node** — Nama sistem, nama sistem operasi (OS), versi OS, boot terakhir, DNS, domain, kelompok kerja, arsitektur OS, dan banyak lagi.
  + **Konfigurasi jaringan** — alamat IP, alamat MAC, DNS, gateway, subnet mask, dan banyak lagi. 
  + **Layanan** — Nama, nama tampilan, status, layanan dependen, jenis layanan, jenis awal, dan lainnya (hanya Windows Server node).
  + **Peran Windows** — Nama, nama tampilan, jalur, jenis fitur, status terinstal, dan lainnya (hanya Windows Server node).
  + **Pembaruan Windows** — Hotfix ID, diinstal oleh, tanggal terinstal, dan banyak lagi (hanya Windows Server node).
Untuk informasi selengkapnya tentang Inventaris, alat di AWS Systems Manager, lihat[AWS Systems Manager Inventaris](systems-manager-inventory.md).  
Opsi **pengumpulan Inventaris** dapat memakan waktu hingga 10 menit untuk diselesaikan, bahkan jika Anda hanya memilih beberapa node.  
**Pindai instance untuk patch yang hilang setiap hari**  
Patch ManagerAktifkan, alat di Systems Manager, untuk memindai node Anda setiap hari dan menghasilkan laporan di halaman **Kepatuhan**. Laporan menunjukkan berapa banyak node yang patch-compliant sesuai dengan baseline patch *default*. Laporan tersebut mencakup daftar setiap node dan status kepatuhannya.   
Untuk informasi tentang operasi patching dan patch baseline, lihat. [AWS Systems Manager Patch Manager](patch-manager.md)   
Untuk informasi tentang kepatuhan tambalan, lihat halaman [Kepatuhan](https://console.aws.amazon.com/systems-manager/compliance) Systems Manager.  
Untuk informasi tentang menambal node terkelola di beberapa akun dan Wilayah dalam satu konfigurasi, lihat [Konfigurasi kebijakan tambalan di Quick Setup](patch-manager-policies.md) dan[Mengonfigurasi penambalan untuk instance di organisasi menggunakan kebijakan tambalan Quick Setup](quick-setup-patch-manager.md).  
Systems Manager mendukung beberapa metode untuk memindai node terkelola untuk kepatuhan patch. Jika Anda menerapkan lebih dari satu metode ini sekaligus, informasi kepatuhan patch yang Anda lihat selalu merupakan hasil dari pemindaian terbaru. Hasil dari pemindaian sebelumnya ditimpa. Jika metode pemindaian menggunakan baseline patch yang berbeda, dengan aturan persetujuan yang berbeda, informasi kepatuhan patch dapat berubah secara tak terduga. Untuk informasi selengkapnya, lihat [Mengidentifikasi eksekusi yang membuat data kepatuhan patch](patch-manager-compliance-data-overwrites.md).

**Untuk mengonfigurasi opsi manajemen CloudWatch host Amazon**
+ Untuk mengonfigurasi CloudWatch fungsionalitas, di bagian **Opsi konfigurasi**, pilih opsi di CloudWatch grup **Amazon** yang ingin Anda aktifkan untuk konfigurasi Anda:

     
**Instal dan konfigurasikan CloudWatch agen**  
Menginstal konfigurasi dasar CloudWatch agen terpadu di instans Amazon EC2 Anda. Agen mengumpulkan metrik dan file log dari instans Anda untuk Amazon. CloudWatch Informasi ini dikonsolidasikan sehingga Anda dapat dengan cepat menentukan kesehatan instans Anda. Untuk informasi selengkapnya tentang konfigurasi dasar CloudWatch agen, lihat [set metrik CloudWatch agen yang telah ditentukan sebelumnya](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-cloudwatch-agent-configuration-file-wizard.html#cloudwatch-agent-preset-metrics). Mungkin ada biaya tambahan. Untuk informasi lebih lanjut, lihat [harga Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing/).  
**Perbarui CloudWatch agen setiap 30 hari sekali**  
Memungkinkan Systems Manager untuk memeriksa setiap 30 hari untuk versi baru CloudWatch agen. Jika ada versi baru, Systems Manager memperbarui agen pada instans Anda. Kami mendorong Anda untuk memilih opsi ini untuk memastikan bahwa instans Anda selalu menjalankan sebagian besar up-to-date versi CloudWatch agen.

**Untuk mengonfigurasi opsi manajemen host Agen Peluncuran Amazon EC2**
+ Untuk mengonfigurasi fungsionalitas Agen Peluncuran Amazon EC2, di bagian **Opsi konfigurasi**, pilih opsi di grup Agen **Peluncuran Amazon EC2** yang ingin Anda aktifkan untuk konfigurasi Anda:

     
**Perbarui agen peluncuran EC2 setiap 30 hari sekali**  
Memungkinkan Systems Manager untuk memeriksa setiap 30 hari untuk versi baru agen peluncuran yang diinstal pada instans Anda. Jika versi baru tersedia, Systems Manager memperbarui agen pada instans Anda. Kami mendorong Anda untuk memilih opsi ini untuk memastikan bahwa instans Anda selalu menjalankan sebagian besar up-to-date versi agen peluncuran yang berlaku. Untuk instans Windows Amazon EC2, opsi ini mendukung EC2launch, EC2launch v2, dan EC2config. Untuk instans Amazon EC2 Linux, opsi ini mendukung. `cloud-init` Untuk instans Amazon EC2 Mac, opsi ini mendukung. `ec2-macos-init` Quick Setuptidak mendukung pembaruan agen peluncuran yang diinstal pada sistem operasi yang tidak didukung oleh agen peluncuran, atau aktif AL2023.  
Untuk informasi lebih lanjut tentang agen inisialisasi ini, lihat topik berikut:  
  +  [Konfigurasikan instance Windows menggunakan EC2 Launch v2](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2launch-v2.html) 
  +  [Konfigurasikan instance Windows menggunakan EC2 Launch](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2launch.html) 
  +  [Konfigurasikan instance Windows menggunakan layanan EC2 Config](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2config-service.html) 
  +  [Dokumentasi cloud-init](https://cloudinit.readthedocs.io/en/22.2.2/index.html) 
  +  [ec2-macos-init](https://github.com/aws/ec2-macos-init) 

**Untuk memilih instans EC2 yang akan diperbarui oleh konfigurasi manajemen host**
+ Di bagian **Target**, pilih metode untuk menentukan akun dan Wilayah tempat konfigurasi akan digunakan:
**catatan**  
Anda tidak dapat membuat beberapa konfigurasi Manajemen Quick Setup Host yang menargetkan hal yang sama Wilayah AWS.

------
#### [ Entire organization ]

  Konfigurasi Anda diterapkan ke semua unit organisasi (OUs) dan Wilayah AWS di organisasi Anda.

**catatan**  
Opsi **Seluruh organisasi** hanya tersedia jika Anda mengonfigurasi manajemen host dari akun manajemen organisasi Anda.

------
#### [ Custom ]

  1. Di OUs bagian **Target**, pilih OUs tempat Anda ingin menerapkan konfigurasi manajemen host ini.

  1. Di bagian **Wilayah Target**, pilih Wilayah tempat Anda ingin menerapkan konfigurasi manajemen host ini.

------
#### [ Current account ]

  Pilih salah satu opsi Wilayah dan ikuti langkah-langkah untuk opsi itu.

   

**Wilayah Saat Ini**  
Pilih cara menargetkan instans di Wilayah saat ini saja:  
  + **Semua instans** — Konfigurasi manajemen host secara otomatis menargetkan setiap EC2 di Wilayah saat ini.
  + **Tag** - Pilih **Tambah** dan masukkan kunci dan nilai opsional yang ditambahkan ke instance yang akan ditargetkan.
  + **Grup sumber daya** - Untuk **grup Sumber Daya**, pilih grup sumber daya yang ada yang berisi instans EC2 yang akan ditargetkan.
  + **Manual** - Di bagian **Instans**, pilih kotak centang setiap instans EC2 yang akan ditargetkan.

**Pilih Wilayah**  
Pilih cara menargetkan instance di Wilayah yang Anda tentukan dengan memilih salah satu dari berikut ini:  
  + **Semua instance** - Semua instance di Wilayah yang Anda tentukan ditargetkan.
  + **Tag** — Pilih **Tambah** dan masukkan kunci dan nilai opsional yang telah ditambahkan ke instance yang akan ditargetkan.
Di bagian **Wilayah Target**, pilih Wilayah tempat Anda ingin menerapkan konfigurasi manajemen host ini.

------

**Untuk menentukan opsi profil contoh**
+ ***Seluruh organisasi** dan target **Custom** saja.*

  Di bagian **Opsi profil Instans**, pilih apakah Anda ingin menambahkan kebijakan IAM yang diperlukan ke profil instans yang ada yang dilampirkan pada instans Anda, atau Quick Setup untuk mengizinkan membuat kebijakan IAM dan profil instans dengan izin yang diperlukan untuk konfigurasi yang Anda pilih.

Setelah menentukan semua pilihan konfigurasi Anda, pilih **Buat**.

# Menyiapkan Konfigurasi Manajemen Host Default untuk organisasi yang menggunakan Quick Setup
<a name="quick-setup-default-host-management-configuration"></a>

DenganQuick Setup, alat di AWS Systems Manager, Anda dapat mengaktifkan Konfigurasi Manajemen Host Default untuk semua akun dan Wilayah yang telah ditambahkan ke organisasi Anda AWS Organizations. Hal ini memastikan bahwa SSM Agent instans Amazon Elastic Compute Cloud (EC2) tetap up to date di organisasi, dan instans tersebut dapat terhubung ke Systems Manager.

**Sebelum Anda mulai**  
Pastikan bahwa persyaratan berikut terpenuhi sebelum mengaktifkan pengaturan ini.
+ Versi terbaru SSM Agent sudah diinstal pada semua instans EC2 untuk dikelola di organisasi Anda.
+ Instans EC2 Anda yang akan dikelola menggunakan Layanan Metadata Instans Versi 2 (). IMDSv2
+ Anda masuk ke akun manajemen untuk organisasi Anda, sebagaimana ditentukan dalam AWS Organizations, menggunakan identitas AWS Identity and Access Management (IAM) (pengguna, peran, atau grup) dengan izin administrator.

**Menggunakan peran manajemen instans EC2 default**  
Konfigurasi Manajemen Host default menggunakan pengaturan `default-ec2-instance-management-role` layanan untuk Systems Manager. Ini adalah peran dengan izin yang ingin Anda sediakan untuk semua akun di organisasi Anda untuk memungkinkan komunikasi antara SSM Agent instans dan layanan Systems Manager di cloud.

Jika Anda telah mengatur peran ini menggunakan perintah [https://docs.aws.amazon.com/cli/latest/reference/ssm/update-service-setting.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/update-service-setting.html)CLI, Konfigurasi Manajemen Host Default menggunakan peran itu. Jika Anda belum menetapkan peran ini, Quick Setup akan membuat dan menerapkan peran untuk Anda. 

Untuk memeriksa apakah peran ini telah ditentukan untuk organisasi Anda, gunakan [https://docs.aws.amazon.com/cli/latest/reference/ssm/get-service-setting.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/get-service-setting.html)perintah.

## Aktifkan pembaruan otomatis SSM Agent setiap dua minggu
<a name="dhmc-enable-automatic-updates"></a>

Gunakan prosedur berikut untuk mengaktifkan opsi Konfigurasi Manajemen Host Default untuk seluruh AWS Organizations organisasi Anda.

**Untuk mengaktifkan pembaruan otomatis SSM Agent setiap dua minggu**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Quick Setup**.

1. Pada kartu **Konfigurasi Manajemen Host Default**, pilih **Buat**.
**Tip**  
Jika Anda sudah memiliki satu atau beberapa konfigurasi di akun Anda, pertama-tama pilih tab **Perpustakaan** atau tombol **Buat** di bagian **Konfigurasi** untuk melihat kartu.

1. Di bagian **Opsi konfigurasi**, pilih **Aktifkan pembaruan otomatis SSM Agent setiap dua minggu**.

1. Pilih **Buat**

# Buat perekam AWS Config konfigurasi menggunakan Quick Setup
<a name="quick-setup-config"></a>

DenganQuick Setup, alat di AWS Systems Manager, Anda dapat dengan cepat membuat perekam konfigurasi yang didukung oleh AWS Config. Gunakan perekam konfigurasi untuk mendeteksi perubahan dalam konfigurasi sumber daya Anda dan menangkap perubahan sebagai item konfigurasi. Jika Anda tidak terbiasa AWS Config, sebaiknya pelajari lebih lanjut tentang layanan ini dengan meninjau konten di *Panduan AWS Config Pengembang* sebelum membuat konfigurasi. Quick Setup Untuk informasi lebih lanjut tentang AWS Config, lihat [Apa itu AWS Config?](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) di *Panduan AWS Config Pengembang*.

Secara default, perekam konfigurasi merekam semua sumber daya yang didukung di Wilayah AWS tempat AWS Config berjalan. Anda dapat menyesuaikan konfigurasi sehingga hanya jenis sumber daya yang Anda tentukan yang dicatat. Untuk informasi selengkapnya, lihat [Memilih sumber daya yang AWS Config direkam](https://docs.aws.amazon.com/config/latest/developerguide/select-resources.html) dalam *Panduan AWS Config Pengembang*.

Anda dikenakan biaya penggunaan layanan saat AWS Config mulai merekam konfigurasi. Untuk informasi harga, lihat [Harga AWS Config](https://aws.amazon.com/config/pricing/).

**catatan**  
Jika Anda telah membuat perekam konfigurasi, Quick Setup tidak berhenti merekam atau membuat perubahan apa pun pada jenis sumber daya yang sudah Anda rekam. Jika Anda memilih untuk merekam jenis sumber daya tambahan menggunakanQuick Setup, layanan akan menambahkannya ke grup perekam yang ada. Menghapus jenis Quick Setup **konfigurasi perekaman Config** tidak menghentikan perekam konfigurasi. Perubahan terus dicatat, dan biaya penggunaan layanan berlaku sampai Anda menghentikan perekam konfigurasi. Untuk mempelajari lebih lanjut tentang mengelola perekam konfigurasi, lihat [Mengelola Perekam Konfigurasi](https://docs.aws.amazon.com/config/latest/developerguide/stop-start-recorder.html) di *Panduan Developer AWS Config *.

Untuk mengatur AWS Config perekaman, lakukan tugas-tugas berikut di AWS Systems Manager konsol.

**Untuk mengatur AWS Config rekaman dengan Quick Setup**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Quick Setup**.

1. **Pada kartu **Rekaman Config**, pilih Buat.**
**Tip**  
Jika Anda sudah memiliki satu atau beberapa konfigurasi di akun Anda, pertama-tama pilih tab **Perpustakaan** atau tombol **Buat** di bagian **Konfigurasi** untuk melihat kartu.

1. Di bagian **Opsi konfigurasi**, lakukan hal berikut:

   1. Untuk **Pilih jenis AWS sumber daya yang akan direkam**, tentukan apakah akan merekam semua sumber daya yang didukung atau hanya jenis sumber daya yang Anda pilih.

   1. Untuk **pengaturan Pengiriman, tentukan apakah akan membuat bucket Amazon Simple Storage Service (Amazon S3) baru, atau pilih bucket yang sudah ada untuk mengirim snapshot** konfigurasi.

   1. Untuk **opsi Pemberitahuan**, pilih opsi notifikasi yang Anda inginkan. AWS Config menggunakan Amazon Simple Notification Service (Amazon SNS) untuk memberi tahu Anda tentang peristiwa AWS Config penting yang terkait dengan sumber daya Anda. Jika Anda memilih opsi **Gunakan topik SNS yang ada**, Anda harus memberikan Akun AWS ID dan nama topik Amazon SNS yang ada di akun yang ingin Anda gunakan. Jika Anda menargetkan beberapa Wilayah AWS, nama topik harus identik di setiap Region.

1. Di bagian **Jadwal**, pilih seberapa sering Anda Quick Setup ingin memulihkan perubahan yang dibuat pada sumber daya yang berbeda dari konfigurasi Anda. Opsi **Default** berjalan sekali. **Jika Anda tidak Quick Setup ingin memulihkan perubahan yang dibuat pada sumber daya yang berbeda dari konfigurasi Anda, pilih **Nonaktifkan remediasi** di bawah Kustom.**

1. Di bagian **Target**, pilih salah satu dari berikut ini untuk mengidentifikasi akun dan Wilayah untuk direkam.
**catatan**  
Jika Anda bekerja dalam satu akun, opsi untuk bekerja dengan organisasi dan unit organisasi (OUs) tidak tersedia. Anda dapat memilih apakah akan menerapkan konfigurasi ini ke semua Wilayah AWS di akun Anda atau hanya Wilayah yang Anda pilih.
   + **Seluruh organisasi** — Semua akun dan Wilayah di organisasi Anda.
   + **Kustom** - Hanya OUs dan Wilayah yang Anda tentukan.
     + Di OUs bagian **Target**, pilih OUs tempat Anda ingin mengizinkan perekaman. 
     + Di bagian **Wilayah Target**, pilih Wilayah tempat Anda ingin mengizinkan perekaman. 
   + **Akun saat ini** — Hanya Wilayah yang Anda tentukan di akun yang saat ini Anda masuki yang ditargetkan. Pilih salah satu cara berikut:
     + **Wilayah Saat Ini** — Hanya node terkelola di Wilayah yang dipilih di konsol yang ditargetkan. 
     + **Pilih Wilayah** — Pilih Wilayah individual untuk menerapkan konfigurasi perekaman.

1. Pilih **Buat**.

# Menerapkan paket AWS Config kesesuaian menggunakan Quick Setup
<a name="quick-setup-cpack"></a>

Paket kesesuaian adalah kumpulan AWS Config aturan dan tindakan remediasi. Dengan Quick Setup, Anda dapat melakukan deployment paket kesesuaian sebagai entitas tunggal di sebuah akun dan Wilayah AWS atau di seluruh organisasi di AWS Organizations. Ini membantu Anda mengelola kepatuhan konfigurasi AWS sumber daya dalam skala besar, mulai dari definisi kebijakan hingga audit dan pelaporan agregat, dengan menggunakan kerangka kerja umum dan model pengemasan. 

Untuk menerapkan paket kesesuaian, lakukan tugas-tugas berikut di konsol. AWS Systems Manager Quick Setup

**catatan**  
Anda harus mengaktifkan AWS Config perekaman sebelum menerapkan konfigurasi ini. *Untuk informasi selengkapnya, lihat [Paket kesesuaian di Panduan Pengembang](https://docs.aws.amazon.com/config/latest/developerguide/conformance-packs.html).AWS Config *

**Untuk menyebarkan paket kesesuaian dengan Quick Setup**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Quick Setup**.

1. **Pada kartu **Conformance Packs**, pilih Create.**
**Tip**  
Jika Anda sudah memiliki satu atau beberapa konfigurasi di akun Anda, pertama-tama pilih tab **Perpustakaan** atau tombol **Buat** di bagian **Konfigurasi** untuk melihat kartu.

1. Di bagian **Pilih paket kesesuaian, pilih paket** kesesuaian yang ingin Anda terapkan.

1. Di bagian **Jadwal**, pilih seberapa sering Anda Quick Setup ingin memulihkan perubahan yang dibuat pada sumber daya yang berbeda dari konfigurasi Anda. Opsi **Default** berjalan sekali. Jika Anda tidak Quick Setup ingin memulihkan perubahan yang dibuat pada sumber daya yang berbeda dari konfigurasi Anda, pilih **Dinonaktifkan** di bawah **Kustom**.

1. Di bagian **Target**, pilih apakah akan menerapkan paket kesesuaian ke seluruh organisasi, beberapa Wilayah AWS, atau akun yang saat ini Anda masuki.

   Jika Anda memilih **Seluruh organisasi**, lanjutkan ke langkah 8.

   Jika Anda memilih **Kustom**, lanjutkan ke langkah 7.

1. Di bagian **Wilayah Target**, pilih kotak centang Wilayah yang ingin Anda gunakan paket kesesuaian.

1. Pilih **Buat**.

# Mengonfigurasi penambalan untuk instance di organisasi menggunakan kebijakan tambalan Quick Setup
<a name="quick-setup-patch-manager"></a>

DenganQuick Setup, alat di AWS Systems Manager, Anda dapat membuat kebijakan tambalan yang didukung olehPatch Manager. Kebijakan tambalan menentukan jadwal dan garis dasar yang akan digunakan saat menambal instans Amazon Elastic Compute Cloud (Amazon EC2) dan node terkelola lainnya secara otomatis. Dengan menggunakan konfigurasi kebijakan tambalan tunggal, Anda dapat menentukan penambalan untuk semua akun dalam beberapa akun Wilayah AWS di organisasi Anda, hanya untuk akun dan Wilayah yang Anda pilih, atau untuk satu pasangan Account-region. Untuk informasi selengkapnya tentang kebijakan tambalan, lihat[Konfigurasi kebijakan tambalan di Quick Setup](patch-manager-policies.md).

**Prasyarat**  
Untuk menentukan kebijakan tambalan untuk node yang menggunakanQuick Setup, node harus berupa *node terkelola*. Untuk informasi selengkapnya tentang mengelola node Anda, lihat[Menyiapkan konsol terpadu Systems Manager untuk organisasi](systems-manager-setting-up-organizations.md).

**penting**  
**Metode pemindaian kepatuhan patch** — Systems Manager mendukung beberapa metode untuk memindai node terkelola untuk kepatuhan patch. Jika Anda menerapkan lebih dari satu metode ini sekaligus, informasi kepatuhan patch yang Anda lihat selalu merupakan hasil dari pemindaian terbaru. Hasil dari pemindaian sebelumnya ditimpa. Jika metode pemindaian menggunakan baseline patch yang berbeda, dengan aturan persetujuan yang berbeda, informasi kepatuhan patch dapat berubah secara tak terduga. Untuk informasi selengkapnya, lihat [Mengidentifikasi eksekusi yang membuat data kepatuhan patch](patch-manager-compliance-data-overwrites.md).  
**Status kepatuhan asosiasi dan kebijakan tambalan** — Status patching untuk node terkelola yang berada di bawah kebijakan Quick Setup tambalan cocok dengan status eksekusi State Manager asosiasi untuk node tersebut. Jika status eksekusi asosiasi adalah`Compliant`, status patching untuk node terkelola juga ditandai`Compliant`. Jika status eksekusi asosiasi adalah`Non-Compliant`, status patching untuk node terkelola juga ditandai`Non-Compliant`. 

## Wilayah yang Didukung untuk konfigurasi kebijakan tambalan
<a name="patch-policies-supported-regions"></a>

Konfigurasi kebijakan tambalan di Quick Setup saat ini didukung di Wilayah berikut:
+ AS Timur (Ohio) (us-east-2)
+ AS Timur (Virginia Utara) (us-east-1)
+ AS Barat (California Utara) (us-west-1)
+ AS Barat (Oregon) (us-west-2)
+ Asia Pacific (Mumbai) (ap-south-1)
+ Asia Pacific (Seoul) (ap-northeast-2)
+ Asia Pasifik (Singapura) (ap-southeast-1)
+ Asia Pacific (Sydney) (ap-southeast-2)
+ Asia Pacific (Tokyo) (ap-northeast-1)
+ Kanada (Pusat) (ca-central-1)
+ Eropa (Frankfurt) (eu-central-1)
+ Eropa (Irlandia) (eu-west-1)
+ Eropa (London) (eu-west-2)
+ Eropa (Paris) (eu-west-3)
+ Eropa (Stockholm) (eu-north-1)
+ Amerika Selatan (Sao Paulo) (sa-east-1)

## Izin untuk bucket S3 kebijakan patch
<a name="patch-policy-s3-bucket-permissions"></a>

Saat Anda membuat kebijakan tambalan, Quick Setup buat bucket Amazon S3 yang berisi file bernama. `baseline_overrides.json` File ini menyimpan informasi tentang garis dasar tambalan yang Anda tentukan untuk kebijakan tambalan Anda.

Bucket S3 dinamai dalam format`aws-quicksetup-patchpolicy-account-id-quick-setup-configuration-id`. 

Misalnya: `aws-quicksetup-patchpolicy-123456789012-abcde`

Jika Anda membuat kebijakan tambalan untuk organisasi, bucket akan dibuat di akun manajemen organisasi Anda. 

Ada dua kasus penggunaan ketika Anda harus memberikan izin kepada AWS sumber daya lain untuk mengakses kebijakan bucket S3 menggunakan AWS Identity and Access Management (IAM) ini:
+ [Kasus 1: Gunakan profil instans atau peran layanan Anda sendiri dengan node terkelola, bukan yang disediakan oleh Quick Setup](#patch-policy-instance-profile-service-role)
+ [Kasus 2: Gunakan titik akhir VPC untuk terhubung ke Systems Manager](#patch-policy-vpc)

Kebijakan izin yang Anda perlukan dalam kedua kasus terletak di bagian di bawah ini,[Izin kebijakan untuk bucket Quick Setup S3](#patch-policy-bucket-permissions).

### Kasus 1: Gunakan profil instans atau peran layanan Anda sendiri dengan node terkelola, bukan yang disediakan oleh Quick Setup
<a name="patch-policy-instance-profile-service-role"></a>

Konfigurasi kebijakan tambalan menyertakan opsi untuk **Menambahkan kebijakan IAM yang diperlukan ke profil instans yang ada yang dilampirkan ke instance Anda**. 

Jika Anda tidak memilih opsi ini tetapi Quick Setup ingin menambal node terkelola menggunakan kebijakan tambalan ini, Anda harus memastikan bahwa berikut ini diterapkan:
+ Kebijakan terkelola IAM `AmazonSSMManagedInstanceCore` harus dilampirkan ke [profil instans IAM](setup-instance-permissions.md) atau [peran layanan IAM](hybrid-multicloud-service-role.md) yang digunakan untuk memberikan izin Systems Manager ke node terkelola Anda.
+ Anda harus menambahkan izin untuk mengakses keranjang kebijakan tambalan sebagai kebijakan inline ke profil instans IAM atau peran layanan IAM. Anda dapat memberikan akses wildcard ke semua `aws-quicksetup-patchpolicy` bucket atau hanya bucket khusus yang dibuat untuk organisasi atau akun Anda, seperti yang ditunjukkan pada contoh kode sebelumnya.
+ Anda harus menandai profil instans IAM atau peran layanan IAM Anda dengan pasangan nilai kunci berikut.

  `Key: QSConfigId-quick-setup-configuration-id, Value: quick-setup-configuration-id`

  *quick-setup-configuration-id*mewakili nilai parameter yang diterapkan ke AWS CloudFormation tumpukan yang digunakan dalam membuat konfigurasi kebijakan tambalan Anda. Untuk mengambil ID ini, lakukan hal berikut:

  1. Buka CloudFormation konsol di [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

  1. Pilih nama tumpukan yang digunakan untuk membuat kebijakan tambalan Anda. Namanya dalam format seperti`StackSet-AWS-QuickSetup-PatchPolicy-LA-q4bkg-52cd2f06-d0f9-499e-9818-d887cEXAMPLE`.

  1. Pilih tab **Parameter**.

  1. Dalam daftar **Parameter**, di kolom **Kunci**, cari **QSConfigurationID** kunci. Di kolom **Nilai** untuk barisnya, cari ID konfigurasi, seperti`abcde`.

     Dalam contoh ini, agar tag diterapkan ke profil instans atau peran layanan Anda, kuncinya adalah`QSConfigId-abcde`, dan nilainya adalah`abcde`.

Untuk informasi tentang menambahkan tag ke peran IAM, lihat [Menandai peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags_roles.html#id_tags_roles_procs-console) dan [Mengelola tag pada profil instans (AWS CLI atau AWS API) di Panduan Pengguna](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags_instance-profiles.html#id_tags_instance-profile_procs-cli-api) *IAM*.

### Kasus 2: Gunakan titik akhir VPC untuk terhubung ke Systems Manager
<a name="patch-policy-vpc"></a>

Jika Anda menggunakan titik akhir VPC untuk terhubung ke Systems Manager, kebijakan titik akhir VPC Anda untuk S3 harus mengizinkan akses ke bucket S3 kebijakan patch Anda. Quick Setup

*Untuk informasi tentang menambahkan izin ke kebijakan titik akhir VPC untuk S3, lihat [Mengontrol akses dari titik akhir VPC dengan kebijakan bucket di Panduan Pengguna](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies-vpc-endpoint.html) Amazon S3.*

### Izin kebijakan untuk bucket Quick Setup S3
<a name="patch-policy-bucket-permissions"></a>

Anda dapat memberikan akses wildcard ke semua `aws-quicksetup-patchpolicy` bucket atau hanya bucket khusus yang dibuat untuk organisasi atau akun Anda. Untuk memberikan izin yang diperlukan untuk dua kasus yang dijelaskan di bawah ini, gunakan salah satu format.

------
#### [ All patch policy buckets ]

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AccessToAllPatchPolicyRelatedBuckets",
      "Effect": "Allow",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::aws-quicksetup-patchpolicy-*"
    }
  ]
}
```

------

------
#### [ Specific patch policy bucket ]

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AccessToMyPatchPolicyRelatedBucket",
      "Effect": "Allow",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::aws-quicksetup-patchpolicy-111122223333-quick-setup-configuration-id"
    }
  ]
}
```

------

**catatan**  
Setelah konfigurasi kebijakan tambalan dibuat, Anda dapat menemukan nama lengkap bucket Anda di konsol S3. Misalnya: `aws-quicksetup-patchpolicy-123456789012-abcde`

------

## Baseline patch acak IDs dalam operasi kebijakan tambalan
<a name="qs-patch-baselines-and-compliance"></a>

Operasi patching untuk kebijakan patch menggunakan `BaselineOverride` parameter dalam dokumen `AWS-RunPatchBaseline` SSM Command. 

Saat Anda menggunakan `AWS-RunPatchBaseline` untuk menambal *di luar* kebijakan tambalan, Anda dapat menggunakan `BaselineOverride` untuk menentukan daftar garis dasar tambalan yang akan digunakan selama operasi yang berbeda dari default yang ditentukan. Anda membuat daftar ini dalam file bernama `baseline_overrides.json` dan menambahkannya secara manual ke bucket Amazon S3 yang Anda miliki, seperti yang dijelaskan di. [Menggunakan BaselineOverride parameter](patch-manager-baselineoverride-parameter.md)

Namun, untuk menambal operasi berdasarkan kebijakan tambalan, Systems Manager secara otomatis membuat bucket S3 dan menambahkan `baseline_overrides.json` file ke dalamnya. Kemudian, setiap kali Quick Setup menjalankan operasi patching (menggunakan Run Command alat, sistem menghasilkan ID acak untuk setiap baseline patch. ID ini berbeda untuk setiap operasi patching kebijakan patch, dan baseline patch yang diwakilinya tidak disimpan atau dapat diakses oleh Anda di akun Anda. 

Akibatnya, Anda tidak akan melihat ID dari baseline patch yang dipilih dalam konfigurasi Anda dalam menambal log. Ini berlaku untuk baseline patch AWS terkelola dan baseline patch kustom yang mungkin telah Anda pilih. ID dasar yang dilaporkan dalam log adalah ID yang dihasilkan untuk operasi penambalan tertentu.

Selain itu, jika Anda mencoba melihat detail Patch Manager tentang baseline patch yang dihasilkan dengan ID acak, sistem melaporkan bahwa baseline patch tidak ada. Ini adalah perilaku yang diharapkan dan dapat diabaikan.

## Membuat kebijakan tambalan
<a name="create-patch-policy"></a>

Untuk membuat kebijakan tambalan, lakukan tugas berikut di konsol Systems Manager.

**Untuk membuat kebijakan tambalan dengan Quick Setup**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

   Jika Anda menyiapkan penambalan untuk organisasi, pastikan Anda masuk ke akun manajemen untuk organisasi tersebut. Anda tidak dapat menyiapkan kebijakan menggunakan akun administrator yang didelegasikan atau akun anggota.

1. Di panel navigasi, pilih **Quick Setup**.

1. Pada kartu **Patch Manager**, pilih **Buat**.
**Tip**  
Jika Anda sudah memiliki satu atau beberapa konfigurasi di akun Anda, pertama-tama pilih tab **Perpustakaan** atau tombol **Buat** di bagian **Konfigurasi** untuk melihat kartu.

1. Untuk **nama Konfigurasi**, masukkan nama untuk membantu mengidentifikasi kebijakan tambalan.

1. Di bagian **Pemindaian dan instalasi**, di bawah **operasi Patch**, pilih apakah kebijakan tambalan akan **Memindai** target yang ditentukan atau **Pindai dan instal** tambalan pada target yang ditentukan.

1. Di bawah **Jadwal pemindaian**, pilih **Gunakan default yang disarankan** atau Jadwal pemindaian **khusus**. Jadwal pemindaian default akan memindai target Anda setiap hari pada pukul 1:00 UTC.
   + Jika Anda memilih **Jadwal pemindaian khusus**, pilih **Frekuensi pemindaian**.
   + Jika Anda memilih **Harian**, masukkan waktu, di UTC, yang ingin Anda pindai target Anda. 
   + Jika Anda memilih Ekspresi **CRON Kustom, masukkan jadwal sebagai ekspresi** **CRON**. Untuk informasi selengkapnya tentang memformat ekspresi CRON untuk Systems Manager, lihat. [Referensi: Ekspresi cron dan rate untuk Systems Manager](reference-cron-and-rate-expressions.md)

     Juga, pilih **Tunggu untuk memindai target hingga interval CRON pertama**. Secara default, Patch Manager segera memindai node saat mereka menjadi target.

1. Jika Anda memilih **Pindai dan menginstal**, pilih **jadwal Instalasi** yang akan digunakan saat menginstal tambalan ke target yang ditentukan. Jika Anda memilih **Gunakan default yang direkomendasikan**, Patch Manager akan menginstal patch mingguan pada pukul 2:00 UTC pada hari Minggu.
   + Jika Anda memilih **Jadwal pemasangan kustom**, pilih **Frekuensi Instalasi**.
   + Jika Anda memilih **Harian**, masukkan waktu, di UTC, yang ingin Anda instal pembaruan pada target Anda.
   + Jika Anda memilih **ekspresi CRON Kustom**, masukkan jadwal sebagai ekspresi **CRON**. Untuk informasi selengkapnya tentang memformat ekspresi CRON untuk Systems Manager, lihat. [Referensi: Ekspresi cron dan rate untuk Systems Manager](reference-cron-and-rate-expressions.md)

     Juga, hapus **Tunggu untuk menginstal pembaruan hingga interval CRON pertama** untuk segera menginstal pembaruan pada node saat menjadi target. Secara default, Patch Manager menunggu hingga interval CRON pertama untuk menginstal pembaruan.
   + Pilih **Reboot jika diperlukan** untuk me-reboot node setelah instalasi patch. Reboot setelah instalasi dianjurkan tetapi dapat menyebabkan masalah ketersediaan.

1. Di bagian **dasar Patch**, pilih garis dasar patch yang akan digunakan saat memindai dan memperbarui target Anda. 

   Secara default, Patch Manager menggunakan baseline patch yang telah ditentukan. Untuk informasi selengkapnya, lihat [Garis dasar yang telah ditentukan](patch-manager-predefined-and-custom-patch-baselines.md#patch-manager-baselines-pre-defined).

   Jika Anda memilih **Custom patch baseline**, ubah baseline patch yang dipilih untuk sistem operasi yang Anda tidak ingin menggunakan baseline patch yang telah ditentukan. AWS 
**catatan**  
Jika Anda menggunakan titik akhir VPC untuk terhubung ke Systems Manager, pastikan kebijakan titik akhir VPC Anda untuk S3 memungkinkan akses ke bucket S3 ini. Untuk informasi selengkapnya, lihat [Izin untuk bucket S3 kebijakan patch](#patch-policy-s3-bucket-permissions). 
**penting**  
Jika Anda menggunakan [konfigurasi kebijakan tambalan](patch-manager-policies.md)Quick Setup, pembaruan yang Anda buat ke baseline patch kustom disinkronkan dengan Quick Setup satu jam sekali.   
Jika baseline patch kustom yang direferensikan dalam kebijakan tambalan dihapus, spanduk akan ditampilkan di halaman **Detail Quick Setup konfigurasi** untuk kebijakan tambalan Anda. Spanduk memberi tahu Anda bahwa kebijakan tambalan mereferensikan baseline tambalan yang tidak ada lagi, dan operasi penambalan berikutnya akan gagal. Dalam hal ini, kembali ke halaman Quick Setup **Konfigurasi**, pilih Patch Manager konfigurasi, dan pilih **Tindakan**, **Edit konfigurasi**. Nama dasar patch yang dihapus disorot, dan Anda harus memilih baseline patch baru untuk sistem operasi yang terpengaruh.

1. (Opsional) Di bagian **penyimpanan log Patching**, pilih **Tulis output ke bucket S3** untuk menyimpan log operasi penambalan di bucket Amazon S3. 
**catatan**  
Jika Anda menyiapkan kebijakan tambalan untuk organisasi, akun manajemen untuk organisasi Anda harus memiliki setidaknya izin hanya-baca untuk bucket ini. Semua unit organisasi yang termasuk dalam kebijakan harus memiliki akses tulis ke bucket. Untuk informasi tentang pemberian akses bucket ke akun yang berbeda, lihat [Contoh 2: Pemilik bucket yang memberikan izin bucket lintas akun di Panduan Pengguna Layanan](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-walkthroughs-managing-access-example2.html) *Penyimpanan Sederhana Amazon*.

1. Pilih **Browse S3** untuk memilih bucket tempat Anda ingin menyimpan keluaran log tambalan. Akun manajemen harus memiliki akses baca ke bucket ini. Semua akun dan target non-manajemen yang dikonfigurasi di bagian **Target** harus memiliki akses tulis ke bucket S3 yang disediakan untuk pencatatan.

1. Di bagian **Target**, pilih salah satu dari berikut ini untuk mengidentifikasi akun dan Wilayah untuk operasi kebijakan tambalan ini.
**catatan**  
Jika Anda bekerja dalam satu akun, opsi untuk bekerja dengan organisasi dan unit organisasi (OUs) tidak tersedia. Anda dapat memilih apakah akan menerapkan konfigurasi ini ke semua Wilayah AWS di akun Anda atau hanya Wilayah yang Anda pilih.  
Jika sebelumnya Anda menetapkan Wilayah Beranda untuk akun Anda dan belum melakukan onboard ke pengalaman Quick Setup konsol baru, Anda tidak dapat mengecualikan Wilayah tersebut dari konfigurasi **Target**.
   + **Seluruh organisasi** — Semua akun dan Wilayah di organisasi Anda.
   + **Kustom** - Hanya OUs dan Wilayah yang Anda tentukan.
     + Di OUs bagian **Target**, pilih OUs tempat Anda ingin mengatur kebijakan tambalan. 
     + Di bagian **Wilayah Target**, pilih Wilayah tempat Anda ingin menerapkan kebijakan tambalan. 
   + **Akun saat ini** — Hanya Wilayah yang Anda tentukan di akun yang saat ini Anda masuki yang ditargetkan. Pilih salah satu cara berikut:
     + **Wilayah Saat Ini** — Hanya node terkelola di Wilayah yang dipilih di konsol yang ditargetkan. 
     + **Pilih Wilayah** — Pilih masing-masing Wilayah untuk menerapkan kebijakan tambalan.

1. Untuk **Pilih bagaimana Anda ingin menargetkan instance**, pilih salah satu dari berikut ini untuk mengidentifikasi node yang akan ditambal: 
   + **Semua node terkelola** - Semua node terkelola di terpilih OUs dan Wilayah.
   + **Tentukan grup sumber daya** — Pilih nama grup sumber daya dari daftar untuk menargetkan sumber daya terkait.
**catatan**  
Saat ini, memilih grup sumber daya hanya didukung untuk konfigurasi akun tunggal. Untuk menambal sumber daya di beberapa akun, pilih opsi penargetan yang berbeda.
   + **Tentukan tag node** — Hanya node yang ditandai dengan pasangan nilai kunci yang Anda tentukan yang ditambal di semua akun dan Wilayah yang telah Anda targetkan. 
   + **Manual** — Pilih node terkelola dari semua akun dan Wilayah yang ditentukan secara manual dari daftar.
**catatan**  
Opsi ini saat ini hanya mendukung instans Amazon EC2. Anda dapat menambahkan maksimal 25 instance secara manual dalam konfigurasi kebijakan tambalan.

1. Di bagian **Kontrol tarif**, lakukan hal berikut:
   + Untuk **Konkurensi**, masukkan sejumlah atau persentase node untuk menjalankan kebijakan tambalan secara bersamaan.
   + Untuk **ambang kesalahan**, masukkan jumlah atau persentase node yang dapat mengalami kesalahan sebelum kebijakan patch gagal.

1. (Opsional) Pilih kotak centang **Tambahkan kebijakan IAM yang diperlukan ke profil instans yang ada yang dilampirkan ke instance Anda**.

   Pilihan ini menerapkan kebijakan IAM yang dibuat oleh Quick Setup konfigurasi ini ke node yang sudah memiliki profil instance terpasang (instans EC2) atau peran layanan yang dilampirkan (node yang diaktifkan hibrida). Kami merekomendasikan pilihan ini ketika node terkelola Anda sudah memiliki profil instans atau peran layanan yang dilampirkan, tetapi tidak berisi semua izin yang diperlukan untuk bekerja dengan Systems Manager.

   Pilihan Anda di sini diterapkan ke node terkelola yang dibuat nanti di akun dan Wilayah tempat konfigurasi kebijakan tambalan ini berlaku.
**penting**  
Jika Anda tidak memilih kotak centang ini tetapi Quick Setup ingin menambal node terkelola menggunakan kebijakan tambalan ini, Anda harus melakukan hal berikut:  
Tambahkan izin ke [profil instans IAM](setup-instance-permissions.md) atau [peran layanan IAM](hybrid-multicloud-service-role.md) Anda untuk mengakses bucket S3 yang dibuat untuk kebijakan tambalan Anda  
Tandai profil instans IAM atau peran layanan IAM Anda dengan pasangan nilai kunci tertentu.  
Untuk informasi, lihat [Kasus 1: Gunakan profil instans atau peran layanan Anda sendiri dengan node terkelola, bukan yang disediakan oleh Quick Setup](#patch-policy-instance-profile-service-role).

1. Pilih **Buat**.

   Untuk meninjau status penambalan setelah kebijakan tambalan dibuat, Anda dapat mengakses konfigurasi dari [https://console.aws.amazon.com/systems-manager/quick-setup](https://console.aws.amazon.com/systems-manager/quick-setup)halaman.

# Mengatur DevOps Guru menggunakan Quick Setup
<a name="quick-setup-devops"></a>

Anda dapat dengan cepat mengkonfigurasi opsi DevOps Guru dengan menggunakan Quick Setup. Amazon DevOps Guru adalah layanan pembelajaran mesin (ML) yang memudahkan peningkatan kinerja dan ketersediaan operasional aplikasi. DevOpsGuru mendeteksi perilaku yang berbeda dari pola operasi normal sehingga Anda dapat mengidentifikasi masalah operasional jauh sebelum berdampak pada pelanggan Anda. DevOpsGuru secara otomatis menyerap data operasional dari AWS aplikasi Anda dan menyediakan satu dasbor untuk memvisualisasikan masalah dalam data operasional Anda. Anda dapat memulai dengan DevOps Guru untuk meningkatkan ketersediaan dan keandalan aplikasi tanpa penyiapan manual atau keahlian pembelajaran mesin.

Mengkonfigurasi DevOps Guru dengan Quick Setup tersedia dalam hal berikut Wilayah AWS:
+ AS Timur (N. Virginia)
+ AS Timur (Ohio)
+ AS Barat (Oregon)
+ Eropa (Frankfurt)
+ Eropa (Irlandia)
+ Eropa (Stockholm)
+ Asia Pasifik (Singapura)
+ Asia Pasifik (Sydney)
+ Asia Pasifik (Tokyo)

Untuk informasi harga, lihat [harga Amazon DevOps Guru](https://aws.amazon.com/devops-guru/pricing/).

Untuk mengatur DevOps Guru, lakukan tugas-tugas berikut di AWS Systems Manager Quick Setup konsol.

**Untuk mengatur DevOps Guru dengan Quick Setup**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Quick Setup**.

1. Pada kartu **DevOps Guru**, pilih **Buat**.
**Tip**  
Jika Anda sudah memiliki satu atau beberapa konfigurasi di akun Anda, pertama-tama pilih tab **Perpustakaan** atau tombol **Buat** di bagian **Konfigurasi** untuk melihat kartu.

1. Di bagian **Opsi konfigurasi**, pilih jenis AWS sumber daya yang ingin Anda analisis dan preferensi notifikasi Anda.

   Jika Anda tidak memilih opsi **Analisis semua AWS sumber daya di semua akun di organisasi saya**, Anda dapat memilih AWS sumber daya untuk dianalisis nanti di konsol DevOps Guru. DevOpsGuru menganalisis berbagai jenis AWS sumber daya (seperti bucket Amazon Simple Storage Service (Amazon S3) dan instans Amazon Elastic Compute Cloud ( EC2Amazon)), yang dikategorikan ke dalam dua grup harga. Anda membayar jam AWS sumber daya yang dianalisis, untuk setiap sumber daya aktif. Sumber daya hanya aktif jika menghasilkan metrik, peristiwa, atau entri log dalam waktu satu jam. Tarif yang Anda kenakan untuk jenis AWS sumber daya tertentu tergantung pada grup harga.

   Jika Anda memilih opsi **Aktifkan notifikasi SNS**, topik Amazon Simple Notification Service (Amazon SNS) dibuat Akun AWS di masing-masing unit organisasi (OUs) yang Anda targetkan dengan konfigurasi Anda. DevOpsGuru menggunakan topik untuk memberi tahu Anda tentang peristiwa DevOps Guru penting, seperti penciptaan wawasan baru. Jika Anda tidak mengaktifkan opsi ini, Anda dapat menambahkan topik nanti di konsol DevOps Guru.

   Jika Anda memilih AWS Systems Manager OpsItems opsi **Aktifkan**, item kerja operasional (OpsItems) akan dibuat untuk EventBridge acara Amazon terkait dan CloudWatch alarm Amazon.

1. Di bagian **Jadwal**, pilih seberapa sering Anda inginkan Quick Setup untuk memulihkan perubahan yang dibuat pada sumber daya yang berbeda dari konfigurasi Anda. Opsi **Default** berjalan sekali. Jika Anda tidak mau Quick Setup untuk memulihkan perubahan yang dibuat pada sumber daya yang berbeda dari konfigurasi Anda, pilih **Dinonaktifkan** di bawah **Kustom**.

1. Di bagian **Target**, pilih apakah akan mengizinkan DevOps Guru menganalisis sumber daya di beberapa unit organisasi (OUs), atau akun yang saat ini Anda masuki.

   Jika Anda memilih **Kustom**, lanjutkan ke langkah 8.

   Jika Anda memilih **Akun saat ini**, lanjutkan ke langkah 9.

1. Di bagian **Target OUs** **dan Wilayah Target**, pilih kotak centang OUs dan Wilayah tempat Anda ingin menggunakan DevOps Guru.

1. Pilih Wilayah tempat Anda ingin menggunakan DevOps Guru di akun saat ini.

1. Pilih **Buat**.

# Menyebarkan Distributor paket menggunakan Quick Setup
<a name="quick-setup-distributor"></a>

Distributoradalah alat di AWS Systems Manager. DistributorPaket adalah kumpulan perangkat lunak atau aset yang dapat diinstal yang dapat digunakan sebagai satu entitas. DenganQuick Setup, Anda dapat menerapkan Distributor paket di Akun AWS dan Wilayah AWS atau di seluruh organisasi di AWS Organizations. Saat ini, hanya agen EC2 Launch v2, paket utilitas Amazon Elastic File System (Amazon CloudWatch EFS) dan agen Amazon yang Quick Setup dapat digunakan. Untuk informasi selengkapnya tentang Distributor, lihat [AWS Systems Manager Distributor](distributor.md).

Untuk menyebarkan Distributor paket, lakukan tugas-tugas berikut di AWS Systems Manager Quick Setup konsol.

**Untuk menyebarkan Distributor paket dengan Quick Setup**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Quick Setup**.

1. Pada kartu **Distributor**, pilih **Buat**.
**Tip**  
Jika Anda sudah memiliki satu atau beberapa konfigurasi di akun Anda, pertama-tama pilih tab **Perpustakaan** atau tombol **Buat** di bagian **Konfigurasi** untuk melihat kartu.

1. Di bagian **Opsi konfigurasi**, pilih paket yang ingin Anda deploy.

1. Di bagian **Target**, pilih apakah akan menyebarkan paket ke seluruh organisasi, beberapa unit organisasi (OUs), atau akun yang saat ini Anda masuki.

   Jika Anda memilih **Seluruh organisasi**, lanjutkan ke langkah 8.

   Jika Anda memilih **Kustom**, lanjutkan ke langkah 7.

1. Di OUs bagian **Target**, pilih kotak centang OUs dan Wilayah yang ingin Anda gunakan paket.

1. Pilih **Buat**.

# Hentikan dan mulai instans EC2 secara otomatis sesuai jadwal menggunakan Quick Setup
<a name="quick-setup-scheduler"></a>

Dengan alat masuk Quick Setup AWS Systems Manager, Anda dapat mengonfigurasi Resource Scheduler untuk mengotomatiskan awal dan penghentian instans Amazon Elastic Compute Cloud (Amazon EC2).

Quick SetupKonfigurasi ini membantu Anda mengurangi biaya operasional dengan memulai dan menghentikan instans sesuai dengan jadwal yang Anda tentukan. Alat ini membantu Anda menghindari biaya yang tidak perlu untuk menjalankan instance saat tidak diperlukan. 

Misalnya, saat ini Anda mungkin membiarkan instans Anda berjalan terus-menerus, meskipun hanya digunakan 10 jam sehari, 5 hari seminggu. Sebagai gantinya, Anda dapat menjadwalkan instans Anda untuk berhenti setiap hari setelah jam kerja. Akibatnya, akan ada penghematan 70 persen untuk instans tersebut karena waktu berjalan berkurang dari 168 jam menjadi 50 jam. Tidak ada biaya untuk menggunakan Quick Setup. Namun, biaya dapat dikeluarkan oleh sumber daya yang Anda atur dan batas penggunaan tanpa biaya untuk layanan yang digunakan untuk mengatur konfigurasi Anda.

Menggunakan Resource Scheduler, Anda dapat memilih untuk secara otomatis menghentikan dan memulai instance di beberapa Wilayah AWS dan Akun AWS sesuai dengan jadwal yang Anda tentukan. Quick SetupKonfigurasi menargetkan instans Amazon EC2 menggunakan kunci tag dan nilai yang Anda tentukan. Hanya instance dengan tag yang cocok dengan nilai yang Anda tentukan dalam konfigurasi yang dihentikan atau dimulai oleh Resource Scheduler. Perhatikan bahwa jika volume Amazon EBS yang dilampirkan ke instance dienkripsi, Anda harus menambahkan izin yang diperlukan untuk AWS KMS kunci ke peran IAM untuk Resource Scheduler untuk memulai instance.

**Contoh maksimum per konfigurasi**  
Konfigurasi individual mendukung penjadwalan hingga 5.000 instans per Wilayah. Jika kasus Anda memerlukan lebih dari 5.000 instans untuk dijadwalkan di Wilayah tertentu, Anda harus membuat beberapa konfigurasi. Tandai instans Anda sehingga setiap konfigurasi mengelola hingga 5.000 instance. Saat membuat beberapa Quick Setup konfigurasi Resource Scheduler, Anda harus menentukan nilai kunci tag yang berbeda. Misalnya, satu konfigurasi dapat menggunakan kunci tag `Environment` dengan nilai`Production`, sementara yang lain menggunakan `Environment` dan`Development`.

**Perilaku penjadwalan**  
Poin-poin berikut menjelaskan perilaku tertentu dari konfigurasi jadwal:
+ Resource Scheduler memulai instance yang ditandai hanya jika mereka berada dalam status. `Stopped` Demikian pula, contoh hanya dihentikan jika mereka berada di `running` negara bagian. Resource Scheduler beroperasi pada model yang digerakkan oleh peristiwa dan hanya memulai atau menghentikan instance pada waktu yang Anda tentukan. Misalnya, Anda membuat jadwal yang memulai instance pada pukul 9 pagi. Resource Scheduler memulai semua instance yang terkait dengan tag yang Anda tentukan yang berada dalam `Stopped` status pada pukul 9 pagi. Jika instance dihentikan secara manual di lain waktu, Resource Scheduler tidak akan memulainya lagi untuk mempertahankan status. `Running` Demikian pula, jika sebuah instance dimulai secara manual setelah dihentikan sesuai dengan jadwal Anda, Resource Scheduler tidak akan menghentikan instance lagi.
+ Jika Anda membuat jadwal dengan waktu mulai yang lebih lambat dalam 24 jam sehari dari waktu berhenti, Resource Scheduler mengasumsikan instans Anda akan berjalan dalam semalam. Misalnya, Anda membuat jadwal yang memulai instance pada pukul 9 malam, dan menghentikan instance pada pukul 7 pagi. Resource Scheduler memulai semua instance yang terkait dengan tag yang Anda tentukan yang berada dalam `Stopped` status pada pukul 9 malam, dan menghentikannya pada pukul 7 pagi keesokan harinya. Untuk jadwal semalam, waktu mulai berlaku untuk hari-hari yang Anda pilih untuk jadwal Anda. Namun, waktu berhenti berlaku untuk hari berikutnya dalam jadwal Anda.
+ Saat Anda membuat konfigurasi jadwal, status saat ini dari instans Anda mungkin diubah agar sesuai dengan persyaratan jadwal.

  *Misalnya, katakan bahwa hari ini adalah hari Rabu, dan Anda menentukan jadwal untuk instans terkelola Anda mulai pukul 9 pagi dan berhenti pada jam 5 sore pada hari Selasa dan Kamis saja.* Karena waktu Anda saat ini berada di luar jam yang ditentukan untuk instance yang akan berjalan, mereka akan dihentikan setelah konfigurasi dibuat. Contoh tidak akan berjalan lagi sampai jam yang ditentukan berikutnya, jam 9 pagi pada hari Kamis. 

  Jika instans Anda saat ini dalam `Stopped` keadaan, dan Anda menentukan jadwal di mana mereka akan berjalan pada waktu saat ini, Resource Scheduler memulainya setelah konfigurasi dibuat.

Jika Anda menghapus konfigurasi Anda, instance tidak lagi dihentikan dan dimulai sesuai dengan jadwal yang ditentukan sebelumnya. Dalam kasus yang jarang terjadi, instance mungkin tidak berhasil dihentikan atau dimulai karena kegagalan operasi API.

Untuk mengatur penjadwalan instans Amazon EC2, lakukan tugas berikut di konsol. AWS Systems Manager Quick Setup

**Untuk mengatur penjadwalan instans dengan Quick Setup**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Quick Setup**.

1. Pada kartu **Resource Scheduler**, pilih **Create**.
**Tip**  
Jika Anda sudah memiliki satu atau beberapa konfigurasi di akun Anda, pertama-tama pilih tab **Perpustakaan** atau tombol **Buat** di bagian **Konfigurasi** untuk melihat kartu.

1. Di bagian **tag Instance**, tentukan kunci tag dan nilai yang diterapkan pada instance yang ingin Anda kaitkan dengan jadwal Anda.

1. Di bagian **Opsi jadwal**, tentukan zona waktu, hari, dan waktu yang ingin Anda mulai dan hentikan instance Anda.

1. Di bagian **Target**, pilih apakah akan mengatur penjadwalan untuk grup **kustom** unit organisasi (OUs), atau **akun saat ini** yang Anda masuki:
   + **Kustom** - Di OUs bagian **Target**, pilih OUs tempat Anda ingin mengatur penjadwalan. Selanjutnya, di bagian **Wilayah Target**, pilih Wilayah tempat Anda ingin mengatur penjadwalan.
   + **Akun saat ini** — Pilih **Wilayah Saat Ini** atau **Pilih Wilayah**. Jika Anda memilih **Pilih Wilayah**, pilih **Wilayah Target** tempat Anda ingin mengatur penjadwalan.

1. Verifikasi informasi jadwal di bagian **Ringkasan**.

1. Pilih **Buat**.

# Konfigurasikan Penjelajah Sumber Daya AWS menggunakan Quick Setup
<a name="Resource-explorer-quick-setup"></a>

DenganQuick Setup, alat masuk AWS Systems Manager, Anda dapat dengan cepat mengonfigurasi Penjelajah Sumber Daya AWS untuk mencari dan menemukan sumber daya di Akun AWS atau di seluruh AWS organisasi. Anda dapat mencari sumber daya Anda menggunakan metadata seperti nama, tag, dan. IDs Penjelajah Sumber Daya AWS memberikan respons cepat untuk permintaan pencarian Anda dengan menggunakan *indeks*. Resource Explorer membuat dan memelihara indeks menggunakan berbagai sumber data untuk mengumpulkan informasi tentang sumber daya di Anda Akun AWS. 

Quick Setupuntuk Resource Explorer mengotomatiskan proses konfigurasi indeks. Untuk informasi lebih lanjut tentang Penjelajah Sumber Daya AWS, lihat [Apa itu Penjelajah Sumber Daya AWS?](https://docs.aws.amazon.com/resource-explorer/latest/userguide/welcome.html) dalam Penjelajah Sumber Daya AWS User Guide.

SelamaQuick Setup, Resource Explorer melakukan hal berikut: 
+ Membuat indeks di setiap Wilayah AWS di Anda Akun AWS.
+ Memperbarui indeks di Wilayah yang Anda tentukan sebagai indeks agregator untuk akun tersebut.
+ Membuat tampilan default di Region indeks agregator. Tampilan ini tidak memiliki filter sehingga mengembalikan semua sumber daya yang ditemukan dalam indeks.

**Izin minimum**

Untuk melakukan langkah-langkah dalam prosedur berikut, Anda harus memiliki izin berikut:
+ **Tindakan**: `resource-explorer-2:*` — **Sumber daya**: tidak ada sumber daya tertentu (`*`)
+ **Tindakan**: `iam:CreateServiceLinkedRole` — **Sumber daya**: tidak ada sumber daya tertentu (`*`)

**Untuk mengkonfigurasi Resource Explorer**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Quick Setup**.

1. Pada kartu **Resource Explorer**, pilih **Buat**.

1. Di bagian **Wilayah Indeks Agregator**, pilih Wilayah mana yang ingin Anda isi indeks **agregator**. Anda harus memilih Wilayah yang sesuai untuk lokasi geografis untuk pengguna Anda.

1. (Opsional) Pilih kotak centang **Ganti indeks agregator yang ada di Wilayah selain yang dipilih di atas**. 

1. Di bagian **Target**, pilih **organisasi target atau Unit Organisasi** **tertentu (OUs)** yang berisi sumber daya yang ingin Anda temukan. 

1. Di bagian **Wilayah**, pilih **Wilayah** mana yang akan disertakan dalam konfigurasi. 

1. Tinjau ringkasan konfigurasi, lalu pilih **Buat**. 

Pada halaman **Resource Explorer**, Anda dapat memantau status konfigurasi.

# Hasil pemecahan masalah Quick Setup
<a name="quick-setup-results-troubleshooting"></a>

Gunakan informasi berikut untuk membantu Anda memecahkan masalah denganQuick Setup, alat di. AWS Systems Manager Topik ini mencakup tugas-tugas khusus untuk menyelesaikan masalah berdasarkan jenis Quick Setup masalah.

**Masalah: Penerapan gagal**  
Penerapan gagal jika set CloudFormation tumpukan gagal selama pembuatan. Gunakan langkah-langkah berikut untuk menyelidiki kegagalan penerapan.

1. Navigasikan ke [konsol AWS CloudFormation](https://console.aws.amazon.com/cloudformation) tersebut. 

1. Pilih tumpukan yang dibuat oleh Quick Setup konfigurasi Anda. **Nama Stack** termasuk `QuickSetup` diikuti oleh jenis konfigurasi yang Anda pilih, seperti`SSMHostMgmt`. 
**catatan**  
CloudFormation terkadang menghapus penerapan tumpukan yang gagal. Jika tumpukan tidak tersedia di tabel **Stacks**, pilih **Dihapus** dari daftar filter.

1. Lihat **alasan **Status** dan Status**. Untuk informasi selengkapnya tentang status [tumpukan, lihat Menyusun kode status](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-view-stack-data-resources.html#cfn-console-view-stack-data-resources-status-codes) di *Panduan AWS CloudFormation Pengguna*. 

1. Untuk memahami langkah tepat yang gagal, lihat tab **Acara** dan tinjau **Status** setiap acara. 

1. Tinjau [Pemecahan Masalah](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html) di *AWS CloudFormation Panduan Pengguna*.

1. Jika Anda tidak dapat menyelesaikan kegagalan penerapan menggunakan langkah-langkah CloudFormation pemecahan masalah, hapus konfigurasi dan konfigurasikan ulang.

**Masalah: Asosiasi gagal**  
Tabel **detail Konfigurasi** **pada halaman detail Konfigurasi** konfigurasi Anda menunjukkan **status Konfigurasi** **Gagal** jika salah satu asosiasi gagal selama penyiapan. Gunakan langkah-langkah berikut untuk memecahkan masalah asosiasi yang gagal.

1. Dalam tabel **Detail konfigurasi**, pilih konfigurasi yang gagal dan kemudian pilih **Lihat Detail**.

1. Salin **nama Asosiasi**.

1. Arahkan ke **State Manager**dan tempel nama asosiasi ke bidang pencarian. 

1. Pilih asosiasi dan pilih tab **Riwayat eksekusi**.

1. Di bawah **ID eksekusi**, pilih eksekusi asosiasi yang gagal.

1. Halaman **target eksekusi Asosiasi** mencantumkan semua node tempat asosiasi dijalankan. Pilih tombol **Output** untuk eksekusi yang gagal dijalankan.

1. Di halaman **Output**, pilih **Langkah - Output** untuk melihat pesan kesalahan untuk langkah tersebut dalam eksekusi perintah. Setiap langkah dapat menampilkan pesan kesalahan yang berbeda. Tinjau pesan kesalahan untuk semua langkah untuk membantu memecahkan masalah.
Jika melihat output langkah tidak menyelesaikan masalah, maka Anda dapat mencoba membuat ulang asosiasi. Untuk membuat ulang asosiasi, pertama-tama hapus asosiasi yang gagal di. State Manager Setelah menghapus asosiasi, edit konfigurasi dan pilih opsi yang Anda hapus dan pilih **Perbarui**.  
Untuk menyelidiki asosiasi **Gagal** untuk konfigurasi **Organisasi**, Anda harus masuk ke akun dengan asosiasi gagal dan menggunakan prosedur asosiasi gagal berikut, yang dijelaskan sebelumnya. **ID Asosiasi** bukanlah hyperlink ke akun target saat melihat hasil dari akun manajemen.

**Masalah: Status drift**  
Saat melihat halaman detail konfigurasi, Anda dapat melihat status drift dari setiap penerapan. Konfigurasi drift terjadi setiap kali pengguna membuat perubahan pada layanan atau fitur yang bertentangan dengan pilihan yang dibuat melalui. Quick Setup Jika asosiasi telah berubah setelah konfigurasi awal, tabel menampilkan ikon peringatan yang menunjukkan jumlah item yang telah hanyut. Anda dapat menentukan apa yang menyebabkan penyimpangan dengan mengarahkan kursor ke ikon. 
Saat asosiasi dihapusState Manager, penerapan terkait menampilkan peringatan drift. Untuk memperbaikinya, edit konfigurasi dan pilih opsi yang dihapus saat asosiasi dihapus. Pilih **Perbarui** dan tunggu hingga penerapan selesai.