

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

# 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 menggunakan 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\_instance**. 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 **$.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\_instance**. 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.