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

Automation システム変数

以下の変数は Systems Manager Automation ドキュメントで使用されます。

システム変数

Automation ドキュメントでは現在、以下のシステム変数がサポートされています。

可変 詳細

global:DATE

yyyy-MM-dd 形式の日付 (実行時)。

global:DATE_TIME

yyyy-MM-dd_HH.mm.ss 形式の日時 (実行時)。

global:REGION

ドキュメントが実行されるリージョン。たとえば、us-east-1 です。

Automation 変数

Automation ドキュメントでは現在、以下の Automation 変数がサポートされています。

可変 詳細

automation:EXECUTION_ID

現在の Automation 実行に割り当てられた一意の識別子 (1a2b3c-1a2b3c-1a2b3c-1a2b3c1a2b3c1a2b3c など)。

用語

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

期間 定義

定数 ARN

変数を使用しない有効な ARN

arn:aws:iam::123456789012:role/roleName

ドキュメントパラメータ

Automation ドキュメントのドキュメントレベルで定義されたパラメータ (instanceId など)。このパラメータは基本的な文字列置換で使用されます。その値は Start Execution 時に渡されます。

Copy
{ "description": "Create Image Demo", "version": "0.3", "assumeRole": "Your_Automation_Assume_Role_ARN", "parameters":{ "instanceId": { "type": "STRING", "description": "Instance to create image from" } }

システム変数

ドキュメントのいずれかの部分が評価されたときにドキュメントに代入される一般的な変数。

Copy
"activities": [ { "id": "copyImage", "activityType": "AWS-CopyImage", "maxAttempts": 1, "onFailure": "Continue", "inputs": { "ImageName": "{{imageName}}", "SourceImageId": "{{sourceImageId}}", "SourceRegion": "{{sourceRegion}}", "Encrypted": true, "ImageDescription": "Test CopyImage Description created on {{global:DATE}}" } } ]

Automation 変数

ドキュメントのいずれかの部分が評価されたときにドキュメントに代入される Automation 実行に関連する変数。

Copy
{ "name": "runFixedCmds", "action": "aws:runCommand", "maxAttempts": 1, "onFailure": "Continue", "inputs": { "DocumentName": "AWS-RunPowerShellScript", "InstanceIds": [ "{{LaunchInstance.InstanceIds}}" ], "Parameters": { "commands": [ "dir", "date", "echo {Hello {{ssm:administratorName}}}", "“{{outputFormat}}” -f “left”,”right”,”{{global:DATE}}”,”{{automation:EXECUTION_ID}}”,”{{global:TIME}}”" ] } } }

SSM パラメータ

Parameter Service 内で定義された変数。ドキュメントパラメータとして宣言されません。このパラメータへのアクセスには、そのための権限が必要になる場合があります。

Copy
{ "description": "Run Command Demo", "schemaVersion": "0.3", "assumeRole": "arn:aws:iam::123456789012:role/roleName", "parameters": { "commands": { "type": "STRING_LIST", "description": "list of commands to execute as part of first step" }, "instanceIds": { "type": "STRING_LIST", "description": "list of instances to execute commands on" } }, "mainSteps": [ { "name": "runFixedCmds", "action": "aws:runCommand", "maxAttempts": 1, "onFailure": "Continue", "inputs": { "DocumentName": "AWS-RunPowerShellScript", "InstanceIds": [ "{{LaunchInstance.InstanceIds}}" ], "Parameters": { "commands": [ "dir", "date", "echo {Hello {{ssm:administratorName}}}", ""{{outputFormat}}" -f "left","right","{{global:DATE}}","{{automation:EXECUTION_ID}}","{{global:TIME}}"" ] } } }

サポートされるシナリオ

シナリオ コメント

作成時の assumeRole の定数 ARN

権限付与チェックが実行されて、呼び出し元ユーザーが assumeRole の委譲を許可されていることが確認されます。

Copy
{ "description": "Test all Automation resolvable parameters", "schemaVersion": "0.3", "assumeRole": "arn:aws:iam::123456789012:role/roleName", "parameters": { ...

作成時に assumeRole に渡されるドキュメントパラメータ

ドキュメントのパラメータリストで定義する必要があります。

Copy
{ "description": "Test all Automation resolvable parameters", "schemaVersion": "0.3", "assumeRole": "{{dynamicARN}}", "parameters": { ...

開始時にドキュメントパラメータに渡される値

お客様がパラメータに使用する値を指定します。開始時に渡される実行入力は、ドキュメントのパラメータリストで定義する必要があります。

Copy
... "parameters": { "amiId": { "type": "STRING", "default": "ami-7f2e6015", "description": "list of commands to execute as part of first step" }, ...

Start Automation Execution への入力には {"amiId" : ["ami-12345678"] } を含めます。

ステップ定義内で参照される SSM パラメータ

変数はお客様のアカウント内に存在し、ドキュメントの assumeRole は変数にアクセスできます。作成時にチェックが実行されて、assumeRole が変数にアクセスできることが確認されます。SSM パラメータは、ドキュメントのパラメータリストで設定する必要はありません。

Copy
... "mainSteps": [ { "name": "RunSomeCommands", "action": "aws:runCommand", "maxAttempts": 1, "onFailure": "Continue", "inputs": { "DocumentName": "AWS:RunPowerShell", "InstanceIds": [{{LaunchInstance.InstanceIds}}], "Parameters": { "commands" : [ "echo {Hello {{ssm:administratorName}}}" ] } } }, ...

ステップ定義内で参照されるシステム変数

システム変数は実行時にドキュメントに代入されます。ドキュメントに挿入される値は、代入時の変数の値に対して相対的になります。たとえば、ステップ 1 で挿入される時間変数の値は、ステップの実行にかかる時間のため、ステップ 3 で挿入される時間変数の値とは異なります。システム変数は、ドキュメントのパラメータリストで設定する必要はありません。

Copy
... "mainSteps": [ { "name": "RunSomeCommands", "action": "aws:runCommand", "maxAttempts": 1, "onFailure": "Continue", "inputs": { "DocumentName": "AWS:RunPowerShell", "InstanceIds": [{{LaunchInstance.InstanceIds}}], "Parameters": { "commands" : [ "echo {The time is now {{global:TIME}}}" ] } } }, ...

ステップ定義内で参照される Automation 変数

Automation 変数は、ドキュメントのパラメータリストで設定する必要はありません。サポートされる Automation 変数は automation:EXECUTION_ID のみです。

Copy
... "mainSteps": [ { "name": "invokeLambdaFunction", "action": "aws:invokeLambdaFunction", "maxAttempts": 1, "onFailure": "Continue", "inputs": { "FunctionName": "Hello-World-LambdaFunction", "Payload" : "{ "executionId" : "{{automation:EXECUTION_ID}}" }" } } ...

次のステップ定義内からの前のステップの出力の参照

これはパラメータのリダイレクトです。前のステップの出力は、構文 {{stepName.OutputName}} を使用して参照されます。この構文は、お客様がドキュメントパラメータに対して使用することはできません。このパラメータは、参照ステップの実行時に解決されます。ドキュメントのパラメータリストでは設定されません。

Copy
... "mainSteps": [ { "name": "LaunchInstance", "action": "aws:runInstances", "maxAttempts": 1, "onFailure": "Continue", "inputs": { "ImageId": "{{amiId}}", "MinInstanceCount": 1, "MaxInstanceCount": 2 } }, { "name":"changeState", "action": "aws:changeInstanceState", "maxAttempts": 1, "onFailure": "Continue", "inputs": { "InstanceIds": ["{{LaunchInstance.InstanceIds}}"], "DesiredState": "terminated" } } ...

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

シナリオ Comment

作成時に assumeRole に渡される SSM パラメータ

サポート外。

Copy
... { "description": "Test all Automation resolvable parameters", "schemaVersion": "0.3", "assumeRole": "{{ssm:administratorRoleARN}}", "parameters": { ...

開始時にドキュメントパラメータに渡される SSM パラメータ

ユーザーは開始時に入力パラメータとして SSM パラメータを渡します。

Copy
... "parameters": { "amiId": { "type": "STRING", "default": "ami-7f2e6015", "description": "list of commands to execute as part of first step" }, ... User supplies input : { "amiId" : "{{ssm:goldenAMIId}}" }

変数によるステップの定義

ドキュメント内のステップの定義は変数によって構成されます。

Copy
... "mainSteps": [ { "name": "LaunchInstance", "action": "aws:runInstances", "{{attemptModel}}": 1, "onFailure": "Continue", "inputs": { "ImageId": "ami-12345678", "MinInstanceCount": 1, "MaxInstanceCount": 2 } ... User supplies input : { "attemptModel" : "minAttempts" }

ドキュメントパラメータの相互参照

ユーザーは開始時に入力パラメータとして、ドキュメント内の別のパラメータへの参照を渡します。

Copy
... "parameters": { "amiId": { "type": "STRING", "default": "ami-7f2e6015", "description": "list of commands to execute as part of first step" }, "otherAmiId": { "type": "STRING", "description": "The other amiId to try if this one fails". "default" : "{{amiId}}" }, ...

複数レベルの展開

ドキュメントで、変数の名前に評価される変数を定義します。これは、変数区切り記号 ({{ }}) 内にあり、変数/パラメータの値に展開されます。

Copy
... "parameters": { "param1": { "type": "STRING", "default": "param2", "description": "The parameter to reference" }, "param2": { "type": "STRING", "default" : "echo {Hello world}", "description": "What to execute" } }, "mainSteps": [{ "name": "runFixedCmds", "action": "aws:runCommand", "maxAttempts": 1, "onFailure": "Continue", "inputs": { "DocumentName": "AWS-RunPowerShellScript", "InstanceIds" : ""{{LaunchInstance.InstanceIds}}, "Parameters": { "commands": [ "{{ {{param1}} }}"] } ... Note: The customer intention here would be to execute a runCommand of "echo {Hello world}"