

• AWS Systems Manager CloudWatch ダッシュボードは、2026 年 4 月 30 日以降は利用できなくなります。お客様は、これまでと同様に Amazon CloudWatch コンソールを使用して、Amazon CloudWatch ダッシュボードの表示、作成、管理を継続できます。詳細については、「[Amazon CloudWatch ダッシュボードのドキュメント](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)」を参照してください。

# Systems Manager Automation アクションのリファレンス
オートメーションアクションのリファレンス

このリファレンスでは、オートメーションランブックで指定できるAutomation アクションについて説明します。Automation は AWS Systems Manager のツールです。これらのアクションは他のタイプの Systems Manager (SSM) ドキュメントでは使用できません。SSM の他のドキュメントタイプのプラグインについては、「[コマンドドキュメントプラグインリファレンス](documents-command-ssm-plugin-reference.md)」を参照してください。

Systems Manager Automation は、オートエアコンランブックで定義されたステップを実行します。各ステップは、特定のオペレーションに関連付けられます。このアクションは、ステップの入力、動作、出力を決定します。ステップは、ランブックの `mainSteps` セクションで定義されます。

アクションまたはステップの出力を指定する必要はありません。出力は、ステップに関係付けられるアクションで事前判断されます。Runbook でステップ入力を指定すると、前のステップの 1 つあるいは複数の出力を参照できます。たとえば、`aws:runInstances` の出力は後続の `aws:runCommand` アクションで利用できます。Runbook の `Output` セクションで前のステップの出力を参照することもできます。

**重要**  
AWS Identity and Access Management (IAM) サービスロールを使用して他のサービスを呼び出す自動化ワークフローを実行する場合は、それらのサービスを呼び出すためのアクセス許可をサービスロールに設定する必要がある点に注意してください。この要件は、`AWS-ConfigureS3BucketLogging`、`AWS-CreateDynamoDBBackup`、`AWS-RestartEC2Instance` ランブックなど、すべての AWS オートメーションランブック (`AWS-*` ランブック) に適用されます。この要件は、他のサービスを呼び出すアクションを使用して他の AWS のサービスを呼び出すように作成したカスタムオートメーションランブックにも適用されます。例えば、`aws:executeAwsApi`、`aws:createStack`、または `aws:copyImage` のアクションを使用する場合は、それらのサービスを呼び出すためのアクセス許可を持つサービスロールを設定します。ロールに IAM インラインポリシーを追加することで、他の AWS のサービスへのアクセス許可を有効にできます。詳細については、「[(オプション) 他の AWS のサービス を呼び出すためのオートメーションインラインポリシーまたはカスタマー管理ポリシーを追加する](automation-setup-iam.md#add-inline-policy)」を参照してください。

**Topics**
+ [

## すべてのアクションで共有されるプロパティ
](#automation-common)
+ [

# `aws:approve` - 手動承認のためにオートメーションを一時停止する
](automation-action-approve.md)
+ [

# `aws:assertAwsResourceProperty` – AWS リソースの状態またはイベントの状態をアサートする
](automation-action-assertAwsResourceProperty.md)
+ [

# `aws:branch` – 条件付きオートメーションステップを実行する
](automation-action-branch.md)
+ [

# `aws:changeInstanceState` – インスタンスの状態を変更またはアサートする
](automation-action-changestate.md)
+ [

# `aws:copyImage` — Amazon Machine Image のコピーまたは暗号化
](automation-action-copyimage.md)
+ [

# `aws:createImage` – Amazon マシンイメージ (AMI) を作成する
](automation-action-create.md)
+ [

# `aws:createStack` – CloudFormation スタックを作成する
](automation-action-createstack.md)
+ [

# `aws:createTags` – AWS リソースのタグを作成する
](automation-action-createtag.md)
+ [

# `aws:deleteImage` – Amazon Machine Image を削除する
](automation-action-delete.md)
+ [

# `aws:deleteStack` – CloudFormation スタックを削除する
](automation-action-deletestack.md)
+ [

# `aws:executeAutomation` – 別のオートメーションを実行する
](automation-action-executeAutomation.md)
+ [

# `aws:executeAwsApi` — AWS API オペレーションの呼び出しと実行
](automation-action-executeAwsApi.md)
+ [

# `aws:executeScript` – スクリプトを実行する
](automation-action-executeScript.md)
+ [

# `aws:executeStateMachine` – AWS Step Functions ステートマシンを実行する
](automation-action-executeStateMachine.md)
+ [

# `aws:invokeWebhook` – オートメーションのウェブフック統合を呼び出す
](invoke-webhook.md)
+ [

# `aws:invokeLambdaFunction` – AWS Lambda 関数を呼び出す
](automation-action-lamb.md)
+ [

# `aws:loop` — オートメーション内のステップを反復処理します。
](automation-action-loop.md)
+ [

# `aws:pause` – オートメーションを一時停止する
](automation-action-pause.md)
+ [

# `aws:runCommand` – マネージドインスタンスでコマンドを実行する
](automation-action-runcommand.md)
+ [

# `aws:runInstances` – Amazon EC2 インスタンスの起動
](automation-action-runinstance.md)
+ [

# `aws:sleep` – オートメーションを遅らせる
](automation-action-sleep.md)
+ [

# `aws:updateVariable` — ランブック変数の値を更新します。
](automation-action-update-variable.md)
+ [

# `aws:waitForAwsResourceProperty` – AWS リソースプロパティを待つ
](automation-action-waitForAwsResourceProperty.md)
+ [

# オートメーションシステム変数
](automation-variables.md)

## すべてのアクションで共有されるプロパティ


共通プロパティは、すべてのアクションで見つかるパラメータまたはオプションです。一部のオプションは、ステップの動作を定義します。たとえば、ステップが完了するまで待機する時間や、ステップが失敗した場合の対処方法などです。以下のプロパティは、すべてのアクションに共通です。

[description](#descriptProp)  
ランブックまたはステップの目的を説明するために提供する情報。  
タイプ: 文字列  
必須: いいえ

[name](#nameProp)  
Runbook のすべてのステップ名にわたって一意でなければならない識別子。  
タイプ: 文字列  
使用できるパターン: [a-zA-Z0-9\$1]\$1\$1  
必須: はい

[action](#actProp)  
ステップが実行するアクションの名前です。[`aws:runCommand` – マネージドインスタンスでコマンドを実行する](automation-action-runcommand.md) はここで指定できるアクションの例です。このドキュメントは、使用可能なすべてのアクションの詳細情報を提供します。  
型: 文字列  
必須: はい

[maxAttempts](#maxProp)  
ステップが失敗した場合は再試行する回数。指定した値が 1 より大きい場合、すべての再試行が失敗するまでステップは失敗したと見なされません。デフォルト値は 1 です。  
タイプ: 整数  
必須: いいえ

[timeoutSeconds](#timeProp)  
ステップのタイムアウト値。タイムアウトが達したときに `maxAttempts` の値が 1 以上の場合、すべての再試行が実行されるまでこのステップはタイムアウトとは見なされません。  
タイプ: 整数  
必須: いいえ

[onFailure](#failProp)  
失敗時にオートメーションを中止するか、続行するか、別のステップに移行するかを示します。このオプションのデフォルト値は中止です。  
型: 文字列  
有効な値: Abort \$1 Continue \$1 step:*step\$1name*  
必須: いいえ

[onCancel](#canProp)  
ユーザーがオートメーションをキャンセルした場合に、オートメーションがどのステップに進むべきかを示します。Automation は、最大で 2 分間、キャンセルワークフローを実行します。  
型: 文字列  
有効な値: Abort \$1 step:*step\$1name*  
必須: いいえ  
`onCancel` プロパティでは、次のアクションへの移動はサポートされていません。  
+ `aws:approve`
+ `aws:copyImage`
+ `aws:createImage`
+ `aws:createStack`
+ `aws:createTags`
+ `aws:loop`
+ `aws:pause`
+ `aws:runInstances`
+ `aws:sleep`

[isEnd](#endProp)  
このオプションでは、特定のステップの最後にオートメーションを停止します。ステップが失敗または成功した場合に、オートメーションが停止します。デフォルト値は false です。  
タイプ: ブール値  
有効な値: true \$1 false  
必須: いいえ

[nextStep](#nextProp)  
ステップを正常に完了した後に、次に処理するオートメーションのステップを指定します。  
型: 文字列  
必須: いいえ

[isCritical](#critProp)  
自動化の正常な完了のために、ステップを critical として指定します。この指定のステップが失敗した場合、自動化は自動化の失敗の最終的なステータスをレポートします。このプロパティは、ステップで明示的に定義した場合のみ評価されます。ステップで `onFailure` プロパティが `Continue` に設定されている場合、値はデフォルトで false になります。それ以外の場合、このオプションのデフォルト値は true です。  
タイプ: ブール値  
有効な値: true \$1 false  
必須: いいえ

[inputs](#inProp)  
アクション固有のプロパティ。  
型: マップ  
必須: はい

### 例


```
---
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` - 手動承認のためにオートメーションを一時停止する


指定されたプリンシパルによってアクションか承認または拒否されるまで、一時的にオートメーションを停止します。必要な承認数が得られると、オートメーションが再開されます。Runbook の `mainSteps` セクションの任意の場所に承認ステップを挿入できます。

**注記**  
このアクションは、マルチアカウントとリージョンオートメーションをサポートしていません。このアクションのデフォルトのタイムアウトは 7 日間 (604800 秒) で、最大値は 30 日間 (2592000 秒) です。`timeoutSeconds` ステップで `aws:approve` パラメータを指定して、タイムアウトを制限または延長することができます。

次の例では、1 つの承認者がアクションを許可または拒否するまで、`aws:approve` アクションによって一時的にオートメーションが停止します。承認されると、オートメーションはシンプルな PowerShell コマンドを実行します。

------
#### [ 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"
               ]
            }
         }
      }
   ]
}
```

------

コンソールで承認を待機中の自動化を承認または拒否できます。

**待機中の自動化を許可または拒否するには**

1. AWS Systems Manager コンソール ([https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)) を開きます。

1. ナビゲーションペインで **[オートメーション]** を選択します。

1. ステータスが [**待機中**] の自動化の横にあるオプションを選択します。  
![\[[Approve/Deny Automation (自動化承認/拒否)] ページへのアクセス\]](http://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/images/automation-approve-action-aws.png)

1. [**Approve/Deny**] (承認/拒否) を選択します。

1. 自動化の詳細を確認します。

1. [**承認**] または [**拒否**] を選択し、オプションでコメントを入力して、[**送信**] を選択します。

**入力例**

------
#### [ 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 Simple Notification Service (Amazon SNS) トピックの Amazon リソースネーム (ARN)。Runbook で `aws:approve` ステップを指定すると、オートメーションステップを承認または拒否する必要があることを知らせるメッセージが、このトピックに送信されます。Amazon SNS トピックのタイトルは「Automation」というプレフィックスをつける必要があります。  
型: 文字列  
必須: いいえ

メッセージ  
承認リクエストが送信されるときに Amazon SNS トピックに含める情報。メッセージの最大長は 4096 文字です。  
型: 文字列  
必須: いいえ

MinRequiredApprovals  
オートメーションが再開されるために必要な承認の最小数。値を指定しない場合、システムによるデフォルトは 1 です。このパラメータの値は、正の数にする必要があります。このパラメータの値は、`Approvers` パラメータで定義された承認者の数を超えることはできません。  
タイプ: 整数  
必須: いいえ

Approvers  
アクションを承認または拒否できる AWS の認証プリンシパルのリスト。承認者の最大数は 10 です。プリンシパルは、次のいずれかの形式を使用して指定できます。  
+ ユーザー名
+ ユーザー ARN
+ IAM ロール ARN
+ IAM 継承ロール ARN
タイプ: StringList  
必須: はい

EnhancedApprovals  
Change Manager テンプレートにのみ使用される入力。アクションを承認または拒否できる AWS 認証済みプリンシパルのリスト、IAM プリンシパルのタイプ、および承認者の最小数。以下に例を示します。  

```
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
```
タイプ: StringList  
必須: はい

**出力**

ApprovalStatus  
ステップの承認ステータス。ステータスは、Approved、Rejected、または Waiting のいずれかです。Waiting は自動化が承認者の入力を待っていることを意味します。  
型: 文字列

ApproverDecisions  
各承認者の承認状況を含む JSON マップです。  
タイプ: MapList

# `aws:assertAwsResourceProperty` – AWS リソースの状態またはイベントの状態をアサートする


`aws:assertAwsResourceProperty` アクションを使用すると、特定の Automation ステップの、特定のリソース状態またはイベント状態をアサートできます。

**注記**  
`aws:assertAwsResourceProperty` アクションは、自動スロットリング再試行をサポートしています。詳細については、「[スロットリングされたオペレーションの自動再試行の設定](automation-throttling-retry.md)」を参照してください。

このアクションの使用例については、「[その他のランブックの例](automation-document-examples.md)」を参照してください。

**Input**  
入力は、選択した API オペレーションによって定義されます。

------
#### [ 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"
    ]
  }
}
```

------

サービス  
実行する API オペレーションを含む AWS のサービスの名前空間。例えば、Systems Manager の名前空間は `ssm` です。Amazon EC2 の名前空間は `ec2` です。サポートされている AWS のサービスの名前空間のリストは、 AWS CLI コマンドリファレンスの「[Available Services (利用可能なサービス)](https://docs.aws.amazon.com/cli/latest/reference/#available-services)」セクションを参照してください。  
タイプ: 文字列  
必須: はい

Api  
実行する API オペレーションの名前。API オペレーション (メソッド) は、以下の「[サービスリファレンス](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html)」ページの左側のナビゲーションでサービスを選択することで表示できます。呼び出すサービスの [**Client (クライアント)**] セクションでメソッドを選択します。例えば、Amazon Relational Database Service (Amazon RDS) のすべての API オペレーション (メソッド) は、[Amazon RDS メソッド](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html)のページに一覧表示されます。  
型: 文字列  
必須: はい

API オペレーション入力  
1 つ以上の API オペレーションを入力します。使用できる入力 (パラメータ) は、以下の「[サービスリファレンス](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html)」ページの左側のナビゲーションでサービスを選択することで表示できます。呼び出すサービスの [**Client (クライアント)**] セクションでメソッドを選択します。例えば、Amazon RDS のすべてのメソッドは、[Amazon RDS メソッド](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html)ページに一覧表示されています。[describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) メソッドを選択し、下にスクロールして、[**DBInstanceIdentifier**]、[**Name (名前)**]、および [**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"
}
```
型: 選択した API オペレーションによって決まります  
必須: はい

PropertySelector  
応答オブジェクト内の特定の属性への JSONPath。レスポンスオブジェクトは、以下の「[サービスリファレンス](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html)」ページの左側のナビゲーションでサービスを選択することで表示できます。呼び出すサービスの [**Client (クライアント)**] セクションでメソッドを選択します。例えば、Amazon RDS のすべてのメソッドは、[Amazon RDS メソッド](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html)ページに一覧表示されています。[describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) メソッドを選択し、[**Response Structure (レスポンス構造)**] セクションまで下にスクロールします。[**DBInstances**] は応答オブジェクトとして表示されます。  
型: 文字列  
必須: はい

DesiredValues  
予定の状態、またはオートメーションを継続する状態。ブール値を指定する場合は、True または False などのように大文字を使用する必要があります。  
タイプ: StringList  
必須: はい

# `aws:branch` – 条件付きオートメーションステップを実行する


`aws:branch` アクションを使用すると、1 つのステップでさまざまな選択肢を評価し、その評価結果に基づいてランブックの別のステップにジャンプする、動的なオートメーションを作成できます。

ステップの `aws:branch` アクションを指定する場合、オートメーションが評価する必要のある `Choices` を指定します。`Choices` は、Runbook の `Parameters` セクションで指定した値、または前述のステップの出力として生成された動的値のいずれかをベースにすることができます。自動化は、ブール式を使用して各選択肢を評価します。最初の選択肢が true である場合、オートメーションはその選択肢に指定されたステップにジャンプします。最初の選択肢が false の場合、オートメーションは次の選択肢を評価します。オートメーションは、選択肢が true になるまで、各選択肢の評価を続けます。オートメーションは、true の選択肢に指定されたステップにジャンプします。

true の選択肢がない場合、オートメーションはステップに `default` 値が含まれているかどうかを確認します。デフォルト値は、true の選択肢がない場合にオートメーションがジャンプするステップを定義します。ステップに `default` 値が指定されていない場合、オートメーションはランブックの次のステップを処理します。

`aws:branch` アクションは、`And`、`Not`、および `Or` 演算子の組み合わせを使用して複雑な選択肢の評価をサポートします。サンプルのランブックや、さまざまな演算子を使用する例を含む `aws:branch` の使用方法については、「[ランブックでの条件文の使用](automation-branch-condition.md)」を参照してください。

**Input**  
ステップに 1 つ以上の `Choices` を指定します。`Choices` は、Runbook の `Parameters` セクションで指定した値、または前述のステップの出力として生成された動的値のいずれかをベースにすることができます。ここでは、パラメータを評価する YAML サンプルを示します。

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

前のステップからの出力を評価する YAML サンプルを示します。

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

選択肢  
次のステップを決定し処理する際に、自動化が評価する 1 つ以上の式。選択肢はブール式を使用して評価されます。各選択肢は、次のオプションを定義する必要があります。  
+ **NextStep**: 指定された選択肢が true である場合に処理する、Runbook の次のステップ。
+ **Variable**: Runbook の `Parameters` セクションで定義されているパラメータの名前を指定します。または、Runbook の前述のステップからの出力オブジェクトを指定します。`aws:branch` の変数作成の詳細については、「[出力変数の作成について](automation-branch-condition.md#branch-action-output)」を参照してください。
+ **Operation**: 選択肢を評価するために使用される基準。`aws:branch` アクションは、次の操作をサポートします。

**文字列演算子**
  + StringEquals
  + EqualsIgnoreCase
  + StartsWith
  + EndsWith
  + Contains

**数値演算子**
  + NumericEquals
  + NumericGreater
  + NumericLesser
  + NumericGreaterOrEquals
  + NumericLesser
  + NumericLesserOrEquals

**ブール演算子**
  + BooleanEquals
**重要**  
ランブックを作成すると、システムはランブック内の各オペレーションを検証します。オペレーションがサポートされていない場合は、ランブックの作成時にエラーが返されます。

デフォルト  
true の `Choices` がない場合にオートメーションがジャンプするステップの名前。  
型: 文字列  
必須: いいえ

**注記**  
`aws:branch` アクションは、`And`、`Or`、および `Not` 演算子をサポートします。演算子を使用する `aws:branch` の例については、「[ランブックでの条件文の使用](automation-branch-condition.md)」を参照してください。

# `aws:changeInstanceState` – インスタンスの状態を変更またはアサートする


インスタンスの状態を変更またはアサートします。

このアクションは、アサートモードで使用できます (API は実行して状態を変更することはしませんが、インスタンスが目的の状態であることを検証します)。アサートモードを使用するには、`CheckStateOnly` パラメータを true に設定します。このモードは、Windows Server で Sysprep (バックグラウンドで長期に実行できる非同期コマンド) を実行するときに役立ちます。Amazon Machine Image (AMI) を作成する前に、インスタンスが停止していることを確認できます。

**注記**  
このアクションのデフォルトのタイムアウト値は 3600 秒 (1 時間) です。`timeoutSeconds` ステップで `aws:changeInstanceState` パラメータを指定して、タイムアウトを制限または延長することができます。

**注記**  
`aws:changeInstanceState` アクションは、自動スロットリング再試行をサポートしています。詳細については、「[スロットリングされたオペレーションの自動再試行の設定](automation-throttling-retry.md)」を参照してください。

**Input** (入力)

------
#### [ 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  
インスタンスの ID。  
タイプ: StringList  
必須: はい

CheckStateOnly  
false の場合、インスタンスの状態は目的の状態に設定されます。true の場合、ポーリングを使用して目的の状態をアサートします。  
デフォルト: `false`  
タイプ: ブール値  
必須: いいえ

DesiredState  
目的の状態。`running` に設定されている場合、このアクションは Amazon EC2 の状態が `Running`、インスタンスの状態が `OK`、および完了する前にシステム状態が `OK` になるのを待ちます。  
型: 文字列  
有効な値: `running` \$1 `stopped` \$1 `terminated`  
必須: はい

Force  
設定した場合、インスタンスが強制的に停止されます。インスタンスによって、ファイルシステムキャッシュまたはファイルシステムメタデータがフラッシュされることはありません。このオプションを使用する場合は、ファイルシステムのチェックと修復の手順を手動で実行する必要があります。このオプションは Windows Server の EC2 インスタンスにはお勧めしません。  
タイプ: ブール値  
必須: いいえ

AdditionalInfo  
リザーブド。  
型: 文字列  
必須: いいえ

**Output**  
なし

# `aws:copyImage` — Amazon Machine Image のコピーまたは暗号化


任意の AWS リージョン から現在のリージョンに Amazon Machine Image (AMI) をコピーします。このアクションでは、新しい AMI を暗号化することもできます。

**注記**  
`aws:copyImage` アクションは、自動スロットリング再試行をサポートしています。詳細については、「[スロットリングされたオペレーションの自動再試行の設定](automation-throttling-retry.md)」を参照してください。

**Input**  
このアクションでは、ほとんどの `CopyImage` パラメータがサポートされています。詳細については、「[CopyImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CopyImage.html)」を参照してください。

次の例では、ソウルリージョンで AMI のコピーを作成します (`SourceImageID`: ami-0fe10819. `SourceRegion`: ap-northeast-2)。新しい AMI が、Automation アクションを開始したリージョンにコピーされます。オプションの `Encrypted` フラグが `true` に設定されているため、コピーされた AMI は暗号化されます。

------
#### [ 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  
ソース AMI が存在するリージョン。  
型: 文字列  
必須: はい

SourceImageId  
ソースリージョンからコピーする AMI ID。  
型: 文字列  
必須: はい

ImageName  
新しいイメージの名前。  
型: 文字列  
必須: はい

ImageDescription  
ターゲットイメージの説明。  
型: 文字列  
必須: いいえ

暗号化された  
ターゲット AMI を暗号化します。  
タイプ: ブール値  
必須: いいえ

KmsKeyId  
コピーオペレーション中にイメージのスナップショットを暗号化するときに使用する AWS KMS key の Amazon リソースネーム (ARN)。詳細については、「[CopyImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/api_copyimage.html)」を参照してください。  
型: 文字列  
必須: いいえ

ClientToken  
リクエストのべき等のために割り当てる一意の識別子 (大文字と小文字を区別)。詳細については、「[CopyImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/api_copyimage.html)」を参照してください。  
型: 文字列  
必須: いいえOutput

ImageId  
コピーされたイメージの ID。

ImageState  
コピーされたイメージの状態。  
有効な値: `available` \$1 `pending` \$1 `failed`

# `aws:createImage` – Amazon マシンイメージ (AMI) を作成する


実行中、停止中、または停止済みのインスタンスから Amazon Machine Image (AMI) を作成し、`ImageState` が `available` になるまでポーリングします。

**注記**  
`aws:createImage` アクションは、自動スロットリング再試行をサポートしています。詳細については、「[スロットリングされたオペレーションの自動再試行の設定](automation-throttling-retry.md)」を参照してください。

**Input**  
このアクションでは、次の `CreateImage` パラメータがサポートされています。詳細については、「[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。  
型: 文字列  
必須: はい

ImageName  
イメージの名前。  
型: 文字列  
必須: はい

ImageDescription  
イメージの説明。  
型: 文字列  
必須: いいえ

NoReboot  
ブールリテラルです。  
デフォルトでは、Amazon Elastic Compute Cloud (Amazon EC2) はインスタンスをシャットダウンして再起動してからイメージを作成します。**再起動しない**オプションが `true` に設定されている場合、Amazon EC2 はイメージの作成前にインスタンスをシャットダウンしません。このオプションを使用すると、作成したイメージのファイルシステムの完全性は保証できません。  
AMI を作成した後、そのイメージからインスタンスを実行しない場合、まず、[`aws:changeInstanceState` – インスタンスの状態を変更またはアサートする](automation-action-changestate.md) アクションを使用してインスタンスを停止します。次に、[**NoReboot**] オプションを `true` に設定して、この `aws:createImage` アクションを使用します。  
タイプ: ブール値  
必須: いいえ

BlockDeviceMappings  
インスタンスのブロックデバイス。  
型: マップ  
必須: いいえOutput

ImageId  
新しく作成したイメージの ID。  
タイプ: 文字列。

ImageState  
イメージの現在の状態。この状態が available の場合、イメージは正常に登録されており、インスタンスの作成に使用できます。  
タイプ: 文字列

# `aws:createStack` – CloudFormation スタックを作成する


テンプレートから AWS CloudFormation スタックを作成します。

**注記**  
`aws:createStack` アクションは、自動スロットリング再試行をサポートしています。詳細については、「[スロットリングされたオペレーションの自動再試行の設定](automation-throttling-retry.md)」を参照してください。

CloudFormation スタックの作成に関する補足情報については、*AWS CloudFormation API リファレンス*の「[CreateStack](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html)」を参照してください。

**Input** (入力)

------
#### [ 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}}"
          }
    }
}
```

------

機能  
CloudFormation が特定のスタックを作成する前に指定する値のリスト。一部のスタックテンプレートには、 のアクセス許可に影響するリソースが含まれますAWS アカウント このようなスタックの場合は、このパラメータを指定して、それらの機能を明示的に認識する必要があります。  
有効な値は、`CAPABILITY_IAM`、`CAPABILITY_NAMED_IAM`、および `CAPABILITY_AUTO_EXPAND` です。  
**CAPABILITY\$1IAM および CAPABILITY\$1NAMED\$1IAM**  
IAM リソースがある場合、どちらの機能でも指定できます。カスタム名を持つ IAM リソースがある場合は、`CAPABILITY_NAMED_IAM` を指定する必要があります。このパラメータを指定しない場合、このアクションは `InsufficientCapabilities` エラーを返します。次のリソースでは、`CAPABILITY_IAM` または `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)
スタックテンプレートにこのリソースが含まれている場合、これらに関連付けられるすべてのアクセス許可を確認して、必要時にはそのアクセス許可を編集することが推奨されます。  
詳細については、「[CloudFormation テンプレートの IAM リソースの承認](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities)」を参照してください。  
**CAPABILITY\$1AUTO\$1EXPAND**  
一部のテンプレートにはマクロが含まれています。マクロはテンプレート上でカスタム処理を実行します。これには検索して置換操作のような単純なアクションからテンプレート全体の広範な変換までが含まれます。このためユーザーは通常、実際にスタックを作成する前に、マクロによって発生した変更を確認できるように、処理済みのテンプレートから変更セットを作成します。スタックテンプレートに 1 つ以上のマクロが含まれており、変更セットの結果を確認せずに、処理されたテンプレートから直接スタックを作成することを選択する場合、この機能を確認する必要があります。
詳細については、「*AWS CloudFormation ユーザーガイド」*の「[AWS CloudFormation マクロを使用したテンプレートのカスタム処理の実行](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html)」を参照してください。  
型: 文字列の配列  
有効な値: `CAPABILITY_IAM | CAPABILITY_NAMED_IAM | CAPABILITY_AUTO_EXPAND`  
必須: いいえ

ClientRequestToken  
この CreateStack リクエストの一意の識別子。このステップで、maxAttempts に 1 より大きい値を設定する場合、このトークンを指定します。このトークンを指定することによって、同じ名前で新しいスタックの作成を試行していないことを CloudFormation が認識します。  
型: 文字列  
必須: いいえ  
長さの制限: 最小長は 1 です。最大長は 128 です。  
パターン: [a-zA-Z0-9][-a-zA-Z0-9]\$1

DisableRollback  
スタックの作成に失敗した場合にスタックのロールバックをオフにするために、`true` を設定します。  
条件付き: `DisableRollback` パラメータ、あるいは `OnFailure` パラメータのどちらかを指定できますが、両方を指定することはできません。  
デフォルト: `false`  
タイプ: ブール値  
必須: いいえ

NotificationARNs  
スタック関連イベントを発行する Amazon Simple Notification Service (Amazon SNS) トピックの ARN。Amazon SNS コンソール ([https://console.aws.amazon.com/sns/v3/home](https://console.aws.amazon.com/sns/v3/home)) を使用して SNS トピック ARN を検索できます。  
型: 文字列の配列  
配列メンバー: 5 つの項目の最大数。  
必須: いいえ

OnFailure  
スタックの作成に失敗した場合に実行するアクションを決定します。`DO_NOTHING`、`ROLLBACK` または `DELETE` を指定する必要があります。  
条件付き: `OnFailure` パラメータ、あるいは `DisableRollback` パラメータのどちらかを指定できますが、両方を指定することはできません。  
デフォルト: `ROLLBACK`  
型: 文字列  
有効な値: ` DO_NOTHING | ROLLBACK | DELETE`  
必須: いいえ

パラメータ  
スタック用の入力パラメータを指定する `Parameter` 構造のリスト。詳細については、「[パラメータ](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html)」データタイプを参照してください。  
タイプ: 「[パラメータ](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html)」オブジェクトの配列   
必須: いいえ

ResourceTypes  
作成したこのスタックアクションで動作するアクセス許可があるテンプレートリソースの種類。たとえば、`AWS::EC2::Instance`、`AWS::EC2::*`、または `Custom::MyCustomInstance` などです。次の構文を使用して、テンプレートリソースの種類を記述します。  
+ すべての AWS リソース用:

  ```
  AWS::*
  ```
+ すべてのカスタムリソース用:

  ```
  Custom::*
  ```
+ 特定のカスタムリソース用:

  ```
  Custom::logical_ID
  ```
+ 特定の AWS のサービスのすべてのリソース用:

  ```
  AWS::service_name::*
  ```
+ 特定の AWS リソース用:

  ```
  AWS::service_name::resource_logical_ID
  ```
リソースの種類のリストに作成しているリソースが含まれていない場合、スタックの作成は失敗します。デフォルトでは、CloudFormation によりすべてのリソースタイプにアクセス許可が付与されます。IAM は、IAM ポリシーで CloudFormation 固有の条件キーにこのパラメータを使用します。詳細については、「[AWS Identity and Access Management を使用したユーザーアクセスの制御](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html)」を参照してください。  
型: 文字列の配列  
長さの制限: 最小長は 1 です。最大長は 256 です。  
必須: いいえ

RoleARN  
CloudFormation がスタックを作成するために引き受ける IAM ロールの Amazon リソースネーム (ARN)。CloudFormation は、ユーザーに代わって呼び出しを行うために、このロールの認証情報を使用します。CloudFormation は、このスタックにおけるこれからのすべてのオペレーションにこのロールを常に使用します。ユーザーにこのスタックで操作できるアクセス許可がある限り、ユーザーに渡す許可がない場合でも、CloudFormation はこのロールを使用します。ロールに最小限の特権が付与されていることを確認してください。  
値を指定しない場合、CloudFormation は以前にこのスタックに関連付けられたロールを使用します。利用できるロールがない場合、CloudFormation はユーザー認証情報から生成される一時セッションを使用します。  
型: 文字列  
長さの制限: 最小長は 20 です。最大長は 2048 です。  
必須: いいえ

StackName  
スタックに関連付けられた名前。この名前は、作成しているスタックのリージョン内で一意であることが必要です。  
スタック名には、英数字 (大文字と小文字が区別されます) とハイフンのみを使用できます。先頭の文字はアルファベット文字である必要があります。また、128 文字より長くすることはできません。
型: 文字列  
必須: はい

StackPolicyBody  
スタックポリシー本文を含む構造。詳細については、「[スタックのリソースが更新されないようにする](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html)」を参照してください。  
条件付き: `StackPolicyBody` パラメータ、あるいは `StackPolicyURL` パラメータのどちらかを指定できますが、両方を指定することはできません。  
型: 文字列  
長さの制限: 最小長は 1 です。最大長は 16384 です。  
必須: いいえ

StackPolicyURL  
スタックポリシーを含むファイルの場所。URL は、スタックと同じリージョンにある S3 バケット内のポリシーを指定する必要があります。スタックポリシーに許可される最大のファイルサイズは 16 KB になります。  
条件付き: `StackPolicyBody` パラメータ、あるいは `StackPolicyURL` パラメータのどちらかを指定できますが、両方を指定することはできません。  
型: 文字列  
長さの制限: 最小長は 1 です。最大長は 1350 です。  
必須: いいえ

タグ  
このスタックに関連付るキー値のペア。また、CloudFormation はスタックで作成されたリソースにこれらのタグを伝達します。最大で 10 個のタグを指定できます。  
タイプ: 「[タグ](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Tag.html)」オブジェクトの配列   
必須: いいえ

TemplateBody  
最少長が 1 バイトで最大長が 51,200 バイトのテンプレート本文がある構造。詳細については、「[テンプレートの分析](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)」を参照してください。  
条件付き: `TemplateBody` パラメータ、あるいは `TemplateURL` パラメータのどちらかを指定できますが、両方を指定することはできません。  
型: 文字列  
長さの制限: 最小長は 1 です。  
必須: いいえ

TemplateURL  
テンプレート本文を含むファイルの場所。URL は、S3 バケット内にあるテンプレートを指定する必要があります。テンプレートに許可される最大サイズは 460,800 バイトです。詳細については、「[テンプレートの分析](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)」を参照してください。  
条件付き: `TemplateBody` パラメータ、あるいは `TemplateURL` パラメータのどちらかを指定できますが、両方を指定することはできません。  
型: 文字列  
長さの制限: 最小長は 1 です。最大長は 1,024 です。  
必須: いいえ

TimeoutInMinutes  
スタックステータスが `CREATE_FAILED` になるまでに経過できる時間数。`DisableRollback` が設定されない、あるいは `false` に設定されている場合、スタックはロールバックされます。  
タイプ: 整数  
有効な範囲: 最小値 は 1 です。  
必須: いいえ

## アウトプット


StackId  
スタックの一意の識別子です。  
型: 文字列

StackStatus  
スタックの現在のステータス。  
型: 文字列  
有効な値：`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`  
必須: はい

StackStatusReason  
スタックステータスに関連付けられる成功あるいは失敗のメッセージ。  
型: 文字列  
必須: いいえ  
詳細については、「[CreateStack](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html)」を参照してください

## セキュリティに関する考慮事項


`aws:createStack` アクションを使用できる前に、IAM オートメーションが継承するロールに次のポリシーを割り当てる必要があります。継承ロールの詳細については、「[タスク 1: 自動化のサービスロールを作成する](automation-setup-iam.md#create-service-role)」を参照してください。

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

****  

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

------

# `aws:createTags` – AWS リソースのタグを作成する


Amazon Elastic Compute Cloud (Amazon EC2) インスタンスまたは AWS Systems Manager マネージドインスタンスの新しいタグを作成します。

**注記**  
`aws:createTags` アクションは、自動スロットリング再試行をサポートしています。詳細については、「[スロットリングされたオペレーションの自動再試行の設定](automation-throttling-retry.md)」を参照してください。

**Input**  
このアクションでは、ほとんどの Amazon EC2 `CreateTags` パラメータと Systems Manager `AddTagsToResource` パラメータがサポートされています。詳細については、「[CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/api_createtags.html)」および「[AddTagsToResource](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/api_addtagstoresource.html)」を参照してください。

次の例は、Amazon Machine Image (AMI) とインスタンスに、特定の部門の本番稼働用リソースとしてタグを付ける方法を示しています。

------
#### [ 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。リソースタイプが「EC2」でない場合、このフィールドは 1 つの項目のみを含むことができます。  
型: 文字列のリスト  
必須: はい

タグ  
リソースに関連付けるタグ。  
型: マップのリスト  
必須: はい

ResourceType  
タグを付けるリソースのタイプ。指定しない場合は、デフォルト値の「EC2」が使用されます。  
型: 文字列  
必須: いいえ  
有効な値: `EC2` \$1 `ManagedInstance` \$1 `MaintenanceWindow` \$1 `Parameter`

**Output**  
なし

# `aws:deleteImage` – Amazon Machine Image を削除する


指定された Amazon Machine Image (AMI) およびすべての関連するスナップショットを削除します。

**注記**  
`aws:deleteImage` アクションは、自動スロットリング再試行をサポートしています。詳細については、「[スロットリングされたオペレーションの自動再試行の設定](automation-throttling-retry.md)」を参照してください。

**Input**  
このアクションでは 1 つのパラメータのみがサポートされています。詳細については、[DeregisterImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeregisterImage.html) と [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。  
型: 文字列  
必須: はい

**Output**  
なし

# `aws:deleteStack` – CloudFormation スタックを削除する


AWS CloudFormation スタックを削除します。

**注記**  
`aws:deleteStack` アクションは、自動スロットリング再試行をサポートしています。詳細については、「[スロットリングされたオペレーションの自動再試行の設定](automation-throttling-retry.md)」を参照してください。

**Input** (入力)

------
#### [ 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  
この `DeleteStack` リクエストの一意な識別子。お客様が同じ名前のスタックを削除しようとしていないと CloudFormation に認識させるためにリクエストを再試行する場合は、このトークンを指定します。`DeleteStack` リクエストを再試行して、CloudFormation がリクエストを受信したことを確認できます。  
型: 文字列  
長さの制限: 最小長は 1 です。最大長は 128 です。  
パターン: [a-zA-Z][a-zA-Z0-9]\$1  
必須: いいえ

RetainResources.member.N  
この入力は、`DELETE_FAILED` 状態にあるスタックにのみ適用されます。お客様が保持したいリソースの論理リソース ID のリストです。削除中、CloudFormation はスタックを削除しますが、保持したリソースは削除しません。  
空白でない S3 バケットなど、削除できないリソースは残すと便利ですが、スタックの削除が必要な場合もあります。  
型: 文字列の配列  
必須: いいえ

RoleARN  
CloudFormation がスタックを作成するために引き受ける AWS Identity and Access Management (IAM) ロールの Amazon リソースネーム (ARN)。CloudFormation は、ユーザーに代わって呼び出しを行うために、このロールの認証情報を使用します。CloudFormation は、このスタックにおけるこれからのすべてのオペレーションにこのロールを常に使用します。ユーザーにこのスタックで操作できるアクセス許可がある限り、ユーザーに渡す許可がない場合でも、CloudFormation はこのロールを使用します。ロールに最小限の特権が付与されていることを確認してください。  
値を指定しない場合、CloudFormation は以前にこのスタックに関連付けられたロールを使用します。利用できるロールがない場合、CloudFormation はユーザー認証情報から生成される一時セッションを使用します。  
型: 文字列  
長さの制限: 最小長は 20 です。最大長は 2048 です。  
必須: いいえ

StackName  
スタックと関連付けられている名前または一意のスタック ID。  
型: 文字列  
必須: はい

## セキュリティに関する考慮事項


`aws:deleteStack` アクションを使用できる前に、IAM オートメーションが継承するロールに次のポリシーを割り当てる必要があります。継承ロールの詳細については、「[タスク 1: 自動化のサービスロールを作成する](automation-setup-iam.md#create-service-role)」を参照してください。

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

****  

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

------

# `aws:executeAutomation` – 別のオートメーションを実行する


セカンダリの Runbook を呼び出して、セカンダリのオートメーションを実行します。このアクションを使用すると、最も一般的な操作のための Runbook を作成でき、オートメーションを実行するときにこれらの Runbook を参照できます。このアクションでは、同じような Runbook で重複したステップが不要になり、 Runbook を簡素化できます。

セカンダリのオートメーションは、プライマリのオートメーションを開始したユーザーのコンテキストで実行されます。つまり、セカンダリオートメーションでは、最初のオートメーションを開始したユーザーと同じ AWS Identity and Access Management (IAM) ロールまたはユーザーが使用されます。

**重要**  
継承ロール (iam:passRole ポリシーを使用するロール) を使用するセカンダリオートメーションでパラメータを指定する場合、プライマリオートメーションを開始したユーザーまたはロールには、セカンダリオートメーションで指定されたロールの継承を渡すアクセス許可が必要です。自動化のロールの継承のセットアップについては、「[コンソールを使用して Automation 用のサービスロールを作成する](automation-setup-iam.md)」を参照してください。

**Input** (入力)

------
#### [ 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  
ステップ中に実行するセカンダリ Runbook の名前。同じ AWS アカウント 内のランブックの場合は、ランブック名を指定します。別の AWS アカウント により共有されたランブックの場合は、ランブックの Amazon リソースネーム (ARN) を指定します。共有ランブックの使用については、「[共有 SSM ドキュメントを使用する](documents-ssm-sharing.md#using-shared-documents)」を参照してください。  
型: 文字列  
必須: はい

DocumentVersion  
実行するセカンダリ Runbook のバージョン。指定しない場合、Automation はデフォルトの Runbook バージョンで実行されます。  
型: 文字列  
必須: いいえ

MaxConcurrency  
並列してこのタスクを実行できるターゲットの最大数。10 などの数値や、10% などの割合を指定できます。  
タイプ: 文字列。  
必須: いいえ

MaxErrors  
追加のターゲットでオートメーションの実行を停止するまでに許容されるエラー数。エラーの絶対数 (10 など) またはターゲットセットのパーセント数 (10% など) を指定できます。たとえば、3 を指定すると、4 番目のエラーを受信した際に、システムはオートメーションの実行を停止します。値として 0 を指定した場合、最初のエラー結果が返されると、システムから他のターゲットでオートメーションが実行されなくなります。50 のリソースでオートメーションを実行し、`MaxErrors` を 10% に設定した場合、6 番目のエラーを受信すると、システムは追加ターゲットでオートメーションの実行を停止します。  
`MaxErrors` のしきい値に達した時点で既に実行中のオートメーションについては完了を許可されますが、一部のオートメーションは失敗する可能性があります。失敗したオートメーションが指定された `MaxErrors` を上回っていないことを確認する必要がある場合は、`MaxConcurrency` を 1 に設定し、オートメーションが一度に 1 つずつ行われるようにします。  
タイプ: 文字列。  
必須: いいえ

RuntimeParameters  
セカンダ Runbook の実行に必要なパラメータ。マッピングでは次の形式を使用します: \$1"parameter1" : "value1", "parameter2" : "value2" \$1  
型: マップ  
必須: いいえ

タグ  
リソースに割り当てるオプションのメタデータ。オートメーション用に最大 5 つのタグを指定できます。  
タイプ: MapList  
必須: いいえ

TargetLocations  
ロケーションとは、オートメーションを実行する AWS リージョン や AWS アカウント の組み合わせです。1 つ以上の項目を指定する必要があります。指定可能な最大数は 100 個です。このパラメータの値を指定すると、出力は親オートメーションには返されません。必要に応じて、子オートメーションから出力を取得するために、API オペレーションを後続で呼び出す必要があります。  
タイプ: MapList  
必須: いいえ

TargetMaps  
ターゲットリソースに対するドキュメントパラメータのキー値マッピングのリスト。`Targets` と `TargetMaps` の両方を一緒に指定することはできません。  
タイプ: MapList  
必須: いいえ

TargetParameterName  
レート制御されたオートメーションのターゲットリソースとして使用されるパラメータの名前。`Targets` を指定する場合は必須です。  
タイプ: 文字列。  
必須: いいえ

ターゲット  
ターゲットリソースへのキー値マッピングのリスト。`TargetParameterName` を指定する場合は必須です。  
タイプ: MapList  
必須: いいえOutput

Output  
セカンダリオートメーションによって生成される出力。この出力は、次の形式を使って参照できます: *セカンダリ自動化ステップ名*.Output  
タイプ: StringList  
以下はその例です。  

```
- 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。  
型: 文字列

ステータス  
セカンダリオートメーションのステータス。  
タイプ: 文字列

# `aws:executeAwsApi` — AWS API オペレーションの呼び出しと実行


AWS API オペレーションを呼び出し、実行します。API 操作のほとんどはサポートされていますが、すべての API オペレーションがテストされているわけではありません。[GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html) オペレーションなどのストリーミング API オペレーションはサポートされていません。使用する API オペレーションがストリーミングオペレーションかどうかわからない場合は、サービスの「[Boto3](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html)」ドキュメントを参照して、API でストリーミング入力または出力が必要かどうかを確認してください。このアクションで使用される Boto3 のバージョンは定期的に更新されます。ただし、新しい Boto3 バージョンのリリース後、変更がこのアクションに反映されるまでに最大で数週間かかる場合があります。各 `aws:executeAwsApi` アクションは、最大 25 秒間実行できます。このアクションの使用例については、「[その他のランブックの例](automation-document-examples.md)」を参照してください。

**注記**  
`aws:executeAwsApi` アクションは、自動スロットリング再試行をサポートしています。詳細については、「[スロットリングされたオペレーションの自動再試行の設定](automation-throttling-retry.md)」を参照してください。

**入力**  
入力は、選択した API オペレーションによって定義されます。

------
#### [ 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"
      }
   ]
}
```

------

サービス  
実行する API オペレーションを含む AWS のサービスの名前空間。サポートされている AWS のサービスの名前空間のリストは、AWS SDK for Python (Boto3) の[利用可能なサービス](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html)を参照してください。名前空間は、[**クライアント**] セクションにあります。例えば、Systems Manager の名前空間は `ssm` です。Amazon Elastic Compute Cloud (Amazon EC2) の名前空間は、`ec2` です。  
型: 文字列  
必須: はい

Api  
実行する API オペレーションの名前。API オペレーション (メソッド) は、以下の「[サービスリファレンス](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html)」ページの左側のナビゲーションでサービスを選択することで表示できます。呼び出すサービスの [**Client (クライアント)**] セクションでメソッドを選択します。例えば、Amazon Relational Database Service (Amazon RDS) のすべての API オペレーション (メソッド) は、[Amazon RDS メソッド](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html)のページに一覧表示されます。  
型: 文字列  
必須: はい

API オペレーション入力  
1 つ以上の API オペレーションを入力します。使用できる入力 (パラメータ) は、以下の「[サービスリファレンス](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html)」ページの左側のナビゲーションでサービスを選択することで表示できます。呼び出すサービスの [**Client (クライアント)**] セクションでメソッドを選択します。例えば、Amazon RDS のすべてのメソッドは、[Amazon RDS メソッド](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html)ページに一覧表示されています。[describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) メソッドを選択し、下にスクロールして、[**DBInstanceIdentifier**]、[**Name (名前)**]、および [**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"
}
```
型: 選択した API オペレーションによって決まります  
必須: はい

**アウトプット**  
出力は、選択した API オペレーションからの応答に基づいてユーザーによって指定されます。

名前  
出力の名前。  
型: 文字列  
必須: はい

Selector  
応答オブジェクト内の特定の属性への JSONPath。レスポンスオブジェクトは、以下の「[サービスリファレンス](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html)」ページの左側のナビゲーションでサービスを選択することで表示できます。呼び出すサービスの [**Client (クライアント)**] セクションでメソッドを選択します。例えば、Amazon RDS のすべてのメソッドは、[Amazon RDS メソッド](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html)ページに一覧表示されています。[describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) メソッドを選択し、[**Response Structure (レスポンス構造)**] セクションまで下にスクロールします。[**DBInstances**] は応答オブジェクトとして表示されます。  
型: 整数型、ブール型、文字列型、StringList、StringMap、または MapList  
必須: はい

タイプ  
レスポンス要素のデータ型。  
型: 可変  
必須: はい

# `aws:executeScript` – スクリプトを実行する


指定されたランタイムとハンドラを使用して、提供された Python または PowerShell スクリプトを実行します。各 `aws:executeScript` アクションは、最大 600 秒 (10 分) 実行できます。`timeoutSeconds` ステップで `aws:executeScript` パラメータを指定して、タイムアウトを制限または延長することができます。

関数でリターンステートメントを使用して、出力ペイロードに出力を追加します。`aws:executeScript` アクションの出力の定義例については、「[例 2: スクリプト化されたランブック](automation-authoring-runbooks-scripted-example.md)」を参照してください。ランブック内にある `aws:executeScript` アクションからの出力は、指定した Amazon CloudWatch Logs ロググループに送信することもできます。詳しくは、「[CloudWatch Logs を使用した自動アクション出力のログ記録](automation-action-logging.md)」を参照してください。

`aws:executeScript` アクションからの出力を CloudWatch Logs に送信する場合、または `aws:executeScript` アクションに指定するスクリプトが AWS API オペレーションを呼び出す場合、ランブックを実行するには AWS Identity and Access Management (IAM) サービスロール (または引き受けロール) が常に必要です。

**注記**  
`aws:executeScript` アクションは、自動スロットリング再試行をサポートしていません。スロットリングが発生する可能性のある AWS API コールをスクリプトが行う場合は、スクリプトコードに独自の再試行ロジックを実装する必要があります。

`aws:executeScript` アクションには、次のプレインストールされた PowerShell Core モジュールが含まれています。
+ Microsoft.PowerShell.Host
+ Microsoft.PowerShell.Management
+ Microsoft.PowerShell.Security
+ Microsoft.PowerShell.Utility
+ PackageManagement
+ PowerShellGet

プレインストールされていない PowerShell Core モジュールを使用するには、次のコマンドに示すように、スクリプトで `-Force` フラグを使用してモジュールをインストールする必要があります。`AWSPowerShell.NetCore` モジュールはサポートされていません。インストールするモジュールの *ModuleName* を置き換えます。

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

スクリプトで PowerShell Core コマンドレットを使用するには、次のコマンドに示すように、`AWS.Tools` モジュールを使用することをお勧めします。各*リソースプレースホルダーの例*をユーザー自身の情報に置き換えます。
+ Amazon S3 コマンドレット。

  ```
  Install-Module AWS.Tools.S3 -Force
  Get-S3Bucket -BucketName amzn-s3-demo-bucket
  ```
+ Amazon EC2 コマンドレット。

  ```
  Install-Module AWS.Tools.EC2 -Force
  Get-EC2InstanceStatus -InstanceId instance-id
  ```
+ 共通またはサービスに依存しない AWS Tools for Windows PowerShell コマンドレット。

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

スクリプトで PowerShell Core コマンドレットを使用するだけでなく、新しいオブジェクトを初期化する場合は、次のコマンドに示すように、モジュールもインポートする必要があります。

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

`AWS.Tools` モジュールのインストールとインポートの例、およびランブックにある PowerShell Core コマンドレットの使用例については、「[オートメーションランブックのビジュアルデザインエクスペリエンス](automation-visual-designer.md)」を参照してください 。

**Input**  
スクリプトを実行するために必要な情報を入力します。各*リソースプレースホルダーの例*をユーザー自身の情報に置き換えます。

**注記**  
Python スクリプトの添付ファイルは、.py ファイルでも、スクリプトを含む .zip ファイルでもかまいません。PowerShell スクリプトは .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"
    }
}
```

------

ランタイム  
指定されたスクリプトの実行に使用されるランタイム言語。`aws:executeScript` は、次の表のランタイムをサポートします。      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/automation-action-executeScript.html)
タイプ: 文字列  
必須: はい  
Python ランタイムの場合、環境は 512MB のメモリと 512MB のディスク容量を提供します。PowerShell ランタイムの場合、環境は 1,024 MB のメモリと 512 MB のディスク容量を提供します。

Handler  
 関数の名前。ハンドラで定義された関数に、`events` と `context` の 2 つのパラメータがあることを確認する必要があります。PowerShell ランタイムはこのパラメータをサポートしていません。  
タイプ: 文字列  
必須: はい (Python) \$1 サポートされていません (PowerShell)

InputPayload  
ハンドラの最初のパラメータに渡される JSON または YAML オブジェクト。これは、スクリプトに入力データを渡すために使用できます。  
型: 文字列  
必須: いいえ  

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

Script  
オートメーションで実行する埋め込みスクリプト。  
タイプ: 文字列  
必須: いいえ (Python) \$1 はい (PowerShell)

Attachment  
アクションによって呼び出すことができるスタンドアロンスクリプトファイルまたは .zip ファイルの名前。`Attachments` のリクエストパラメータで指定したドキュメント添付ファイルの `Name` と同じ値を指定します。詳細については、「AWS Systems Manager API リファレンス」の「[Attachments](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_CreateDocument.html#systemsmanager-CreateDocument-request-Attachments)」(アタッチメント) を参照してください。アタッチメントを使用してスクリプトを提供する場合は、ランブックのトップレベル要素にある `files` セクションも定義する必要があります。詳しくは、「[スキーマバージョン 0.3](documents-schemas-features.md#automation-doc-syntax-examples)」を参照してください。  
Python 用のファイルを呼び出すには、`filename.method_name` の `Handler` 形式を使用します。  
Python スクリプトの添付ファイルは、.py ファイルでも、スクリプトを含む .zip ファイルでもかまいません。PowerShell スクリプトは .zip ファイルに保存する必要があります。
添付ファイルに Python ライブラリを含める場合は、各モジュールディレクトリに空の `__init__.py` ファイルを追加することをお勧めします。これにより、スクリプトコンテンツ内の添付ファイルのライブラリからモジュールをインポートできます。例: `from library import module`  
型: 文字列  
必須: いいえOutput

ペイロード  
関数によって返されるオブジェクトの JSON 形式です。最大 100KB が返されます。リストを出力する場合、最大 100 個の項目が返されます。

## aws:executeScript でアタッチメントを使用する


アタッチメントは、複雑なスクリプト、複数のモジュール、外部の依存関係を `aws:executeScript` アクションでパッケージ化して再利用する強力な方法を提供します。次を行う必要がある場合は、アタッチメントを使用します。
+ 複数の Python モジュールまたは PowerShell スクリプトを一緒にパッケージ化する。
+ 複数のランブックで同じスクリプトロジックを再利用する。
+ スクリプトに外部ライブラリまたは依存関係を含める。
+ 複雑なスクリプトロジックを分離してランブック定義をクリーンに保つ。
+ 複数のチームまたは自動化ワークフロー間でスクリプトパッケージを共有する。

### アタッチメントの構造とパッケージ化


単一のファイルまたは複数のファイルを含む zip パッケージをアタッチできます。構造はユースケースに応じて異なります。

**単一ファイルのアタッチメント**  
シンプルなスクリプトの場合、単一の `.py` ファイル (Python) または単一の PowerShell スクリプトを含む `.zip` ファイルをアタッチできます。

**マルチモジュールパッケージ**  
複数のモジュールを必要とする複雑な自動化の場合は、次の推奨構造で zip パッケージを作成します。

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

**重要**  
Python パッケージの場合、Python モジュールを含む各ディレクトリに空の `__init__.py` ファイルを含める必要があります。これにより、`from utils import helper_functions` のような標準の Python インポート構文を使用してモジュールをインポートできます。

**PowerShell パッケージの構造**  
PowerShell アタッチメントは、次の構造で zip ファイルにパッケージ化する必要があります。

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

### アタッチメントを含むランブックを作成する


アタッチメントを使用するランブックを作成するには、次の手順に従います。

1. **Amazon S3 にアタッチメントをアップロードします**

   自動化ロールがアクセスできる S3 バケットにスクリプトファイルまたは zip パッケージをアップロードします。後のステップで使用するために S3 の URI を記録します。

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

1. **アタッチメントチェックサムを計算します**

   セキュリティ検証のためにアタッチメントファイルの SHA-256 チェックサムを計算します。

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

1. **ランブックのファイルセクションを定義します**

   ランブックの最上位に `files` セクションを追加してアタッチメントを参照します。

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

1. **executeScript ステップでアタッチメントを参照します**

   `Attachment` パラメータを使用して、アップロードしたファイルを参照します。

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

## aws:executeScript アタッチメントの例


次の例は、`aws:executeScript` アクションでアタッチメントを使用するさまざまな方法を示します。

### 例 1: 単一ファイルのアタッチメント


この例では、単一の Python ファイルをアタッチメントとして使用して EC2 インスタンスデータを処理する方法を示します。

**アタッチメントファイル: process\$1instance.py**  
以下のコンテンツを含む Python ファイルを作成します。

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

**完全なランブック**  
単一のファイルアタッチメントを使用する完全なランブックを次に示します。

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

### 例 2: マルチモジュールパッケージ


この例では、複雑な S3 バケットオペレーションで複数の Python モジュールを含む zip パッケージを使用する方法を示します。

**パッケージ構造**  
次の構造で zip パッケージを作成します。

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

**main.py (エントリポイント)**  
オペレーションをオーケストレーションするメインスクリプト:

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

## aws:executeScript アタッチメントのトラブルシューティング


`aws:executeScript` アタッチメントに関する一般的な問題を解決するには、次のガイダンスを使用してください。

**モジュールのインポートエラー**  
マルチモジュールパッケージの使用時にインポートエラーが発生した場合:
+ Python モジュールを含む各ディレクトリに空の `__init__.py` ファイルが含まれていることを確認します。
+ インポートステートメントが zip パッケージの実際のファイルとディレクトリ構造と一致していることを確認します。
+ 相対インポート (`from .utils import helper` など) または絶対インポート (`from utils import helper` など) を一貫して使用します。

**アタッチメントが見つからないエラー**  
オートメーションでアタッチメントが見つからない場合:
+ `Attachment` パラメータ値が `files` セクションのキーに正確に一致することを確認します。
+ `files` セクションの S3 バケットパスとファイル名が正しいことを確認します。
+ 自動化ロールにアタッチメント S3 の場所に対する `s3:GetObject` アクセス許可があることを確認します。
+ ランブックのチェックサムが実際のファイルチェックサムと一致することを確認します。

**ハンドラー関数のエラー**  
ハンドラー関連のエラーが発生した場合:
+ Python の場合: `Handler` パラメータで `filename.function_name` の形式を使用します (`main.process_data` など)。
+ ハンドラー関数が `events` と `context` の 2 つのパラメータのみを受け入れることを確認します。
+ PowerShell の場合: `Handler` パラメータを指定しないでください。スクリプトは直接実行します。

**スクリプト実行の失敗**  
実行中にスクリプトが失敗した場合:
+ 詳細なエラーメッセージとスタックトレースのオートメーション実行履歴を確認します。
+ `print()` ステートメント (Python) または `Write-Information` (PowerShell) を使用してデバッグ出力を追加します。
+ 必要なすべての AWS アクセス許可が自動化ロールに付与されていることを確認します。
+ アタッチメントとしてパッケージ化する前にスクリプトロジックをローカルでテストします。

**終了コードとエラー処理**  
エラーを適切に処理して終了コードを返すには:
+ Python の場合: `raise Exception("error message")` を使用してスクリプトの失敗を示します。
+ PowerShell の場合: `throw "error message"` または `Write-Error` を使用して失敗を示します。
+ 関数から構造化データを返し、詳細な成功/失敗情報を提供します。
+ try-catch ブロックを使用して例外を適切に処理し、意味のあるエラーメッセージを提供します。

# `aws:executeStateMachine` – AWS Step Functions ステートマシンを実行する


AWS Step Functions ステートマシンを実行します。

**注記**  
`aws:executeStateMachine` アクションは、自動スロットリング再試行をサポートしています。詳細については、「[スロットリングされたオペレーションの自動再試行の設定](automation-throttling-retry.md)」を参照してください。

**Input** (入力)

このアクションでは、Step Functions [StartExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html) API オペレーションのほとんどのパラメータがサポートされています。

**必要な 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  
Step Functions ステートマシンの Amazon Resource Name (ARN)。  
型: 文字列  
必須: はい

name  
実行の名前。  
型: 文字列  
必須: いいえ

input  
実行に必要な JSON 入力データを含む文字列。  
型: 文字列  
必須: いいえ

**アウトプット**  
このアクションでは、以下の出力が事前に定義されています。

executionArn  
実行の ARN。  
タイプ: 文字列

input  
実行の入力データ (JSON) を含む文字列。このデータ長は、ペイロードのサイズにより制約を受け、UTF-8 エンコーディングによりバイト数で表現されます。  
タイプ: 文字列

名前  
実行の名前。  
タイプ: 文字列

output  
実行の出力データ (JSON)。このデータ長は、ペイロードのサイズにより制約を受け、UTF-8 エンコーディングによりバイト数で表現されます。  
タイプ: 文字列

startDate  
実行が開始された日付。  
タイプ: 文字列

stateMachineArn  
実行されたステートマシンの ARN。  
タイプ: 文字列

ステータス  
実行に関する現在の状態。  
タイプ: 文字列

stopDate  
実行がすでに終了している場合の、その実行が停止した日付。  
タイプ: 文字列

# `aws:invokeWebhook` – オートメーションのウェブフック統合を呼び出す


オートメーションでウェブフック統合を指定して呼び出します。オートメーションのランブックの作成については、「[Automation 向けのウェブフック統合の作成](creating-webhook-integrations.md)」を参照してください。

**注記**  
`aws:invokeWebhook` アクションは、自動スロットリング再試行をサポートしています。詳細については、「[スロットリングされたオペレーションの自動再試行の設定](automation-throttling-retry.md)」を参照してください。

**注記**  
`aws:invokeWebhook` アクションを使用するには、ユーザーまたはサービスロールが、以下のアクションを許可している必要があります。  
ssm:GetParameter
kms:Decrypt
AWS Key Management Service (AWS KMS) `Decrypt` オペレーションに対するアクセス許可が必要になるのは、カスタマー管理キーを使用して統合のパラメータを暗号化する場合のみです。

**Input**  
呼び出すオートメーション統合の情報を入力します。

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

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

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

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

------

IntegrationName  
オートメーション統合の名前。例えば、`exampleIntegration`。指定できるのは、既に存在している統合のみです。  
タイプ: 文字列。  
必須: はい

[Body] (本文)  
ウェブフック統合が呼び出された際に送信するペイロード。  
タイプ: 文字列。  
必須: いいえOutput

応答  
ウェブフックプロバイダーの応答から受信したテキスト。

ResponseCode  
ウェブフックプロバイダーの応答から受信した HTTP ステータスコード。

# `aws:invokeLambdaFunction` – AWS Lambda 関数を呼び出す


指定した AWS Lambda 関数を呼び出します。

**注記**  
各 `aws:invokeLambdaFunction` アクションは、最大 300 秒 (5 分) 実行できます。`timeoutSeconds` ステップで `aws:invokeLambdaFunction` パラメータを指定して、タイムアウトを制限または延長することができます。

**注記**  
`aws:invokeLambdaFunction` アクションは、自動スロットリング再試行をサポートしています。詳細については、「[スロットリングされたオペレーションの自動再試行の設定](automation-throttling-retry.md)」を参照してください。

**Input**  
このアクションでは、Lambda サービスのほとんどの呼び出しパラメータがサポートされています。詳細については、「[起動](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  
Lambda 関数の名前。必須の関数です。  
型: 文字列  
必須: はい

Qualifier  
関数のバージョンまたはエイリアス名。  
型: 文字列  
必須: いいえ

InvocationType  
呼び出しタイプ。デフォルト値は `RequestResponse` です。  
型: 文字列  
有効な値: `Event` \$1 `RequestResponse` \$1 `DryRun`  
必須: いいえ

LogType  
デフォルト値が `Tail` の場合、呼び出しタイプは `RequestResponse` である必要があります。Lambda は、Lambda 関数で生成されたログデータの最後の 4 KB を base64 でエンコードして返します。  
型: 文字列  
有効な値: `None` \$1 `Tail`  
必須: いいえ

ClientContext  
クライアント固有の情報。  
必須: いいえ

InputPayload  
ハンドラの最初のパラメータに渡される JSON または YAML オブジェクト。この入力を使用して、関数にデータを渡すことができます。この入力は、従来の `Payload` 入力よりもより高い柔軟性とサポート性を提供します。アクションで `InputPayload` と `Payload` の両方を定義する場合、`InputPayload` が優先され、`Payload` 値は使用されません。  
型: StringMap  
必須: いいえ

ペイロード  
ハンドラの最初のパラメータに渡される JSON 文字列。これを使用して、関数に入力データを渡すことができます。追加機能では `InputPayload` 入力を使用することをお勧めします。  
タイプ: 文字列  
必須: いいえOutput

StatusCode  
HTTP ステータスコード

FunctionError  
エラーが存在する場合、関数の実行中にエラーが発生したことを示します。エラーの詳細は、レスポンスペイロードに含まれています。

LogResult  
Lambda 関数の呼び出しに対して base64 でエンコードされたログ。ログが存在するのは、呼び出しタイプが `RequestResponse` で、ログがリクエストされた場合のみです。

Payload  
Lambda 関数によって返されるオブジェクトの JSON 形式。ペイロードは、呼び出しタイプが `RequestResponse` の場合にのみ存在します。

以下は、`aws:invokeLambdaFunction` アクションから出力を参照する方法を示した `AWS-PatchInstanceWithRollback` ランブックの一部です。

------
#### [ 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` — オートメーション内のステップを反復処理します。


このアクションは、オートメーションランブック内のステップのサブセットを反復処理します。`do while` または `for each` スタイルループを選択できます。`do while` ループを作成するには、`LoopCondition` 入力パラメーターを使用します。`for each` ループを作成するには、`Iterators` と `IteratorDataType` 入力パラメーターを使用します。`aws:loop` アクションを使用するときは、`Iterators` または `LoopCondition` 入力パラメータのみを指定してください。最大反復回数は 100 です。

`onCancel` プロパティを使用できるのは、ループ内で定義されたステップのみです。`onCancel` プロパティは `aws:loop` アクションではサポートされていません。`aws:loop` アクションに `onFailure` プロパティを使用することはできますが、これが使用されるのは、ステップを失敗させる予期しないエラーが発生した場合のみです。ループ内のステップに `onFailure` プロパティを定義すると、`aws: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**  
入力は次のとおりです。

イテレーター  
ステップを反復処理する項目のリスト。最大反復回数は 100 です。  
タイプ: StringList  
必須: いいえ

イテレータ/データタイプ  
`Iterators` のデータ型を指定するオプションのパラメータ。このパラメータの値は、`Iterators` 入力パラメータとともに提供できます。このパラメータ値と `Iterators` を指定しない場合、`LoopCondition` パラメータ値を指定する必要があります。  
タイプ: 文字列  
有効な値: ブール値 \$1 整数 \$1 文字列 \$1 StringMap  
デフォルト: 文字列  
必須: いいえ

ループ条件  
`Variable` と評価する演算子条件で構成されます。このパラメータ値を指定しない場合、`Iterators` と `IteratorDataType` パラメータ値を指定する必要があります。`And`、`Not` と `Or` 演算子の組み合わせを使用して、複雑な演算子の評価を使用できます。条件はループ内のステップが完了した後に評価されます。条件が `true` で、`MaxIterations` 値に達していない場合は、ループ内のステップが再び実行されます。オペレータの条件は以下のとおりです。  

**文字列演算子**
+ StringEquals
+ EqualsIgnoreCase
+ StartsWith
+ EndsWith
+ Contains

**数値演算子**
+ NumericEquals
+ NumericGreater
+ NumericLesser
+ NumericGreaterOrEquals
+ NumericLesser
+ NumericLesserOrEquals

**ブール演算子**
+ BooleanEquals
型: StringMap  
必須: いいえ

最大反復回数  
ループ内のステップの最大実行回数。この入力に指定された値に達すると、`LoopCondition` が `true` でも、または `Iterators` パラメータにオブジェクトが残っていても、ループの実行は停止します。  
タイプ: 整数  
有効な値: 1～100  
必須: いいえ

Steps  
ループで実行するステップのリスト。これらはネストされたランブックのように機能します。これらのステップでは、`{{loopStepName.CurrentIteratorValue}}` 構文を使用して `for each` ループの現在のイテレーター値にアクセスできます。`{{loopStepName.CurrentIteration}}` 構文を使用して、両方のループタイプの現在の反復の整数値にアクセスすることもできます。  
タイプ: ステップのリスト  
必須: はいOutput

CurrentIteration  
現在のループ反復を整数で表したもの。反復値は 1 から始まります。  
タイプ: 整数

現在のイテレータ値  
現在のイテレータの値を文字列で表したもの。この出力は `for each` ループ内にのみ存在します。  
タイプ: 文字列

# `aws:pause` – オートメーションを一時停止する


このアクションは、オートメーションを一時停止します。一時停止されると、オートメーションのステータスは [*待機中*] になります。オートメーションを続行するには、`Resume` シグナルタイプの [SendAutomationSignal](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_SendAutomationSignal.html) API オペレーションを使用します。ワークフローをよりきめ細かく制御する場合、`aws:sleep` または `aws:approve` アクションを使用することをお勧めします。

**注記**  
このアクションのデフォルトのタイムアウトは 7 日間 (604800 秒) で、最大値は 30 日間 (2592000 秒) です。`timeoutSeconds` ステップで `aws:pause` パラメータを指定して、タイムアウトを制限または延長することができます。

**Input**  
入力は次のとおりです。

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

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

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

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

------Output

なし  


# `aws:runCommand` – マネージドインスタンスでコマンドを実行する


指定されたコマンドを実行します。

**注記**  
オートメーションは、1 つの AWS Systems Manager Run Command アクションの*Output*のみをサポートします。Runbook には、複数の Run Command アクションを含めることができますが、Output がサポートされるのは一度に 1 つのアクションに対してのみです。

**Input**  
このアクションでは、ほとんどの Send Command Parameters がサポートされています。詳細については、「[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  
コマンドタイプドキュメントの所有者が、お客様または AWS の場合は、ドキュメントの名前を指定します。別の AWS アカウント から共有されたドキュメントを使用している場合は、そのドキュメントの Amazon リソースネーム (ARN) を指定します。共有ドキュメントの使用方法については、「[共有 SSM ドキュメントを使用する](documents-ssm-sharing.md#using-shared-documents)」を参照してください。  
型: 文字列  
必須: はい

InstanceIds  
コマンドを実行するインスタンス ID です。最大 50 の ID を指定できます。  
インスタンス ID の代わりに擬似パラメータ `{{RESOURCE_ID}}` を使用して、ターゲットグループ内のすべてのインスタンスでコマンドを実行することもできます。疑似 Parameters の詳細については、「[メンテナンスウィンドウのタスクを登録する際の疑似パラメータの使用](maintenance-window-tasks-pseudo-parameters.md)」を参照してください。  
他に、`Targets` パラメータを使用して、コマンドをインスタンスのフリートに送信する方法もあります。`Targets` パラメータは、Amazon Elastic Compute Cloud (Amazon EC2) タグを受け入れます。`Targets` パラメータの使用方法の詳細については、「[コマンドを大規模に実行する](send-commands-multiple.md)」を参照してください。  
タイプ: StringList  
必須: いいえ (InstanceId を指定しない場合、または `{{RESOURCE_ID}}` 擬似パラメータを使用する場合は、`Targets` パラメータを指定する必要があります)。

Targets  
指定した Key、Value の組み合わせを使用してインスタンスを対象とする検索条件の配列です。呼び出しにインスタンス ID を 1 つも指定しない場合は、`Targets` が必要です。`Targets` パラメータの使用方法の詳細については、「[コマンドを大規模に実行する](send-commands-multiple.md)」を参照してください。  
タイプ: MapList (リスト内のマップのスキーマはオブジェクトと一致する必要があります)。詳細については、*AWS Systems Manager API リファレンス*の「[ターゲット](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_Target.html)」を参照してください。  
必須: いいえ (`Targets` を指定しない場合は、InstanceId を指定するか、`{{RESOURCE_ID}}` 擬似パラメータを使用する必要があります)。  
次に例を示します。  

```
- 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"
            ]
        }
    }
}
```

Parameters  
ドキュメントに指定されている必須およびオプションの Parameters。  
型: マップ  
必須: いいえ

CloudWatchOutputConfig  
Amazon CloudWatch Logs にコマンド Output を送信するための設定オプション。CloudWatch Logs への Command Output 送信の詳細については、「[Run Command の Amazon CloudWatch Logs の設定](sysman-rc-setting-up-cwlogs.md)」を参照してください。  
タイプ: StringMap (マップのスキーマはオブジェクトと一致する必要があります。詳細については、*AWS Systems Manager API リファレンス*の「[CloudWatchOutputConfig](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_CloudWatchOutputConfig.html)」を参照してください)。  
必須: いいえ  
次に例を示します。  

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

Comment  
コマンドに関するユーザー定義情報。  
型: 文字列  
必須: いいえ

DocumentHash  
ドキュメントのハッシュ。  
型: 文字列  
必須: いいえ

DocumentHashType  
ハッシュの種類。  
型: 文字列  
有効な値: `Sha256` \$1 `Sha1`  
必須: いいえ

NotificationConfig  
通知を送信するための設定。  
必須: いいえ

OutputS3BucketName  
Command Output の応答を保存する S3 バケットの名前。マネージドノードには、S3 バケットが Output を正常にログに記録するためのアクセス許可が必要です。  
タイプ: 文字列  
必須: いいえ

OutputS3KeyPrefix  
プレフィックス。  
型: 文字列  
必須: いいえ

ServiceRoleArn  
AWS Identity and Access Management (IAM) ロールの ARN。  
型: 文字列  
必須: いいえ

TimeoutSeconds  
インスタンスの AWS Systems Manager SSM Agent にコマンドが配信されるまで待機する時間 (秒単位)。指定した値に達する前にインスタンスで SSM Agent が Command を受信しなかった場合、Command の Status は `Delivery Timed Out` に変わります。  
タイプ: 整数  
必須: いいえ  
有効な値: 30～2592000Output

CommandId  
コマンドの ID。

Status  
Command の Status。

ResponseCode  
コマンドのレスポンスコード。実行するドキュメントに複数のステップがある場合、この Output の値は返されません。

Output  
Command の Output。Command でタグまたは複数のインスタンスをターゲットにした場合、Output 値は返されません。`GetCommandInvocation` および `ListCommandInvocations` API オペレーションを使用して、個々のインスタンスの Output を取得できます。

# `aws:runInstances` – Amazon EC2 インスタンスの起動


新しい Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを起動します。

**注記**  
`aws:runInstances` アクションは、自動スロットリング再試行をサポートしています。詳細については、「[スロットリングされたオペレーションの自動再試行の設定](automation-throttling-retry.md)」を参照してください。

**Input**  
このアクションでは、ほとんどの API パラメータがサポートされています。詳細については、[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  
リザーブド。  
型: 文字列  
必須: いいえ

BlockDeviceMappings  
インスタンスのブロックデバイス。  
型: MapList  
必須: いいえ

ClientToken  
リクエストの多重実行を禁止するための識別子。  
型: 文字列  
必須: いいえ

DisableApiTermination  
インスタンス API の終了をオンまたはオフにします。  
タイプ: ブール値  
必須: いいえ

EbsOptimized  
Amazon Elastic Block Store (Amazon EBS) 最適化をオンまたはオフにします。  
タイプ: ブール値  
必須: いいえ

IamInstanceProfileArn  
インスタンスの AWS Identity and Access Management (IAM) インスタンスプロファイルの Amazon リソースネーム (ARN)。  
型: 文字列  
必須: いいえ

IamInstanceProfileName  
インスタンスの IAM インスタンスプロファイルの名前。  
型: 文字列  
必須: いいえ

ImageId  
Amazon Machine Image (AMI) の ID。  
型: 文字列  
必須: はい

InstanceInitiatedShutdownBehavior  
システムのシャットダウン時にインスタンスを停止するか終了するかを示します。  
型: 文字列  
必須: いいえ

InstanceType  
インスタンスタイプ。  
インスタンスタイプの値が指定されていない場合は、インスタンスタイプ m1.small を使用します。
型: 文字列  
必須: いいえ

KernelId  
カーネルの ID。  
型: 文字列  
必須: いいえ

KeyName  
キーペアの名前。  
型: 文字列  
必須: いいえ

MaxInstanceCount  
起動するインスタンスの最大数。  
型: 文字列  
必須: いいえ

MetadataOptions  
インスタンスのメタデータオプション。詳細については、「[InstanceMetadataOptionsRequest](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_InstanceMetadataOptionsRequest.html)」を参照してください。  
型: StringMap  
必須: いいえ

MinInstanceCount  
起動するインスタンスの最小数。  
型: 文字列  
必須: いいえ

Monitoring  
詳細モニタリングをオンまたはオフにします。  
タイプ: ブール値  
必須: いいえ

NetworkInterfaces  
ネットワークインターフェイス。  
型: MapList  
必須: いいえ

Placement  
インスタンスのプレイスメント。  
型: StringMap  
必須: いいえ

PrivateIpAddress  
プライマリ IPv4 アドレス。  
型: 文字列  
必須: いいえ

RamdiskId  
RAM ディスクの ID。  
型: 文字列  
必須: いいえ

SecurityGroupIds  
インスタンスのセキュリティグループの ID。  
タイプ: StringList  
必須: いいえ

SecurityGroups  
インスタンスのセキュリティグループの名前。  
タイプ: StringList  
必須: いいえ

SubnetId  
サブネット ID。  
型: 文字列  
必須: いいえ

TagSpecifications  
タグは、起動中のリソースに適用されます。起動時にインスタンスとボリュームにのみタグを付けることができます。指定されたタグは、すべてのインスタンス、または起動時に作成されたボリュームに適用されます。インスタンスを起動した後にタグを付けるには、[`aws:createTags` – AWS リソースのタグを作成する](automation-action-createtag.md) アクションを使用します。  
タイプ: MapList (詳細については、「[TagSpecification](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_TagSpecification.html)」を参照してください)。  
必須: いいえ

UserData  
文字列リテラル値として渡されるスクリプト。リテラル値を入力する場合、Base64 エンコードである必要があります。  
型: 文字列  
必須: いいえOutput

InstanceIds  
インスタンスの ID。

InstanceStates  
インスタンスの現在の状態。

# `aws:sleep` – オートメーションを遅らせる


特定の時間数のオートメーションの遅延。このアクションは、国際標準化機構 (ISO) 8601 に日付と時刻形式を使用します。日付と時刻形式の詳細については、「[ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html)」を参照してください。

**Input**  
指定する時間でオートメーションを遅延することができます。

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

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

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

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

------

また、指定された日付や時間までオートメーションを遅延することもできます。指定した日付と時刻が経過すると、アクションはすぐに処理されます。

------
#### [ 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"
    }
}
```

------

**注記**  
自動化は、最大で 604,799 秒 (7 日間) までの遅延をサポートします。

時間  
ISO 8601 の時間。負の時間を指定することはできません。  
型: 文字列  
必須: いいえ

タイムスタンプ  
ISO 8601 のタイムスタンプ。このパラメータ値を指定しない場合、`Duration` パラメータ値を指定する必要があります。  
型: 文字列  
必須: いいえOutput

なし  


# `aws:updateVariable` — ランブック変数の値を更新します。


このアクションはランブック変数の値を更新します。値のデータ型は、更新元となる可変のデータ型に一致する必要があります。データ型変換はサポートされていません。`onCancel` プロパティは `aws:updateVariable` アクションではサポートされていません。

**Input**  
入力は次のとおりです。

------
#### [ 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"]
    }
}
```

------

名前  
値の更新元となる変数の名前。次の形式を使用する必要があります。`variable:variable name`  
タイプ: 文字列  
必須: はい

値  
変数に代入する新しい値。値は、変数のデータ型に一致する必要があります。データ型変換はサポートされていません。  
型: ブール値｜整数｜マップリスト｜文字列｜文字列リスト｜文字列マップ  
必須: はい  
制約:  
+ マップリストには、最大数は 200 項目まで格納できます。
+ キーの長さは、最小長は 1、最大長は 50 です。
+ 文字列リストには、最小で 0 個のアイテムから最大で 50 個のアイテムを指定できます。
+ 文字列の長さは、最小長は 1、最大長は 512 です。Output

なし  


# `aws:waitForAwsResourceProperty` – AWS リソースプロパティを待つ


`aws:waitForAwsResourceProperty` アクションにより、続行する前にオートメーションが特定のリソース状態またはイベント状態を待てるようにします。このアクションの使用例については、「[その他のランブックの例](automation-document-examples.md)」を参照してください。

**注記**  
このアクションのデフォルトのタイムアウト値は 3600 秒 (1 時間) です。`timeoutSeconds` ステップで `aws:waitForAwsResourceProperty` パラメータを指定して、タイムアウトを制限または延長することができます。このアクションの使用方法の詳細と例については、「[ランブックでのタイムアウトの処理](automation-handling-timeouts.md)」を参照してください。

**注記**  
`aws:waitForAwsResourceProperty` アクションは、自動スロットリング再試行をサポートしています。詳細については、「[スロットリングされたオペレーションの自動再試行の設定](automation-throttling-retry.md)」を参照してください。

**Input**  
入力は、選択した API オペレーションによって定義されます。

------
#### [ 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"
    ]
  }
}
```

------

サービス  
実行する API オペレーションを含む AWS のサービスの名前空間。たとえば、AWS Systems Manager の名前空間は、`ssm` となります。Amazon Elastic Compute Cloud (Amazon EC2) の名前空間は、`ec2` です。サポートされている AWS のサービスの名前空間のリストは、AWS CLI コマンドリファレンスの「[Available Services (利用可能なサービス)](https://docs.aws.amazon.com/cli/latest/reference/#available-services)」セクションを参照してください。  
タイプ: 文字列  
必須: はい

Api  
実行する API オペレーションの名前。API オペレーション (メソッド) は、以下の「[サービスリファレンス](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html)」ページの左側のナビゲーションでサービスを選択することで表示できます。呼び出すサービスの [**Client (クライアント)**] セクションでメソッドを選択します。例えば、Amazon Relational Database Service (Amazon RDS) のすべての API オペレーション (メソッド) は、[Amazon RDS メソッド](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html)のページに一覧表示されます。  
型: 文字列  
必須: はい

API オペレーション入力  
1 つ以上の API オペレーションを入力します。使用できる入力 (パラメータ) は、以下の「[サービスリファレンス](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html)」ページの左側のナビゲーションでサービスを選択することで表示できます。呼び出すサービスの [**Client (クライアント)**] セクションでメソッドを選択します。例えば、Amazon RDS のすべてのメソッドは、[Amazon RDS メソッド](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html)ページに一覧表示されています。[describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) メソッドを選択し、下にスクロールして、[**DBInstanceIdentifier**]、[**Name (名前)**]、および [**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"
}
```
型: 選択した API オペレーションによって決まります  
必須: はい

PropertySelector  
応答オブジェクト内の特定の属性への JSONPath。レスポンスオブジェクトは、以下の「[サービスリファレンス](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html)」ページの左側のナビゲーションでサービスを選択することで表示できます。呼び出すサービスの [**Client (クライアント)**] セクションでメソッドを選択します。例えば、Amazon RDS のすべてのメソッドは、[Amazon RDS メソッド](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html)ページに一覧表示されています。[describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) メソッドを選択し、[**Response Structure (レスポンス構造)**] セクションまで下にスクロールします。[**DBInstances**] は応答オブジェクトとして表示されます。  
型: 文字列  
必須: はい

DesiredValues  
予定の状態、またはオートメーションを継続する状態。  
タイプ: MapList、StringList  
必須: はい

# オートメーションシステム変数


AWS Systems Manager オートメーションランブックでは、以下の変数が使用されます。これらの変数の使用例については、`AWS-UpdateWindowsAmi` Runbook の JSON ソースを参照してください。

**`AWS-UpdateWindowsAmi` ランブックの JSON ソースを表示するには**

1. AWS Systems Manager コンソール ([https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)) を開きます。

1. ナビゲーションペインで、[**ドキュメント**] を選択します。

1. ドキュメントリストで、検索バーまたは検索バーの右側にある数字のいずれかを使用して、ランブック `AWS-UpdateWindowsAmi` を選択します。

1. [**Content**] タブを選択します。

**システム変数**  
オートメーションランブックでは、以下のシステム変数がサポートされています。


****  

| 変数 | 詳細 | 
| --- | --- | 
|  `global:ACCOUNT_ID`  |  オートメーションを実行するユーザーまたはロールの AWS アカウント ID です。  | 
|  `global:DATE`  |  yyyy-MM-dd 形式の日付 (実行時)。  | 
|  `global:DATE_TIME`  |  yyyy-MM-dd\$1HH.mm.ss 形式の日時 (実行時)。  | 
|  `global:AWS_PARTITION`  |  リソースが置かれているパーティションです。標準 AWS リージョン の場合、パーティションは `aws` です。他のパーティションのリソースについては、パーティションは `aws-partitionname` です。例えば、AWS GovCloud (米国西部) リージョンのリソースのパーティションは `aws-us-gov` です。  | 
|  `global:REGION`  |  Runbook が実行されるリージョン。たとえば、us-east-2 です。  | 

**オートメーション変数**  
オートメーションランブックでは、以下の Automation 変数がサポートされています。


****  

| 変数 | 詳細 | 
| --- | --- | 
|  `automation:EXECUTION_ID`  |  現在のオートメーションに割り当てられた一意の識別子 例えば、`1a2b3c-1a2b3c-1a2b3c-1a2b3c1a2b3c1a2b3c` と指定します。  | 

**Topics**
+ [

## 用語
](#automation-terms)
+ [

## サポートされるシナリオ
](#automation-variables-support)
+ [

## サポートされないシナリオ
](#automation-variables-unsupported)

## 用語


以下の用語では、変数とパラメータの解決方法について説明します。


****  

| 用語 | 定義 | 例 | 
| --- | --- | --- | 
|  定数 ARN  |  変数を含まない有効な Amazon リソースネーム (ARN)。  |  `arn:aws:iam::123456789012:role/roleName`  | 
|  Runbook パラメータ  |  Runbook レベル (`instanceId` など) で定義されたパラメータ。このパラメータは基本的な文字列置換で使用されます。その値は Start Execution 時に渡されます。  |  <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>  | 
|  システム変数  |  Runbook のいずれかの部分が評価されたときに Runbook に代入される一般的な変数。  |  <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>  | 
|  Automation 変数  |  Runbook のいずれかの部分が評価されたときに Runbook に代入される、オートメーションに関連した変数。  |  <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>  | 
|  Systems Manager パラメータ  |  AWS Systems Manager Parameter Store 内で定義された変数。ステップ入力で直接参照することはできません。パラメータにアクセスするにはアクセス許可が必要な場合があります。  |  <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>  | 

## サポートされるシナリオ



****  

| シナリオ | コメント | 例 | 
| --- | --- | --- | 
|  作成時の一定 ARN `assumeRole`。  |  権限付与チェックが実行されて、呼び出し元ユーザーが `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>  | 
|  オートメーションの開始時に、`AssumeRole` に与えられる Runbook のパラメータ。  |  Runbook のパラメータリストで定義する必要があります。  |  <pre>{<br />  "description": "Test all Automation resolvable parameters",<br />  "schemaVersion": "0.3",<br />  "assumeRole": "{{dynamicARN}}",<br />  "parameters": {<br /> ...</pre>  | 
|  開始時に Runbook パラメータに渡される値  |  お客様がパラメータに使用する値を指定します。開始時に渡される入力は、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> Start Automation Execution への入力には `{"amiId" : ["ami-12345678"] }` を含めます。  | 
|  ランブックコンテンツ内で参照される Systems Manager パラメータ。  |  変数は、顧客のアカウント内に存在するか、パブリックにアクセス可能なパラメータであり、Runbook の `AssumeRole` に変数へのアクセスがあります。作成時にチェックが実行されて、`AssumeRole` が変数にアクセスできることが確認されます。パラメータは、ステップ入力で直接参照することはできません。  |  <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>  | 
|  ステップ定義内で参照されるシステム変数  |  オートメーションが開始されると、システム変数が Runbook に代入されます。Runbook に挿入される値は、代入時の変数の値に対して相対的になります。たとえば、ステップ 1 で挿入される時間変数の値は、ステップの実行にかかる時間のため、ステップ 3 で挿入される時間変数の値とは異なります。システム変数は、ランブックのパラメータリストで設定する必要はありません。  |  <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>  | 
|  ステップ定義内で参照される自動化の変数  |  Automation 変数は、ランブックのパラメータリストで設定する必要はありません。サポートされる Automation 変数は **automation: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>  | 
|  次のステップ定義内からの前のステップの出力の参照  |  これはパラメータのリダイレクトです。前のステップの出力は、構文 `{{stepName.OutputName}}` を使用して参照されます。この構文は、お客様がランブックのパラメータに対して使用することはできません。これは、参照ステップの実行時に解決されます。ランブックのパラメータリストでは設定されません。  |  <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>  | 

## サポートされないシナリオ



****  

| シナリオ | コメント | 例 | 
| --- | --- | --- | 
|  作成時に `assumeRole` に渡される Systems Manager パラメータ  |  サポート外。  |  <pre>...<br /><br />{<br />  "description": "Test all Automation resolvable parameters",<br />  "schemaVersion": "0.3",<br />  "assumeRole": "{{ssm:administratorRoleARN}}",<br />  "parameters": {<br /><br />... </pre>  | 
|  ステップ入力で直接参照される Systems Manager パラメータ。  |  作成時に `InvalidDocumentContent` 例外を返します。  |  <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>  | 
|  変数によるステップの定義  |  Runbook 内のステップの定義は変数によって構成されます。  |  <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>  | 
|  Runbook パラメータの相互参照  |  ユーザーは開始時に入力パラメータとして、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>  | 
|  複数レベルの展開  |  Runbook で、変数の名前に評価される変数を定義します。これは、変数区切り記号 (*\$1\$1 \$1\$1*) 内にあり、変数/パラメータの値に展開されます。  |  <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>  | 
|  別の変数タイプであるRunbook ステップからの出力の参照  |  ユーザーは前のRunbook ステップからの出力を後続のステップ内で参照します。出力は、後続のステップのアクションの要件を満たしていない変数タイプです。  |  <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>  | 