

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