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

创建运行脚本的 Automation 文档

AWS Systems Manager Automation 文档或操作手册支持将脚本作为自动化工作流程一部分运行。通过使用 Automation 文档,您可以直接在 AWS 中运行脚本,而无需创建单独的计算环境来运行脚本。由于 Automation 文档可以将脚本步骤与其他自动化步骤类型(例如批准)一起运行,因此您能够在紧急或不明确的情况下手动进行干预。

运行 Automation 执行的权限

要运行自动化执行,Systems Manager 必须使用 AWS Identity and Access Management (IAM) 角色的权限。Automation 用于确定使用哪个角色的权限的方法取决于一些因素,以及步骤是否使用 aws:executeScript 操作。

对于不使用 aws:executeScript 的自动化执行,Automation 使用两种权限来源之一:

  • 在 Automation 文档中指定或作为参数传递的 IAM 服务角色或担任角色的权限。

  • 如果未指定 IAM 服务角色,则为启动自动化执行的 IAM 用户的权限。

不过,如果 Automation 文档中的步骤包含 aws:executeScript 操作,并且为该操作指定的 Python 或 PowerShell 脚本调用任何 AWS API 操作,则始终需要使用 IAM 服务角色(担任角色)。Automation 按以下顺序检查该角色:

  • 在 Automation 文档中指定或作为参数传递的 IAM 服务角色或担任角色的权限。

  • 使用标签键 AutomationScriptExecutionRole 应用于 Automation 文档的资源标签。在这种情况下,Automation 使用指定为标签值的 IAM 角色。例如:arn:aws:iam::123456789012:role/AutomationAssumeRole

    如果找不到任何角色,则 Automation 尝试在没有任何权限的情况下运行为 aws:executeScript 指定的 Python 或 PowerShell 脚本。如果脚本调用 AWS API 操作(例如,Amazon EC2 CreateImage 操作)或者尝试对 AWS 资源(例如 EC2 实例)执行操作,则包含脚本的步骤将失败,并且 Systems Manager 返回一条错误消息以报告失败。

有关如何运行使用 IAM 服务角色或更高级形式的委托管理的 Automation 工作流程的更多信息,请参阅通过使用 IAM 服务角色运行 Automation 工作流程

在 Automation 文档中添加脚本

您可以通过内联方式将脚本作为 Automation 文档中的步骤的一部分,从而将其添加到文档中。您还可以从本地计算机中上传脚本或指定脚本所在的 Amazon Simple Storage Service (Amazon S3) 存储桶,以将脚本附加到文档。在运行脚本的步骤完成后,脚本的输出将作为 JSON 对象提供,您可以将其作为 Automation 工作流程中的后续步骤的输入。

Automation 文档的脚本限制

Automation 操作 aws:executeScript 当前支持运行 Python 3.6、Python 3.7 和 PowerShell Core 6.0 脚本。

Automation 文档实施附加 5 个文件的限制。脚本可以采用 Python 脚本 (.py) 或 PowerShell Core 脚本 (.ps1) 的形式,也可以作为 .zip 文件中的内容附加。

在使用 Automation 运行脚本时,将向您的账户收费。使用 aws:executeScript 操作的 Automation 步骤被视为特殊步骤。特殊步骤没有步骤限制,但根据步骤数和脚本执行持续时间向您的账户收费。有关更多信息,请参阅 AWS Systems Manager 定价页。

以下主题介绍了如何创建运行脚本的 Automation 文档。