aws:executeScript - 运行脚本 - Amazon Systems Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

aws:executeScript - 运行脚本

使用指定的运行时和处理程序提供的 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 cmdlet。

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

    Install-Module AWS.Tools.EC2 -Force Get-EC2InstanceStatus -InstanceId instanceId
  • 通用或独立于服务的 Amazon Tools for Windows PowerShell cmdlet。

    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 模块以及在运行手册中使用 PowerShell 核心 cmdlet 的示例,请参阅 演练:使用文档生成器创建自定义运行手册

注意

每个 aws:executeScript 操作最多可以运行 600 秒(10 分钟)时间。您可以通过指定 aws:executeScript 步骤的 timeoutSeconds 参数来限制超时。

输入

提供所需的运行时和处理程序,以运行提供的 Python 3.6、Python 3.7、Python 3.8、PowerShell Core 6.0 或 PowerShell 7.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" } }
运行时

用于执行提供的脚本的运行时语言。aws:executeScript 支持 Python 3.6 (python3.6)、Python 3.7 (python3.7)、Python 3.8 (python3.8)、PowerShell Core 6.0 (dotnetcore2.1) 和 PowerShell 7.0 (dotnetcore3.1) 脚本。

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

类型:字符串

必需:是

Handler

用于执行脚本的条目,通常是函数名称。您必须确保在处理程序中定义的函数具有两个参数:eventscontext

注意

如果运行时是 PowerShell 运行时,则不允许使用此字段。

类型:字符串

必需:是 (Python) | 不允许 (PowerShell)

InputPayload

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

类型:字符串

必需:否

Script

要在自动化期间运行的嵌入式脚本。(JSON 运行手册不支持。)

类型:字符串

必需:否 (Python) | 是 (PowerShell)

Attachment

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

当在附件中包含 Python 库时,我们建议在每个模块目录中添加一个空__init__.py 文件。这允许您从脚本内容的附件中的库导入模块。例如:from library import module

类型:字符串

必需:否

输出

有效负载

函数返回的对象的 JSON 表示形式。返回最多 100KB 的数据。