

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

# アクションの入力と出力を構成する
<a name="visual-designer-action-inputs-outputs"></a>

各オートメーションアクションは、受け取った入力に基づいて応答します。ほとんどの場合、出力を後続のアクションに渡します。ビジュアルデザインエクスペリエンスでは、**[フォーム]** パネルの **[入力]** タブと **[出力]** タブでアクションの入出力データを設定できます。

オートメーションアクションの出力を定義および使用する方法の詳細については、「[アクション出力の入力としての使用](automation-action-outputs-inputs.md)」を参照してください。

## アクションの入力データを提供する。
<a name="providing-input"></a>

各オートメーションアクションには、値を指定する必要がある入力が 1 つ以上あります。アクションの入力に指定する値は、アクションが受け付けるデータ型と形式によって決まります。例えば、`aws:sleep` アクションの入力には、ISO 8601 形式の文字列値が `Duration` 入力に必要です。

通常、ランブックのワークフローでは、後続のアクションで使用したい出力を返すアクションを使用します。ランブックのワークフローでエラーが発生しないように、入力値が正しいことを確認することが重要です。入力値も重要です。入力値によって、アクションが期待どおりの出力を返すかどうかが決まるからです。例えば、`aws:executeAwsApi` アクションを使用するときは、API 操作に適切な値を指定していることを確認する必要があります。

## アクションの出力データを定義します。
<a name="defining-output"></a>

オートメーションアクションの中には、定義した操作を実行した後に出力を返すものもあります。出力を返すアクションには、出力が事前に定義されているか、ユーザーが出力を定義できるものがあります。例えば、`aws:createImage` アクションには `ImageId` と `ImageState` を返す出力があらかじめ定義されています。これとは対照的に、`aws:executeAwsApi` アクションでは、指定した API オペレーションから必要な出力を定義できます。そのため、1 回の API オペレーションから 1 つ以上の値を返して、後続のアクションで使用できます。

オートメーションアクションの独自の出力を定義するには、出力の名前、データ型、出力値を指定する必要があります。引き続き `aws:executeAwsApi` アクションを例として使用するために、Amazon EC2 から `DescribeInstances` API オペレーションを呼び出しているとしましょう。この例では、Amazon EC2 インスタンスの `State` を返す、あるいは出力し、その出力に基づいてランブックのワークフローを分岐させたいと考えています。**InstanceState** 出力に名前を付けることを選択し、そのデータ型 **String** を使用します。

出力の実際の値を定義するプロセスは、アクションによって異なります。例えば、`aws:executeScript` アクションを使用している場合は、出力にデータを提供するために関数内で `return` ステートメントを使用する必要があります。`aws:executeAwsApi`、`aws:waitForAwsResourceProperty`、`aws:assertAwsResourceProperty` などのアクションでは、`Selector` が必要です。`Selector`、または一部のアクションで参照されるような `PropertySelector` は、API オペレーションからの JSON レスポンスを処理するために使用される JSONPath 文字列です。出力に正しい値を選択できるように、API オペレーションからの JSON レスポンスオブジェクトがどのように構造化されているかを理解することが重要です。前述の `DescribeInstances` API オペレーションを使用する場合は、次の JSON レスポンスの例を参照してください。

```
{
  "reservationSet": {
    "item": {
      "reservationId": "r-1234567890abcdef0",
      "ownerId": 123456789012,
      "groupSet": "",
      "instancesSet": {
        "item": {
          "instanceId": "i-1234567890abcdef0",
          "imageId": "ami-bff32ccc",
          "instanceState": {
            "code": 16,
            "name": "running"
          },
          "privateDnsName": "ip-192-168-1-88.eu-west-1.compute.internal",
          "dnsName": "ec2-54-194-252-215.eu-west-1.compute.amazonaws.com",
          "reason": "",
          "keyName": "my_keypair",
          "amiLaunchIndex": 0,
          "productCodes": "",
          "instanceType": "t2.micro",
          "launchTime": "2018-05-08T16:46:19.000Z",
          "placement": {
            "availabilityZone": "eu-west-1c",
            "groupName": "",
            "tenancy": "default"
          },
          "monitoring": {
            "state": "disabled"
          },
          "subnetId": "subnet-56f5f000",
          "vpcId": "vpc-11112222",
          "privateIpAddress": "192.168.1.88",
          "ipAddress": "54.194.252.215",
          "sourceDestCheck": true,
          "groupSet": {
            "item": {
              "groupId": "sg-e4076000",
              "groupName": "SecurityGroup1"
            }
          },
          "architecture": "x86_64",
          "rootDeviceType": "ebs",
          "rootDeviceName": "/dev/xvda",
          "blockDeviceMapping": {
            "item": {
              "deviceName": "/dev/xvda",
              "ebs": {
                "volumeId": "vol-1234567890abcdef0",
                "status": "attached",
                "attachTime": "2015-12-22T10:44:09.000Z",
                "deleteOnTermination": true
              }
            }
          },
          "virtualizationType": "hvm",
          "clientToken": "xMcwG14507example",
          "tagSet": {
            "item": {
              "key": "Name",
              "value": "Server_1"
            }
          },
          "hypervisor": "xen",
          "networkInterfaceSet": {
            "item": {
              "networkInterfaceId": "eni-551ba000",
              "subnetId": "subnet-56f5f000",
              "vpcId": "vpc-11112222",
              "description": "Primary network interface",
              "ownerId": 123456789012,
              "status": "in-use",
              "macAddress": "02:dd:2c:5e:01:69",
              "privateIpAddress": "192.168.1.88",
              "privateDnsName": "ip-192-168-1-88.eu-west-1.compute.internal",
              "sourceDestCheck": true,
              "groupSet": {
                "item": {
                  "groupId": "sg-e4076000",
                  "groupName": "SecurityGroup1"
                }
              },
              "attachment": {
                "attachmentId": "eni-attach-39697adc",
                "deviceIndex": 0,
                "status": "attached",
                "attachTime": "2018-05-08T16:46:19.000Z",
                "deleteOnTermination": true
              },
              "association": {
                "publicIp": "54.194.252.215",
                "publicDnsName": "ec2-54-194-252-215.eu-west-1.compute.amazonaws.com",
                "ipOwnerId": "amazon"
              },
              "privateIpAddressesSet": {
                "item": {
                  "privateIpAddress": "192.168.1.88",
                  "privateDnsName": "ip-192-168-1-88.eu-west-1.compute.internal",
                  "primary": true,
                  "association": {
                    "publicIp": "54.194.252.215",
                    "publicDnsName": "ec2-54-194-252-215.eu-west-1.compute.amazonaws.com",
                    "ipOwnerId": "amazon"
                  }
                }
              },
              "ipv6AddressesSet": {
                "item": {
                  "ipv6Address": "2001:db8:1234:1a2b::123"
                }
              }
            }
          },
          "iamInstanceProfile": {
            "arn": "arn:aws:iam::123456789012:instance-profile/AdminRole",
            "id": "ABCAJEDNCAA64SSD123AB"
          },
          "ebsOptimized": false,
          "cpuOptions": {
            "coreCount": 1,
            "threadsPerCore": 1
          }
        }
      }
    }
  }
}
```

JSON レスポンスオブジェクトでは、`State` インスタンスは `Instances` オブジェクトにネストされ、次いで `Reservations` オブジェクトにネストされます。`State` インスタンスの値を返すには、`Selector` に文字列 (**\$1.Reservations[0].Instances[0].State.Name**) を使用して、その値を出力に使用できるようにします。

ランブックのワークフローの後続アクションで出力値を参照するには、次の形式を使用します: `{{ StepName.NameOfOutput }}`。例えば、**\$1\$1 GetInstanceState.InstanceState \$1\$1**。ビジュアルデザインエクスペリエンスでは、入力のドロップダウンを使用して、後続のアクションで使用する出力値を選択できます。後続のアクションで出力を使用する場合、出力のデータ型は入力のデータ型と一致する必要があります。この例では、`InstanceState` 出力は、`String` です。したがって、その値を後続のアクションの入力で使用するには、入力が `String` を受け入れる必要があります。