aws:executeScript
– スクリプトを実行する
指定されたランタイムとハンドラを使用して、提供された Python または PowerShell スクリプトを実行します。各 aws:executeScript
アクションは、最大 600 秒 (10 分) 実行できます。timeoutSeconds
ステップで aws:executeScript
パラメータを指定して、タイムアウトを制限または延長することができます。
関数でリターンステートメントを使用して、出力ペイロードに出力を追加します。aws:executeScript
アクションの出力の定義例については、「例 2: スクリプト化されたランブック」を参照してください。ランブック内にある aws:executeScript
アクションからの出力は、指定した Amazon CloudWatch Logs ロググループに送信することもできます。詳しくは、「CloudWatch Logs を使用した自動アクション出力のログ記録」を参照してください。
aws:executeScript
アクションからの出力を CloudWatch Logs に送信する場合、または aws:executeScript
アクションに指定するスクリプトが AWS API オペレーションを呼び出す場合、ランブックを実行するには AWS Identity and Access Management (IAM) サービスロール (または引き受けロール) が常に必要です。
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 コマンドレットの使用例については、「オートメーションランブックのビジュアルデザインエクスペリエンス」を参照してください 。
入力
スクリプトを実行するために必要な情報を入力します。各リソースプレースホルダーの例
をユーザー自身の情報に置き換えます。
注記
Python スクリプトの添付ファイルは、.py ファイルでも、スクリプトを含む .zip ファイルでもかまいません。PowerShell スクリプトは .zip ファイルに保存する必要があります。
- ランタイム
-
提供されたスクリプトを実行するために使用されるランタイム言語。
aws:executeScript
は Python 3.7 (python3.7)、Python 3.8 (python3.8)、Python 3.9 (python3.9)、Python 3.10 (python3.10)、Python 3.11 (python3.11)、PowerShell Core 6.0 (dotnetcore2.1)、PowerShell 7.0 (dotnetcore3.1) スクリプトをサポートしています。サポートされる値:
python3.7
|python3.8
|python3.9
|python3.10
|python3.11
|PowerShell Core 6.0
|PowerShell 7.0
タイプ: 文字列
必須: はい
- Handler
-
関数の名前。ハンドラで定義された関数に、
events
とcontext
の 2 つのパラメータがあることを確認する必要があります。PowerShell ランタイムはこのパラメータをサポートしていません。タイプ: 文字列
必須: はい (Python) | サポートされていません (PowerShell)
- InputPayload
-
ハンドラの最初のパラメータに渡される JSON または YAML オブジェクト。これは、スクリプトに入力データを渡すために使用できます。
型: 文字列
必須: いいえ
- Script
-
オートメーションで実行する埋め込みスクリプト。
タイプ: 文字列
必須: いいえ (Python) | はい (PowerShell)
- Attachment
-
アクションによって呼び出すことができるスタンドアロンスクリプトファイルまたは .zip ファイルの名前。
Attachments
のリクエストパラメータで指定したドキュメント添付ファイルのName
と同じ値を指定します。詳細については、「AWS Systems Manager API リファレンス」の「Attachments」(アタッチメント) を参照してください。アタッチメントを使用してスクリプトを提供する場合は、ランブックのトップレベル要素にあるfiles
セクションも定義する必要があります。詳しくは、「スキーマバージョン 0.3」を参照してください。Python 用のファイルを呼び出すには、
filename.method_name
のHandler
形式を使用します。注記
Python スクリプトの添付ファイルは、.py ファイルでも、スクリプトを含む .zip ファイルでもかまいません。PowerShell スクリプトは .zip ファイルに保存する必要があります。
添付ファイルに Python ライブラリを含める場合は、各モジュールディレクトリに空の
__init__.py
ファイルを追加することをお勧めします。これにより、スクリプトコンテンツ内の添付ファイルのライブラリからモジュールをインポートできます。例:from library import module
型: 文字列
必須: いいえ
出力
- ペイロード
-
関数によって返されるオブジェクトの JSON 形式です。最大 100KB が返されます。リストを出力する場合、最大 100 個の項目が返されます。