aws:executeScript – 运行脚本 - AWS 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 cmdlet。

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

    Install-Module AWS.Tools.EC2 -Force Get-EC2InstanceStatus -InstanceId instanceId
  • 通用或独立于服务的 适用于 Windows PowerShell 的 AWS 工具 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 秒(十分钟)。您可以通过为 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" } }
运行时

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

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

类型:字符串

必需:是

Handler

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

类型:字符串

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

InputPayload

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

类型:字符串

必需:否

Script

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

类型:字符串

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

Attachment

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

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

类型:字符串

必需:否

Output

负载

您的函数返回的对象的 JSON 表示形式。