aws:executeScript – Run a script - AWS Systems Manager
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

aws:executeScript – Run a script

运行使用指定的运行时和处理程序提供的 Python 或 PowerShell 脚本。(对于 PowerShell,不需要使用此处理程序。)

目前,aws:executeScript 操作包含以下预安装的 PowerShell 核心模块。

  • Microsoft.PowerShell.Host

  • Microsoft.PowerShell.Management

  • Microsoft.PowerShell.Security

  • Microsoft.PowerShell.Utility

  • PackageManagement

  • PowerShellGet

要使用未预装的 PowerShell 核心模块,脚本必须使用 -Force 标志安装模块,如以下命令所示。

Install-Module ModuleName -Force

要在脚本中使用 PowerShell 核心 cmdlet,我们建议您使用 AWS.Tools 模块,如以下命令所示。

重要

不支持安装 AWSPowerShell.NetCore 模块。

  • Amazon S3 cmdlets.

    Install-Module AWS.Tools.S3 -Force Get-S3Bucket -BucketName bucketname
  • Amazon EC2 cmdlets.

    Install-Module AWS.Tools.EC2 -Force Get-EC2InstanceStatus -InstanceId instanceId
  • Common, or service independent 适用于 Windows PowerShell 的 AWS 工具 cmdlets.

    Install-Module AWS.Tools.Common -Force Get-AWSRegion

如果脚本除了使用 PowerShell 核心 cmdlet 之外还初始化新对象,则还必须导入模块,如以下命令所示。

Install-Module AWS.Tools.EC2 -Force Import-Module AWS.Tools.EC2 $tag = New-Object Amazon.EC2.Model.Tag $tag.Key = "myTag" $tag.Value = "myTagValue" New-EC2Tag -Resource i-12345678 -Tag $tag

有关安装和导入 AWS.Tools 模块以及在 Automation 文档内容中使用 PowerShell 核心 cmdlet 的示例,请参阅 演练: 使用文档 构建者创建自定义自动化文档

注意

每个 aws:executeScript 操作最长可运行600秒(十分钟)。您可以通过指定 timeoutSeconds 参数 aws:executeScript 步骤。

Input (输入)

提供所需的运行时和处理程序以运行提供的 Python 3.6、Python 3.7 或 PowerShell Core 6.0 脚本。

重要

JSON 文档不支持脚本输入参数。JSON 文档必须使用附件输入参数提供脚本内容。

YAML
action: "aws:executeScript" inputs: Runtime: "python3.6" Handler: "script_handler" InputPayload: "parameter1": "parameter_value1" "parameter2": "parameter_value2" Script: - "def script_handler(events, context):" - "(script commands)" Attachment: "zip-file-name-1.zip"
JSON
{ "action": "aws:executeScript", "inputs": { "Runtime": "python3.6", "Handler": "script_handler", "InputPayload": { "parameter1": "parameter_value1", "parameter2": "parameter_value2" }, "Attachment": "zip-file-name-1.zip" } }
Runtime

用于执行提供的脚本的运行时语言。目前,AWS:ExecuTescript支持Python3.6(python3.6Python 3.7python3.7)和PowerShellCore6.0(dotnetcore2.1脚本

支持的值 python3.6 || python3.7 || PowerShell Core 6.0

Type :字符串

必填 是

Handler

脚本执行条目,通常是函数名称。您必须确保处理程序中定义的功能有两个参数, eventscontext。(Powershell不需要。)

Type :字符串

必填 是(python)|否(powershell)

InputPayload

将传递给处理程序的第一个参数的 JSON 或 YAML 对象。这可用于将输入数据传递给脚本。

Type :字符串

必填 否

Script

要在自动化执行期间运行的嵌入式脚本。(对于 JSON 文档不支持。)

Type :字符串

必填 否(python)|是(powershell)

Attachment

可以由操作调用的单独脚本文件或 .zip 文件的名称。要调用Python的文件,请使用 filename.method_name 格式为 Handler。对于PowerShell,使用和联机脚本调用附件。不支持 Gzip。

Type :字符串

必填 否