

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

# Referensi tindakan Otomatisasi Systems Manager
<a name="automation-actions"></a>

Referensi ini menjelaskan tindakan otomatisasi yang dapat Anda tentukan di runbook Otomatisasi. Otomasi adalah alat dalam AWS Systems Manager. Tindakan ini tidak dapat digunakan dalam dokumen Systems Manager (SSM) jenis yang lain. Untuk informasi tentang plugin untuk jenis dokumen SSM lainnya, lihat [Referensi plugin dokumen perintah](documents-command-ssm-plugin-reference.md).

Otomatisasi Systems Manager menjalankan langkah-langkah yang ditetapkan dalam runbook otomatisasi. Setiap langkah dikaitkan dengan tindakan tertentu. Tindakan menentukan input, perilaku, dan output dari langkah. Langkah-langkah didefinisikan dalam `mainSteps` bagian dari buku runbook Anda.

Anda tidak perlu menentukan output dari suatu tindakan atau langkah. Output yang telah ditentukan oleh tindakan yang terkait dengan langkah. Ketika Anda menentukan input langkah di runbook, Anda dapat referensi satu output atau lebih dari langkah sebelumnya. Misalnya, Anda dapat membuat output dari `aws:runInstances` yang tersedia untuk tindakan berikutnya `aws:runCommand`. Anda juga dapat referensi output dari langkah-langkah sebelumnya di `Output` bagian runbook. 

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

**Topics**
+ [Properti dibagi oleh semua tindakan](#automation-common)
+ [`aws:approve` – Jeda otomatisasi untuk persetujuan manual](automation-action-approve.md)
+ [`aws:assertAwsResourceProperty`— Menegaskan status AWS sumber daya atau status acara](automation-action-assertAwsResourceProperty.md)
+ [`aws:branch` – Jalankan langkah-langkah otomatisasi bersyarat](automation-action-branch.md)
+ [`aws:changeInstanceState` – Ubah atau tegaskan status instans](automation-action-changestate.md)
+ [`aws:copyImage` – Salin atau enkripsi Amazon Machine Image](automation-action-copyimage.md)
+ [`aws:createImage` – Buat Amazon machine image (AMI)](automation-action-create.md)
+ [`aws:createStack`— Buat CloudFormation tumpukan](automation-action-createstack.md)
+ [`aws:createTags`— Buat tag untuk AWS sumber daya](automation-action-createtag.md)
+ [`aws:deleteImage` – Hapus Amazon Machine Image](automation-action-delete.md)
+ [`aws:deleteStack`— Hapus CloudFormation tumpukan](automation-action-deletestack.md)
+ [`aws:executeAutomation` – Jalankan otomatisasi lain](automation-action-executeAutomation.md)
+ [`aws:executeAwsApi`— Panggil dan jalankan operasi AWS API](automation-action-executeAwsApi.md)
+ [`aws:executeScript` – Jalankan skrip](automation-action-executeScript.md)
+ [`aws:executeStateMachine`— Jalankan mesin AWS Step Functions negara](automation-action-executeStateMachine.md)
+ [`aws:invokeWebhook`— Memanggil integrasi webhook Otomasi](invoke-webhook.md)
+ [`aws:invokeLambdaFunction`— Memanggil fungsi AWS Lambda](automation-action-lamb.md)
+ [`aws:loop`— Ulangi langkah-langkah dalam otomatisasi](automation-action-loop.md)
+ [`aws:pause` – Jeda otomatisasi](automation-action-pause.md)
+ [`aws:runCommand` – Jalankan perintah pada instans terkelola](automation-action-runcommand.md)
+ [`aws:runInstances` – Luncurkan Instans Amazon EC2](automation-action-runinstance.md)
+ [`aws:sleep` – Menunda otomatisasi](automation-action-sleep.md)
+ [`aws:updateVariable`— Memperbarui nilai untuk variabel runbook](automation-action-update-variable.md)
+ [`aws:waitForAwsResourceProperty`— Tunggu properti AWS sumber daya](automation-action-waitForAwsResourceProperty.md)
+ [Variabel sistem Otomatisasi](automation-variables.md)

## Properti dibagi oleh semua tindakan
<a name="automation-common"></a>

Sifat umum adalah parameter atau opsi yang ditemukan di semua tindakan. Beberapa pilihan menentukan perilaku untuk langkah, seperti berapa lama menunggu langkah selesai dan apa yang harus dilakukan jika langkah gagal. Properti berikut umum untuk semua tindakan.

[description](#descriptProp)  
Informasi yang Anda berikan untuk menggambarkan tujuan runbook atau langkah.  
Tipe: String  
Wajib: Tidak

[name](#nameProp)  
Pengenal yang harus unik di semua nama langkah di runbook.  
Tipe: String  
Pola yang diizinkan: [A-za-Z0-9\$1] \$1\$1  
Wajib: Ya

[action](#actProp)  
Nama tindakan langkah adalah untuk menjalankan. [`aws:runCommand` – Jalankan perintah pada instans terkelola](automation-action-runcommand.md) adalah contoh dari tindakan yang dapat Anda tentukan di sini. Dokumen ini memberikan informasi mendetail tentang semua tindakan yang tersedia.  
Jenis: String  
Wajib: Ya

[maxAttempts](#maxProp)  
Berapa kali langkah harus dicoba lagi jika terjadi kegagalan. Jika nilai lebih besar dari 1, langkah tidak dianggap gagal sampai semua upaya coba lagi telah gagal. Nilai default adalah 1.  
Jenis: Bilangan bulat  
Wajib: Tidak

[timeoutSeconds](#timeProp)  
Nilai batas waktu untuk langkah. Jika batas waktu tercapai dan nilai `maxAttempts` lebih besar dari 1, maka langkah ini tidak dianggap kedaluwarsa sampai semua percobaan telah dicoba.  
Jenis: Bilangan bulat  
Wajib: Tidak

[onFailure](#failProp)  
Menunjukkan apakah otomatisasi harus berhenti, melanjutkan, atau meneruskan ke langkah yang berbeda pada kegagalan. Nilai default untuk opsi ini adalah batalkan.  
Tipe: String  
Nilai yang valid: Batalkan \$1 Lanjutkan \$1 langkah: *step\$1name*  
Wajib: Tidak

[onCancel](#canProp)  
Menunjukkan langkah mana yang harus dilakukan otomatisasi jika pengguna membatalkan otomatisasi. Otomatisasi menjalankan alur kerja pembatalan untuk maksimal dua menit.  
Tipe: String  
Nilai yang valid: Batalkan \$1 langkah: *step\$1name*  
Wajib: Tidak  
Properti `onCancel` tidak mendukung pindah ke tindakan berikut:  
+ `aws:approve`
+ `aws:copyImage`
+ `aws:createImage`
+ `aws:createStack`
+ `aws:createTags`
+ `aws:loop`
+ `aws:pause`
+ `aws:runInstances`
+ `aws:sleep`

[isEnd](#endProp)  
Opsi ini menghentikan otomatisasi pada akhir langkah tertentu. Otomatisasi berhenti jika langkah gagal atau berhasil. Nilai default salah.  
Jenis: Boolean  
Nilai yang valid: benar/salah  
Wajib: Tidak

[nextStep](#nextProp)  
Menentukan langkah mana dalam otomatisasi yang harus diproses setelah berhasil menyelesaikan langkah.  
Jenis: String  
Wajib: Tidak

[isCritical](#critProp)  
Menunjuk langkah sebagai kepentingan untuk berhasil menyelesaikan otomatisasi. Jika langkah dengan penunjukan ini gagal, maka otomatisasi melaporkan status akhir otomatisasi sebagai gagal. Properti ini hanya dievaluasi jika Anda secara eksplisit mendefinisikannya dalam langkah Anda. Jika `onFailure` properti diatur ke `Continue` dalam langkah, nilai default diatur ke salah. Jika tidak, nilai default untuk opsi ini adalah benar.  
Jenis: Boolean  
Nilai yang valid: benar/salah  
Wajib: Tidak

[inputs](#inProp)  
Sifat khusus tindakan.  
Jenis: Peta  
Wajib: Ya

### Contoh
<a name="automation-demo"></a>

```
---
description: "Custom Automation Example"
schemaVersion: '0.3'
assumeRole: "{{ AutomationAssumeRole }}"
parameters:
  AutomationAssumeRole:
    type: String
    description: "(Required) The ARN of the role that allows Automation to perform
      the actions on your behalf. If no role is specified, Systems Manager Automation
      uses your IAM permissions to run this runbook."
    default: ''
  InstanceId:
      type: String
      description: "(Required) The Instance Id whose root EBS volume you want to restore the latest Snapshot."
      default: ''
mainSteps:
- name: getInstanceDetails
  action: aws:executeAwsApi
  onFailure: Abort
  inputs:
    Service: ec2
    Api: DescribeInstances
    InstanceIds:
    - "{{ InstanceId }}"
  outputs:
    - Name: availabilityZone
      Selector: "$.Reservations[0].Instances[0].Placement.AvailabilityZone"
      Type: String
    - Name: rootDeviceName
      Selector: "$.Reservations[0].Instances[0].RootDeviceName"
      Type: String
  nextStep: getRootVolumeId
- name: getRootVolumeId
  action: aws:executeAwsApi
  maxAttempts: 3
  onFailure: Abort
  inputs:
    Service: ec2
    Api: DescribeVolumes
    Filters:
    -  Name: attachment.device
       Values: ["{{ getInstanceDetails.rootDeviceName }}"]
    -  Name: attachment.instance-id
       Values: ["{{ InstanceId }}"]
  outputs:
    - Name: rootVolumeId
      Selector: "$.Volumes[0].VolumeId"
      Type: String
  nextStep: getSnapshotsByStartTime
- name: getSnapshotsByStartTime
  action: aws:executeScript
  timeoutSeconds: 45
  onFailure: Abort
  inputs:
    Runtime: python3.8
    Handler: getSnapshotsByStartTime
    InputPayload:
      rootVolumeId : "{{ getRootVolumeId.rootVolumeId }}"
    Script: |-
      def getSnapshotsByStartTime(events,context):
        import boto3

        #Initialize client
        ec2 = boto3.client('ec2')
        rootVolumeId = events['rootVolumeId']
        snapshotsQuery = ec2.describe_snapshots(
          Filters=[
            {
              "Name": "volume-id",
              "Values": [rootVolumeId]
            }
          ]
        )
        if not snapshotsQuery['Snapshots']:
          noSnapshotFoundString = "NoSnapshotFound"
          return { 'noSnapshotFound' : noSnapshotFoundString }
        else:
          jsonSnapshots = snapshotsQuery['Snapshots']
          sortedSnapshots = sorted(jsonSnapshots, key=lambda k: k['StartTime'], reverse=True)
          latestSortedSnapshotId = sortedSnapshots[0]['SnapshotId']
          return { 'latestSnapshotId' : latestSortedSnapshotId }
  outputs:
  - Name: Payload
    Selector: $.Payload
    Type: StringMap
  - Name: latestSnapshotId
    Selector: $.Payload.latestSnapshotId
    Type: String
  - Name: noSnapshotFound
    Selector: $.Payload.noSnapshotFound
    Type: String 
  nextStep: branchFromResults
- name: branchFromResults
  action: aws:branch
  onFailure: Abort
  onCancel: step:startInstance
  inputs:
    Choices:
    - NextStep: createNewRootVolumeFromSnapshot
      Not:
        Variable: "{{ getSnapshotsByStartTime.noSnapshotFound }}"
        StringEquals: "NoSnapshotFound"
  isEnd: true
- name: createNewRootVolumeFromSnapshot
  action: aws:executeAwsApi
  onFailure: Abort
  inputs:
    Service: ec2
    Api: CreateVolume
    AvailabilityZone: "{{ getInstanceDetails.availabilityZone }}"
    SnapshotId: "{{ getSnapshotsByStartTime.latestSnapshotId }}"
  outputs:
    - Name: newRootVolumeId
      Selector: "$.VolumeId"
      Type: String
  nextStep: stopInstance
- name: stopInstance
  action: aws:executeAwsApi
  onFailure: Abort
  inputs:
    Service: ec2
    Api: StopInstances
    InstanceIds:
    - "{{ InstanceId }}"
  nextStep: verifyVolumeAvailability
- name: verifyVolumeAvailability
  action: aws:waitForAwsResourceProperty
  timeoutSeconds: 120
  inputs:
    Service: ec2
    Api: DescribeVolumes
    VolumeIds:
    - "{{ createNewRootVolumeFromSnapshot.newRootVolumeId }}"
    PropertySelector: "$.Volumes[0].State"
    DesiredValues:
    - "available"
  nextStep: verifyInstanceStopped
- name: verifyInstanceStopped
  action: aws:waitForAwsResourceProperty
  timeoutSeconds: 120
  inputs:
    Service: ec2
    Api: DescribeInstances
    InstanceIds:
    - "{{ InstanceId }}"
    PropertySelector: "$.Reservations[0].Instances[0].State.Name"
    DesiredValues:
    - "stopped"
  nextStep: detachRootVolume
- name: detachRootVolume
  action: aws:executeAwsApi
  onFailure: Abort
  isCritical: true
  inputs:
    Service: ec2
    Api: DetachVolume
    VolumeId: "{{ getRootVolumeId.rootVolumeId }}"
  nextStep: verifyRootVolumeDetached
- name: verifyRootVolumeDetached
  action: aws:waitForAwsResourceProperty
  timeoutSeconds: 30
  inputs:
    Service: ec2
    Api: DescribeVolumes
    VolumeIds:
    - "{{ getRootVolumeId.rootVolumeId }}"
    PropertySelector: "$.Volumes[0].State"
    DesiredValues:
    - "available"
  nextStep: attachNewRootVolume
- name: attachNewRootVolume
  action: aws:executeAwsApi
  onFailure: Abort
  inputs:
    Service: ec2
    Api: AttachVolume
    Device: "{{ getInstanceDetails.rootDeviceName }}"
    InstanceId: "{{ InstanceId }}"
    VolumeId: "{{ createNewRootVolumeFromSnapshot.newRootVolumeId }}"
  nextStep: verifyNewRootVolumeAttached
- name: verifyNewRootVolumeAttached
  action: aws:waitForAwsResourceProperty
  timeoutSeconds: 30
  inputs:
    Service: ec2
    Api: DescribeVolumes
    VolumeIds:
    - "{{ createNewRootVolumeFromSnapshot.newRootVolumeId }}"
    PropertySelector: "$.Volumes[0].Attachments[0].State"
    DesiredValues:
    - "attached"
  nextStep: startInstance
- name: startInstance
  action: aws:executeAwsApi
  onFailure: Abort
  inputs:
    Service: ec2
    Api: StartInstances
    InstanceIds:
    - "{{ InstanceId }}"
```

# `aws:approve` – Jeda otomatisasi untuk persetujuan manual
<a name="automation-action-approve"></a>

Menjeda Otomatisasi untuk sementara waktu sampai otomatisasi utama yang ditunjuk menyetujui atau menolak tindakan. Setelah jumlah persetujuan yang diperlukan tercapai, otomatisasi dilanjutkan. Anda dapat memasukkan langkah persetujuan di mana saja `mainSteps` di bagian runbook Anda. 

**catatan**  
Tindakan ini tidak mendukung otomatisasi multi-akun dan Wilayah. Batas waktu default untuk tindakan ini adalah 7 hari (604800 detik) dan nilai maksimum adalah 30 hari (2592000 detik). Anda dapat membatasi atau memperpanjang batas waktu dengan menentukan `timeoutSeconds` parameter untuk `aws:approve` langkah.

Pada contoh berikut, `aws:approve` tindakan menghentikan otomatisasi sementara hingga satu pemberi persetujuan menerima atau menolak otomatisasi. Setelah disetujui, otomatisasi menjalankan PowerShell perintah sederhana. 

------
#### [ YAML ]

```
---
description: RunInstancesDemo1
schemaVersion: '0.3'
assumeRole: "{{ assumeRole }}"
parameters:
  assumeRole:
    type: String
  message:
    type: String
mainSteps:
- name: approve
  action: aws:approve
  timeoutSeconds: 1000
  onFailure: Abort
  inputs:
    NotificationArn: arn:aws:sns:us-east-2:12345678901:AutomationApproval
    Message: "{{ message }}"
    MinRequiredApprovals: 1
    Approvers:
    - arn:aws:iam::12345678901:user/AWS-User-1
- name: run
  action: aws:runCommand
  inputs:
    InstanceIds:
    - i-1a2b3c4d5e6f7g
    DocumentName: AWS-RunPowerShellScript
    Parameters:
      commands:
      - date
```

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

```
{
   "description":"RunInstancesDemo1",
   "schemaVersion":"0.3",
   "assumeRole":"{{ assumeRole }}",
   "parameters":{
      "assumeRole":{
         "type":"String"
      },
      "message":{
         "type":"String"
      }
   },
   "mainSteps":[
      {
         "name":"approve",
         "action":"aws:approve",
         "timeoutSeconds":1000,
         "onFailure":"Abort",
         "inputs":{
            "NotificationArn":"arn:aws:sns:us-east-2:12345678901:AutomationApproval",
            "Message":"{{ message }}",
            "MinRequiredApprovals":1,
            "Approvers":[
               "arn:aws:iam::12345678901:user/AWS-User-1"
            ]
         }
      },
      {
         "name":"run",
         "action":"aws:runCommand",
         "inputs":{
            "InstanceIds":[
               "i-1a2b3c4d5e6f7g"
            ],
            "DocumentName":"AWS-RunPowerShellScript",
            "Parameters":{
               "commands":[
                  "date"
               ]
            }
         }
      }
   ]
}
```

------

Anda dapat menyetujui atau menolak otomatisasi yang menunggu persetujuan di konsol.

**Untuk menyetujui atau menolak otomatisasi menunggu**

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

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

1. Pilih opsi di sebelah Otomatisasi dengan status **Menunggu**.  
![\[Mengakses halaman Approve/Deny Otomasi\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/images/automation-approve-action-aws.png)

1. Pilih **Menyetujui/Menolak**.

1. Tinjau detail Otomatisasi.

1. Pilih **Setuju** atau **Tolak**, ketik komentar opsional, dan kemudian pilih **Kirim**.

**Contoh masukan**

------
#### [ YAML ]

```
NotificationArn: arn:aws:sns:us-west-1:12345678901:Automation-ApprovalRequest
Message: Please approve this step of the Automation.
MinRequiredApprovals: 3
Approvers:
- IamUser1
- IamUser2
- arn:aws:iam::12345678901:user/IamUser3
- arn:aws:iam::12345678901:role/IamRole
```

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

```
{
   "NotificationArn":"arn:aws:sns:us-west-1:12345678901:Automation-ApprovalRequest",
   "Message":"Please approve this step of the Automation.",
   "MinRequiredApprovals":3,
   "Approvers":[
      "IamUser1",
      "IamUser2",
      "arn:aws:iam::12345678901:user/IamUser3",
      "arn:aws:iam::12345678901:role/IamRole"
   ]
}
```

------

NotificationArn  
Amazon Resource Name (ARN topik Amazon Simple Notification Service (Amazon SNS) untuk persetujuan otomatisasi. Bila Anda menentukan `aws:approve` langkah dalam runbook, Otomatisasi mengirimkan pesan ke topik ini agar otomatisasi utama tahu bahwa mereka harus menyetujui atau menolak langkah otomatisasi. Judul topik Amazon SNS harus diawali dengan "Otomatisi".  
Jenis: String  
Wajib: Tidak

Pesan  
Informasi yang ingin Anda sertakan dalam topik Amazon SNS ketika permintaan persetujuan dikirim. Panjang pesan maksimum adalah 4096 karakter.   
Jenis: String  
Wajib: Tidak

MinRequiredApprovals  
Jumlah minimum persetujuan yang diperlukan untuk melanjutkan otomatisasi. Jika Anda tidak menentukan nilai, default sistem adalah satu. Nilai untuk parameter ini harus berupa angka positif. Nilai untuk parameter ini tidak dapat melebihi jumlah pemberi persetujuan yang ditentukan oleh `Approvers` parameter.   
Jenis: Bilangan bulat  
Wajib: Tidak

Pemberi persetujuan  
Daftar kepala sekolah yang AWS diautentikasi yang dapat menyetujui atau menolak tindakan tersebut. Jumlah maksimum pemberi persetujuan adalah 10. Anda dapat menyebutkan salah satu prinsip dasar berikut dalam kebijakan:  
+ Nama pengguna
+ Pengguna ARN
+ IAM role ARN
+ IAM berperan ARN
Jenis: StringList  
Wajib: Ya

EnhancedApprovals  
Input ini hanya digunakan untuk Change Manager template. Daftar kepala sekolah yang AWS diautentikasi yang dapat menyetujui atau menolak tindakan, jenis prinsipal IAM, dan jumlah minimum pemberi persetujuan. Berikut ini adalah contohnya:  

```
schemaVersion: "0.3"
emergencyChange: false
autoApprovable: false
mainSteps:
    - name: ApproveAction1
    action: aws:approve
    timeoutSeconds: 604800
    inputs:
        Message: Please approve this change request
        MinRequiredApprovals: 3
        EnhancedApprovals:
        Approvers:
            - approver: John Stiles
            type: IamUser
            minRequiredApprovals: 0
            - approver: Ana Carolina Silva
            type: IamUser
            minRequiredApprovals: 0
            - approver: GroupOfThree
            type: IamGroup
            minRequiredApprovals: 0
            - approver: RoleOfTen
            type: IamRole
            minRequiredApprovals: 0
```
Jenis: StringList  
Wajib: Ya

**Keluaran**

ApprovalStatus  
Status persetujuan langkah. Status dapat berupa salah satu hal berikut: Disetujui, Ditolak, atau Tunggu. Menunggu berarti Otomasi sedang menunggu masukan dari pemberi persetujuan.  
Tipe: String

ApproverDecisions  
Sebuah peta JSON yang mencakup keputusan persetujuan setiap pemberi persetujuan.  
Jenis: MapList

# `aws:assertAwsResourceProperty`— Menegaskan status AWS sumber daya atau status acara
<a name="automation-action-assertAwsResourceProperty"></a>

Tindakan `aws:assertAwsResourceProperty` tersebut mengizinkan Anda menegaskan status sumber daya atau status peristiwa tertentu untuk langkah Otomatisasi tertentu.

**catatan**  
`aws:assertAwsResourceProperty`Tindakan ini mendukung percobaan ulang pelambatan otomatis. Untuk informasi selengkapnya, lihat [Mengkonfigurasi percobaan ulang otomatis untuk operasi yang dibatasi](automation-throttling-retry.md).

Untuk contoh lebih lanjut tentang cara menggunakan tindakan ini, lihat[Contoh runbook tambahan](automation-document-examples.md).

**Input**  
Input didefinisikan oleh operasi API yang Anda pilih. 

------
#### [ YAML ]

```
action: aws:assertAwsResourceProperty
inputs:
  Service: The official namespace of the service
  Api: The API operation or method name
  API operation inputs or parameters: A value
  PropertySelector: Response object
  DesiredValues:
  - Desired property values
```

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

```
{
  "action": "aws:assertAwsResourceProperty",
  "inputs": {
    "Service":"The official namespace of the service",
    "Api":"The API operation or method name",
    "API operation inputs or parameters":"A value",
    "PropertySelector": "Response object",
    "DesiredValues": [
      "Desired property values"
    ]
  }
}
```

------

Layanan  
 Layanan AWS Namespace yang berisi operasi API yang ingin Anda jalankan. Misalnya, namespace untuk Systems Manager adalah `ssm`. Namespace untuk Amazon EC2 adalah `ec2`. Anda dapat melihat daftar Layanan AWS ruang nama yang didukung di bagian [Layanan yang Tersedia pada Referensi AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/#available-services) *Perintah*.  
Tipe: String  
Wajib: Ya

Api  
Nama operasi API yang ingin Anda jalankan. Anda dapat melihat operasi API (juga disebut metode) dengan memilih layanan di navigasi kiri pada halaman [Referensi Layanan](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html). Pilih metode di bagian **Klien** untuk layanan yang ingin Anda jalankan. Misalnya, semua operasi API (metode) untuk Amazon Relational Database Service (Amazon RDS) tercantum di halaman berikut: [Metode Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html).  
Jenis: String  
Wajib: Ya

Input operasi API  
Satu input operasi API atau lebih. Anda dapat melihat input yang tersediaI (dikenal dengan parameter) dengan memilih layanan di navigasi kiri pada halaman [Referensi Layanan](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html) berikut. Pilih metode di bagian **Klien** untuk layanan yang ingin Anda jalankan. Misalnya, semua metode untuk Amazon RDS tercantum di halaman berikut: [Metode Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html). ******Pilih metode [describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) dan gulir ke bawah untuk melihat parameter yang tersedia, seperti DBInstance Identifier, Name, dan Values.****** Gunakan format berikut untuk menentukan lebih dari satu masukan.  

```
inputs:
  Service: The official namespace of the service
  Api: The API operation name
  API input 1: A value
  API Input 2: A value
  API Input 3: A value
```

```
"inputs":{
      "Service":"The official namespace of the service",
      "Api":"The API operation name",
      "API input 1":"A value",
      "API Input 2":"A value",
      "API Input 3":"A value"
}
```
Jenis: Ditentukan oleh operasi API yang dipilih  
Wajib: Ya

PropertySelector  
 JSONPath Untuk atribut tertentu dalam objek respon. Anda dapat melihat obyek respon dengan memilih layanan di navigasi kiri pada halaman [Referensi Layanan](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html) berikut. Pilih metode di bagian **Klien** untuk layanan yang ingin Anda jalankan. Misalnya, semua metode untuk Amazon RDS tercantum di halaman berikut: [Metode Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html). **Pilih metode [describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) dan gulir ke bawah ke bagian Struktur Respons.** **DBInstances**terdaftar sebagai objek respons.  
Tipe: String  
Diperlukan: Ya

DesiredValues  
Status yang diharapkan untuk melanjutkan otomatisasi. Jika Anda menentukan nilai Boolean, Anda harus menggunakan huruf kapital seperti Benar atau Salah.  
Jenis: StringList  
Wajib: Ya

# `aws:branch` – Jalankan langkah-langkah otomatisasi bersyarat
<a name="automation-action-branch"></a>

Tindakan `aws:branch` tersebut mengizinkan Anda membuat otomatisasi dinamis yang mengevaluasi pilihan yang berbeda dalam satu langkah dan kemudian melompat ke langkah di runbook yang berbeda berdasarkan hasil evaluasi tersebut. 

Bila Anda menentukan `aws:branch` tindakan untuk sebuah langkah, Anda menentukan `Choices` bahwa otomatisasi harus mengevaluasi. Dapat `Choices` didasarkan pada nilai yang Anda tentukan dalam `Parameters` bagian runbook, atau nilai dinamis yang dihasilkan sebagai output dari langkah sebelumnya. Otomatisasi mengevaluasi setiap pilihan dengan menggunakan ekspresi Boolean. Jika pilihan pertama adalah benar, maka otomatisasi melompat ke langkah yang ditetapkan untuk pilihan tersebut. Jika pilihan pertama salah, otomatisasi mengevaluasi pilihan berikutnya. Otomatisasi terus mengevaluasi setiap pilihan sampai memproses pilihan yang benar. Selanjutnya, otomatisasi melompat ke langkah yang ditetapkan untuk pilihan yang benar tersebut.

Jika tidak ada pilihan yang benar, otomatisasi memeriksa untuk melihat apakah langkah berisi `default` nilai. Nilai default menentukan langkah yang harus dilakukan otomatisasi jika tidak ada pilihan yang benar. Jika tidak ada `default` nilai yang ditentukan untuk langkah, otomatisasi akan memproses langkah berikutnya dalam runbook.

Tindakan `aws:branch` tersebut mendukung evaluasi pilihan kompleks dengan menggunakan kombinasi `And`, `Not`, dan `Or` operator. Untuk informasi lebih lanjut tentang cara menggunakan `aws:branch`, termasuk contoh runbook dan contoh yang menggunakan operator yang berbeda, lihat [Menggunakan pernyataan bersyarat di runbook](automation-branch-condition.md).

**Input**  
Tentukan satu atau lebih `Choices` dalam satu langkah. Dapat `Choices` didasarkan pada nilai yang Anda tentukan dalam `Parameters` bagian runbook, atau nilai dinamis yang dihasilkan sebagai output dari langkah sebelumnya. Berikut adalah sampel YAML yang mengevaluasi parameter.

```
mainSteps:
- name: chooseOS
  action: aws:branch
  inputs:
    Choices:
    - NextStep: runWindowsCommand
      Variable: "{{Name of a parameter defined in the Parameters section. For example: OS_name}}"
      StringEquals: windows
    - NextStep: runLinuxCommand
      Variable: "{{Name of a parameter defined in the Parameters section. For example: OS_name}}"
      StringEquals: linux
    Default:
      sleep3
```

Berikut adalah sampel YAML yang mengevaluasi output dari langkah sebelumnya.

```
mainSteps:
- name: chooseOS
  action: aws:branch
  inputs:
    Choices:
    - NextStep: runPowerShellCommand
      Variable: "{{Name of a response object. For example: GetInstance.platform}}"
      StringEquals: Windows
    - NextStep: runShellCommand
      Variable: "{{Name of a response object. For example: GetInstance.platform}}"
      StringEquals: Linux
    Default:
      sleep3
```

Pilihan  
Satu ekspresi atau lebih bahwa Otomatisasi harus mengevaluasi ketika menentukan langkah berikutnya untuk proses. Pilihan dievaluasi dengan menggunakan ekspresi Boolean. Setiap templat menyertakan menentukan opsi berikut:  
+ **NextStep**: Langkah selanjutnya dalam runbook untuk memproses jika pilihan yang ditunjuk benar.
+ **Variabel**: Tenentukan nama parameter yang didefinisikan dalam `Parameters` bagian dari buku runbook. Atau tentukan objek output dari langkah sebelumnya dalam runbook. Untuk informasi lebih lanjut tentang permbuatan variabel untuk `aws:branch`, lihat [Tentang membuat variabel output](automation-branch-condition.md#branch-action-output).
+ **Operasi**: Kriteria yang digunakan untuk mengevaluasi pilihan. Tindakan `aws:branch` tersebut mendukung operasi berikut:

**Operasi String**
  + StringEquals
  + EqualsIgnoreCase
  + StartsWith
  + EndsWith
  + Berisi

**Operasi numerik**
  + NumericEquals
  + NumericGreater
  + NumericLesser
  + NumericGreaterOrEquals
  + NumericLesser
  + NumericLesserOrEquals

**Operasi Boolean**
  + BooleanEquals
**penting**  
Ketika Anda membuat runbook, sistem memvalidasi setiap operasi di runbook. Jika operasi tidak didukung, sistem akan mengembalikan kesalahan saat Anda mencoba membuat runbook.

Default  
Nama langkah yang harus dilakukan otomatisasi jika tidak ada `Choices` yang benar.  
Jenis: String  
Wajib: Tidak

**catatan**  
Tindakan `aws:branch` tersebut mendukung `And`, `Or`, dan `Not` operator. Misalnya `aws:branch` yang menggunakan operator, lihat [Menggunakan pernyataan bersyarat di runbook](automation-branch-condition.md).

# `aws:changeInstanceState` – Ubah atau tegaskan status instans
<a name="automation-action-changestate"></a>

Ubah atau tegaskan status instans.

Tindakan ini dapat digunakan dalam modus menegaskan (tidak menjalankan API untuk mengubah status tetapi memverifikasi instans dalam keadaan yang diinginkan.) Untuk menggunakan modus menegaskan, atur `CheckStateOnly` parameter ke benar. Mode ini berguna saat menjalankan perintah Sysprep aktifWindows Server, yang merupakan perintah asinkron yang dapat berjalan di latar belakang untuk waktu yang lama. Anda dapat memastikan bahwa instans dihentikan sebelum Anda membuat Amazon Machine Image (AMI).

**catatan**  
Nilai batas waktu default untuk tindakan ini adalah 3600 detik (satu jam). Anda dapat membatasi atau memperpanjang batas waktu dengan menentukan `timeoutSeconds` parameter untuk `aws:changeInstanceState` langkah.

**catatan**  
`aws:changeInstanceState`Tindakan ini mendukung percobaan ulang pelambatan otomatis. Untuk informasi selengkapnya, lihat [Mengkonfigurasi percobaan ulang otomatis untuk operasi yang dibatasi](automation-throttling-retry.md).

**Masukan**

------
#### [ YAML ]

```
name: stopMyInstance
action: aws:changeInstanceState
maxAttempts: 3
timeoutSeconds: 3600
onFailure: Abort
inputs:
  InstanceIds:
  - i-1234567890abcdef0
  CheckStateOnly: true
  DesiredState: stopped
```

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

```
{
    "name":"stopMyInstance",
    "action": "aws:changeInstanceState",
    "maxAttempts": 3,
    "timeoutSeconds": 3600,
    "onFailure": "Abort",
    "inputs": {
        "InstanceIds": ["i-1234567890abcdef0"],
        "CheckStateOnly": true,
        "DesiredState": "stopped"
    }
}
```

------

InstanceIds  
 IDs Dari contoh.  
Jenis: StringList  
Wajib: Ya

CheckStateOnly  
Jika salah, tetapkan status instans ke status yang diinginkan. Jika benar, tegaskan status yang diinginkan menggunakan polling.  
Default: `false`  
Jenis: Boolean  
Wajib: Tidak

DesiredState  
Status yang diinginkan. Ketika diatur ke `running`, aksi ini menunggu status Amazon EC2 menjadi `Running`, Status Instans menjadi `OK`, dan Status Sistem yang menjadi `OK` sebelum selesai.  
Jenis: String  
Nilai yang valid: `running` \$1 `stopped` \$1 `terminated`  
Wajib: Ya

Kekuatan  
Jika diatur, paksa instans untuk berhenti. Instans yang ada tidak memiliki peluang untuk membersihkan cache sistem file atau metadata sistem file. Jika Anda menggunakan opsi ini, Anda harus melakukan prosedur pemeriksaan dan perbaikan sistem file. Opsi ini tidak disarankan untuk instans EC2 untuk Windows Server.  
Jenis: Boolean  
Wajib: Tidak

AdditionalInfo  
Dicadangkan.  
Jenis: String  
Wajib: Tidak

**Output**  
Tidak ada

# `aws:copyImage` – Salin atau enkripsi Amazon Machine Image
<a name="automation-action-copyimage"></a>

Menyalin Amazon Machine Image (AMI) dari mana pun Wilayah AWS ke Wilayah saat ini. Tindakan ini juga dapat mengenkripsi AMI.

**catatan**  
`aws:copyImage`Tindakan ini mendukung percobaan ulang pelambatan otomatis. Untuk informasi selengkapnya, lihat [Mengkonfigurasi percobaan ulang otomatis untuk operasi yang dibatasi](automation-throttling-retry.md).

**Input**  
Tindakan ini mendukung sebagian besar `CopyImage` parameter. Untuk informasi selengkapnya, lihat [CopyImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CopyImage.html).

Contoh berikut membuat salinan AMI di wilayah Seoul (`SourceImageID`: ami-0fe10819. `SourceRegion`: ap-northeast-2). Baru AMI disalin ke wilayah di mana Anda memulai tindakan otomatisasi. Yang disalin AMI akan dienkripsi karena bendera opsional `Encrypted` diatur ke `true`.

------
#### [ YAML ]

```
name: createEncryptedCopy
action: aws:copyImage
maxAttempts: 3
onFailure: Abort
inputs:
  SourceImageId: ami-0fe10819
  SourceRegion: ap-northeast-2
  ImageName: Encrypted Copy of LAMP base AMI in ap-northeast-2
  Encrypted: true
```

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

```
{   
    "name": "createEncryptedCopy",
    "action": "aws:copyImage",
    "maxAttempts": 3,
    "onFailure": "Abort",
    "inputs": {
        "SourceImageId": "ami-0fe10819",
        "SourceRegion": "ap-northeast-2",
        "ImageName": "Encrypted Copy of LAMP base AMI in ap-northeast-2",
        "Encrypted": true
    }   
}
```

------

SourceRegion  
Wilayah tempat sumbernya AMI berada.  
Jenis: String  
Diperlukan: Ya

SourceImageId  
ID AMI untuk menyalin dari Sumber Wilayah.  
Jenis: String  
Diperlukan: Ya

ImageName  
Nama gambar baru.  
Jenis: String  
Diperlukan: Ya

ImageDescription  
Deskripsi gambar target.  
Jenis: String  
Wajib: Tidak

Dienkripsi  
Enkripsi target AMI.  
Jenis: Boolean  
Wajib: Tidak

KmsKeyId  
Nama Sumber Daya Amazon (ARN) lengkap yang akan AWS KMS key digunakan saat mengenkripsi snapshot gambar selama operasi penyalinan. Untuk informasi selengkapnya, lihat [CopyImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/api_copyimage.html).  
Tipe: String  
Wajib: Tidak

ClientToken  
Pengenal unik dan peka huruf besar yang Anda berikan untuk memastikan permintaan idempotensi. Untuk informasi selengkapnya, lihat [CopyImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/api_copyimage.html).  
Tipe: String  
Wajib: TidakOutput

ImageId  
ID dari gambar yang disalin.

ImageState  
Keadaan gambar yang disalin.  
Nilai yang Valid: `available` \$1 `pending` \$1 `failed`

# `aws:createImage` – Buat Amazon machine image (AMI)
<a name="automation-action-create"></a>

Membuat Amazon Machine Image (AMI) dari instance yang berjalan, berhenti, atau berhenti, dan polling `ImageState` untuk menjadi`available`.

**catatan**  
`aws:createImage`Tindakan ini mendukung percobaan ulang pelambatan otomatis. Untuk informasi selengkapnya, lihat [Mengkonfigurasi percobaan ulang otomatis untuk operasi yang dibatasi](automation-throttling-retry.md).

**Input**  
Tindakan ini mendukung `CreateImage` parameter berikut. Untuk informasi selengkapnya, lihat [CreateImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateImage.html).

------
#### [ YAML ]

```
name: createMyImage
action: aws:createImage
maxAttempts: 3
onFailure: Abort
inputs:
  InstanceId: i-1234567890abcdef0
  ImageName: AMI Created on{{global:DATE_TIME}}
  NoReboot: true
  ImageDescription: My newly created AMI
```

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

```
{
    "name": "createMyImage",
    "action": "aws:createImage",
    "maxAttempts": 3,
    "onFailure": "Abort",
    "inputs": {
        "InstanceId": "i-1234567890abcdef0",
        "ImageName": "AMI Created on{{global:DATE_TIME}}",
        "NoReboot": true,
        "ImageDescription": "My newly created AMI"
    }
}
```

------

InstanceId  
ID instance.  
Jenis: String  
Diperlukan: Ya

ImageName  
Nama gambar.  
Jenis: String  
Diperlukan: Ya

ImageDescription  
Deskripsi alias.  
Jenis: String  
Wajib: Tidak

NoReboot  
Boolean literal.  
Secara default, Amazon Elastic Compute Cloud (Amazon EC2) mencoba untuk mematikan dan reboot instans sebelum membuat gambar. Jika pilihan **Tidak Reboot** diatur ke `true`, Amazon EC2 tidak menutup instans sebelum membuat gambar. Bila opsi ini digunakan, integritas sistem file pada gambar yang dibuat tidak dapat dijamin.   
Jika Anda tidak ingin instance berjalan setelah Anda membuat AMI dari itu, pertama-tama gunakan [`aws:changeInstanceState` – Ubah atau tegaskan status instans](automation-action-changestate.md) tindakan untuk menghentikan instance, dan kemudian gunakan `aws:createImage` tindakan ini dengan **NoReboot**opsi yang disetel ke`true`.  
Tipe: Boolean  
Wajib: Tidak

BlockDeviceMappings  
Perangkat blok untuk instans.  
Jenis: Peta  
Wajib: TidakOutput

ImageId  
ID gambar yang baru dibuat.  
Tipe: String

ImageState  
Keadaan gambar saat ini (). Jika status tersedia, gambar berhasil terdaftar dan dapat digunakan untuk meluncurkan sebuah instans.  
Tipe: String

# `aws:createStack`— Buat CloudFormation tumpukan
<a name="automation-action-createstack"></a>

Membuat AWS CloudFormation tumpukan dari template.

**catatan**  
`aws:createStack`Tindakan ini mendukung percobaan ulang pelambatan otomatis. Untuk informasi selengkapnya, lihat [Mengkonfigurasi percobaan ulang otomatis untuk operasi yang dibatasi](automation-throttling-retry.md).

*Untuk informasi tambahan tentang membuat CloudFormation tumpukan, lihat [CreateStack](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html)di Referensi API.AWS CloudFormation * 

**Masukan**

------
#### [ YAML ]

```
name: makeStack
action: aws:createStack
maxAttempts: 1
onFailure: Abort
inputs:
  Capabilities:
  - CAPABILITY_IAM
  StackName: myStack
  TemplateURL: http://s3.amazonaws.com/amzn-s3-demo-bucket/myStackTemplate
  TimeoutInMinutes: 5
  Parameters:
    - ParameterKey: LambdaRoleArn
      ParameterValue: "{{LambdaAssumeRole}}"
    - ParameterKey: createdResource
      ParameterValue: createdResource-{{automation:EXECUTION_ID}}
```

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

```
{
    "name": "makeStack",
    "action": "aws:createStack",
    "maxAttempts": 1,
    "onFailure": "Abort",
    "inputs": {
        "Capabilities": [
            "CAPABILITY_IAM"
        ],
        "StackName": "myStack",
        "TemplateURL": "http://s3.amazonaws.com/amzn-s3-demo-bucket/myStackTemplate",
        "TimeoutInMinutes": 5,
        "Parameters": [
          {
            "ParameterKey": "LambdaRoleArn",
            "ParameterValue": "{{LambdaAssumeRole}}"
          },
          {
            "ParameterKey": "createdResource",
            "ParameterValue": "createdResource-{{automation:EXECUTION_ID}}"
          }
    }
}
```

------

Kemampuan  
Daftar nilai yang Anda tentukan sebelumnya CloudFormation dapat membuat tumpukan tertentu. Beberapa template tumpukan menyertakan sumber daya yang dapat memengaruhi izin di Anda Akun AWS. Untuk tumpukan tersebut, Anda harus secara eksplisit mengakui kemampuan mereka dengan menentukan parameter ini.   
Nilai yang valid termasuk `CAPABILITY_IAM`, `CAPABILITY_NAMED_IAM`, dan `CAPABILITY_AUTO_EXPAND`.   
**CAPABILITY\$1IAM dan CAPABILITY\$1NAMED\$1IAM**  
Jika Anda memiliki sumber daya IAM, Anda dapat menentukan salah satu kemampuan. Jika Anda memiliki sumber daya IAM dengan nama kustom, Anda harus menentukan `CAPABILITY_NAMED_IAM`. Jika Anda tidak menentukan parameter ini, tindakan ini mengembalikan sebuah `InsufficientCapabilities` kesalahan. Sumber daya berikut mengharuskan Anda untuk menentukan salah satu `CAPABILITY_IAM`atau `CAPABILITY_NAMED_IAM`.
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
Jika templat tumpukan berisi sumber daya ini, sebaiknya Anda meninjau semua izin yang terkait dengannya dan mengedit izinnya, jika diperlukan.   
Untuk informasi selengkapnya, lihat [Mengakui Sumber Daya IAM](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities) di Templat. CloudFormation   
**CAPABILITY\$1AUTO\$1EXPAND**  
Beberapa templat berisi makro. Makro melakukan pemrosesan khusus pada templat; ini dapat mencakup tindakan sederhana seperti find-and-replace operasi, hingga transformasi ekstensif seluruh templat. Karena ini, pengguna biasanya membuat perubahan yang ditetapkan dari templat yang diproses, sehingga mereka dapat meninjau perubahan yang dihasilkan dari makro sebelum benar-benar membuat tumpukan. Jika templat tumpukan berisi satu makro atau lebih, dan Anda memilih untuk membuat tumpukan langsung dari templat yang diproses, tanpa terlebih dahulu meninjau perubahan yang dihasilkan dalam satu set perubahan, Anda harus mengakui kemampuan ini. 
Untuk informasi selengkapnya, lihat [Menggunakan AWS CloudFormation Makro untuk Melakukan Pemrosesan Kustom pada Templat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html) di *Panduan AWS CloudFormation Pengguna*.  
Jenis: Array string  
Nilai yang Valid: `CAPABILITY_IAM | CAPABILITY_NAMED_IAM | CAPABILITY_AUTO_EXPAND`  
Wajib: Tidak

ClientRequestToken  
Pengenal unik untuk CreateStack permintaan ini. Tentukan token ini jika Anda menetapkan maxAttempts dalam langkah ini untuk nilai yang lebih besar dari 1. Dengan menentukan token ini, CloudFormation ketahuilah bahwa Anda tidak mencoba membuat tumpukan baru dengan nama yang sama.  
Tipe: String  
Wajib: Tidak  
Panjang Batasan: Panjang minimum 1. Panjang maksimum 128.  
Pola: [a-zA-Z0-9][-a-zA-Z0-9]\$1

DisableRollback  
Atur ke `true` untuk menonaktifkan rollback tumpukan jika pembuatan tumpukan gagal.  
Bersyarat: Anda dapat menentukan salah satu `DisableRollback` parameter atau `OnFailure` parameter, tapi tidak keduanya.   
Default: `false`  
Jenis: Boolean  
Wajib: Tidak

Pemberitahuan ARNs  
 ARNs Topik Amazon Simple Notification Service (Amazon SNS) untuk mempublikasikan acara terkait tumpukan. [Anda dapat menemukan topik SNS ARNs menggunakan konsol https://console.aws.amazon.com/sns/ Amazon SNS, v3/home.](https://console.aws.amazon.com/sns/v3/home)   
Jenis: Array string  
Anggota Array: Jumlah maksimum 5 item.  
Wajib: Tidak

OnFailure  
Menentukan tindakan yang harus diambil jika pembuatan tumpukan gagal. Anda harus menentukan `DO_NOTHING`, `ROLLBACK`, atau `DELETE`.  
Bersyarat: Anda dapat menentukan salah satu `OnFailure` parameter atau `DisableRollback` parameter, tapi tidak keduanya.   
Default: `ROLLBACK`  
Jenis: String  
Nilai yang Valid:` DO_NOTHING | ROLLBACK | DELETE`  
Wajib: Tidak

Parameter  
Daftar `Parameter` struktur yang menentukan parameter input untuk tumpukan. Untuk informasi selengkapnya, lihat jenis data [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html).   
Jenis: array dari objek [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html)   
Wajib: Tidak

ResourceTypes  
Jenis sumber daya templat yang izinnya Anda gunakan untuk membuat tindakan tumpukan ini. Misalnya: `AWS::EC2::Instance`, `AWS::EC2::*`, atau `Custom::MyCustomInstance`. Gunakan sintaks berikut untuk menggambarkan jenis sumber daya templat.  
+ Untuk semua AWS sumber daya:

  ```
  AWS::*
  ```
+ Untuk semua sumber daya kustom:

  ```
  Custom::*
  ```
+ Untuk sumber daya kustom tertentu:

  ```
  Custom::logical_ID
  ```
+ Untuk semua sumber daya tertentu Layanan AWS:

  ```
  AWS::service_name::*
  ```
+ Untuk sumber AWS daya tertentu:

  ```
  AWS::service_name::resource_logical_ID
  ```
Jika daftar jenis sumber daya tidak termasuk sumber daya yang Anda buat, pembuatan tumpukan gagal. Secara default, CloudFormation memberikan izin ke semua jenis sumber daya. IAM menggunakan parameter ini untuk kunci kondisi CloudFormation -spesifik dalam kebijakan IAM. Untuk informasi selengkapnya, lihat [Mengontrol Akses dengan AWS Identity and Access Management](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html).   
Jenis: Array string  
Panjang Batasan: Panjang minimum 1. Panjang maksimum 256.  
Wajib: Tidak

RoleArn  
Nama Sumber Daya Amazon (ARN) dari peran IAM yang CloudFormation mengasumsikan untuk membuat tumpukan. CloudFormation menggunakan kredensi peran untuk melakukan panggilan atas nama Anda. CloudFormation selalu menggunakan peran ini untuk semua operasi future di stack. Selama pengguna memiliki izin untuk beroperasi di tumpukan, CloudFormation gunakan peran ini meskipun pengguna tidak memiliki izin untuk meneruskannya. Pastikan bahwa peran memberikan sedikitnya jumlah hak istimewa.   
Jika Anda tidak menentukan nilai, CloudFormation gunakan peran yang sebelumnya dikaitkan dengan tumpukan. Jika tidak ada peran yang tersedia, CloudFormation gunakan sesi sementara yang dihasilkan dari kredensi pengguna Anda.   
Tipe: String  
Batasan Panjang: Panjang minimum 20. Panjang maksimum 2048.  
Wajib: Tidak

StackName  
Nama yang terkait dengan tumpukan. Nama harus unik di Daerah di mana Anda membuat tumpukan.  
Sebuah nama tumpukan dapat berisi karakter alfanumerik (peka huruf besar/kecil) dan tanda hubung. Ini harus dimulai dengan karakter abjad dan tidak boleh lebih dari 128 karakter. 
Jenis: String  
Diperlukan: Ya

StackPolicyBody  
Struktur yang berisi badan kebijakan tumpukan. Untuk informasi lebih lanjut, lihat [Cegah Pembaruan untuk Sumber Daya Tumpukan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html).  
Bersyarat: Anda dapat menentukan salah satu `StackPolicyBody` parameter atau `StackPolicyURL` parameter, tapi tidak keduanya.   
Jenis: String  
Panjang Batasan: Panjang minimum 1. Panjang maksimum 16384.   
Wajib: Tidak

StackPolicyURL  
Lokasi file yang berisi kebijakan tumpukan. URL harus menunjuk ke kebijakan yang terletak di bucket S3 di wilayah yang sama dengan tumpukan. Ukuran file maksimum yang diizinkan untuk kebijakan tumpukan adalah 16 KB.  
Bersyarat: Anda dapat menentukan salah satu `StackPolicyBody` parameter atau `StackPolicyURL` parameter, tapi tidak keduanya.   
Jenis: String  
Panjang Batasan: Panjang minimum 1. Panjang maksimum 1350.  
Wajib: Tidak

Tanda  
Pasangan kunci-nilai untuk diasosiasikan dengan tumpukan ini. CloudFormation juga menyebarkan tag ini ke sumber daya yang dibuat di tumpukan. Anda dapat menentukan jumlah maksimum 10 tag.   
Jenis: Array objek [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Tag.html)   
Wajib: Tidak

TemplateBody  
Struktur yang mengandungi body templat dengan panjang minimum 1 byte dan panjang maksimum 51.200 byte. Untuk informasi lebih lanjut, lihat [Anatomi Templat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html).   
Bersyarat: Anda dapat menentukan salah satu `TemplateBody` parameter atau `TemplateURL` parameter, tapi tidak keduanya.   
Jenis: String  
Panjang Batasan: Panjang minimum 1.  
Wajib: Tidak

TemplateURL  
Lokasi file yang mengandungi badan templat. URL harus menunjuk ke templat yang terletak di bucket S3. Ukuran maksimum yang diizinkan untuk template adalah 460.800 byte. Untuk informasi lebih lanjut, lihat [Anatomi Templat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html).   
Bersyarat: Anda dapat menentukan salah satu `TemplateBody` parameter atau `TemplateURL` parameter, tapi tidak keduanya.   
Jenis: String  
Batasan Panjang: Panjang minimum 1. Panjang maksimum 1024.  
Wajib: Tidak

TimeoutInMinutes  
Lamanya waktu yang dapat berlalu sebelum status tumpukan menjadi `CREATE_FAILED`. Jika `DisableRollback` tidak diatur atau diatur ke `false`, tumpukan akan dibatalkan.   
Jenis: Bilangan bulat  
Rentang yang Valid: Nilai minimum 1.  
Wajib: Tidak

## Output
<a name="automation-action-createstack-output"></a>

StackId  
Pengenal tumpukan yang unik.  
Tipe: String

StackStatus  
Status tumpukan saat ini.  
Jenis: String  
Nilai yang Valid: `CREATE_IN_PROGRESS | CREATE_FAILED | CREATE_COMPLETE | ROLLBACK_IN_PROGRESS | ROLLBACK_FAILED | ROLLBACK_COMPLETE | DELETE_IN_PROGRESS | DELETE_FAILED | DELETE_COMPLETE | UPDATE_IN_PROGRESS | UPDATE_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_COMPLETE | UPDATE_ROLLBACK_IN_PROGRESS | UPDATE_ROLLBACK_FAILED | UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_ROLLBACK_COMPLETE | REVIEW_IN_PROGRESS`  
Wajib: Ya

StackStatusReason  
Pesan sukses atau gagal yang terkait dengan status tumpukan.  
Jenis: String  
Wajib: Tidak  
Untuk informasi selengkapnya, lihat [CreateStack](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html).

## Pertimbangan keamanan
<a name="automation-action-createstack-security"></a>

Sebelum Anda dapat menggunakan `aws:createStack` tindakan, Anda harus menetapkan kebijakan berikut untuk peran asumsi Otomatisasi IAM. Untuk informasi lebih lanjut tentang peran asumsi, lihat [Tugas 1: Buat peran layanan untuk otomatisasi](automation-setup-iam.md#create-service-role). 

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "sqs:*",
            "cloudformation:CreateStack",
            "cloudformation:DescribeStacks"
         ],
         "Resource":"*"
      }
   ]
}
```

------

# `aws:createTags`— Buat tag untuk AWS sumber daya
<a name="automation-action-createtag"></a>

Membuat tag baru untuk instans Amazon Elastic Compute Cloud (Amazon EC2) atau instans terkelola. AWS Systems Manager 

**catatan**  
`aws:createTags`Tindakan ini mendukung percobaan ulang pelambatan otomatis. Untuk informasi selengkapnya, lihat [Mengkonfigurasi percobaan ulang otomatis untuk operasi yang dibatasi](automation-throttling-retry.md).

**Input**  
Tindakan ini mendukung sebagian besar parameter Amazon EC2 `CreateTags` dan Systems Manager `AddTagsToResource`. Untuk informasi selengkapnya, lihat [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/api_createtags.html) dan [AddTagsToResource](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/api_addtagstoresource.html).

Contoh berikut menunjukkan cara menandai tag Amazon Machine Image (AMI) dan sebuah instans sebagai sumber daya produksi untuk departemen tertentu.

------
#### [ YAML ]

```
name: createTags
action: aws:createTags
maxAttempts: 3
onFailure: Abort
inputs:
  ResourceType: EC2
  ResourceIds:
  - ami-9a3768fa
  - i-02951acd5111a8169
  Tags:
  - Key: production
    Value: ''
  - Key: department
    Value: devops
```

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

```
{
    "name": "createTags",
    "action": "aws:createTags",
    "maxAttempts": 3,
    "onFailure": "Abort",
    "inputs": {
        "ResourceType": "EC2",
        "ResourceIds": [
            "ami-9a3768fa",
            "i-02951acd5111a8169"
        ],
        "Tags": [
            {
                "Key": "production",
                "Value": ""
            },
            {
                "Key": "department",
                "Value": "devops"
            }
        ]
    }
}
```

------

ResourceIds  
ID sumber daya (s) yang akan ditandai. Jika jenis sumber daya bukan “EC2”, bidang ini hanya dapat berisi satu item.  
Jenis: Daftar String  
Wajib: Ya

Tag  
Tag untuk mengasosiasikan dengan sumber daya.  
Jenis: Daftar Peta  
Wajib: Ya

ResourceType  
ID sumber daya yang akan ditandai. Jika tidak disediakan, nilai default “EC2” digunakan.  
Jenis: String  
Wajib: Tidak  
Nilai yang benar: `EC2` \$1 `ManagedInstance` \$1 `MaintenanceWindow` \$1 `Parameter`

**Output**  
Tidak ada

# `aws:deleteImage` – Hapus Amazon Machine Image
<a name="automation-action-delete"></a>

Menghapus Amazon Machine Image (AMI) khusus dan semua snapshot terkait.

**catatan**  
`aws:deleteImage`Tindakan ini mendukung percobaan ulang pelambatan otomatis. Untuk informasi selengkapnya, lihat [Mengkonfigurasi percobaan ulang otomatis untuk operasi yang dibatasi](automation-throttling-retry.md).

**Input**  
Tindakan ini hanya mendukung satu parameter. Untuk informasi selengkapnya, lihat dokumentasi untuk [DeregisterImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeregisterImage.html)dan [DeleteSnapshot](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteSnapshot.html).

------
#### [ YAML ]

```
name: deleteMyImage
action: aws:deleteImage
maxAttempts: 3
timeoutSeconds: 180
onFailure: Abort
inputs:
  ImageId: ami-12345678
```

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

```
{
    "name": "deleteMyImage",
    "action": "aws:deleteImage",
    "maxAttempts": 3,
    "timeoutSeconds": 180,
    "onFailure": "Abort",
    "inputs": {
        "ImageId": "ami-12345678"
    }
}
```

------

ImageId  
ID gambar yang akan dihapus.  
Jenis: String  
Diperlukan: Ya

**Output**  
Tidak ada

# `aws:deleteStack`— Hapus CloudFormation tumpukan
<a name="automation-action-deletestack"></a>

Menghapus AWS CloudFormation tumpukan.

**catatan**  
`aws:deleteStack`Tindakan ini mendukung percobaan ulang pelambatan otomatis. Untuk informasi selengkapnya, lihat [Mengkonfigurasi percobaan ulang otomatis untuk operasi yang dibatasi](automation-throttling-retry.md).

**Masukan**

------
#### [ YAML ]

```
name: deleteStack
action: aws:deleteStack
maxAttempts: 1
onFailure: Abort
inputs:
  StackName: "{{stackName}}"
```

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

```
{
   "name":"deleteStack",
   "action":"aws:deleteStack",
   "maxAttempts":1,
   "onFailure":"Abort",
   "inputs":{
      "StackName":"{{stackName}}"
   }
}
```

------

ClientRequestToken  
Pengidentifikasi unik untuk `DeleteStack` permintaan ini. Tentukan token ini jika Anda berencana untuk mencoba lagi permintaan sehingga CloudFormation tahu bahwa Anda tidak mencoba menghapus tumpukan dengan nama yang sama. Anda dapat mencoba kembali `DeleteStack` permintaan untuk memverifikasi bahwa CloudFormation menerimanya.  
Tipe: String  
Batasan Panjang: Panjang minimum 1. Panjang maksimum 128.  
Pola: [a-zA-Z][-a-zA-Z0-9]\$1  
Wajib: Tidak

RetainResources.member.n  
Masukan ini hanya berlaku untuk tumpukan yang berada di `DELETE_FAILED` status. Daftar sumber daya logis IDs untuk sumber daya yang ingin Anda pertahankan. Selama penghapusan, CloudFormation menghapus tumpukan, tetapi tidak menghapus sumber daya yang dipertahankan.  
Mempertahankan sumber daya berguna bila Anda tidak dapat menghapus sumber daya, seperti bucket S3 yang tidak kosong, namun Anda ingin menghapus tumpukan.  
Jenis: array string  
Wajib: Tidak

RoleArn  
Nama Sumber Daya Amazon (ARN) dari peran AWS Identity and Access Management (IAM) yang CloudFormation mengasumsikan untuk membuat tumpukan. CloudFormation menggunakan kredensi peran untuk melakukan panggilan atas nama Anda. CloudFormation selalu menggunakan peran ini untuk semua operasi future di stack. Selama pengguna memiliki izin untuk beroperasi di tumpukan, CloudFormation gunakan peran ini meskipun pengguna tidak memiliki izin untuk meneruskannya. Pastikan bahwa peran memberikan sedikitnya jumlah hak istimewa.   
Jika Anda tidak menentukan nilai, CloudFormation gunakan peran yang sebelumnya dikaitkan dengan tumpukan. Jika tidak ada peran yang tersedia, CloudFormation gunakan sesi sementara yang dihasilkan dari kredensi pengguna Anda.   
Tipe: String  
Batasan Panjang: Panjang minimum 20. Panjang maksimum 2048.  
Wajib: Tidak

StackName  
Nama atau ID tumpukan unik yang berhubungan dengan tumpukan.  
Jenis: String  
Wajib: Ya

## Pertimbangan keamanan
<a name="automation-action-deletestack-security"></a>

Sebelum Anda dapat menggunakan `aws:deleteStack` tindakan, Anda harus menetapkan kebijakan berikut untuk peran asumsi Otomatisasi IAM. Untuk informasi lebih lanjut tentang peran asumsi, lihat [Tugas 1: Buat peran layanan untuk otomatisasi](automation-setup-iam.md#create-service-role). 

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "sqs:*",
            "cloudformation:DeleteStack",
            "cloudformation:DescribeStacks"
         ],
         "Resource":"*"
      }
   ]
}
```

------

# `aws:executeAutomation` – Jalankan otomatisasi lain
<a name="automation-action-executeAutomation"></a>

Menjalankan otomatisasi sekunder dengan memanggil runbook sekunder. Dengan tindakan ini, Anda dapat membuat runbook untuk operasi Anda yang paling umum, dan referensi runbook tersebut selama otomatisasi. Tindakan ini dapat menyederhanakan runbook Anda dengan menghapus kebutuhan untuk menduplikasi langkah-langkah di runbook serupa.

Otomatisasi sekunder berjalan dalam konteks pengguna yang memulai otomatisasi utama. Ini berarti bahwa otomatisasi sekunder menggunakan peran AWS Identity and Access Management (IAM) atau pengguna yang sama dengan pengguna yang memulai otomatisasi pertama.

**penting**  
Jika Anda menetapkan parameter dalam otomatisasi sekunder yang menggunakan peran asumsi (peran yang menggunakan kebijakan iam:passRole), maka pengguna atau peran yang memulai otomatisasi utama harus memiliki izin untuk melewati peran asumsi yang ditentukan dalam otomatisasi sekunder. Untuk informasi lebih lanjut tentang pengaturan peran asumsi untuk otomatisasi, lihat [Buat peran layanan untuk Otomasi menggunakan konsol](automation-setup-iam.md).

**Masukan**

------
#### [ YAML ]

```
name: Secondary_Automation
action: aws:executeAutomation
maxAttempts: 3
timeoutSeconds: 3600
onFailure: Abort
inputs:
  DocumentName: secondaryAutomation
  RuntimeParameters:
    instanceIds:
    - i-1234567890abcdef0
```

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

```
{
   "name":"Secondary_Automation",
   "action":"aws:executeAutomation",
   "maxAttempts":3,
   "timeoutSeconds":3600,
   "onFailure":"Abort",
   "inputs":{
      "DocumentName":"secondaryAutomation",
      "RuntimeParameters":{
         "instanceIds":[
            "i-1234567890abcdef0"
         ]
      }
   }
}
```

------

DocumentName  
Nama runbook sekunder yang dijalankan selama langkah. Untuk runbook yang sama Akun AWS, tentukan nama runbook. Untuk runbook yang dibagikan dari yang berbeda Akun AWS, tentukan Nama Sumber Daya Amazon (ARN) dari runbook. Untuk informasi tentang menggunakan runbook bersama, lihat [Menggunakan dokumen SSM bersama](documents-ssm-sharing.md#using-shared-documents).  
Jenis: String  
Diperlukan: Ya

DocumentVersion  
Runbook versi sekunder yang akan dijalankan. Jika tidak ditentukan, Otomatisasi menjalankan runbook versi default.  
Jenis: String  
Wajib: Tidak

MaxConcurrency  
Jumlah maksimum target yang diizinkan untuk menjalankan tugas ini secara paralel. Anda dapat menentukan angka, seperti 10, atau persentase, seperti 10%.  
Tipe: String  
Wajib: Tidak

MaxErrors  
Jumlah kesalahan yang diizinkan sebelum sistem berhenti menjalankan otomatisasi pada target tambahan. Anda dapat menentukan jumlah kesalahan absolut, misalnya 10, atau persentase target yang ditetapkan, misalnya 10%. Jika Anda menentukan 3, misalnya, sistem berhenti menjalankan otomatisasi ketika kesalahan keempat diterima. Jika Anda menentukan 0, maka sistem berhenti menjalankan otomatisasi pada target tambahan setelah hasil kesalahan pertama dikembalikan. Jika Anda menjalankan otomatisasi pada 50 sumber daya dan disetel `MaxErrors` ke 10%, maka sistem berhenti menjalankan otomatisasi pada target tambahan ketika kesalahan keenam diterima.  
Otomatisasi yang sudah berjalan ketika `MaxErrors` ambang batas tercapai diizinkan untuk diselesaikan, tetapi beberapa otomatisasi ini mungkin gagal juga. Jika Anda perlu memastikan bahwa tidak akan ada lebih banyak otomatisasi yang gagal daripada yang ditentukan`MaxErrors`, atur `MaxConcurrency` ke 1 sehingga otomatisasi berjalan satu per satu.  
Tipe: String  
Wajib: Tidak

RuntimeParameters  
Diperlukan parameter untuk runbook sekunder. Pemetaan menggunakan format berikut: \$1"parameter1" : "value1", "parameter2" : "value2" \$1  
Jenis: Peta  
Wajib: Tidak

Tanda  
Metadata opsional yang Anda tetapkan ke sumber daya. Anda dapat menentukan maksimal lima tag untuk otomatisasi.  
Jenis: MapList  
Wajib: Tidak

TargetLocations  
Lokasi adalah kombinasi dari Wilayah AWS dan/atau Akun AWS di mana Anda ingin menjalankan otomatisasi. Jumlah minimum 1 item harus ditentukan dan jumlah maksimum 100 item dapat ditentukan. Saat menentukan nilai untuk parameter ini, output tidak dikembalikan ke otomatisasi induk. Jika diperlukan, Anda harus melakukan panggilan berikutnya ke operasi API untuk mengambil output dari otomatisasi anak.  
Jenis: MapList  
Wajib: Tidak

TargetMaps  
Daftar pemetaan nilai kunci parameter dokumen untuk menargetkan sumber daya. Keduanya `Targets` dan tidak `TargetMaps` dapat ditentukan bersama.   
Jenis: MapList  
Wajib: Tidak

TargetParameterName  
Nama parameter yang digunakan sebagai sumber daya target untuk otomatisasi yang dikendalikan laju. Diperlukan jika Anda menentukan`Targets`.  
Tipe: String  
Wajib: Tidak

Target  
Daftar pemetaan nilai kunci untuk menargetkan sumber daya. Diperlukan jika Anda menentukan`TargetParameterName`.  
Jenis: MapList  
Wajib: TidakOutput

Output  
Output yang dihasilkan oleh otomatisasi sekunder. Anda dapat mereferensikan output dengan menggunakan format berikut: *Secondary\$1Automation\$1Step\$1Name* .Output  
Jenis: StringList  
Inilah contohnya:  

```
- name: launchNewWindowsInstance
  action: 'aws:executeAutomation'
  onFailure: Abort
  inputs:
    DocumentName: launchWindowsInstance
  nextStep: getNewInstanceRootVolume
- name: getNewInstanceRootVolume
  action: 'aws:executeAwsApi'
  onFailure: Abort
  inputs:
    Service: ec2
    Api: DescribeVolumes
    Filters:
    - Name: attachment.device
      Values:
      - /dev/sda1
    - Name: attachment.instance-id
      Values:
      - '{{launchNewWindowsInstance.Output}}'
  outputs:
  - Name: rootVolumeId
    Selector: '$.Volumes[0].VolumeId'
    Type: String
  nextStep: snapshotRootVolume
- name: snapshotRootVolume
  action: 'aws:executeAutomation'
  onFailure: Abort
  inputs:
    DocumentName: AWS-CreateSnapshot
    RuntimeParameters:
    VolumeId:
    - '{{getNewInstanceRootVolume.rootVolumeId}}'
    Description:
    - 'Initial root snapshot for {{launchNewWindowsInstance.Output}}'
```

ExecutionId  
ID otomatisasi sekunder.  
Jenis: String

Status  
Status otomatisasi sekunder.  
Tipe: String

# `aws:executeAwsApi`— Panggil dan jalankan operasi AWS API
<a name="automation-action-executeAwsApi"></a>

Memanggil dan menjalankan operasi AWS API. Sebagian besar operasi API didukung, meskipun tidak semua operasi API telah diuji. Operasi API streaming, seperti [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html)operasi, tidak didukung. Jika Anda tidak yakin apakah operasi API yang ingin Anda gunakan adalah operasi streaming, tinjau dokumentasi [Boto3](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html) untuk layanan tersebut guna menentukan apakah API memerlukan input atau output streaming. Kami secara teratur memperbarui versi Boto3 yang digunakan oleh tindakan ini. Namun, setelah rilis versi Boto3 baru, diperlukan waktu hingga beberapa minggu agar perubahan tercermin dalam tindakan ini. Setiap `aws:executeAwsApi` tindakan dapat berjalan hingga durasi maksimum 25 detik. Untuk contoh lebih lanjut tentang cara menggunakan tindakan ini, lihat[Contoh runbook tambahan](automation-document-examples.md).

**catatan**  
`aws:executeAwsApi`Tindakan ini mendukung percobaan ulang pelambatan otomatis. Untuk informasi selengkapnya, lihat [Mengkonfigurasi percobaan ulang otomatis untuk operasi yang dibatasi](automation-throttling-retry.md).

**Masukan**  
Input didefinisikan oleh operasi API yang Anda pilih. 

------
#### [ YAML ]

```
action: aws:executeAwsApi
inputs:
  Service: The official namespace of the service
  Api: The API operation or method name
  API operation inputs or parameters: A value
outputs: # These are user-specified outputs
- Name: The name for a user-specified output key
  Selector: A response object specified by using jsonpath format
  Type: The data type
```

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

```
{
   "action":"aws:executeAwsApi",
   "inputs":{
      "Service":"The official namespace of the service",
      "Api":"The API operation or method name",
      "API operation inputs or parameters":"A value"
   },
   "outputs":[ These are user-specified outputs
      {
         "Name":"The name for a user-specified output key",
         "Selector":"A response object specified by using JSONPath format",
         "Type":"The data type"
      }
   ]
}
```

------

Layanan  
 Layanan AWS Namespace yang berisi operasi API yang ingin Anda jalankan. Anda dapat melihat daftar Layanan AWS ruang nama yang didukung di [Layanan yang tersedia](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html) dari. AWS SDK untuk Python (Boto3) Namespace dapat ditemukan di bagian **Klien**. Misalnya, namespace untuk Systems Manager adalah `ssm`. Namespace untuk Amazon Elastic Compute Cloud (Amazon EC2) adalah `ec2`.  
Jenis: String  
Wajib: Ya

Api  
Nama operasi API yang ingin Anda jalankan. Anda dapat melihat operasi API (juga disebut metode) dengan memilih layanan di navigasi kiri pada halaman [Referensi Layanan](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html). Pilih metode di bagian **Klien** untuk layanan yang ingin Anda jalankan. Misalnya, semua operasi API (metode) untuk Amazon Relational Database Service (Amazon RDS) tercantum di halaman berikut: [Metode Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html).  
Jenis: String  
Wajib: Ya

Input operasi API  
Satu input operasi API atau lebih. Anda dapat melihat input yang tersediaI (dikenal dengan parameter) dengan memilih layanan di navigasi kiri pada halaman [Referensi Layanan](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html) berikut. Pilih metode di bagian **Klien** untuk layanan yang ingin Anda jalankan. Misalnya, semua metode untuk Amazon RDS tercantum di halaman berikut: [Metode Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html). ******Pilih metode [describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) dan gulir ke bawah untuk melihat parameter yang tersedia, seperti DBInstance Identifier, Name, dan Values.******  

```
inputs:
  Service: The official namespace of the service
  Api: The API operation name
  API input 1: A value
  API Input 2: A value
  API Input 3: A value
```

```
"inputs":{
      "Service":"The official namespace of the service",
      "Api":"The API operation name",
      "API input 1":"A value",
      "API Input 2":"A value",
      "API Input 3":"A value"
}
```
Jenis: Ditentukan oleh operasi API yang dipilih  
Wajib: Ya

**Output**  
Output ditentukan oleh pengguna berdasarkan respon dari operasi API yang dipilih.

Nama  
Nama untuk output.  
Jenis: String  
Wajib: Ya

Pemilih  
 JSONPath Untuk atribut tertentu dalam objek respon. Anda dapat melihat obyek respon dengan memilih layanan di navigasi kiri pada halaman [Referensi Layanan](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html) berikut. Pilih metode di bagian **Klien** untuk layanan yang ingin Anda jalankan. Misalnya, semua metode untuk Amazon RDS tercantum di halaman berikut: [Metode Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html). **Pilih metode [describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) dan gulir ke bawah ke bagian Struktur Respons.** **DBInstances**terdaftar sebagai objek respons.  
Jenis: Integer, Boolean, String,, StringList, StringMap atau MapList  
Wajib: Ya

Jenis  
Jenis data untuk elemen respon.  
Jenis: Bervariasi  
Wajib: Ya

# `aws:executeScript` – Jalankan skrip
<a name="automation-action-executeScript"></a>

Menjalankan Python atau PowerShell skrip yang disediakan menggunakan runtime dan handler yang ditentukan. Setiap `aws:executeScript` tindakan dapat menjalankan hingga durasi maksimum 600 detik (10 menit). Anda dapat membatasi batas waktu dengan menentukan `timeoutSeconds` parameter untuk `aws:executeScript` langkah.

Gunakan pernyataan pengembalian dalam fungsi Anda untuk menambahkan output ke payload keluaran Anda. Untuk contoh mendefinisikan output untuk `aws:executeScript` tindakan Anda, lihat. [Contoh 2: Runbook berskrip](automation-authoring-runbooks-scripted-example.md) Anda juga dapat mengirim output dari `aws:executeScript` tindakan di runbook ke grup CloudWatch log Amazon Logs yang Anda tentukan. Untuk informasi selengkapnya, lihat [Keluaran tindakan Otomasi Pencatatan dengan CloudWatch Log](automation-action-logging.md).

Jika Anda ingin mengirim output dari `aws:executeScript` tindakan ke CloudWatch Log, atau jika skrip yang Anda tentukan untuk `aws:executeScript` tindakan memanggil operasi AWS API, peran layanan AWS Identity and Access Management (IAM) (atau mengambil peran) selalu diperlukan untuk menjalankan runbook.

**catatan**  
`aws:executeScript`Tindakan ini tidak mendukung percobaan ulang pelambatan otomatis. Jika skrip Anda membuat panggilan AWS API yang mungkin dibatasi, Anda harus menerapkan logika coba ulang Anda sendiri dalam kode skrip Anda.

`aws:executeScript`Tindakan ini berisi modul PowerShell Core prainstal berikut:
+ Microsoft. PowerShell.Tuan rumah
+ Microsoft. PowerShell.Manajemen
+ Microsoft. PowerShell.Keamanan
+ Microsoft. PowerShell.Utilitas
+ PackageManagement
+ PowerShellGet

Untuk menggunakan modul PowerShell Core yang tidak diinstal sebelumnya, skrip Anda harus menginstal modul dengan `-Force` bendera, seperti yang ditunjukkan pada perintah berikut. `AWSPowerShell.NetCore`Modul tidak didukung. Ganti *ModuleName* dengan modul yang ingin Anda instal.

```
Install-Module ModuleName -Force
```

Untuk menggunakan cmdlet PowerShell Core dalam skrip Anda, sebaiknya gunakan `AWS.Tools` modul, seperti yang ditunjukkan pada perintah berikut. Ganti masing-masing *example resource placeholder* dengan informasi Anda sendiri.
+ cmdlet Amazon S3.

  ```
  Install-Module AWS.Tools.S3 -Force
  Get-S3Bucket -BucketName amzn-s3-demo-bucket
  ```
+ cmdlet Amazon EC2.

  ```
  Install-Module AWS.Tools.EC2 -Force
  Get-EC2InstanceStatus -InstanceId instance-id
  ```
+ Umum, atau layanan AWS Tools for Windows PowerShell cmdlet independen.

  ```
  Install-Module AWS.Tools.Common -Force
  Get-AWSRegion
  ```

Jika skrip Anda menginisialisasi objek baru selain menggunakan cmdlet PowerShell Core, Anda juga harus mengimpor modul seperti yang ditunjukkan pada perintah berikut.

```
Install-Module AWS.Tools.EC2 -Force
Import-Module AWS.Tools.EC2

$tag = New-Object Amazon.EC2.Model.Tag
$tag.Key = "Tag"
$tag.Value = "TagValue"

New-EC2Tag -Resource i-02573cafcfEXAMPLE -Tag $tag
```

Untuk contoh menginstal dan mengimpor `AWS.Tools` modul, dan menggunakan cmdlet PowerShell Core di runbook, lihat. [Pengalaman desain visual untuk runbook Otomasi](automation-visual-designer.md)

**Input**  
Berikan informasi yang diperlukan untuk menjalankan skrip Anda. Ganti masing-masing *example resource placeholder* dengan informasi Anda sendiri.

**catatan**  
Lampiran untuk skrip Python dapat berupa file.py atau file.zip yang berisi skrip. PowerShell skrip harus disimpan dalam file.zip.

------
#### [ YAML ]

```
action: "aws:executeScript"
inputs: 
 Runtime: runtime
 Handler: "functionName"
 InputPayload: 
  scriptInput: '{{parameterValue}}'
 Script: |-
   def functionName(events, context):
   ...
 Attachment: "scriptAttachment.zip"
```

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

```
{
    "action": "aws:executeScript",
    "inputs": {
        "Runtime": "runtime",
        "Handler": "functionName",
        "InputPayload": {
            "scriptInput": "{{parameterValue}}"
        },
        "Attachment": "scriptAttachment.zip"
    }
}
```

------

Waktu Aktif  
Bahasa runtime yang akan digunakan untuk menjalankan skrip yang disediakan. `aws:executeScript`mendukung runtime dalam tabel berikut.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/systems-manager/latest/userguide/automation-action-executeScript.html)
Tipe: String  
Diperlukan: Ya  
Untuk runtime python, lingkungan menyediakan memori 512MB dan ruang disk 512MB. Untuk PowerShell runtime, lingkungan menyediakan memori 1024MB dan ruang disk 512MB.

Handler  
Nama fungsi Anda. Anda harus memastikan fungsi yang didefinisikan dalam handler memiliki dua parameter, `events` dan `context`. PowerShell Runtime tidak mendukung parameter ini.  
Tipe: String  
Diperlukan: Ya (Python) \$1 Tidak didukung () PowerShell

InputPayload  
Objek JSON atau YAML yang akan diteruskan ke parameter handler pertama. Ini dapat digunakan untuk melewatkan data input ke script.  
Jenis: String  
Wajib: Tidak  

```
description: Tag an instance
schemaVersion: '0.3'
assumeRole: '{{AutomationAssumeRole}}'
parameters:
    AutomationAssumeRole:
        type: String
        description: '(Required) The Amazon Resource Name (ARN) of the IAM role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to operate this runbook.'
    InstanceId:
        type: String
        description: (Required) The ID of the EC2 instance you want to tag.
mainSteps:
  - name: tagInstance
    action: 'aws:executeScript'
    inputs:
        Runtime: "python3.11"
        Handler: tagInstance
        InputPayload:
            instanceId: '{{InstanceId}}'
        Script: |-
          def tagInstance(events,context):
            import boto3

            #Initialize client
            ec2 = boto3.client('ec2')
            instanceId = events['instanceId']
            tag = {
                "Key": "Env",
                "Value": "ExamplePython"
            }
            print(f"Adding tag {tag} to instance id {instanceId}")
            ec2.create_tags(
                Resources=[instanceId],
                Tags=[tag]
            )
            return tag
    outputs:
      - Type: String
        Name: TagKey
        Selector: $.Payload.Key
outputs:
  - tagInstance.TagKey
```

```
description: Tag an instance
schemaVersion: '0.3'
assumeRole: '{{AutomationAssumeRole}}'
parameters:
  AutomationAssumeRole:
    type: String
    description: (Required) The Amazon Resource Name (ARN) of the IAM role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to operate this runbook.
  InstanceId:
    type: String
    description: (Required) The ID of the EC2 instance you want to tag.
mainSteps:
  - name: tagInstance
    action: aws:executeScript
    isEnd: true
    inputs:
      Runtime: PowerShell 7.4
      InputPayload:
        instanceId: '{{InstanceId}}'
      Script: |-
        Install-Module AWS.Tools.EC2 -Force
        Import-Module AWS.Tools.EC2

        $input = $env:InputPayload | ConvertFrom-Json

        $tag = New-Object Amazon.EC2.Model.Tag
        $tag.Key = "Env"
        $tag.Value = "ExamplePowerShell"

        Write-Information "Adding tag key: $($tag.Key) and value: $($tag.Value) to instance id $($input.instanceId)"
        New-EC2Tag -Resource $input.instanceId -Tag $tag

        return $tag
    outputs:
      - Type: String
        Name: TagKey
        Selector: $.Payload.Key
outputs:
  - tagInstance.TagKey
```

Skrip  
Skrip tertanam yang ingin Anda jalankan selama otomatisasi.  
Tipe: String  
Wajib: Tidak (Python) \$1 Ya () PowerShell

Lampiran  
Nama file skrip mandiri atau file .zip yang dapat dijalankan oleh tindakan. Tentukan nilai yang sama dengan `Name` file lampiran dokumen yang Anda tentukan dalam parameter `Attachments` permintaan. Untuk informasi selengkapnya, lihat [Lampiran](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_CreateDocument.html#systemsmanager-CreateDocument-request-Attachments) di *Referensi AWS Systems Manager API*. Jika Anda menyediakan skrip menggunakan lampiran, Anda juga harus menentukan `files` bagian di elemen tingkat atas runbook Anda. Untuk informasi selengkapnya, lihat [Skema versi 0.3](documents-schemas-features.md#automation-doc-syntax-examples).  
Guna menjalankan file untuk Python, gunakan `filename.method_name` format dalam `Handler`.   
Lampiran untuk skrip Python dapat berupa file.py atau file.zip yang berisi skrip. PowerShell skrip harus disimpan dalam file.zip.
Ketika menyertakan pustaka Python di lampiran anda, kami sarankan menambahkan sebuah `__init__.py` file kosong dalam setiap direktori modul. Hal ini mengizinkan Anda untuk mengimpor modul dari pustaka di lampiran dalam konten skrip Anda. Misalnya: `from library import module`  
Jenis: String  
Wajib: TidakOutput

Payload  
Representasi objek JSON dikembalikan oleh fungsi Anda. Hingga 100KB yang dikembalikan. Jika Anda menampilkan daftar, maksimal 100 item dikembalikan.

## Menggunakan lampiran dengan AWS: ExecuteScript
<a name="automation-action-executeScript-attachments"></a>

Lampiran menyediakan cara ampuh untuk mengemas dan menggunakan kembali skrip kompleks, beberapa modul, dan dependensi eksternal dengan tindakan Anda. `aws:executeScript` Gunakan lampiran saat Anda perlu:
+ Package beberapa modul Python atau PowerShell script bersama-sama.
+ Gunakan kembali logika skrip yang sama di beberapa runbook.
+ Sertakan pustaka atau dependensi eksternal dengan skrip Anda.
+ Jaga agar definisi runbook Anda tetap bersih dengan memisahkan logika skrip yang kompleks.
+ Bagikan paket skrip di seluruh tim atau alur kerja otomatisasi.

### Struktur lampiran dan kemasan
<a name="automation-action-executeScript-attachment-structure"></a>

Anda dapat melampirkan file tunggal atau paket zip yang berisi banyak file. Strukturnya tergantung pada kasus penggunaan Anda:

**Lampiran file tunggal**  
Untuk skrip sederhana, Anda dapat melampirkan satu `.py` file (Python) atau file `.zip` yang berisi skrip tunggal PowerShell.

**Paket multi-modul**  
Untuk otomatisasi kompleks yang memerlukan banyak modul, buat paket zip dengan struktur yang direkomendasikan berikut:

```
my-automation-package.zip
├── main.py                    # Entry point script
├── utils/
│   ├── __init__.py           # Required for Python module imports
│   ├── helper_functions.py   # Utility functions
│   └── aws_operations.py     # AWS-specific operations
├── config/
│   ├── __init__.py
│   └── settings.py           # Configuration settings
└── requirements.txt          # Optional: document dependencies
```

**penting**  
Untuk paket Python, Anda harus menyertakan `__init__.py` file kosong di setiap direktori yang berisi modul Python. Ini memungkinkan Anda untuk mengimpor modul menggunakan sintaks impor Python standar seperti. `from utils import helper_functions`

**PowerShell struktur paket**  
PowerShell lampiran harus dikemas dalam file zip dengan struktur berikut:

```
my-powershell-package.zip
├── Main.ps1                  # Entry point script
├── Modules/
│   ├── HelperFunctions.ps1   # Utility functions
│   └── AWSOperations.ps1     # AWS-specific operations
└── Config/
    └── Settings.ps1          # Configuration settings
```

### Membuat runbook dengan lampiran
<a name="automation-action-executeScript-attachment-workflow"></a>

Ikuti langkah-langkah berikut untuk membuat runbook yang menggunakan lampiran:

1. **Unggah lampiran Anda ke Amazon S3**

   Unggah file skrip atau paket zip Anda ke bucket S3 yang dapat diakses oleh peran otomatisasi Anda. Perhatikan URI S3 untuk digunakan pada langkah berikutnya.

   ```
   aws s3 cp my-automation-package.zip s3://my-automation-bucket/scripts/
   ```

1. **Hitung checksum lampiran**

   Hitung checksum SHA-256 dari file lampiran Anda untuk verifikasi keamanan:

   ```
   # Linux/macOS
   shasum -a 256 my-automation-package.zip
   
   # Windows PowerShell
   Get-FileHash -Algorithm SHA256 my-automation-package.zip
   ```

1. **Tentukan bagian file di runbook Anda**

   Tambahkan `files` bagian di tingkat atas runbook Anda untuk mereferensikan lampiran Anda:

   ```
   files:
     my-automation-package.zip:
       checksums:
         sha256: "your-calculated-checksum-here"
   ```

1. **Referensikan lampiran di langkah ExecuteScript Anda**

   Gunakan `Attachment` parameter untuk mereferensikan file yang Anda unggah:

   ```
   - name: runMyScript
     action: aws:executeScript
     inputs:
       Runtime: python3.11
       Handler: main.process_data
       Attachment: my-automation-package.zip
       InputPayload:
         inputData: "{{InputParameter}}"
   ```

## AWS: Contoh lampiran executeScript
<a name="automation-action-executeScript-examples"></a>

Contoh berikut menunjukkan berbagai cara untuk menggunakan lampiran dengan `aws:executeScript` tindakan.

### Contoh 1: Lampiran file tunggal
<a name="automation-action-executeScript-single-file-example"></a>

Contoh ini menunjukkan bagaimana menggunakan file Python tunggal sebagai lampiran untuk memproses data instans EC2.

**File lampiran: process\$1instance.py**  
Buat file Python dengan konten berikut:

```
import boto3
import json

def process_instance_data(events, context):
    """Process EC2 instance data and return formatted results."""
    try:
        instance_id = events.get('instanceId')
        if not instance_id:
            raise ValueError("instanceId is required")
        
        ec2 = boto3.client('ec2')
        
        # Get instance details
        response = ec2.describe_instances(InstanceIds=[instance_id])
        instance = response['Reservations'][0]['Instances'][0]
        
        # Format the response
        result = {
            'instanceId': instance_id,
            'instanceType': instance['InstanceType'],
            'state': instance['State']['Name'],
            'availabilityZone': instance['Placement']['AvailabilityZone'],
            'tags': {tag['Key']: tag['Value'] for tag in instance.get('Tags', [])}
        }
        
        print(f"Successfully processed instance {instance_id}")
        return result
        
    except Exception as e:
        print(f"Error processing instance: {str(e)}")
        raise
```

**Runbook lengkap**  
Berikut adalah runbook lengkap yang menggunakan lampiran file tunggal:

```
description: Process EC2 instance data using single file attachment
schemaVersion: '0.3'
assumeRole: '{{AutomationAssumeRole}}'
parameters:
  AutomationAssumeRole:
    type: String
    description: (Required) IAM role for automation execution
  InstanceId:
    type: String
    description: (Required) EC2 instance ID to process

files:
  process_instance.py:
    checksums:
      sha256: "abc123def456..."

mainSteps:
  - name: processInstance
    action: aws:executeScript
    inputs:
      Runtime: python3.11
      Handler: process_instance.process_instance_data
      Attachment: process_instance.py
      InputPayload:
        instanceId: '{{InstanceId}}'
    outputs:
      - Type: StringMap
        Name: InstanceData
        Selector: $.Payload

outputs:
  - processInstance.InstanceData
```

### Contoh 2: Paket multi-modul
<a name="automation-action-executeScript-multi-module-example"></a>

Contoh ini menunjukkan penggunaan paket zip yang berisi beberapa modul Python untuk operasi bucket S3 yang kompleks.

**Struktur Package**  
Buat paket zip dengan struktur berikut:

```
s3-operations.zip
├── main.py
├── utils/
│   ├── __init__.py
│   ├── s3_helper.py
│   └── validation.py
└── config/
    ├── __init__.py
    └── settings.py
```

**main.py (titik masuk)**  
Skrip utama yang mengatur operasi:

```
from utils.s3_helper import S3Operations
from utils.validation import validate_bucket_name
from config.settings import get_default_settings

def cleanup_s3_bucket(events, context):
    """Clean up S3 bucket based on specified criteria."""
    try:
        bucket_name = events.get('bucketName')
        max_age_days = events.get('maxAgeDays', 30)
        
        # Validate inputs
        if not validate_bucket_name(bucket_name):
            raise ValueError(f"Invalid bucket name: {bucket_name}")
        
        # Initialize S3 operations
        s3_ops = S3Operations()
        settings = get_default_settings()
        
        # Perform cleanup
        deleted_objects = s3_ops.delete_old_objects(
            bucket_name, 
            max_age_days,
            settings['dry_run']
        )
        
        result = {
            'bucketName': bucket_name,
            'deletedCount': len(deleted_objects),
            'deletedObjects': deleted_objects[:10],  # Return first 10 for brevity
            'dryRun': settings['dry_run']
        }
        
        print(f"Cleanup completed for bucket {bucket_name}")
        return result
        
    except Exception as e:
        print(f"Error during S3 cleanup: {str(e)}")
        raise
```

## Pemecahan masalah AWS: Lampiran ExecuteScript
<a name="automation-action-executeScript-troubleshooting"></a>

Gunakan panduan berikut untuk menyelesaikan masalah umum dengan `aws:executeScript` lampiran:

**Kesalahan impor modul**  
Jika Anda menerima kesalahan impor saat menggunakan paket multi-modul:
+ Pastikan Anda telah menyertakan `__init__.py` file kosong di setiap direktori yang berisi modul Python.
+ Verifikasi bahwa pernyataan impor Anda cocok dengan struktur file dan direktori yang sebenarnya dalam paket zip Anda.
+ Gunakan impor relatif (misalnya,`from .utils import helper`) atau impor absolut (misalnya,`from utils import helper`) secara konsisten.

**Lampiran tidak ditemukan kesalahan**  
Jika otomatisasi Anda gagal menemukan lampiran:
+ Verifikasi bahwa nilai `Attachment` parameter sama persis dengan kunci di `files` bagian Anda.
+ Periksa apakah jalur bucket S3 dan nama file Anda sudah benar di `files` bagian tersebut.
+ Pastikan peran otomatisasi Anda memiliki `s3:GetObject` izin untuk lokasi lampiran S3.
+ Verifikasi bahwa checksum di runbook Anda cocok dengan checksum file yang sebenarnya.

**Kesalahan fungsi handler**  
Jika Anda menerima kesalahan terkait penangan:
+ Untuk Python: Gunakan format `filename.function_name` dalam `Handler` parameter (misalnya,`main.process_data`).
+ Pastikan fungsi handler Anda menerima tepat dua parameter: `events` dan. `context`
+ Untuk PowerShell: Jangan tentukan `Handler` parameter; skrip berjalan secara langsung.

**Kegagalan eksekusi skrip**  
Jika skrip Anda gagal selama eksekusi:
+ Periksa riwayat eksekusi otomatisasi untuk pesan kesalahan terperinci dan jejak tumpukan.
+ Gunakan `print()` pernyataan (Python) atau `Write-Information` (PowerShell) untuk menambahkan output debugging.
+ Verifikasi bahwa semua AWS izin yang diperlukan diberikan ke peran otomatisasi Anda.
+ Uji logika skrip Anda secara lokal sebelum mengemasnya sebagai lampiran.

**Kode keluar dan penanganan kesalahan**  
Untuk menangani kesalahan dengan benar dan mengembalikan kode keluar:
+ Dalam Python: Gunakan `raise Exception("error message")` untuk menunjukkan kegagalan skrip.
+ Dalam PowerShell: Gunakan `throw "error message"` atau `Write-Error` untuk menunjukkan kegagalan.
+ Kembalikan data terstruktur dari fungsi Anda untuk memberikan success/failure informasi terperinci.
+ Gunakan blok try-catch untuk menangani pengecualian dengan anggun dan memberikan pesan kesalahan yang berarti.

# `aws:executeStateMachine`— Jalankan mesin AWS Step Functions negara
<a name="automation-action-executeStateMachine"></a>

Menjalankan mesin AWS Step Functions negara.

**catatan**  
`aws:executeStateMachine`Tindakan ini mendukung percobaan ulang pelambatan otomatis. Untuk informasi selengkapnya, lihat [Mengkonfigurasi percobaan ulang otomatis untuk operasi yang dibatasi](automation-throttling-retry.md).

**Masukan**

Tindakan ini mendukung sebagian besar parameter untuk operasi Step Functions [StartExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html)API.

**Izin yang diperlukan AWS Identity and Access Management (IAM)**
+ `states:DescribeExecution`
+ `states:StartExecution`
+ `states:StopExecution`

------
#### [ YAML ]

```
name: executeTheStateMachine
action: aws:executeStateMachine
inputs:
  stateMachineArn: StateMachine_ARN
  input: '{"parameters":"values"}'
  name: name
```

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

```
{
    "name": "executeTheStateMachine",
    "action": "aws:executeStateMachine",
    "inputs": {
        "stateMachineArn": "StateMachine_ARN",
        "input": "{\"parameters\":\"values\"}",
        "name": "name"
    }
}
```

------

stateMachineArn  
Amazon Resource Name (ARN) mesin status Step Functions.  
Jenis: String  
Wajib: Ya

nama  
Nama eksekusi.  
Jenis: String  
Wajib: Tidak

input  
Sebuah string yang berisi data input JSON untuk eksekusi.  
Jenis: String  
Wajib: Tidak

**Output**  
Output berikut telah ditentukan untuk tindakan ini.

ExecutionARN  
ARN eksekusi.  
Tipe: String

input  
String yang berisi data input JSON dari eksekusi. Kendala panjang berlaku untuk ukuran muatan, dan dinyatakan sebagai byte dalam pengkodean UTF-8..  
Tipe: String

name  
Nama eksekusi.  
Tipe: String

output  
Data keluaran JSON dari eksekusi. Kendala panjang berlaku untuk ukuran muatan, dan dinyatakan sebagai byte dalam pengkodean UTF-8.  
Tipe: String

StartDate  
Tanggal eksekusi dimulai.  
Tipe: String

stateMachineArn  
ARN dari mesin yang dinyatakan dieksekusi.  
Tipe: String

status  
Status eksekusi saat ini.  
Tipe: String

StopDate  
Jika eksekusi sudah berakhir, tanggal eksekusi berhenti.  
Tipe: String

# `aws:invokeWebhook`— Memanggil integrasi webhook Otomasi
<a name="invoke-webhook"></a>

Memanggil integrasi webhook Otomasi yang ditentukan. Untuk informasi tentang membuat integrasi Otomasi, lihat[Membuat integrasi webhook untuk Otomasi](creating-webhook-integrations.md).

**catatan**  
`aws:invokeWebhook`Tindakan ini mendukung percobaan ulang pelambatan otomatis. Untuk informasi selengkapnya, lihat [Mengkonfigurasi percobaan ulang otomatis untuk operasi yang dibatasi](automation-throttling-retry.md).

**catatan**  
Untuk menggunakan `aws:invokeWebhook` tindakan, peran pengguna atau layanan Anda harus mengizinkan tindakan berikut:  
ssm: GetParameter
kms:Decrypt
Izin untuk `Decrypt` operasi AWS Key Management Service (AWS KMS) hanya diperlukan jika Anda menggunakan kunci yang dikelola pelanggan untuk mengenkripsi parameter untuk integrasi Anda.

**Input**  
Berikan informasi untuk integrasi Otomasi yang ingin Anda panggil.

------
#### [ YAML ]

```
action: "aws:invokeWebhook"
inputs: 
 IntegrationName: "exampleIntegration"
 Body: "Request body"
```

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

```
{
    "action": "aws:invokeWebhook",
    "inputs": {
        "IntegrationName": "exampleIntegration",
        "Body": "Request body"
    }
}
```

------

IntegrationName  
Nama integrasi Otomasi. Misalnya, `exampleIntegration`. Integrasi yang Anda tentukan harus sudah ada.  
Tipe: String  
Diperlukan: Ya

Tubuh  
Payload yang ingin Anda kirim saat integrasi webhook Anda dipanggil.  
Tipe: String  
Wajib: TidakOutput

Respons  
Teks yang diterima dari respons penyedia webhook.

ResponseCode  
Kode status HTTP diterima dari respon penyedia webhook.

# `aws:invokeLambdaFunction`— Memanggil fungsi AWS Lambda
<a name="automation-action-lamb"></a>

Memanggil AWS Lambda fungsi yang ditentukan.

**catatan**  
Setiap `aws:invokeLambdaFunction` tindakan dapat menjalankan hingga durasi maksimum 300 detik (5 menit). Anda dapat membatasi batas waktu dengan menentukan `timeoutSeconds` parameter untuk `aws:invokeLambdaFunction` langkah.

**catatan**  
`aws:invokeLambdaFunction`Tindakan ini mendukung percobaan ulang pelambatan otomatis. Untuk informasi selengkapnya, lihat [Mengkonfigurasi percobaan ulang otomatis untuk operasi yang dibatasi](automation-throttling-retry.md).

**Input**  
Tindakan ini mendukung parameter yang paling dijalankan untuk layanan Lambda. Untuk informasi selengkapnya, lihat [Jalankan](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html).

------
#### [ YAML ]

```
name: invokeMyLambdaFunction
action: aws:invokeLambdaFunction
maxAttempts: 3
timeoutSeconds: 120
onFailure: Abort
inputs:
  FunctionName: MyLambdaFunction
```

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

```
{
    "name": "invokeMyLambdaFunction",
    "action": "aws:invokeLambdaFunction",
    "maxAttempts": 3,
    "timeoutSeconds": 120,
    "onFailure": "Abort",
    "inputs": {
        "FunctionName": "MyLambdaFunction"
    }
}
```

------

FunctionName  
Nama fungsi Lambda. Fungsi ini harus ada.  
Jenis: String  
Wajib: Ya

Pengualifikasi  
Versi fungsi atau alias.  
Jenis: String  
Wajib: Tidak

InvocationType  
Jenis penanganan. Nilai default-nya adalah `RequestResponse`.  
Jenis: String  
Nilai yang valid: `Event` \$1 `RequestResponse` \$1 `DryRun`  
Wajib: Tidak

LogType  
Jika nilai default-nya adalah `Tail`, jenis penanganan harus berupa `RequestResponse`. Lambda mengembalikan 4 KB data log terakhir yang dihasilkan oleh fungsi Lambda Anda, base64-dikodekan.  
Jenis: String  
Nilai yang valid: `None` \$1 `Tail`  
Wajib: Tidak

ClientContext  
Informasi khusus klien.  
Wajib: Tidak

InputPayload  
Sebuah objek YAMAL atau JSON yang diteruskan ke parameter pertama dari handler. Anda dapat menggunakan input ini untuk meneruskan data ke fungsi. Masukan ini memberikan lebih banyak fleksibilitas dan dukungan daripada `Payload` input lama. Jika Anda mendefinisikan keduanya `InputPayload` dan `Payload` untuk tindakan, `InputPayload` diutamakan dan `Payload` nilainya tidak digunakan.  
Jenis: StringMap  
Wajib: Tidak

Payload  
String JSON yang diteruskan ke parameter pertama handler. Ini dapat digunakan untuk meneruskan data input ke fungsi. Kami merekomendasikan penggunaan `InputPayload` input untuk fungsionalitas tambahan.  
Tipe: String  
Wajib: TidakOutput

StatusCode  
Kode status HTTP.

FunctionError  
Jika ada, ini menunjukkan bahwa kesalahan terjadi saat menjalankan fungsi. Detail kesalahan disertakan dalam muatan respons.

LogResult  
The base64-encoded mencatat penanganan fungsi Lambda. Catatan hadir hanya jika jenis penanganan adalah `RequestResponse`, dan log diminta.

Muatan  
Representasi objek JSON dikembalikan oleh fungsi Lambda. Muatan hadir hanya jika jenis doa adalah `RequestResponse`.

Berikut ini adalah bagian dari `AWS-PatchInstanceWithRollback` runbook yang menunjukkan cara mereferensikan output dari tindakan. `aws:invokeLambdaFunction`

------
#### [ YAML ]

```
- name: IdentifyRootVolume
  action: aws:invokeLambdaFunction
  inputs:
    FunctionName: "IdentifyRootVolumeLambda-{{automation:EXECUTION_ID}}"
    Payload: '{"InstanceId": "{{InstanceId}}"}'
- name: PrePatchSnapshot
  action: aws:executeAutomation
  inputs:
    DocumentName: "AWS-CreateSnapshot"
    RuntimeParameters:
      VolumeId: "{{IdentifyRootVolume.Payload}}"
      Description: "ApplyPatchBaseline restoration case contingency"
```

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

```
{
    "name": "IdentifyRootVolume",
    "action": "aws:invokeLambdaFunction",
    "inputs": {
      "FunctionName": "IdentifyRootVolumeLambda-{{automation:EXECUTION_ID}}",
      "Payload": "{\"InstanceId\": \"{{InstanceId}}\"}"
    }
  },
  {
    "name": "PrePatchSnapshot",
    "action": "aws:executeAutomation",
    "inputs": {
      "DocumentName": "AWS-CreateSnapshot",
      "RuntimeParameters": {
        "VolumeId": "{{IdentifyRootVolume.Payload}}",
        "Description": "ApplyPatchBaseline restoration case contingency"
      }
    }
  }
```

------

# `aws:loop`— Ulangi langkah-langkah dalam otomatisasi
<a name="automation-action-loop"></a>

Tindakan ini mengulangi subset langkah dalam runbook otomatisasi. Anda dapat memilih loop `do while` atau `for each` gaya. Untuk membangun `do while` loop, gunakan parameter `LoopCondition` input. Untuk membangun `for each` loop, gunakan parameter `Iterators` dan `IteratorDataType` input. Saat menggunakan `aws:loop` tindakan, hanya tentukan parameter `Iterators` atau `LoopCondition` input. Jumlah maksimum iterasi adalah 100.

`onCancel`Properti hanya dapat digunakan untuk langkah-langkah yang ditentukan dalam loop. `onCancel`Properti tidak didukung untuk `aws:loop` tindakan tersebut. `onFailure`Properti dapat digunakan untuk `aws:loop` tindakan, namun hanya akan digunakan jika terjadi kesalahan tak terduga yang menyebabkan langkah gagal. Jika Anda mendefinisikan `onFailure` properti untuk langkah-langkah dalam loop, `aws:loop` tindakan mewarisi properti tersebut dan bereaksi sesuai ketika kegagalan terjadi.

**Contoh**  
Berikut ini adalah contoh bagaimana membangun berbagai jenis tindakan loop.

------
#### [ do while ]

```
name: RepeatMyLambdaFunctionUntilOutputIsReturned
action: aws:loop
inputs:
    Steps:
    - name: invokeMyLambda
        action: aws:invokeLambdaFunction
        inputs:
        FunctionName: LambdaFunctionName
        outputs:
        - Name: ShouldRetry
            Selector: $.Retry
            Type: Boolean
    LoopCondition:
        Variable: "{{ invokeMyLambda.ShouldRetry }}"
        BooleanEquals: true
    MaxIterations: 3
```

------
#### [ for each ]

```
name: stopAllInstancesWithWaitTime
action: aws:loop
inputs:
    Iterators: "{{ DescribeInstancesStep.InstanceIds }}"
    IteratorDataType: "String"
    Steps:
    - name: stopOneInstance
        action: aws:changeInstanceState
        inputs:
        InstanceIds:
            - "{{stopAllInstancesWithWaitTime.CurrentIteratorValue}}"
        CheckStateOnly: false
        DesiredState: stopped
    - name: wait10Seconds
        action: aws:sleep
        inputs:
        Duration: PT10S
```

------

**Input**  
Intputnya adalah sebagai berikut.

Iterator  
Daftar item untuk langkah-langkah untuk mengulangi. Jumlah maksimum iterator adalah 100.  
Jenis: StringList  
Wajib: Tidak

IteratorDataType  
Parameter opsional untuk menentukan tipe data dari file`Iterators`. Nilai untuk parameter ini dapat diberikan bersama dengan parameter `Iterators` input. Jika Anda tidak menentukan nilai untuk parameter ini dan`Iterators`, maka Anda harus menentukan nilai untuk `LoopCondition` parameter tersebut.  
Tipe: String  
Nilai yang valid: Boolean \$1 Integer \$1 String \$1 StringMap  
Default: String  
Wajib: Tidak

LoopCondition  
Terdiri dari a `Variable` dan kondisi operator untuk mengevaluasi. Jika Anda tidak menentukan nilai untuk parameter ini, maka Anda harus menentukan nilai untuk `Iterators` dan `IteratorDataType` parameter. Anda dapat menggunakan evaluasi operator yang kompleks dengan menggunakan kombinasi`And`,`Not`, dan `Or` operator. Kondisi ini dievaluasi setelah langkah-langkah dalam loop selesai. Jika kondisinya `true` dan `MaxIterations` nilainya belum tercapai, langkah-langkah dalam loop berjalan lagi. Kondisi operator adalah sebagai berikut:  

**Operasi String**
+ StringEquals
+ EqualsIgnoreCase
+ StartsWith
+ EndsWith
+ Berisi

**Operasi numerik**
+ NumericEquals
+ NumericGreater
+ NumericLesser
+ NumericGreaterOrEquals
+ NumericLesser
+ NumericLesserOrEquals

**Operasi Boolean**
+ BooleanEquals
Jenis: StringMap  
Wajib: Tidak

MaxIterations  
Jumlah maksimum kali langkah-langkah dalam loop dijalankan. Setelah nilai yang ditentukan untuk input ini tercapai, loop berhenti berjalan bahkan jika `LoopCondition` masih `true` atau jika ada objek yang tersisa dalam `Iterators` parameter.  
Jenis: Integer  
Nilai yang valid: 1 - 100  
Wajib: Tidak

Langkah-langkah  
Daftar langkah-langkah untuk dijalankan dalam loop. Ini berfungsi seperti runbook bersarang. Dalam langkah-langkah ini Anda dapat mengakses nilai iterator saat ini untuk `for each` loop menggunakan sintaks`{{loopStepName.CurrentIteratorValue}}`. Anda juga dapat mengakses nilai integer dari iterasi saat ini untuk kedua jenis loop menggunakan sintaks. `{{loopStepName.CurrentIteration}}`  
Jenis: Daftar langkah  
Wajib: YaOutput

CurrentIteration  
Iterasi loop saat ini sebagai bilangan bulat. Nilai iterasi mulai dari 1.  
Jenis: Integer

CurrentIteratorValue  
Nilai iterator saat ini sebagai string. Output ini hanya ada dalam `for each` loop.  
Tipe: String

# `aws:pause` – Jeda otomatisasi
<a name="automation-action-pause"></a>

Tindakan ini menghentikan otomatisasi. Setelah dijeda, status otomasi adalah *Menunggu*. Untuk melanjutkan otomatisasi, gunakan operasi [SendAutomationSignal](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_SendAutomationSignal.html)API dengan tipe `Resume` sinyal. Sebaiknya gunakan `aws:approve` tindakan `aws:sleep` atau untuk kontrol alur kerja Anda yang lebih terperinci.

**catatan**  
Batas waktu default untuk tindakan ini adalah 7 hari (604800 detik) dan nilai maksimum adalah 30 hari (2592000 detik). Anda dapat membatasi atau memperpanjang batas waktu dengan menentukan `timeoutSeconds` parameter untuk `aws:pause` langkah.

**Input**  
Intputnya adalah sebagai berikut.

------
#### [ YAML ]

```
name: pauseThis
action: aws:pause
timeoutSeconds: 1209600
inputs: {}
```

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

```
{
    "name": "pauseThis",
    "action": "aws:pause",
    "timeoutSeconds": "1209600",
    "inputs": {}
}
```

------Output

Tidak ada  


# `aws:runCommand` – Jalankan perintah pada instans terkelola
<a name="automation-action-runcommand"></a>

Menjalankan perintah yang ditentukan.

**catatan**  
Otomatisasi hanya mendukung *output* dari satu AWS Systems Manager Run Command tindakan. Runbook dapat menyertakan beberapa Run Command tindakan, tetapi output didukung hanya untuk satu tindakan pada satu waktu.

**Input**  
Tindakan ini mendukung sebagian besar parameter perintah kirim. Untuk informasi selengkapnya, lihat [SendCommand](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_SendCommand.html).

------
#### [ YAML ]

```
- name: checkMembership
  action: 'aws:runCommand'
  inputs:
    DocumentName: AWS-RunPowerShellScript
    InstanceIds:
      - '{{InstanceIds}}'
    Parameters:
      commands:
        - (Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain
```

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

```
{
    "name": "checkMembership",
    "action": "aws:runCommand",
    "inputs": {
        "DocumentName": "AWS-RunPowerShellScript",
        "InstanceIds": [
            "{{InstanceIds}}"
        ],
        "Parameters": {
            "commands": [
                "(Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain"
            ]
        }
    }
}
```

------

DocumentName  
Jika dokumen tipe Command dimiliki oleh Anda atau AWS, tentukan nama dokumen. Jika Anda menggunakan dokumen yang dibagikan dengan Anda oleh Akun AWS yang berbeda, tentukan Amazon Resource Name (ARN) dokumen. Untuk informasi selengkapnya tentang penggunaan dokumen bersama, lihat [Menggunakan dokumen SSM bersama](documents-ssm-sharing.md#using-shared-documents).  
Jenis: String  
Diperlukan: Ya

InstanceIds  
Contoh di IDs mana Anda ingin perintah dijalankan. Anda dapat menentukan maksimal 50 IDs.   
Anda juga dapat menggunakan parameter `{{RESOURCE_ID}}` semu sebagai pengganti instance IDs untuk menjalankan perintah pada semua instance dalam grup target. Untuk informasi selengkapnya tentang parameter semu, lihat[Menggunakan parameter semu saat mendaftarkan tugas jendela pemeliharaan](maintenance-window-tasks-pseudo-parameters.md).  
Alternatif lain adalah untuk mengirim perintah ke armada instans dengan menggunakan `Targets` parameter. Parameter `Targets` menerima tag Amazon Elastic Compute Cloud (Amazon EC2). Untuk informasi selengkapnya tentang cara menggunakan `Targets` parameter, lihat [Jalankan perintah pada skala](send-commands-multiple.md).  
Jenis: StringList  
Wajib: Tidak (Jika Anda tidak menentukan InstanceIds atau menggunakan parameter `{{RESOURCE_ID}}` semu, maka Anda harus menentukan `Targets` parameternya.)

Target  
Array kriteria penelusuran yang menargetkan instance dengan menggunakan kombinasi Kunci, Nilai yang Anda tentukan. `Targets`diperlukan jika Anda tidak memberikan satu atau lebih contoh IDs dalam panggilan. Untuk informasi selengkapnya tentang cara menggunakan `Targets` parameter, lihat [Jalankan perintah pada skala](send-commands-multiple.md).  
Jenis: MapList (Skema peta dalam daftar harus cocok dengan objek.) Untuk informasi lebih lanjut, lihat [Target](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_Target.html) dalam *AWS Systems Manager Referensi API*.  
Wajib: Tidak (Jika Anda tidak menentukan`Targets`, maka Anda harus menentukan InstanceIds atau menggunakan parameter `{{RESOURCE_ID}}` semu.)  
Berikut adalah contohnya.  

```
- name: checkMembership
  action: aws:runCommand
  inputs:
    DocumentName: AWS-RunPowerShellScript
    Targets:
      - Key: tag:Stage
        Values:
          - Gamma
          - Beta
      - Key: tag-key
        Values:
          - Suite
    Parameters:
      commands:
        - (Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain
```

```
{
    "name": "checkMembership",
    "action": "aws:runCommand",
    "inputs": {
        "DocumentName": "AWS-RunPowerShellScript",
        "Targets": [                   
            {
                "Key": "tag:Stage",
                "Values": [
                    "Gamma", "Beta"
                ]
            },
            {
                "Key": "tag:Application",
                "Values": [
                    "Suite"
                ]
            }
        ],
        "Parameters": {
            "commands": [
                "(Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain"
            ]
        }
    }
}
```

Parameter  
Parameter yang diperlukan dan opsional yang ditentukan dalam dokumen.  
Jenis: Peta  
Wajib: Tidak

CloudWatchOutputConfig  
Opsi konfigurasi untuk mengirim output perintah ke Amazon CloudWatch Logs. Untuk informasi selengkapnya tentang mengirim output perintah ke CloudWatch Log, lihat[Mengkonfigurasi CloudWatch Log Amazon untuk Run Command](sysman-rc-setting-up-cwlogs.md).  
Jenis: StringMap (Skema peta harus cocok dengan objek. Untuk informasi selengkapnya, lihat [CloudWatchOutputConfig](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_CloudWatchOutputConfig.html)di *Referensi AWS Systems Manager API*).  
Wajib: Tidak  
Berikut adalah contohnya.  

```
- name: checkMembership
  action: aws:runCommand
  inputs:
    DocumentName: AWS-RunPowerShellScript
    InstanceIds:
      - "{{InstanceIds}}"
    Parameters:
      commands:
        - "(Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain"
    CloudWatchOutputConfig:
      CloudWatchLogGroupName: CloudWatchGroupForSSMAutomationService
      CloudWatchOutputEnabled: true
```

```
{
    "name": "checkMembership",
    "action": "aws:runCommand",
    "inputs": {
        "DocumentName": "AWS-RunPowerShellScript",
        "InstanceIds": [
            "{{InstanceIds}}"
        ],
        "Parameters": {
            "commands": [
                "(Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain"
            ]
        },
        "CloudWatchOutputConfig" : { 
                "CloudWatchLogGroupName": "CloudWatchGroupForSSMAutomationService",
                "CloudWatchOutputEnabled": true
        }
    }
}
```

Komentar  
Informasi yang ditetapkan pengguna tentang perintah.  
Jenis: String  
Wajib: Tidak

DocumentHash  
Hash untuk dokumen.  
Jenis: String  
Wajib: Tidak

DocumentHashType  
Jenis hash.  
Jenis: String  
Nilai yang valid: `Sha256` \$1 `Sha1`  
Wajib: Tidak

NotificationConfig  
Konfigurasi untuk mengirim notifikasi.  
Wajib: Tidak

Keluaran3 BucketName  
Nama bucket S3 untuk tanggapan output perintah. Node terkelola Anda harus memiliki izin agar bucket S3 berhasil mencatat output.  
Tipe: String  
Wajib: Tidak

Keluaran3 KeyPrefix  
Prefiks.  
Jenis: String  
Wajib: Tidak

ServiceRoleArn  
ARN dari peran AWS Identity and Access Management (IAM).  
Tipe: String  
Wajib: Tidak

TimeoutSeconds  
Jumlah waktu dalam hitungan detik untuk menunggu perintah dikirimkan ke AWS Systems Manager SSM Agent pada sebuah instance. Jika perintah tidak diterima oleh SSM Agent pada instance sebelum nilai yang ditentukan tercapai, maka status perintah berubah menjadi`Delivery Timed Out`.  
Tipe: Integer  
Wajib: Tidak  
Nilai yang valid: 30-2592000Output

CommandId  
ID perintah.

Status  
Status perintah.

ResponseCode  
Kode respon perintah. Jika dokumen yang Anda jalankan memiliki lebih dari 1 langkah, nilai tidak dikembalikan untuk output ini.

Output  
Output perintah. Jika Anda menargetkan tag atau beberapa instance dengan perintah Anda, tidak ada nilai output yang dikembalikan. Anda dapat menggunakan operasi `GetCommandInvocation` dan `ListCommandInvocations` API untuk mengambil output untuk instance individual.

# `aws:runInstances` – Luncurkan Instans Amazon EC2
<a name="automation-action-runinstance"></a>

Luncurkan Amazon Elastic Compute Cloud (Amazon EC2) yang baru.

**catatan**  
`aws:runInstances`Tindakan ini mendukung percobaan ulang pelambatan otomatis. Untuk informasi selengkapnya, lihat [Mengkonfigurasi percobaan ulang otomatis untuk operasi yang dibatasi](automation-throttling-retry.md).

**Input**  
Tindakan ini mendukung sebagian besar parameter API. Untuk informasi selengkapnya, lihat dokumentasi [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html)API.

------
#### [ YAML ]

```
name: launchInstance
action: aws:runInstances
maxAttempts: 3
timeoutSeconds: 1200
onFailure: Abort
inputs:
  ImageId: ami-12345678
  InstanceType: t2.micro
  MinInstanceCount: 1
  MaxInstanceCount: 1
  IamInstanceProfileName: myRunCmdRole
  TagSpecifications:
  - ResourceType: instance
    Tags:
    - Key: LaunchedBy
      Value: SSMAutomation
    - Key: Category
      Value: HighAvailabilityFleetHost
```

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

```
{
   "name":"launchInstance",
   "action":"aws:runInstances",
   "maxAttempts":3,
   "timeoutSeconds":1200,
   "onFailure":"Abort",
   "inputs":{
      "ImageId":"ami-12345678",
      "InstanceType":"t2.micro",
      "MinInstanceCount":1,
      "MaxInstanceCount":1,
      "IamInstanceProfileName":"myRunCmdRole",
      "TagSpecifications":[
         {
            "ResourceType":"instance",
            "Tags":[
               {
                  "Key":"LaunchedBy",
                  "Value":"SSMAutomation"
               },
               {
                  "Key":"Category",
                  "Value":"HighAvailabilityFleetHost"
               }
            ]
         }
      ]
   }
}
```

------

AdditionalInfo  
Dicadangkan.  
Jenis: String  
Wajib: Tidak

BlockDeviceMappings  
Perangkat blok untuk instans.  
Jenis: MapList  
Wajib: Tidak

ClientToken  
Pengenal untuk memastikan idempotensi permintaan.  
Jenis: String  
Wajib: Tidak

DisableApiTermination  
Menghidupkan atau mematikan penghentian API instans.  
Jenis: Boolean  
Wajib: Tidak

EbsOptimized  
Menghidupkan atau mematikan optimisasi Amazon Elastic Block Store (Amazon EBS).  
Jenis: Boolean  
Wajib: Tidak

IamInstanceProfileArn  
Nama Sumber Daya Amazon (ARN) dari profil instans AWS Identity and Access Management (IAM) untuk instance tersebut.  
Tipe: String  
Wajib: Tidak

IamInstanceProfileName  
Nama profil instans (IAM) untuk instans.  
Jenis: String  
Wajib: Tidak

ImageId  
ID Amazon Machine Image (AMI).  
Jenis: String  
Diperlukan: Ya

InstanceInitiatedShutdownBehavior  
Menunjukkan apakah instans berhenti atau berakhir pada sistem shutdown.  
Jenis: String  
Wajib: Tidak

InstanceType  
Jenis instance.  
Jika nilai jenis instans tidak disediakan, jenis instans m1.small digunakan.
Jenis: String  
Wajib: Tidak

KernelId  
ID kernel.  
Jenis: String  
Wajib: Tidak

KeyName  
Nama pasangan kunci.  
Jenis: String  
Wajib: Tidak

MaxInstanceCount  
Jumlah instans maksimum untuk diluncurkan.  
Jenis: String  
Wajib: Tidak

MetadataOptions  
Opsi metadata untuk instans. Untuk informasi selengkapnya, lihat [InstanceMetadataOptionsRequest](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_InstanceMetadataOptionsRequest.html).  
Jenis: StringMap  
Wajib: Tidak

MinInstanceCount  
Jumlah instans minimum untuk diluncurkan.  
Jenis: String  
Wajib: Tidak

Pemantauan  
Menghidupkan atau mematikan pemantauan terperinci.  
Jenis: Boolean  
Wajib: Tidak

NetworkInterfaces  
Antarmuka jaringan.  
Jenis: MapList  
Wajib: Tidak

Penempatan  
Penempatan untuk instans.  
Jenis: StringMap  
Wajib: Tidak

PrivateIpAddress  
 IPv4 Alamat utama.  
Tipe: String  
Wajib: Tidak

RamdiskId  
ID disk RAM.  
Jenis: String  
Wajib: Tidak

SecurityGroupIds  
 IDs Kelompok keamanan misalnya.  
Jenis: StringList  
Wajib: Tidak

SecurityGroups  
Nama grup keamanan untuk instans.  
Jenis: StringList  
Wajib: Tidak

SubnetId  
ID subnet.  
Jenis: String  
Wajib: Tidak

TagSpecifications  
Tag untuk diterapkan ke sumber daya selama peluncuran. Anda hanya dapat menandai instans dan volume saat peluncuran. Tag tertentu diterapkan untuk semua instans atau volume yang dibuat selama peluncuran. Untuk menandai instans setelah diluncurkan, gunakan [`aws:createTags`— Buat tag untuk AWS sumber daya](automation-action-createtag.md) tindakan.  
Jenis: MapList (Untuk informasi lebih lanjut, lihat [TagSpecification](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_TagSpecification.html).)  
Wajib: Tidak

UserData  
Sebuah skrip yang disediakan sebagai nilai literal string. Jika nilai literal dimasukkan, maka harus Base64-encoded.  
Jenis: String  
Wajib: TidakOutput

InstanceIds  
 IDs Dari contoh.

InstanceStates  
Status tabel saat ini ().

# `aws:sleep` – Menunda otomatisasi
<a name="automation-action-sleep"></a>

Menunda otomatisasi selama beberapa waktu tertentu. Tindakan ini menggunakan format tanggal dan waktu Organisasi Internasional untuk Standardisasi (ISO) 8601. Untuk informasi selengkapnya tentang format gal dan waktu, lihat [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html).

**Input**  
Anda dapat menunda otomatisasi untuk durasi tertentu. 

------
#### [ YAML ]

```
name: sleep
action: aws:sleep
inputs:
  Duration: PT10M
```

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

```
{
   "name":"sleep",
   "action":"aws:sleep",
   "inputs":{
      "Duration":"PT10M"
   }
}
```

------

Anda juga dapat menunda otomatisasi sampai tanggal dan waktu yang ditentukan. Jika tanggal dan waktu yang ditentukan telah berlalu, tindakan akan segera berlanjut. 

------
#### [ YAML ]

```
name: sleep
action: aws:sleep
inputs:
  Timestamp: '2020-01-01T01:00:00Z'
```

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

```
{
    "name": "sleep",
    "action": "aws:sleep",
    "inputs": {
        "Timestamp": "2020-01-01T01:00:00Z"
    }
}
```

------

**catatan**  
Otomasi mendukung penundaan maksimum 604799 detik (7 hari).

Durasi  
Durasi ISO 8601. Anda tidak dapat menentukan durasi negatif.   
Jenis: String  
Wajib: Tidak

Timestamp  
Sebuah cap waktu ISO 8601. Jika Anda tidak menentukan nilai untuk parameter ini, Anda harus menentukan nilai untuk `Duration` parameter tersebut.   
Jenis: String  
Wajib: TidakOutput

Tidak ada  


# `aws:updateVariable`— Memperbarui nilai untuk variabel runbook
<a name="automation-action-update-variable"></a>

Tindakan ini memperbarui nilai untuk variabel runbook. Tipe data dari nilai harus sesuai dengan tipe data variabel yang ingin Anda perbarui. Konversi tipe data tidak didukung. `onCancel`Properti tidak didukung untuk `aws:updateVariable` tindakan tersebut.

**Input**  
Intputnya adalah sebagai berikut.

------
#### [ YAML ]

```
name: updateStringList
action: aws:updateVariable
inputs:
    Name: variable:variable name
    Value:
    - "1"
    - "2"
```

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

```
{
    "name": "updateStringList",
    "action": "aws:updateVariable",
    "inputs": {
        "Name": "variable:variable name",
        "Value": ["1","2"]
    }
}
```

------

Nama  
Nama variabel yang nilainya ingin Anda perbarui. Anda harus menggunakan format `variable:variable name`  
Tipe: String  
Diperlukan: Ya

Nilai  
Nilai baru untuk menetapkan ke variabel. Nilai harus sesuai dengan tipe data variabel. Konversi tipe data tidak didukung.  
Jenis: Boolean \$1 Integer \$1 \$1 String MapList \$1 \$1 StringList StringMap  
Wajib: Ya  
Batas:  
+ MapList dapat berisi jumlah maksimum 200 item.
+ Panjang kunci bisa menjadi panjang minimum 1 dan panjang maksimum 50.
+ StringList dapat berupa jumlah minimum 0 item dan jumlah maksimum 50 item.
+ Panjang string bisa menjadi panjang minimum 1 dan panjang maksimum 512.Output

Tidak ada  


# `aws:waitForAwsResourceProperty`— Tunggu properti AWS sumber daya
<a name="automation-action-waitForAwsResourceProperty"></a>

Tindakan `aws:waitForAwsResourceProperty` tersebut mengizinkan otomatisasi Anda untuk menunggu status sumber daya tertentu atau status peristiwa sebelum melanjutkan otomatisasi. Untuk contoh lebih lanjut tentang cara menggunakan tindakan ini, lihat[Contoh runbook tambahan](automation-document-examples.md).

**catatan**  
Nilai batas waktu default untuk tindakan ini adalah 3600 detik (satu jam). Anda dapat membatasi atau memperpanjang batas waktu dengan menentukan `timeoutSeconds` parameter untuk `aws:waitForAwsResourceProperty` langkah. Untuk informasi selengkapnya dan contoh tentang cara menggunakan tindakan ini, lihat [Menangani waktu habis di runbook](automation-handling-timeouts.md).

**catatan**  
`aws:waitForAwsResourceProperty`Tindakan ini mendukung percobaan ulang pelambatan otomatis. Untuk informasi selengkapnya, lihat [Mengkonfigurasi percobaan ulang otomatis untuk operasi yang dibatasi](automation-throttling-retry.md).

**Input**  
Input didefinisikan oleh operasi API yang Anda pilih.

------
#### [ YAML ]

```
action: aws:waitForAwsResourceProperty
inputs:
  Service: The official namespace of the service
  Api: The API operation or method name
  API operation inputs or parameters: A value
  PropertySelector: Response object
  DesiredValues:
  - Desired property value
```

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

```
{
  "action": "aws:waitForAwsResourceProperty",
  "inputs": {
    "Service":"The official namespace of the service",
    "Api":"The API operation or method name",
    "API operation inputs or parameters":"A value",
    "PropertySelector": "Response object",
    "DesiredValues": [
      "Desired property value"
    ]
  }
}
```

------

Layanan  
 Layanan AWS Namespace yang berisi operasi API yang ingin Anda jalankan. Misalnya, namespace untuk AWS Systems Manager adalah. `ssm` Namespace untuk Amazon Elastic Compute Cloud (Amazon EC2) adalah `ec2`. Anda dapat melihat daftar Layanan AWS ruang nama yang didukung di bagian [Layanan yang Tersedia pada Referensi AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/#available-services) *Perintah*.  
Tipe: String  
Wajib: Ya

Api  
Nama operasi API yang ingin Anda jalankan. Anda dapat melihat operasi API (juga disebut metode) dengan memilih layanan di navigasi kiri pada halaman [Referensi Layanan](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html). Pilih metode di bagian **Klien** untuk layanan yang ingin Anda jalankan. Misalnya, semua operasi API (metode) untuk Amazon Relational Database Service (Amazon RDS) tercantum di halaman berikut: [Metode Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html).  
Jenis: String  
Wajib: Ya

Input operasi API  
Satu input operasi API atau lebih. Anda dapat melihat input yang tersediaI (dikenal dengan parameter) dengan memilih layanan di navigasi kiri pada halaman [Referensi Layanan](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html) berikut. Pilih metode di bagian **Klien** untuk layanan yang ingin Anda jalankan. Misalnya, semua metode untuk Amazon RDS tercantum di halaman berikut: [Metode Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html). ******Pilih metode [describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) dan gulir ke bawah untuk melihat parameter yang tersedia, seperti DBInstance Identifier, Name, dan Values.******  

```
inputs:
  Service: The official namespace of the service
  Api: The API operation name
  API input 1: A value
  API Input 2: A value
  API Input 3: A value
```

```
"inputs":{
      "Service":"The official namespace of the service",
      "Api":"The API operation name",
      "API input 1":"A value",
      "API Input 2":"A value",
      "API Input 3":"A value"
}
```
Jenis: Ditentukan oleh operasi API yang dipilih  
Wajib: Ya

PropertySelector  
 JSONPath Untuk atribut tertentu dalam objek respon. Anda dapat melihat obyek respon dengan memilih layanan di navigasi kiri pada halaman [Referensi Layanan](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html) berikut. Pilih metode di bagian **Klien** untuk layanan yang ingin Anda jalankan. Misalnya, semua metode untuk Amazon RDS tercantum di halaman berikut: [Metode Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html). **Pilih metode [describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) dan gulir ke bawah ke bagian Struktur Respons.** **DBInstances**terdaftar sebagai objek respons.  
Tipe: String  
Diperlukan: Ya

DesiredValues  
Status yang diharapkan untuk melanjutkan otomatisasi.  
Jenis: MapList, StringList  
Wajib: Ya

# Variabel sistem Otomatisasi
<a name="automation-variables"></a>

AWS Systems Manager Runbook otomatisasi menggunakan variabel berikut. Untuk contoh cara penggunaan variabel-variabel ini digunakan, lihat sumber JSON `AWS-UpdateWindowsAmi` runbook. 

**Untuk melihat sumber JSON `AWS-UpdateWindowsAmi` runbook**

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

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

1. Dalam daftar dokumen, gunakan bilah Pencarian atau angka di sebelah kanan bilah Pencarian untuk memilih buku runbook `AWS-UpdateWindowsAmi`.

1. Pilih tab **Daftar Isi**. 

**Variabel sistem**  
Runbook otomatisasi mendukung variabel berikut.


****  

| Variabel | Detail | 
| --- | --- | 
|  `global:ACCOUNT_ID`  |   Akun AWS ID pengguna atau peran di mana Otomasi berjalan.  | 
|  `global:DATE`  |  Tanggal (pada waktu berjalan) dalam format yyyy-MM-dd.  | 
|  `global:DATE_TIME`  |  Tanggal dan waktu (pada waktu berjalan) dalam format yyyy-MM-dd \$1HH.mm.ss.  | 
|  `global:AWS_PARTITION`  |  Partisi tempat sumber daya berada. Untuk standar Wilayah AWS, partisi adalah`aws`. Jika Anda memiliki sumber daya di partisi lain, maka partisi-nya adalah `aws-partitionname`. Misalnya, partisi untuk sumber daya di Wilayah AWS GovCloud (AS-Barat) adalah`aws-us-gov`.  | 
|  `global:REGION`  |  Wilayah tempat runbook dijalankan. Misalnya, us–east-2.  | 

**Variabel otomatisasi**  
Runbook otomatisasi mendukung variabel otomatisasi berikut.


****  

| Variabel | Detail | 
| --- | --- | 
|  `automation:EXECUTION_ID`  |  Pengenal unik yang ditugaskan untuk otomatisasi saat ini. Misalnya, `1a2b3c-1a2b3c-1a2b3c-1a2b3c1a2b3c1a2b3c`.  | 

**Topics**
+ [Terminologi](#automation-terms)
+ [Skenario yang didukung](#automation-variables-support)
+ [Skenario tidak didukung](#automation-variables-unsupported)

## Terminologi
<a name="automation-terms"></a>

Istilah berikut menjelaskan cara menyelesaikan variabel dan parameter.


****  

| Jangka waktu | Definisi | Contoh | 
| --- | --- | --- | 
|  ARN Konstan  |  Amazon Resource Name (ARN) yang valid tanpa variabel.  |  `arn:aws:iam::123456789012:role/roleName`  | 
|  Parameter runbook  |  Parameter yang didefinisikan pada tingkat runbook (misalnya, `instanceId`). Parameter tersebut digunakan dalam pengganti string dasar. Nilainya diberikan pada saat Memulai Eksekusi.  |  <pre>{ <br />   "description": "Create Image Demo",<br />   "version": "0.3",<br />   "assumeRole": "Your_Automation_Assume_Role_ARN",<br />   "parameters":{ <br />      "instanceId": { <br />         "type": "String",<br />         "description": "Instance to create image from"<br />   }<br />}</pre>  | 
|  Variabel sistem  |  Variabel umum diganti ke runbook ketika setiap bagian runbook dievaluasi.  |  <pre>"activities": [ <br />   { <br />      "id": "copyImage",<br />      "activityType": "AWS-CopyImage",<br />      "maxAttempts": 1,<br />      "onFailure": "Continue",<br />      "inputs": { <br />         "ImageName": "{{imageName}}",<br />         "SourceImageId": "{{sourceImageId}}",<br />         "SourceRegion": "{{sourceRegion}}",<br />         "Encrypted": true,<br />         "ImageDescription": "Test CopyImage Description created on {{global:DATE}}"<br />      }<br />   }<br />]</pre>  | 
|  Variasi otomatis  |  Variabel yang berkaitan dengan otomatisasi diganti ke runbook ketika setiap bagian runbook dievaluasi.  |  <pre>{ <br />   "name": "runFixedCmds",<br />   "action": "aws:runCommand",<br />   "maxAttempts": 1,<br />   "onFailure": "Continue",<br />   "inputs": { <br />      "DocumentName": "AWS-RunPowerShellScript",<br />      "InstanceIds": [ <br />         "{{LaunchInstance.InstanceIds}}"<br />      ],<br />      "Parameters": { <br />         "commands": [ <br />            "dir",<br />            "date",<br />            "“{{outputFormat}}” -f “left”,”right”,”{{global:DATE}}”,”{{automation:EXECUTION_ID}}”<br />         ]<br />      }<br />   }<br />}</pre>  | 
|  Parameter Systems Manager  |  Variabel yang didefinisikan dalam AWS Systems Manager Parameter Store. Itu tidak dapat langsung direferensikan dalam input langkah. Izin mungkin diperlukan untuk mengakses parameter.  |  <pre><br />description: Launch new Windows test instance<br />schemaVersion: '0.3'<br />assumeRole: '{{AutomationAssumeRole}}'<br />parameters:<br />  AutomationAssumeRole:<br />    type: String<br />    default: ''<br />    description: >-<br />      (Required) The ARN of the role that allows Automation to perform the<br />      actions on your behalf. If no role is specified, Systems Manager<br />      Automation uses your IAM permissions to run this runbook.<br />  LatestAmi:<br />    type: String<br />    default: >-<br />      {{ssm:/aws/service/ami-windows-latest/Windows_Server-2016-English-Full-Base}}<br />    description: The latest Windows Server 2016 AMI queried from the public parameter.<br />mainSteps:<br />  - name: launchInstance<br />    action: 'aws:runInstances'<br />    maxAttempts: 3<br />    timeoutSeconds: 1200<br />    onFailure: Abort<br />    inputs:<br />      ImageId: '{{LatestAmi}}'<br />...</pre>  | 

## Skenario yang didukung
<a name="automation-variables-support"></a>


****  

| Skenario | Komentar | Contoh | 
| --- | --- | --- | 
|  ARN Konstan `assumeRole` saat penciptaan.  |  Pemeriksaan otorisasi dilakukan untuk memverifikasi bahwa pengguna panggilan diizinkan untuk melewati diberikan `assumeRole`.  |  <pre>{<br />  "description": "Test all Automation resolvable parameters",<br />  "schemaVersion": "0.3",<br />  "assumeRole": "arn:aws:iam::123456789012:role/roleName",<br />  "parameters": { <br />  ...</pre>  | 
|  Parameter Runbook disediakan untuk `AssumeRole` saat otomasi dimulai.  |  Harus didefinisikan dalam daftar parameter runbook.  |  <pre>{<br />  "description": "Test all Automation resolvable parameters",<br />  "schemaVersion": "0.3",<br />  "assumeRole": "{{dynamicARN}}",<br />  "parameters": {<br /> ...</pre>  | 
|  Nilai yang disediakan untuk parameter runbook di awal.  |  Pelanggan memasok nilai yang akan digunakan untuk parameter. Setiap input yang diberikan pada waktu mulai harus didefinisikan dalam daftar parameter runbook.  |  <pre>...<br />"parameters": {<br />    "amiId": {<br />      "type": "String",<br />      "default": "ami-12345678",<br />      "description": "list of commands to run as part of first step"<br />    },<br />...</pre> Masukan untuk Memulai Eksekusi Otomatisasi meliputi : `{"amiId" : ["ami-12345678"] }`  | 
|  Parameter Systems Manager direferensikan dalam konten runbook.  |  Variabel ada dalam akun pelanggan, atau merupakan parameter yang dapat diakses publik, dan `AssumeRole` untuk runbook memiliki akses ke variabel. Pemeriksaan dilakukan pada waktu membuat untuk mengonfirmasi `AssumeRole` memiliki akses. Parameter tidak dapat langsung direferensikan dalam langkah input.  |  <pre><br />...<br />parameters:<br />    LatestAmi:<br />    type: String<br />    default: >-<br />      {{ssm:/aws/service/ami-windows-latest/Windows_Server-2016-English-Full-Base}}<br />    description: The latest Windows Server 2016 AMI queried from the public parameter.<br />mainSteps:<br />  - name: launchInstance<br />    action: 'aws:runInstances'<br />    maxAttempts: 3<br />    timeoutSeconds: 1200<br />    onFailure: Abort<br />    inputs:<br />      ImageId: '{{LatestAmi}}'<br />...</pre>  | 
|  Variabel sistem direferensikan dalam definisi langkah  |  Sebuah variabel sistem diganti ke runbook ketika otomatisasi dimulai. Nilai yang disuntikkan ke dalam runbook relatif saat substitusi terjadi. Artinya, nilai variabel waktu disuntikkan pada langkah 1 berbeda dari nilai variabel yang disuntikkan pada langkah 3 karena waktu yang dibutuhkan untuk menjalankan langkah-langkah di antaranya. Variabel sistem tidak perlu diatur dalam daftar parameter runbook.  |  <pre>...<br />  "mainSteps": [<br />    {<br />      "name": "RunSomeCommands",<br />      "action": "aws:runCommand",<br />      "maxAttempts": 1,<br />      "onFailure": "Continue",<br />      "inputs": {<br />        "DocumentName": "AWS:RunPowerShell",<br />        "InstanceIds": ["{{LaunchInstance.InstanceIds}}"],<br />        "Parameters": {<br />            "commands" : [<br />                "echo {The time is now {{global:DATE_TIME}}}"<br />            ]<br />        }<br />    }<br />}, ... </pre>  | 
|  Variabel otomatisasi direferensikan dalam definisi langkah.  |  Variabel otomatisasi tidak perlu diatur dalam daftar parameter runbook. Variabel Otomatisasi yang hanya didukung adalah **otomatisasi:EXECUTION\$1ID**.  |  <pre>...<br />"mainSteps": [<br />    {<br />      "name": "invokeLambdaFunction",<br />      "action": "aws:invokeLambdaFunction",<br />      "maxAttempts": 1,<br />      "onFailure": "Continue",<br />      "inputs": {<br />        "FunctionName": "Hello-World-LambdaFunction",<br /><br />"Payload" : "{ "executionId" : "{{automation:EXECUTION_ID}}" }"<br />      }<br />    }<br />... </pre>  | 
|  Lihat output langkah sebelumnya dalam definisi langkah berikutnya.  |  Ini adalah pengalihan parameter. Output langkah sebelumnya direferensikan menggunakan sintaks `{{stepName.OutputName}}`. Sintaks ini tidak dapat digunakan oleh pelanggan untuk parameter runbook. Hal ini teratasi saat langkah pengarah berjalan. Parameter tidak tercantum dalam parameter runbook.  |  <pre>...<br />"mainSteps": [<br />    {<br />      "name": "LaunchInstance",<br />      "action": "aws:runInstances",<br />      "maxAttempts": 1,<br />      "onFailure": "Continue",<br />      "inputs": {<br />        "ImageId": "{{amiId}}",<br />        "MinInstanceCount": 1,<br />        "MaxInstanceCount": 2<br />      }<br />    },<br />    {<br />      "name":"changeState",<br />      "action": "aws:changeInstanceState",<br />      "maxAttempts": 1,<br />      "onFailure": "Continue",<br />      "inputs": {<br />        "InstanceIds": ["{{LaunchInstance.InstanceIds}}"],<br />        "DesiredState": "terminated"<br />      }<br />    }<br /><br />... </pre>  | 

## Skenario tidak didukung
<a name="automation-variables-unsupported"></a>


****  

| Skenario | Komentar | Contoh | 
| --- | --- | --- | 
|  Parameter Systems Manager disediakan untuk `assumeRole` saat membuat  |  Tidak didukung.  |  <pre>...<br /><br />{<br />  "description": "Test all Automation resolvable parameters",<br />  "schemaVersion": "0.3",<br />  "assumeRole": "{{ssm:administratorRoleARN}}",<br />  "parameters": {<br /><br />... </pre>  | 
|  Parameter Systems Manager langsung direferensikan dalam langkah input.  |  Pengembalian `InvalidDocumentContent` pengecualian pada waktu pembuatan.  |  <pre><br />...<br />mainSteps:<br />  - name: launchInstance<br />    action: 'aws:runInstances'<br />    maxAttempts: 3<br />    timeoutSeconds: 1200<br />    onFailure: Abort<br />    inputs:<br />      ImageId: '{{ssm:/aws/service/ami-windows-latest/Windows_Server-2016-English-Full-Base}}'<br />...</pre>  | 
|  Definisi langkah variabel  |  Definisi langkah dalam runbook dibangun oleh variabel.  |  <pre>...<br /><br />"mainSteps": [<br />    {<br />      "name": "LaunchInstance",<br />      "action": "aws:runInstances",<br />      "{{attemptModel}}": 1,<br />      "onFailure": "Continue",<br />      "inputs": {<br />        "ImageId": "ami-12345678",<br />        "MinInstanceCount": 1,<br />        "MaxInstanceCount": 2<br />      }<br /><br />...<br /><br />User supplies input : { "attemptModel" : "minAttempts" } </pre>  | 
|  Parameter runbook referensi silang  |  Pengguna memasok parameter input pada waktu mulai, yang merupakan referensi ke parameter lain dalam runbook.  |  <pre>...<br />"parameters": {<br />    "amiId": {<br />      "type": "String",<br />      "default": "ami-7f2e6015",<br />      "description": "list of commands to run as part of first step"<br />    },<br />    "alternateAmiId": {<br />      "type": "String",<br />      "description": "The alternate AMI to try if this first fails".<br /><br />"default" : "{{amiId}}"<br />    },<br /><br />... </pre>  | 
|  Ekspansi multi level  |  Runbook mendefinisikan variabel yang mengevaluasi ke nama variabel. Ini berada dalam pembatas variabel (yaitu *\$1\$1\$1\$1*) dan diperluas ke nilai variabel/parameter tersebut.  |  <pre>...<br />  "parameters": {<br />    "firstParameter": {<br />      "type": "String",<br />      "default": "param2",<br />      "description": "The parameter to reference"<br />    },<br />    "secondParameter": {<br />      "type": "String",<br />      "default" : "echo {Hello world}",<br />      "description": "What to run"<br />    }<br />  },<br />  "mainSteps": [{<br />      "name": "runFixedCmds",<br />      "action": "aws:runCommand",<br />      "maxAttempts": 1,<br />      "onFailure": "Continue",<br />      "inputs": {<br />        "DocumentName": "AWS-RunPowerShellScript",<br /><br />"InstanceIds" : "{{LaunchInstance.InstanceIds}}",<br />        "Parameters": {<br />          "commands": [ "{{ {{firstParameter}} }}"]<br /><br />}<br /><br />...<br /><br />Note: The customer intention here would be to run a command of "echo {Hello world}" </pre>  | 
|  Referensi output langkah runbook yang merupakan jenis variabel yang berbeda  |  Pengguna mereferensikan output dari langkah runbook sebelumnya dalam langkah berikutnya. Output adalah jenis variabel yang tidak memenuhi persyaratan tindakan pada langkah berikutnya.  |  <pre>...<br />mainSteps:<br />- name: getImageId<br />  action: aws:executeAwsApi<br />  inputs:<br />    Service: ec2<br />    Api: DescribeImages<br />    Filters:  <br />    - Name: "name"<br />      Values: <br />      - "{{ImageName}}"<br />  outputs:<br />  - Name: ImageIdList<br />    Selector: "$.Images"<br />    Type: "StringList"<br />- name: copyMyImages<br />  action: aws:copyImage<br />  maxAttempts: 3<br />  onFailure: Abort<br />  inputs:<br />    SourceImageId: {{getImageId.ImageIdList}}<br />    SourceRegion: ap-northeast-2<br />    ImageName: Encrypted Copies of LAMP base AMI in ap-northeast-2<br />    Encrypted: true <br />... <br />Note: You must provide the type required by the Automation action. <br />In this case, aws:copyImage requires a "String" type variable but the preceding step outputs a "StringList" type variable.<br />                                        </pre>  | 