本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建运行脚本的 Automation 文档(控制台)
创建运行脚本的 Automation 文档
以下过程介绍了如何在 Systems Manager 控制台中使用文档生成器以及创建运行您提供的脚本的自定义 Automation 文档。
-
通过以下网址打开 AWS Systems Manager 控制台:https://console.amazonaws.cn/systems-manager/
。 -
在导航窗格中,选择文档。
-或者-
如果 AWS Systems Manager 主页首先打开,请选择菜单图标 (
) 以打开导航窗格,然后在导航窗格中选择文档。
-
选择 Create automation (创建自动化)。
-
对于 Name (名称),请为文档键入描述性名称。
-
对于 Document description (文档描述),请提供文档的 markdown 样式描述。您可以提供使用文档的说明、编号的步骤或描述文档的任何其他类型的信息。请参阅默认文本以了解设置内容格式的信息。
提示 在 Hide preview (隐藏预览) 和 Show preview (显示预览) 之间切换,以便在编写时查看描述内容的效果。
-
(可选)对于 Assume role (担任角色),请输入代表您执行操作的服务角色的名称或 ARN。如果未指定角色,则 Automation 使用调用自动化执行的用户的访问权限。
重要 对于不归 Amazon 所有并使用
aws:executeScript
操作的 Automation 文档,必须指定一个角色。有关信息,请参阅 运行 Automation 执行的权限。 -
(可选)对于 Outputs (输出),请输入执行该文档的任何输出以供其他进程使用。
例如,如果文档创建新的 AMI,您可以指定 ["CreateImage.ImageId"],然后使用该输出以在后续自动化执行中创建新的实例。
-
(可选)展开 Input parameters (输入参数) 部分,然后执行以下操作。
-
对于 Parameter name (参数名称),请输入要创建的文档参数的描述性名称。
-
对于 Type (类型),为参数选择类型,例如
String
或者StringList
. -
对于 Required (必需),请执行以下操作之一。
-
如果必须在运行时提供该文档参数的值,请选择 Yes (是)。
-
如果该参数不是必需的,请选择 No (否),然后(可选)在 Default value (默认值) 中输入默认参数值。
-
-
对于 Description (描述),请输入文档参数的描述。
注意 要添加更多文档参数,请选择 Add a parameter (添加参数)。要删除文档参数,请选择 X(删除)按钮。
-
-
(可选)展开 Target type (目标类型) 部分,然后选择一种目标类型以定义可以运行文档的资源的类型。例如,要在 EC2 实例上运行文档,请选择
/AWS::EC2::Instance
。注意 如果指定“
/
”值,则可以对所有类型的资源运行文档。有关有效资源类型的列表,请参阅 https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html 中的 AWS 资源类型参考AWS CloudFormation 用户指南。 -
在 Step 1 (步骤 1) 部分中,提供以下信息。
-
对于 Step name (步骤名称),请输入自动化工作流程的第一步的描述性名称。
-
对于 Action type (操作类型),请选择 Run a script (运行脚本) (
aws:executeScript
)。 -
对于 Description (描述),请输入自动化步骤的描述。您可以使用 Markdown 设置文本格式。
-
-
展开 Inputs (输入) 部分,然后提供以下信息。
-
对于 Runtime (运行时),请选择要添加的脚本类型。目前,Automation 支持 Python 3.6、Python 3.7 和 PowerShell Core 6.0。
-
对于 Handler (处理程序),请输入脚本执行条目,通常是脚本中的函数名称。(对于 PowerShell.) 不是必需的)
重要 您必须确保在处理程序中定义的函数具有两个参数:
events
和context
。 例如,如果脚本以以下内容开头,则应输入launch_instance
。def launch_instance(events, context): import boto3 ec2 = boto3.client('ec2') [...truncated...]
-
对于 Script (脚本),请选择一种为 Automation 文档提供脚本的方法。
-
要将脚本嵌入在文档中,请在文本框区域中输入脚本代码。
-或者-
-
对于 Attachment (附件),请选择 Stored on my machine (存储在我的计算机上) 或 Upload S3 File URL (上传 S3 文件 URL)。
如果您选择 Stored on my machine (存储在我的计算机上):对于 Amazon S3 URL,输入要将上传附件存储到的账户中的 S3 存储桶的位置,然后选择 Upload (上传) 以浏览到并选择该文件。
如果选择 Upload S3 File URL (上传 S3 文件 URL),请提供以下信息:
-
S3 文件 URL:输入在您的账户中存储该文件的 S3 存储桶的位置。
-
文件名:输入文件的名称。
-
文件校验和:使用 sha256 算法输入文件的校验和。
提示 可以使用 Linux 中的 shasum 等工具通过 sha256 计算文件的校验和。例如:“shasum -a 256 /path/to/file”。在 Windows 中,您可以使用
Get-FileHash
PowerShell cmdlet 获取相同的信息。请注意,ETag 或 md5 校验和不适用于此值。
-
-
-
-
(可选)展开 Additional inputs (其他输入),然后执行以下操作。
-
对于 Input name (输入名称),选择
InputPayload
. - YAML 格式的函数输入。 -
对于 Input value (输入值),请使用 YAML 格式输入脚本输入。
-
-
(可选)展开 Outputs (输出),然后输入从该步骤中创建的任何输出的 Name (名称)、Selector (选择器) 和 Type (类型)。可以在 Automation 文档的后续步骤中使用步骤输出。以下是几个说明示例。
名称:
myInstance
| Selector (选择器):$.InstanceInformationList[0].InstanceId
| 类型:String
名称:
platform
| Selector (选择器):$.Reservations[0].Instances[0].Platform
| 类型:String
名称:
message
| Selector (选择器):$.Payload.message | Type (类型):String
有关输出的更多信息,请参阅使用输入和输出。
提示 要添加更多输出,请选择 Add output (添加输出)。
-
(可选)展开 Common properties (通用属性) 部分,然后指定所有 Automation 操作的通用操作属性。例如,对于 Timeout seconds (超时秒数),您可以提供一个值以指定步骤在停止之前可以运行多长时间(以秒为单位)。
有关更多信息,请参阅所有操作共享的属性。
注意 要添加更多文档步骤,请选择 Add step (添加步骤),然后重复创建步骤的过程。要删除文档步骤,请选择 Remove step (删除步骤)。
-
选择创建文档以保存文档。