メニュー
Amazon EC2 Systems Manager
ユーザーガイド

Systems Manager Automation アクション

Systems Manager Automation は、Automation ドキュメントで定義されたタスクを実行します。タスクを定義するには、Automation ドキュメントの mainSteps セクションで、以下の 1 つ以上のアクションを任意の順に指定します。

  • aws:runInstances: 1 つ以上のインスタンスを起動します。

  • aws:runCommand: リモートコマンドを実行します。

  • aws:invokeLambdaFunction: Automation ワークフローで外部ワーカー関数を実行できます。

  • aws:changeInstanceState: インスタンスの状態を変更します。

  • aws:createImage: 実行中のインスタンスから AMI を作成します。

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

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

  • aws:deleteImage: AMI を削除します。

アクションの出力は、ドキュメント内で指定しないものとします。出力は、ステップをリンクするために使用したり、ドキュメントの出力セクションに追加したりできます。たとえば、aws:runInstances の出力は後続の aws:runCommand アクションで利用できます。

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

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

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

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

型: 文字列

必須: はい

action

ステップで実行するアクションの名前。

型: 文字列

必須: はい

maxAttempts

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

タイプ: 整数

必須: いいえ

timeoutSeconds

ステップの実行のタイムアウト値。

タイプ: 整数

必須: いいえ

onFailure

失敗時にワークフローを続行するかどうかを示します。デフォルトでは、失敗時に中止します。

型: 文字列

有効な値: Abort | Continue

必須: いいえ

inputs

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

タイプ: マップ

必須: はい

aws:runInstances アクション

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

Input

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

Copy
{ "name": "launchInstance", "action": "aws:runInstances", "maxAttempts": 3, "timeoutSeconds": 1200, "onFailure": "Abort", "inputs": { "ImageId": "ami-12345678", "InstanceType": "t2.micro", "MinInstanceCount": 1, "MaxInstanceCount": 1, "IamInstanceProfileName": "myRunCmdRole" } }
ImageId

Amazon Machine Image (AMI) の ID。

必須: はい

InstanceType

インスタンスタイプ。

必須: いいえ

MinInstanceCount

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

必須: いいえ

MaxInstanceCount

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

必須: いいえ

AdditionalInfo

リザーブド。

必須: いいえ

BlockDeviceMappings

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

必須: いいえ

ClientToken

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

必須: いいえ

DisableApiTermination

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

必須: いいえ

EbsOptimized

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

必須: いいえ

IamInstanceProfileArn

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

必須: いいえ

IamInstanceProfileName

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

必須: いいえ

InstanceInitiatedShutdownBehavior

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

必須: いいえ

KernelId

カーネルの ID。

必須: いいえ

KeyName

キーペアの名前。

必須: いいえ

Monitoring

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

必須: いいえ

NetworkInterfaces

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

必須: いいえ

Placement

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

必須: いいえ

PrivateIpAddress

プライマリ IPv4 アドレス。

必須: いいえ

RamdiskId

RAM ディスクの ID。

必須: いいえ

SecurityGroupIds

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

必須: いいえ

SecurityGroups

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

必須: いいえ

SubnetId

サブネット ID。

必須: いいえ

UserData

文字列リテラル値として渡される実行スクリプト。

必須: いいえ

出力

InstanceIds

インスタンスの ID。

aws:runCommand アクション

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

Input

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

Copy
{ "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。

型: 文字列

必須: はい

Parameters

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

タイプ: マップ

必須: いいえ

Comment

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

型: 文字列

必須: いいえ

DocumentHash

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

型: 文字列

必須: いいえ

DocumentHashType

ハッシュの種類。

型: 文字列

有効な値: Sha256 | Sha1

必須: いいえ

NotificationConfig

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

必須: いいえ

OutputS3BucketName

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

型: 文字列

必須: いいえ

OutputS3KeyPrefix

プレフィックス。

型: 文字列

必須: いいえ

ServiceRoleArn

IAM ロールの ARN。

型: 文字列

必須: いいえ

TimeoutSeconds

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

タイプ: 整数

必須: いいえ

出力

CommandId

コマンドの ID。

出力

コマンドの切り詰められた出力。

ResponseCode

コマンドのステータスコード。

ステータス

コマンドのステータス。

aws:invokeLambdaFunction アクション

指定された Lambda 関数を起動します。

Input

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

Copy
{ "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:changeInstanceState アクション

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

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

入力

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

インスタンスの ID。

型: 文字列

必須: はい

CheckStateOnly

false の場合、インスタンスの状態は目的の状態に設定されます。true の場合、ポーリングを使用して目的の状態をアサートします。

タイプ: ブール値

必須: いいえ

DesiredState

目的の状態。

型: 文字列

有効な値: running | stopped | terminated

必須: はい

Force

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

タイプ: ブール値

必須: いいえ

AdditionalInfo

リザーブド。

型: 文字列

必須: いいえ

出力

なし

aws:createImage アクション

停止したインスタンスから新しい AMI を作成します。

重要

このアクションにより、インスタンスは暗黙的に停止されません。ユーザーが aws:changeInstanceState アクションを使用してインスタンスを停止する必要があります。このアクションを実行中のインスタンスで使用すると、欠陥のある AMI が作成される場合があります。

Input

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

Copy
{ "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

ブールリテラルです。

タイプ: ブール値

必須: いいえ

BlockDeviceMappings

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

タイプ: マップ

必須: いいえ

出力

ImageId

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

ImageState

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

aws:createTags アクション

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

Input

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

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

Copy
{ "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:copyImage アクション

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

Input

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

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

Copy
{ "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:deleteImage アクション

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

Input

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

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

削除するイメージの ID。

型: 文字列

必須: はい

出力

なし