AWS Systems Manager
ユーザーガイド

Systems Manager Automation アクションのリファレンス

このリファレンスでは、AWS Systems Manager 自動化ドキュメントで指定できるアクション (またはプラグイン) について説明します。SSM の他のドキュメントタイプのプラグインについては、「SSM ドキュメントプラグインの参照」を参照してください。

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

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

重要

AWS Identity and Access Management (IAM) サービスロールを使用して他のサービスを呼び出す自動化を実行する場合は、それらのサービスを呼び出すためのアクセス許可をサービスロールに設定する必要がある点に注意してください。この要件は、AWS-ConfigureS3BucketLoggingAWS-CreateDynamoDBBackupAWS-RestartEC2Instance ドキュメントをはじめ、すべての AWS 自動化ドキュメント (AWS-* ドキュメント) に適用されます。この要件は、他のサービスを呼び出すアクションを使用して他の AWS のサービスを呼び出すように作成したカスタムオートメーションドキュメントにも適用されます。たとえば、aws:executeAwsApiaws:CreateStack、または aws:copyImage などのアクションを使用する場合は、それらのサービスを呼び出すためのアクセス許可を持つサービスロールを設定する必要があります。ロールに IAM インラインポリシーを追加することで、他の AWS のサービスへのアクセス許可を有効にできます。詳細については、「(オプション) 他の AWS サービスを呼び出すためのオートメーションインラインポリシーを追加する」を参照してください。

すべてのアクションに共通のプロパティ

以下のプロパティは、すべてのアクションに共通です。

JSON

"mainSteps": [ { "name": "name", "action": "action", "maxAttempts": value, "timeoutSeconds": value, "onFailure": "value", "inputs": { ... } }, { "name": "name", "action": "action", "maxAttempts": value, "timeoutSeconds": value, "onFailure": "value", "inputs": { ... } } ]

YAML

mainSteps: - name: name action: action maxAttempts: value timeoutSeconds: value onFailure: value inputs: ... - name: name action: action maxAttempts: value timeoutSeconds: value onFailure: value inputs: ...
名前

ドキュメントのすべてのステップ名にわたって一意でなければならない識別子。

型: 文字列

必須: はい

action

ステップが実行するアクションの名前です。aws:runCommand はここで指定できるアクションの例です。このドキュメントは、使用可能なすべてのアクションの詳細情報を提供します。

型: 文字列

必須: はい

maxAttempts

ステップが失敗した場合は再試行する回数。指定した値が 1 より大きい場合、すべての再試行が失敗するまでステップは失敗したと見なされません。デフォルト値は 1 です。

型: 整数

必須: いいえ

timeoutSeconds

ステップの実行のタイムアウト値。タイムアウトが達したときに maxAttempts の値が 1 以上の場合、すべての再試行が実行されるまでこのステップはタイムアウトとは見なされません。このフィールドにデフォルト値はありません。

型: 整数

必須: いいえ

onFailure

失敗時にワークフローを中止するか、続行するか、別のステップに移行するかを示します。このオプションのデフォルト値は中止です。

型: 文字列

有効な値: Abort | Continue | step:step_name

必須: いいえ

isEnd

このオプションでは、特定のステップの最後に自動化の実行を停止します。ステップの実行が失敗、または成功した場合に、自動化の実行が停止します。デフォルト値は false です。

型: ブール値

有効な値: true | false

必須: いいえ

ドキュメントの mainSteps セクションでこのオプションを入力する方法の例を次に示します。

JSON

"mainSteps":[ { "name":"InstallMsiPackage", "action":"aws:runCommand", "onFailure":"step:PostFailure", "maxAttempts":2, "inputs":{ "InstanceIds":[ "i-1234567890EXAMPLE","i-abcdefghiEXAMPLE" ], "DocumentName":"AWS-RunPowerShellScript", "Parameters":{ "commands":[ "msiexec /i {{packageName}}" ] } }, "nextStep":"TestPackage" }, { "name":"TestPackage", "action":"aws:invokeLambdaFunction", "maxAttempts":1, "timeoutSeconds":500, "inputs":{ "FunctionName":"TestLambdaFunction" }, "isEnd":true } ]

YAML

mainSteps: - name: InstallMsiPackage action: aws:runCommand onFailure: step:PostFailure maxAttempts: 2 inputs: InstanceIds: - i-1234567890EXAMPLE - i-abcdefghiEXAMPLE DocumentName: AWS-RunPowerShellScript Parameters: commands: - msiexec /i {{packageName}} nextStep: TestPackage - name: TestPackage action: aws:invokeLambdaFunction maxAttempts: 1 timeoutSeconds: 500 inputs: FunctionName: TestLambdaFunction isEnd: true
nextStep

ステップを正常に完了した後に、次に処理する自動化ワークフローのステップを指定します。

ドキュメントの mainSteps セクションでこのオプションを入力する方法の例を次に示します。

JSON

"mainSteps":[ { "name":"InstallMsiPackage", "action":"aws:runCommand", "onFailure":"step:PostFailure", "maxAttempts":2, "inputs":{ "InstanceIds":[ "i-1234567890EXAMPLE","i-abcdefghiEXAMPLE" ], "DocumentName":"AWS-RunPowerShellScript", "Parameters":{ "commands":[ "msiexec /i {{packageName}}" ] } }, "nextStep":"TestPackage" } ]

YAML

mainSteps: - name: InstallMsiPackage action: aws:runCommand onFailure: step:PostFailure maxAttempts: 2 inputs: InstanceIds: - i-1234567890EXAMPLE - i-abcdefghiEXAMPLE DocumentName: AWS-RunPowerShellScript Parameters: commands: - msiexec /i {{packageName}} nextStep: TestPackage
isCritical

自動化の正常な完了のために、ステップを critical として指定します。この指定のステップが失敗した場合、自動化は自動化の失敗の最終的なステータスをレポートします。このオプションのデフォルト値は true です。

型: ブール値

有効な値: true | false

必須: いいえ

ドキュメントの mainSteps セクションでこのオプションを入力する方法の例を次に示します。

JSON

"mainSteps":[ { "name":"InstallMsiPackage", "action":"aws:runCommand", "onFailure":"step:SomeOtherStep", "isCritical":false, "maxAttempts":2, "inputs":{ "InstanceIds":["i-1234567890EXAMPLE","i-abcdefghiEXAMPLE"], "DocumentName":"AWS-RunPowerShellScript", "Parameters":{ "commands":[ "msiexec /i {{packageName}}" ] } }, "nextStep":"TestPackage" } ]

YAML

mainSteps: - name: InstallMsiPackage action: aws:runCommand onFailure: step:SomeOtherStep isCritical: false maxAttempts: 2 inputs: InstanceIds: - i-1234567890EXAMPLE,i-abcdefghiEXAMPLE DocumentName: AWS-RunPowerShellScript Parameters: commands: - msiexec /i {{packageName}} nextStep: TestPackage
inputs

アクション固有のプロパティ。

型: マップ

必須: はい

aws:approve

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

注記

このアクションのデフォルトのタイムアウトは 7 日間 (604800 秒) です。timeoutSeconds パラメータを指定して、タイムアウトを制限または延長することができます。すべての必要な承認の決定を受け取る前に自動化ステップがタイムアウト値に達すると、ステップおよび自動化は実行を停止し、Timed Out のステータスを返します。

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

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

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

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

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

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

  2. ナビゲーションペインで [自動化] を選択します。

    -または-

    AWS Systems Manager ホームページが最初に開く場合は、メニューアイコン ( ) を選択してナビゲーションペインを開き、[自動化] を選択します。

  3. ステータスが [待機中] の自動化の横にあるオプションを選択します。

    
                                    [Approve/Deny Automation (自動化承認/拒否)] ページへのアクセス
  4. [Approve/Deny] (承認/拒否) を選択します。

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

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

Input

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

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
NotificationArn

自動化承認の Amazon SNS トピックの ARN。自動化ドキュメントで aws:approve ステップを指定すると、自動化のステップを承認または拒否する必要があることを知らせるメッセージが、このトピックに送信されます。Amazon SNS トピックのタイトルは「Automation」というプレフィックスをつける必要があります。

型: 文字列

必須: いいえ

メッセージ

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

型: 文字列

必須: いいえ

MinRequiredApprovals

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

型: 整数

必須: いいえ

Approvers

アクションを承認または拒否できる AWS の認証プリンシパルのリスト。承認者の最大数は 10 です。プリンシパルは、次のいずれかの形式を使用して指定できます。

  • AWS Identity and Access Management (IAM) ユーザー名

  • IAM ユーザー ARN

  • IAM ロール ARN

  • IAM ロール継承ユーザー ARN

型: StringList

必須: はい

出力

ApprovalStatus

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

型: 文字列

ApproverDecisions

各承認者の承認状況を含む JSON マップです。

型: MapList

aws:assertAwsResourceProperty

aws:assertAwsResourceProperty アクションを使用すると、特定の自動化のステップの、特定のリソース状態またはイベント状態をアサートできます。たとえば、自動化のステップが Amazon EC2 インスタンスの起動を待つように指定することができます。次に、Amazon EC2 DescribeInstanceStatus API アクションを実行し、DesiredValue プロパティを running にします。これにより、自動化ワークフローはインスタンスの実行を待機し、インスタンスが実際に実行されているときに続行されます。

このアクションの使用方法の詳細と例については、「Systems Manager 自動化ワークフローから他の AWS のサービスの呼び出し」を参照してください。

Input

入力は、選択した API アクションによって定義されます。

JSON

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

YAML

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

実行する API アクションを含む AWS のサービスの名前空間。たとえば、Systems Manager の名前空間は、ssm となります。Amazon EC2 の名前空間は ec2 です。サポートされている AWS のサービスの名前空間のリストは、AWS CLI Command Reference の「利用可能なサービス」セクションを参照してください。

型: 文字列

必須: はい

Api

実行する API アクションの名前。API アクション (メソッド) は、以下の「サービスリファレンス」ページの左側のナビゲーションでサービスを選択することで表示できます。呼び出すサービスの [Client (クライアント)] セクションでメソッドを選択します。たとえば、Amazon Relational Database Service (Amazon RDS) のすべての API アクション (メソッド) は、「Amazon RDS メソッド」ページに一覧表示されています。

型: 文字列

必須: はい

API アクションの入力

1 つ以上の API アクションを入力します。使用できる入力 (パラメータ) は、以下の「サービスリファレンス」ページの左側のナビゲーションでサービスを選択することで表示できます。呼び出すサービスの [Client (クライアント)] セクションでメソッドを選択します。たとえば、Amazon RDS のすべてのメソッドは、「Amazon RDS メソッド」ページに一覧表示されています。describe_db_instances メソッドを選択し、下にスクロールして、[DBInstanceIdentifier]、[Name (名前)]、および [Values (値)] などの使用可能なパラメータを表示します。複数の入力を指定するには、次の形式を使用します。

JSON

"inputs":{ "Service":"The official namespace of the service", "Api":"The API action name", "API input 1":"A value", "API Input 2":"A value", "API Input 3":"A value" }

YAML

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

型: 選択した API アクションによって決まります

必須: はい

PropertySelector

応答オブジェクト内の特定の属性への JSONPath。レスポンスオブジェクトは、以下の「サービスリファレンス」ページの左側のナビゲーションでサービスを選択することで表示できます。呼び出すサービスの [Client (クライアント)] セクションでメソッドを選択します。たとえば、Amazon RDS のすべてのメソッドは、「Amazon RDS メソッド」ページに一覧表示されています。describe_db_instances メソッドを選択し、[Response Structure (レスポンス構造)] セクションまで下にスクロールします。[DBInstances] は応答オブジェクトとして表示されます。

型: 整数型、ブール型、文字列型、StringList、StringMap、または MapList

必須: はい

DesiredValues

予定の状態、または自動化ワークフローを継続する状態。ブール値を指定する場合は、True または False などのように大文字を使用する必要があります。

型: 可変

必須: はい

aws:branch

aws:branch アクションを使用すると、1 つのステップでさまざまな選択肢を評価し、その評価結果に基づいて自動化ドキュメントの異なるステップにジャンプする動的自動化ワークフローを作成できます。

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

true の選択肢がない場合、ワークフローはステップに default 値が含まれているかどうかを確認します。デフォルト値は、true の選択肢がない場合にワークフローがジャンプするステップを定義します。ステップに default 値が指定されていない場合、自動化ワークフローはドキュメントの次のステップを処理します。

aws:branch アクションは、AndNot、および Or 演算子の組み合わせを使用して複雑な選択肢の評価をサポートします。さまざまな演算子を使用するサンプルドキュメントや例を含む aws:branch 使用方法の詳細については、「条件分岐を使用した動的自動化ワークフローの作成」を参照してください。

Input

ステップに 1 つ以上の Choices を指定します。Choices は、自動化ドキュメントの 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 である場合に処理する、自動化ドキュメントの次のステップ。

  • Variable: 自動化ドキュメントの Parameters セクションで定義されているパラメータの名前を指定します。または、自動化ドキュメントの前述のステップからの出力オブジェクトを指定します。aws:branch の変数作成の詳細については、「出力変数の作成について」を参照してください。

  • Operation: 選択肢を評価するために使用される基準。aws:branch アクションは、次の操作をサポートします。

    文字列演算子

    • StringEquals

    • EqualsIgnoreCase

    • StartsWith

    • EndsWith

    • 内容

    数値演算子

    • NumericEquals

    • NumericGreater

    • NumericLesser

    • NumericGreaterOrEquals

    • NumericLesser

    • NumericLesserOrEquals

    ブール演算子

    • BooleanEquals

    重要

    自動化ドキュメントを作成すると、文書の各オペレーションが検証されます。オペレーションがサポートされていない場合は、ドキュメントの作成時にエラーが返されます。

デフォルト値

true の Choices がない場合にワークフローがジャンプするステップの名前。

型: 文字列

必須: いいえ

注記

aws:branch アクションは、AndOr、および Not 演算子をサポートします。演算子を使用する aws:branch 例については、「条件分岐を使用した動的自動化ワークフローの作成」を参照してください。

aws:changeInstanceState

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

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

Input

JSON

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

YAML

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 | stopped | terminated

必須: はい

Force

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

型: ブール値

必須: いいえ

AdditionalInfo

リザーブド。

型: 文字列

必須: いいえ

出力

なし

aws:copyImage

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

Input

このアクションでは、ほとんどの CopyImage パラメータがサポートされています。詳細については、「CopyImage」を参照してください。

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

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

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
SourceRegion

ソース AMI が現在存在するリージョン。

型: 文字列

必須: はい

SourceImageId

ソースリージョンからコピーする AMI ID。

型: 文字列

必須: はい

ImageName

新しいイメージの名前。

型: 文字列

必須: はい

ImageDescription

ターゲットイメージの説明。

型: 文字列

必須: いいえ

暗号化された

ターゲット AMI を暗号化します。

型: ブール値

必須: いいえ

KmsKeyId

コピーオペレーション中にイメージのスナップショットを暗号化するときに使用する AWS Key Management Service CMK の Amazon リソースネーム (ARN)。詳細については、「CopyImage」を参照してください。

型: 文字列

必須: いいえ

ClientToken

リクエストのべき等のために割り当てる一意の識別子 (大文字と小文字を区別)。詳細については、「CopyImage」を参照してください。

型: 文字列

必須: いいえ

出力

ImageId

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

ImageState

コピーされたイメージの状態。

有効な値: available | pending | failed

aws:createImage

実行中または停止中のインスタンスから、新しい AMI を作成します。

Input

このアクションでは、ほとんどの CreateImage パラメータがサポートされています。詳細については、「CreateImage」を参照してください

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

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
InstanceId

インスタンスの ID。

型: 文字列

必須: はい

ImageName

イメージの名前。

型: 文字列

必須: はい

ImageDescription

イメージの説明。

型: 文字列

必須: いいえ

NoReboot

ブールリテラルです。

デフォルトでは、Amazon EC2 はインスタンスをシャットダウンして再起動してからイメージを作成します。[再起動しない] オプションが true に設定されている場合、Amazon EC2 はイメージの作成前にインスタンスをシャットダウンしません。このオプションを使用すると、作成したイメージのファイルシステムの完全性は保証できません。

AMI イメージを作成した後、そのイメージからインスタンスを実行しない場合、まず、aws:changeInstanceState プラグインを使用してインスタンスを停止して、[NoReboot] オプションを true に設定し、この aws:createImage プラグインを使用します。

型: ブール値

必須: いいえ

BlockDeviceMappings

インスタンスのブロックデバイス。

型: マップ

必須: いいえ

出力

ImageId

新しく作成したイメージの ID。

ImageState

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

必須: いいえ

aws:createStack

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

Input

JSON

{ "name": "makeStack", "action": "aws:createStack", "maxAttempts": 1, "onFailure": "Abort", "inputs": { "Capabilities": [ "CAPABILITY_IAM" ], "StackName": "myStack", "TemplateURL": "http://s3.amazonaws.com/mybucket/myStackTemplate", "TimeoutInMinutes": 5 } }

YAML

name: makeStack action: aws:createStack maxAttempts: 1 onFailure: Abort inputs: Capabilities: - CAPABILITY_IAM StackName: myStack TemplateURL: http://s3.amazonaws.com/mybucket/myStackTemplate TimeoutInMinutes: 5
Capabilities

AWS CloudFormation が特定のスタックを作成できる前に指定する値の一覧。一部のスタックテンプレートには、AWS アカウントのアクセス許可に影響するリソースが含まれます。たとえば、新しい AWS Identity and Access Management (IAM) ユーザーの作成は、アカウントのアクセス許可に影響する可能性があります。このようなスタックの場合は、このパラメータを指定して、それらの機能を明示的に認識する必要があります。

有効な値は、CAPABILITY_IAMCAPABILITY_NAMED_IAM のみです。このパラメータを指定するためには、以下のリソースが必要です。

スタックテンプレートにこのリソースが含まれている場合、これらに関連付けられるすべてのアクセス許可を確認して、必要時にはそのアクセス許可を編集することが推奨されます。

IAM リソースがある場合、どちらの機能でも指定できます。カスタム名を持つ IAM リソースがある場合は、CAPABILITY_NAMED_IAM を指定する必要があります。このパラメータを指定しない場合、このアクションは InsufficientCapabilities エラーを返します。

詳細については、「AWS CloudFormation テンプレートでの IAM リソースの承認」を参照してください。

型: 文字列の配列

有効な値: CAPABILITY_IAM | CAPABILITY_NAMED_IAM

必須: いいえ

ClientRequestToken

この CreateStack リクエストの一意の識別子。このステップで、maxAttempts に 1 より大きい値を設定する場合、このトークンを指定します。このトークンを指定することによって、同じ名前で新しいスタックの作成を試行していないことを AWS CloudFormation が認識します。

型: 文字列

必須: いいえ

長さの制限: 最小長は 1 です。最大長は 128 です。

パターン: [a-zA-Z0-9][-a-zA-Z0-9]*

DisableRollback

スタックの作成に失敗した場合にスタックのロールバックを無効化するために、true を設定します。

条件付き: DisableRollback パラメータ、あるいは OnFailure パラメータのどちらかを指定できますが、両方を指定することはできません。

デフォルト: false

型: ブール値

必須: いいえ

NotificationARNs

スタック関連イベントを発行する Amazon SNS トピック ARN。Amazon SNS コンソール、https://console.aws.amazon.com/sns/v3/home を使用して、SNS トピック ARN を検出できます。

型: 文字列の配列

配列メンバー: 5 つの項目の最大数。

必須: いいえ

OnFailure

スタックの作成に失敗した場合に実行するアクションを決定します。DO_NOTHINGROLLBACK または DELETE を指定する必要があります。

条件付き: OnFailure パラメータ、あるいは DisableRollback パラメータのどちらかを指定できますが、両方を指定することはできません。

デフォルト: ROLLBACK

型: 文字列

有効な値: DO_NOTHING | ROLLBACK | DELETE

必須: いいえ

パラメータ

スタック用の入力パラメータを指定する Parameter 構造のリスト。詳細については、「パラメータ」データタイプを参照してください。

タイプ: 「パラメータ」オブジェクトの配列

必須: いいえ

ResourceTypes

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

  • すべての AWS リソース用:

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

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

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

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

    AWS::service_name::resource_logical_ID

リソースの種類のリストに作成しているリソースが含まれていない場合、スタックの作成は失敗します。デフォルトでは、AWS CloudFormation によってすべてのリソースの種類にアクセス許可が付与されます。IAM は、IAM ポリシーで AWS CloudFormation に特定される条件のキーにこのパラメータを使用します。詳細については、「AWS Identity and Access Management によるアクセスの制御」を参照してください。

型: 文字列の配列

長さの制限: 最小長は 1 です。最大長は 256 です。

必須: いいえ

RoleARN

IAM ロールの Amazon リソースネーム (ARN) を AWS CloudFormation 前提としています。スタックを作成するとき AWS CloudFormation は、ユーザーに代わって呼び出しを行うためにロールの認証情報を使用します。 AWS CloudFormation は、このスタックにおけるこれからのすべてのオペレーションにこのロールを常に使用します。ユーザーにこのスタックで操作できるアクセス許可がある限り、ユーザーに渡す許可がない場合でも、AWS CloudFormation はこのロールを使用します。ロールに最小限の特権が付与されていることを確認してください。

値を指定しない場合、AWS CloudFormation は以前にこのスタックに関連付けられたロールを使用します。利用できるロールがない場合、AWS CloudFormation はユーザー認証情報から生成される一時セッションを使用します。

型: 文字列

長さの制限: 最小長は 20 です。最大長は 2048 です。

必須: いいえ

StackName

スタックに関連付けられた名前。この名前は、作成しているスタックのリージョン内で一意であることが必要です。

注記

スタック名には、英数字 (大文字と小文字が区別されます) とハイフンのみを使用できます。先頭の文字はアルファベット文字である必要があります。また、128 文字より長くすることはできません。

型: 文字列

必須: はい

StackPolicyBody

スタックポリシー本文を含む構造。詳細については、「スタックのリソースが更新されないようにする」を参照してください。

条件付き: StackPolicyBody パラメータ、あるいは StackPolicyURL パラメータのどちらかを指定できますが、両方を指定することはできません。

型: 文字列

長さの制限: 最小長は 1 です。最大長は 16384 です。

必須: いいえ

StackPolicyURL

スタックポリシーを含むファイルの場所。URL は、スタックと同じリージョンにある Amazon S3 バケット内のポリシーを指定する必要があります。スタックポリシーに許可される最大のファイルサイズは 16 KB になります。

条件付き: StackPolicyBody パラメータ、あるいは StackPolicyURL パラメータのどちらかを指定できますが、両方を指定することはできません。

型: 文字列

長さの制限: 最小長は 1 です。最大長は 1350 です。

必須: いいえ

Tags

ここのスタックに関連付るキーと値のペア。また、AWS CloudFormation はスタックで作成されたリソースにこれらのタグを伝達します。最大で 10 個のタグを指定できます。

タイプ: 「タグ」オブジェクトの配列

必須: いいえ

TemplateBody

最少長が 1 バイトで最大長が 51,200 バイトのテンプレート本文がある構造。詳細については、「テンプレートの分析」を参照してください。

条件付き: TemplateBody パラメータ、あるいは TemplateURL パラメータのどちらかを指定できますが、両方を指定することはできません。

型: 文字列

長さの制限: 最小長は 1 です。

必須: いいえ

TemplateURL

テンプレート本文を含むファイルの場所。URL は、Amazon S3 バケット内にあるテンプレートを指定する必要があります。テンプレートに許可される最大サイズは 460,800 バイトです。詳細については、「テンプレートの分析」を参照してください。

条件付き: TemplateBody パラメータ、あるいは TemplateURL パラメータのどちらかを指定できますが、両方を指定することはできません。

型: 文字列

長さの制限: 最小長は 1 です。最大長は 1024 です。

必須: いいえ

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」を参照してください

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

aws:createStack アクションを使用できる前に、IAM 自動化が継承するロールに次のポリシーを割り当てる必要があります。継承ロールの詳細については、「タスク 1: 自動化用にサービスロールを作成する」を参照してください。

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

aws:createTags

Amazon EC2 インスタンスまたは Systems Manager マネージドインスタンス用の新しいタグを作成します。

Input

このアクションは EC2 CreateTags および SSM AddTagsToResource のほとんどのパラメータをサポートします。詳細については、「CreateTags」および「AddTagsToResource」を参照してください。

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

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

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
ResourceIds

タグを付けるリソースの ID。リソースタイプが「EC2」でない場合、このフィールドは 1 つの項目のみを含むことができます。

型: 文字列のリスト

必須: はい

Tags

リソースに関連付けるタグ。

型: マップのリスト

必須: はい

ResourceType

タグを付けるリソースのタイプ。指定しない場合は、デフォルト値の「EC2」が使用されます。

型: 文字列

必須: いいえ

有効な値: EC2 | ManagedInstance | MaintenanceWindow | Parameter

出力

なし

aws:deleteImage

指定されたイメージおよびすべての関連するスナップショットを削除します。

Input

このアクションでは 1 つのパラメータのみがサポートされています。詳細については、DeregisterImageDeleteSnapshot のドキュメントを参照してください。

JSON

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

YAML

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

削除するイメージの ID。

型: 文字列

必須: はい

出力

なし

aws:deleteStack

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

Input

JSON

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

YAML

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

この DeleteStack リクエストの一意な識別子。お客様が同じ名前のスタックを削除しようとしていないと AWS CloudFormation に認識させるためにリクエストを再試行する場合は、このトークンを指定します。DeleteStack リクエストをリトライし、AWS CloudFormation が受信することを確認できます。

型: 文字列

長さの制限: 最小長は 1 です。最大長は 128 です。

パターン: [a-zA-Z][a-zA-Z0-9]*

必須: いいえ

RetainResources.member.N

この入力は、DELETE_FAILED 状態にあるスタックにのみ適用されます。お客様が保持したいリソースの論理リソース ID のリストです。削除中、AWS CloudFormation はスタックを削除しますが、保持したリソースは削除しません。

オブジェクトを含む空白でない Amazon S3 バケットなど、削除できないリソースは残すと便利ですが、スタックの削除が必要な場合もあります。

型: 文字列の配列

必須: いいえ

RoleARN

IAM ロールの Amazon リソースネーム (ARN) を AWS CloudFormation 前提としています。スタックを作成するとき AWS CloudFormation は、ユーザーに代わって呼び出しを行うためにロールの認証情報を使用します。 AWS CloudFormation は、このスタックにおけるこれからのすべてのオペレーションにこのロールを常に使用します。ユーザーにこのスタックで操作できるアクセス許可がある限り、ユーザーに渡す許可がない場合でも、AWS CloudFormation はこのロールを使用します。ロールに最小限の特権が付与されていることを確認してください。

値を指定しない場合、AWS CloudFormation は以前にこのスタックに関連付けられたロールを使用します。利用できるロールがない場合、AWS CloudFormation はユーザー認証情報から生成される一時セッションを使用します。

型: 文字列

長さの制限: 最小長は 20 です。最大長は 2048 です。

必須: いいえ

StackName

スタックと関連付けられている名前または一意のスタック ID。

型: 文字列

必須: はい

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

aws:deleteStack アクションを使用できる前に、IAM 自動化が継承するロールに次のポリシーを割り当てる必要があります。継承ロールの詳細については、「タスク 1: 自動化用にサービスロールを作成する」を参照してください。

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

aws:executeAutomation

セカンダリ自動化ドキュメントを呼び出してセカンダリ自動化ワークフローを実行します。このアクションを使用すると、一般的なほとんどのワークフローの自動化ドキュメントを作成し、自動化の実行中にこれらのドキュメントを参照できます。このアクションでは、同じようなドキュメント間でステップを重複させる必要をなくすことにより、自動化ドキュメントを簡素化できます。

セカンダリ自動化は、プライマリ自動化を開始したユーザーのコンテキストで実行されます。つまり、セカンダリ自動化では、最初の自動化を開始したユーザーと同じ IAM ロールまたはユーザーアカウントが使用されます。

重要

継承ロール (iam:passRole ポリシーを使用するロール) を使用するセカンダリ自動化でパラメータを指定する場合、プライマリ自動化を開始したユーザーまたはロールには、セカンダリ自動化で指定されたロールの継承を渡すアクセス許可が必要です。自動化のロールの継承のセットアップについては、「方法 2: IAM を使用して、Automation のロールを設定」を参照してください。

Input

JSON

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

YAML

name: Secondary_Automation_Workflow action: aws:executeAutomation maxAttempts: 3 timeoutSeconds: 3600 onFailure: Abort inputs: DocumentName: secondaryWorkflow RuntimeParameters: instanceIds: - i-1234567890abcdef0
DocumentName

ステップ中に実行するセカンダリ自動化ドキュメントの名前。このドキュメントは、プライマリ自動化ドキュメントと同じ AWS アカウントに属している必要があります。

型: 文字列

必須: はい

DocumentVersion

実行するセカンダリ自動化ドキュメントのバージョン。指定しない場合、自動化はデフォルトのドキュメントバージョンで実行されます。

型: 文字列

必須: はい

RuntimeParameters

セカンダリドキュメントの実行に必要なパラメータ。マッピングでは次の形式を使用します: {"parameter1" : ["value1"], "parameter2" : ["value2"] }

型: マップ

必須: いいえ

出力

出力

セカンダリ実行によって生成される出力。この出力は、次の形式を使って参照できます: セカンダリ自動化ステップ名.Output

型: StringList

ExecutionId

セカンダリ実行の実行 ID。

型: 文字列

ステータス

セカンダリ実行のステータス。

型: 文字列

aws:executeAwsApi

AWS API アクションを呼び出し、実行します。API アクションのほとんどはサポートされていますが、すべての API アクションがテストされているわけではありません。たとえば、次の API アクションがサポートされています。CreateImageDelete bucketRebootDBInstance、および CreateGroups など。Get Object アクションなどのストリーミング API アクションはサポートされていません。このアクションの使用方法の詳細と例については、「Systems Manager 自動化ワークフローから他の AWS のサービスの呼び出し」を参照してください。

Input

入力は、選択した API アクションによって定義されます。

JSON

{ "action":"aws:executeAwsApi", "inputs":{ "Service":"The official namespace of the service", "Api":"The API action or method name", "API action 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" } ] }

YAML

action: aws:executeAwsApi inputs: Service: The official namespace of the service Api: The API action or method name API action 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 のサービスの名前空間。たとえば、Systems Manager の名前空間は、ssm となります。Amazon EC2 の名前空間は ec2 です。サポートされている AWS のサービスの名前空間のリストは、AWS CLI Command Reference の「利用可能なサービス」セクションを参照してください。

型: 文字列

必須: はい

Api

実行する API アクションの名前。API アクション (メソッド) は、以下の「サービスリファレンス」ページの左側のナビゲーションでサービスを選択することで表示できます。呼び出すサービスの [Client (クライアント)] セクションでメソッドを選択します。たとえば、Amazon RDS のすべての API アクション (メソッド) は、「Amazon RDS メソッド」ページで一覧表示されています。

型: 文字列

必須: はい

API アクションの入力

1 つ以上の API アクションを入力します。使用できる入力 (パラメータ) は、以下の「サービスリファレンス」ページの左側のナビゲーションでサービスを選択することで表示できます。呼び出すサービスの [Client (クライアント)] セクションでメソッドを選択します。たとえば、Amazon RDS のすべてのメソッドは、「Amazon RDS メソッド」ページに一覧表示されています。describe_db_instances メソッドを選択し、下にスクロールして、[DBInstanceIdentifier]、[Name (名前)]、および [Values (値)] などの使用可能なパラメータを表示します。

JSON

"inputs":{ "Service":"The official namespace of the service", "Api":"The API action name", "API input 1":"A value", "API Input 2":"A value", "API Input 3":"A value" }

YAML

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

型: 選択した API アクションによって決まります

必須: はい

名前

出力の名前。

型: 文字列

必須: はい

Selector

応答オブジェクト内の特定の属性への JSONPath。レスポンスオブジェクトは、以下の「サービスリファレンス」ページの左側のナビゲーションでサービスを選択することで表示できます。呼び出すサービスの [Client (クライアント)] セクションでメソッドを選択します。たとえば、Amazon RDS のすべてのメソッドは、「Amazon RDS メソッド」ページに一覧表示されています。describe_db_instances メソッドを選択し、[Response Structure (レスポンス構造)] セクションまで下にスクロールします。[DBInstances] は応答オブジェクトとして表示されます。

型: 整数型、ブール型、文字列型、StringList、StringMap、または MapList

必須: はい

タイプ

レスポンス要素のデータ型。

型: 可変

必須: はい

aws:executeStateMachine

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

Input

このアクションでは、Step Functions StartExecution の API アクションのほとんどのパラメータがサポートされています。

JSON

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

YAML

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

Step Functions ステートマシンの ARN。

型: 文字列

必須: はい

名前

実行の名前。

型: 文字列

必須: いいえ

input

実行に必要な JSON 入力データを含む文字列。

型: 文字列

必須: いいえ

aws:invokeLambdaFunction

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

Input

このアクションでは、Lambda サービスのほとんどの呼び出しパラメータがサポートされています。詳細については、「Invoke (呼び出し)」を参照してください。

JSON

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

YAML

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

Lambda 関数の名前。必須の関数です。

型: 文字列

必須: はい

Qualifier

関数のバージョンまたはエイリアス名。

型: 文字列

必須: いいえ

InvocationType

呼び出しタイプ。デフォルト: RequestResponse

型: 文字列

有効な値: Event | RequestResponse | DryRun

必須: いいえ

LogType

Tail の場合、呼び出しタイプは RequestResponse にする必要があります。AWS Lambda は、Lambda 関数で生成されたログデータの最後の 4 KB を base64 でエンコードして返します。

型: 文字列

有効な値: None | Tail

必須: いいえ

ClientContext

クライアント固有の情報。

必須: いいえ

Payload

Lambda 関数の JSON 入力。

必須: いいえ

出力

StatusCode

関数実行のステータスコード。

FunctionError

Lambda 関数の実行中にエラーが発生したかどうかを示します。エラーが発生した場合、このフィールドには Handled または Unhandled のいずれかが表示されます。Handled エラーは関数によってレポートされます。Unhandled エラーは AWS Lambda によって検出およびレポートされます。

LogResult

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

Payload

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

aws:pause

このアクションは、自動化の実行を一時停止します。一時停止されると、実行ステータスは [待機中] になります。自動化の実行を続行するには、再開シグナルタイプの SendAutomationSignal API アクションを使用します。

Input

入力は次のとおりです。

JSON

{ "name": "pauseThis", "action": "aws:pause", "inputs": {} }

YAML

name: pauseThis action: aws:pause inputs: {}

出力

なし

aws:runCommand

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

注記

自動化は、1 つの Run Command アクションの出力のみをサポートします。ドキュメントには、複数の Run Command アクションとプラグインを含めることができますが、出力は一度に 1 つのアクションとプラグインに対してのみサポートされます。

Input

このアクションでは、ほとんどの Send Command パラメータがサポートされています。詳細については、「SendCommand」を参照してください。

JSON

{ "name": "installPowerShellModule", "action": "aws:runCommand", "inputs": { "DocumentName": "AWS-InstallPowerShellModule", "InstanceIds": ["i-1234567890abcdef0"], "Parameters": { "source": "https://my-s3-url.com/MyModule.zip ", "sourceHash": "ASDFWER12321WRW" } } }

YAML

name: installPowerShellModule action: aws:runCommand inputs: DocumentName: AWS-InstallPowerShellModule InstanceIds: - i-1234567890abcdef0 Parameters: source: 'https://my-s3-url.com/MyModule.zip ' sourceHash: ASDFWER12321WRW
DocumentName

Run Command ドキュメントの名前。

型: 文字列

必須: はい

InstanceIds

コマンドを実行するインスタンス ID です。最大 50 の ID を指定できます。個々のインスタンス ID を指定しない場合、Targets パラメータを使用してインスタンスのフリートにコマンドを送信できます。Targets パラメータは Amazon EC2 タグを受け入れます。Targets パラメータの使用方法の詳細については、「ターゲットとレート制御を使用してフリートにコマンドを送信する」を参照してください。

型: StringList

必須: いいえ (InstanceId を指定しない場合は、Targets パラメータを指定する必要があります)。

ターゲット

指定した Key、Value の組み合わせを使用してインスタンスを対象とする検索条件の配列です。呼び出しにインスタンス ID を 1 つも指定しない場合は、Targets が必要です。Targets パラメータの使用方法の詳細については、「ターゲットとレート制御を使用してフリートにコマンドを送信する」を参照してください。

タイプ: MapList (リスト内のマップのスキーマはオブジェクトと一致する必要があります。詳細については、AWS Systems Manager API Reference の「Target (ターゲット)」を参照してください。

必須: いいえ (Targets を指定しない場合は、InstanceId を指定する必要があります)。

例を示します。

{ "name": "installPowerShellModule", "action": "aws:runCommand", "inputs": { "DocumentName": "AWS-InstallPowerShellModule", "Targets": [ { "Key": "tag:Stage", "Values": [ "Gamma", "Beta" ] }, { "Key": "tag-key", "Values": [ "Suite" ] } ] "Parameters": { "source": "https://my-s3-url.com/MyModule.zip ", "sourceHash": "ASDFWER12321WRW" } } }
パラメータ

ドキュメントに指定されている必須およびオプションのパラメータ。

型: マップ

必須: いいえ

CloudWatchOutputConfig

Amazon CloudWatch Logs ログにコマンド出力を送信するための設定オプションです。CloudWatch Logs にコマンド出力を送信する方法の詳細については、「Run Command 向けの Amazon CloudWatch Logs の設定」を参照してください。

タイプ: StringMap (マップのスキーマはオブジェクトと一致する必要があります。詳細については、AWS Systems Manager API Reference の「CloudWatchOutputConfig」を参照してください)。

必須: いいえ

例を示します。

{ "name": "installPowerShellModule", "action": "aws:runCommand", "inputs": { "DocumentName": "AWS-InstallPowerShellModule", "InstanceIds": ["i-1234567890abcdef0"], "Parameters": { "source": "https://my-s3-url.com/MyModule.zip ", "sourceHash": "ASDFWER12321WRW" }, "CloudWatchOutputConfig" : { "CloudWatchLogGroupName": "CloudWatchGroupForSSMAutomationService", "CloudWatchOutputEnabled": true } } }
コメント

コマンドに関するユーザー定義情報。

型: 文字列

必須: いいえ

DocumentHash

ドキュメントのハッシュ。

型: 文字列

必須: いいえ

DocumentHashType

ハッシュの種類。

型: 文字列

有効な値: Sha256 | Sha1

必須: いいえ

NotificationConfig

通知を送信するための設定。

必須: いいえ

OutputS3BucketName

コマンド実行の応答を保存する S3 バケットの名前。

型: 文字列

必須: いいえ

OutputS3KeyPrefix

プレフィックス。

型: 文字列

必須: いいえ

ServiceRoleArn

IAM ロールの ARN。

型: 文字列

必須: いいえ

TimeoutSeconds

run-command のタイムアウト値 (秒)。

型: 整数

必須: いいえ

出力

CommandId

コマンドの ID。

ステータス

コマンドのステータス。

ResponseCode

コマンドのレスポンスコード。

出力

コマンドの出力。

aws:runInstances

新しいインスタンスを起動します。

Input

このアクションでは、ほとんどの API パラメータがサポートされています。詳細については、RunInstances API ドキュメントを参照してください。

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

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
ImageId

Amazon Machine Image (AMI) のID。

型: 文字列

必須: はい

InstanceType

インスタンスタイプ。

注記

インスタンスタイプの値が指定されていない場合は、インスタンスタイプ m1.small を使用します。

型: 文字列

必須: いいえ

MinInstanceCount

起動するインスタンスの最小数。

型: 文字列

必須: いいえ

MaxInstanceCount

起動するインスタンスの最大数。

型: 文字列

必須: いいえ

AdditionalInfo

リザーブド。

型: 文字列

必須: いいえ

BlockDeviceMappings

インスタンスのブロックデバイス。

型: MapList

必須: いいえ

ClientToken

リクエストの多重実行を禁止するための識別子。

型: 文字列

必須: いいえ

DisableApiTermination

インスタンスの API の終了を有効または無効にします。

型: ブール値

必須: いいえ

EbsOptimized

EBS の最適化を有効または無効にします。

型: ブール値

必須: いいえ

IamInstanceProfileArn

インスタンスの IAM インスタンスプロファイルの ARN。

型: 文字列

必須: いいえ

IamInstanceProfileName

インスタンスの IAM インスタンスプロファイルの名前。

型: 文字列

必須: いいえ

InstanceInitiatedShutdownBehavior

システムのシャットダウン時にインスタンスを停止するか終了するかを示します。

型: 文字列

必須: いいえ

KernelId

カーネルの ID。

型: 文字列

必須: いいえ

KeyName

キーペアの名前。

型: 文字列

必須: いいえ

MaxInstanceCount

サービス検索時にフィルタリングするインスタンスの最大数。

型: 整数

必須: いいえ

MinInstanceCount

サービス検索時にフィルタリングするインスタンスの最小数。

型: 整数

必須: いいえ

Monitoring

詳細モニタリングを有効または無効にします。

型: ブール値

必須: いいえ

NetworkInterfaces

ネットワークインターフェイス。

型: MapList

必須: いいえ

Placement

インスタンスのプレイスメント。

型: StringMap

必須: いいえ

PrivateIpAddress

プライマリ IPv4 アドレス。

型: 文字列

必須: いいえ

RamdiskId

RAM ディスクの ID。

型: 文字列

必須: いいえ

SecurityGroupIds

インスタンスのセキュリティグループの ID。

型: StringList

必須: いいえ

SecurityGroups

インスタンスのセキュリティグループの名前。

型: StringList

必須: いいえ

SubnetId

サブネット ID。

型: 文字列

必須: いいえ

TagSpecifications

タグは、起動中のリソースに適用されます。起動時にインスタンスとボリュームにのみタグを付けることができます。指定されたタグは、すべてのインスタンス、または起動時に作成されたボリュームに適用されます。インスタンスを起動した後にタグを付けるには、aws:createTags アクションを使用します。

タイプ: MapList (詳細については、「TagSpecification」を参照してください。)

必須: いいえ

UserData

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

型: 文字列

必須: いいえ

出力

InstanceIds

インスタンスの ID。

aws:sleep

特定の時間数の自動化実行の遅延。このアクションは、国際標準化機構 (ISO) 8601 に日付と時刻形式を使用します。日付と時刻形式の詳細については、「ISO 8601」を参照してください。

Input

指定する時間で実行を遅延することができます。

JSON

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

YAML

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

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

JSON

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

YAML

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

注記

自動化は現在、最大で 604800 秒 (7 日間) までの遅延をサポートします。

所要時間

ISO 8601 の時間。負の時間を指定することはできません。

型: 文字列

必須: いいえ

タイムスタンプ

ISO 8601 のタイムスタンプ。このパラメーター値を指定しない場合、Duration パラメーター値を指定する必要があります。

型: 文字列

必須: いいえ

出力

なし

aws:waitForAwsResourceProperty

aws:waitForAwsResourceProperty アクションにより、自動化ワークフローはワークフローを続行する前に特定のリソース状態またはイベント状態を待つことができます。このアクションの使用方法の詳細と例については、「Systems Manager 自動化ワークフローから他の AWS のサービスの呼び出し」を参照してください。

Input

入力は、選択した API アクションによって定義されます。

JSON

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

YAML

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

実行する API アクションを含む AWS のサービスの名前空間。たとえば、Systems Manager の名前空間は、ssm となります。Amazon EC2 の名前空間は ec2 です。サポートされている AWS のサービスの名前空間のリストは、AWS CLI Command Reference の「利用可能なサービス」セクションを参照してください。

型: 文字列

必須: はい

Api

実行する API アクションの名前。API アクション (メソッド) は、以下の「サービスリファレンス」ページの左側のナビゲーションでサービスを選択することで表示できます。呼び出すサービスの [Client (クライアント)] セクションでメソッドを選択します。たとえば、Amazon RDS のすべての API アクション (メソッド) は、「Amazon RDS メソッド」ページで一覧表示されています。

型: 文字列

必須: はい

API アクションの入力

1 つ以上の API アクションを入力します。使用できる入力 (パラメータ) は、以下の「サービスリファレンス」ページの左側のナビゲーションでサービスを選択することで表示できます。呼び出すサービスの [Client (クライアント)] セクションでメソッドを選択します。たとえば、Amazon RDS のすべてのメソッドは、「Amazon RDS メソッド」ページに一覧表示されています。describe_db_instances メソッドを選択し、下にスクロールして、[DBInstanceIdentifier]、[Name (名前)]、および [Values (値)] などの使用可能なパラメータを表示します。

JSON

"inputs":{ "Service":"The official namespace of the service", "Api":"The API action name", "API input 1":"A value", "API Input 2":"A value", "API Input 3":"A value" }

YAML

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

型: 選択した API アクションによって決まります

必須: はい

PropertySelector

応答オブジェクト内の特定の属性への JSONPath。レスポンスオブジェクトは、以下の「サービスリファレンス」ページの左側のナビゲーションでサービスを選択することで表示できます。呼び出すサービスの [Client (クライアント)] セクションでメソッドを選択します。たとえば、Amazon RDS のすべてのメソッドは、「Amazon RDS メソッド」ページに一覧表示されています。describe_db_instances メソッドを選択し、[Response Structure (レスポンス構造)] セクションまで下にスクロールします。[DBInstances] は応答オブジェクトとして表示されます。

型: 整数型、ブール型、文字列型、StringList、StringMap、または MapList

必須: はい

DesiredValues

予定の状態、または自動化ワークフローを継続する状態。

型: 可変

必須: はい