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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

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 命令。

    Install-Module AWS.Tools.S3 -Force Get-S3Bucket -BucketName bucketname
  • Amazon EC2 命令。

    Install-Module AWS.Tools.EC2 -Force Get-EC2InstanceStatus -InstanceId instanceId
  • 通用或独立于服务Amazon适用于 Windows PowerShell 命令的工具。

    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 的信息,请参阅 演练:使用文档生成器创建自定义 Runbook

注意

EAPYaws:executeScript操作最多可以运行 600 秒(10 分钟)时间。您可以通过指定timeoutSeconds参数aws:executeScript步骤。

Input

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

重要

JSON 运行簿不支持脚本输入参数。JSON Runbook 必须使用附件输入参数提供脚本内容。

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:执行脚本支持 Python 3.6 (Python 3.6)、Python 3.7 (Python 3.7) 和 PowerShell 核心 6.0 (互联网保护套内核 2.1) 脚本。

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

类型: 字符串

:必需 是

Handler

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

类型: 字符串

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

InputPayload

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

类型: 字符串

:必需 否

Script

要在 Automation 期间运行的嵌入式脚本。(对于 JSON 运行手册不支持。)

类型: 字符串

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

Attachment

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

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

类型: 字符串

:必需 否

Output

Payload

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