AWS Systems Manager
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

Systems Manager Automation 操作参考

此参考介绍可在 AWS Systems Manager Automation 文档中指定的操作 (或插件)。有关其他 SSM 文档类型插件的信息,请参阅 SSM 文档插件参考

Systems Manager Automation 会运行 Automation 文档中定义的步骤。每步都与特定操作相关。此操作确定本步的输入、行为和输出。步骤定义在 Automation 文档的 mainSteps 部分。

您无需指定操作或步骤的输出。由与本步关联的操作预先确定输出。当您在 Automation 文档中指定步骤输入时,可以引用前面某步中的一个或多个输出。例如,您可以使 aws:runInstances 的输出可用于后续的 aws:runCommand 操作。还可以在 Automation 文档的 Output 部分引用前面步骤中的输出。

重要

如果您运行使用 AWS Identity and Access Management (IAM) 服务角色调用其他服务的自动化,请注意必须使用权限将该服务角色配置为调用这些服务。此要求适用于所有 AWS Automation 文档(AWS-* 文档),例如 AWS-ConfigureS3BucketLoggingAWS-CreateDynamoDBBackupAWS-RestartEC2Instance 文档。对于您创建的所有自定义自动化文档,如果这些文档使用调用其他服务的操作调用其他 AWS 服务,此要求同样适用。例如,如果您使用 aws:executeAwsApiaws:CreateStackaws:copyImage 操作等,则您必须配置具有权限的服务角色来调用这些服务。您可以通过将 IAM 内联策略添加到角色来启用其他 AWS 服务的权限。有关更多信息,请参阅(可选)添加 Automation 内联策略来调用其他 AWS 服务

所有操作中的常见属性

以下属性是所有操作的常见属性:

JSON

"mainSteps": [ { "name": "name", "action": "action", "maxAttempts": value, "timeoutSeconds": value, "onFailure": "value", "inputs": { ... } }, { "name": "name", "action": "action", "maxAttempts": value, "timeoutSeconds": value, "onFailure": "value", "inputs": { ... } } ]

YAML

mainSteps: - name: name action: action maxAttempts: value timeoutSeconds: value onFailure: value inputs: ... - name: name action: action maxAttempts: value timeoutSeconds: value onFailure: value inputs: ...
name

在文档的所有步骤名称中必须唯一的标识符。

类型:字符串

必需:是

操作

步骤要运行的操作的名称。aws:runCommand 是可在此处指定的操作的示例。本文档提供有关所有可用操作的详细信息。

类型:字符串

必需:是

maxAttempts

在发生故障的情况下应重试步骤的次数。如果值大于 1,则直到所有重试尝试失败后,才会将此步骤视为失败。默认值是 1。

类型:整数

必需:否

timeoutSeconds

步骤的执行超时值。如果超时并且 maxAttempts 的值大于 1,则本步未考虑超时,直至已尝试所有重试。此字段没有默认值。

类型:整数

必需:否

onFailure

指示工作流程在失败时是应中止、继续还是转到其他步骤。该选项的默认值为“中止”。

类型:字符串

有效值:Abort | Continue | step:step_name

必需:否

isEnd

此选项在特定步骤结束时停止自动化执行。如果步骤执行失败,自动化执行将停止,否则将成功。默认值为 False。

类型:布尔值

有效值:true | false

必需:否

下面是如何在文档的 mainSteps 部分中输入此选项的示例:

JSON

"mainSteps":[ { "name":"InstallMsiPackage", "action":"aws:runCommand", "onFailure":"step:PostFailure", "maxAttempts":2, "inputs":{ "InstanceIds":[ "i-1234567890EXAMPLE","i-abcdefghiEXAMPLE" ], "DocumentName":"AWS-RunPowerShellScript", "Parameters":{ "commands":[ "msiexec /i {{packageName}}" ] } }, "nextStep":"TestPackage" }, { "name":"TestPackage", "action":"aws:invokeLambdaFunction", "maxAttempts":1, "timeoutSeconds":500, "inputs":{ "FunctionName":"TestLambdaFunction" }, "isEnd":true } ]

YAML

mainSteps: - name: InstallMsiPackage action: aws:runCommand onFailure: step:PostFailure maxAttempts: 2 inputs: InstanceIds: - i-1234567890EXAMPLE - i-abcdefghiEXAMPLE DocumentName: AWS-RunPowerShellScript Parameters: commands: - msiexec /i {{packageName}} nextStep: TestPackage - name: TestPackage action: aws:invokeLambdaFunction maxAttempts: 1 timeoutSeconds: 500 inputs: FunctionName: TestLambdaFunction isEnd: true
nextStep

指定在成功完成Automation 工作流程中的一个步骤后,接下来处理哪个步骤。

下面是如何在文档的 mainSteps 部分中输入此选项的示例:

JSON

"mainSteps":[ { "name":"InstallMsiPackage", "action":"aws:runCommand", "onFailure":"step:PostFailure", "maxAttempts":2, "inputs":{ "InstanceIds":[ "i-1234567890EXAMPLE","i-abcdefghiEXAMPLE" ], "DocumentName":"AWS-RunPowerShellScript", "Parameters":{ "commands":[ "msiexec /i {{packageName}}" ] } }, "nextStep":"TestPackage" } ]

YAML

mainSteps: - name: InstallMsiPackage action: aws:runCommand onFailure: step:PostFailure maxAttempts: 2 inputs: InstanceIds: - i-1234567890EXAMPLE - i-abcdefghiEXAMPLE DocumentName: AWS-RunPowerShellScript Parameters: commands: - msiexec /i {{packageName}} nextStep: TestPackage
isCritical

将一个步骤指定为成功完成自动化的关键步骤。如果具有此分派的步骤失败,则自动化会将自动化的最终状态报告为失败。该选项的默认值为 true。

类型:布尔值

有效值:true | false

必需:否

下面是如何在文档的 mainSteps 部分中输入此选项的示例:

JSON

"mainSteps":[ { "name":"InstallMsiPackage", "action":"aws:runCommand", "onFailure":"step:SomeOtherStep", "isCritical":false, "maxAttempts":2, "inputs":{ "InstanceIds":["i-1234567890EXAMPLE","i-abcdefghiEXAMPLE"], "DocumentName":"AWS-RunPowerShellScript", "Parameters":{ "commands":[ "msiexec /i {{packageName}}" ] } }, "nextStep":"TestPackage" } ]

YAML

mainSteps: - name: InstallMsiPackage action: aws:runCommand onFailure: step:SomeOtherStep isCritical: false maxAttempts: 2 inputs: InstanceIds: - i-1234567890EXAMPLE,i-abcdefghiEXAMPLE DocumentName: AWS-RunPowerShellScript Parameters: commands: - msiexec /i {{packageName}} nextStep: TestPackage
inputs

特定于操作的属性。

类型:映射

必需:是

aws:approve

临时暂停 Automation 执行,直至指定委托人批准或拒绝操作。在达到所需批准数后,Automation 执行将恢复。您可在 Automation 文档的 mainSteps 部分中的任何位置插入批准步骤。

注意

此操作的默认超时为 7 天(604800 秒)。您可以通过指定 aws:approve 步骤的 timeoutSeconds 参数限制或延长超时。如果自动化步骤在收到所有必需的审批决定前达到了超时值,此步骤和自动化将停止运行并返回“Timed Out (超时)”状态。

在以下示例中,aws:approve 操作临时暂停 Automation 工作流程,直至一个审批者接受或拒绝工作流程。批准后,此文档将运行简单的 PowerShell 命令。

JSON

{ "description":"RunInstancesDemo1", "schemaVersion":"0.3", "assumeRole":"{{ assumeRole }}", "parameters":{ "assumeRole":{ "type":"String" }, "message":{ "type":"String" } }, "mainSteps":[ { "name":"approve", "action":"aws:approve", "timeoutSeconds":1000, "onFailure":"Abort", "inputs":{ "NotificationArn":"arn:aws:sns:us-west-2:12345678901:AutomationApproval", "Message":"{{ message }}", "MinRequiredApprovals":1, "Approvers":[ "arn:aws:iam::12345678901:user/AWS-User-1" ] } }, { "name":"run", "action":"aws:runCommand", "inputs":{ "InstanceIds":[ "i-1a2b3c4d5e6f7g" ], "DocumentName":"AWS-RunPowerShellScript", "Parameters":{ "commands":[ "date" ] } } } ] }

YAML

--- description: RunInstancesDemo1 schemaVersion: '0.3' assumeRole: "{{ assumeRole }}" parameters: assumeRole: type: String message: type: String mainSteps: - name: approve action: aws:approve timeoutSeconds: 1000 onFailure: Abort inputs: NotificationArn: arn:aws:sns:us-east-2:12345678901:AutomationApproval Message: "{{ message }}" MinRequiredApprovals: 1 Approvers: - arn:aws:iam::12345678901:user/AWS-User-1 - name: run action: aws:runCommand inputs: InstanceIds: - i-1a2b3c4d5e6f7g DocumentName: AWS-RunPowerShellScript Parameters: commands: - date

您可以在控制台中批准或拒绝等待批准的自动化。

批准或拒绝等待的自动化

  1. 通过以下网址打开 AWS Systems Manager 控制台:https://console.amazonaws.cn/systems-manager/

  2. 在导航窗格中,选择自动化

    -或者-

    如果 AWS Systems Manager 主页首先打开,请选择菜单图标 ( ) 以打开导航窗格,然后选择自动化

  3. 选择状态为 Waiting (正在等待) 的 Automation 旁边的选项。

    
                                    访问批准/拒绝 Automation 页面
  4. 选择批准/拒绝

  5. 查看自动化的详细信息。

  6. 选择批准拒绝,键入评论 (可选),然后选择提交

输入

JSON

{ "NotificationArn":"arn:aws:sns:us-west-1:12345678901:Automation-ApprovalRequest", "Message":"Please approve this step of the Automation.", "MinRequiredApprovals":3, "Approvers":[ "IamUser1", "IamUser2", "arn:aws:iam::12345678901:user/IamUser3", "arn:aws:iam::12345678901:role/IamRole" ] }

YAML

NotificationArn: arn:aws:sns:us-west-1:12345678901:Automation-ApprovalRequest Message: Please approve this step of the Automation. MinRequiredApprovals: 3 Approvers: - IamUser1 - IamUser2 - arn:aws:iam::12345678901:user/IamUser3 - arn:aws:iam::12345678901:role/IamRole
NotificationArn

Automation 批准的 Amazon SNS 主题的 ARN。当您在 Automation 文档中指定 aws:approve 步骤时,Automation 将向此主题发送消息,以让委托人知道必须批准或拒绝 Automation 步骤。Amazon SNS 主题的标题必须使用前缀“Automation”。

类型:字符串

必需:否

Message

发送批准请求时要包含在 SNS 主题中的信息。最大消息长度为 4096 个字符。

类型:字符串

必需:否

MinRequiredApprovals

恢复 Automation 执行所需的批准的最大数。如果您未指定值,系统将默认为 1。此参数的值必须为正数。此参数的值不能超过 Approvers 参数定义的审批者数。

类型:整数

必需:否

Approvers

能够批准或拒绝操作的经 AWS 身份验证的委托人的列表。最大审批者数为 10。您可使用以下任意格式指定委托人:

  • AWS Identity and Access Management (IAM) 用户名称

  • IAM 用户 ARN

  • IAM 角色 ARN

  • IAM 担任角色用户 ARN

类型:StringList

必需:是

输出

ApprovalStatus

步骤的批准状态。状态可以为下列状态之一:已批准、已拒绝或正在等待。“正在等待”意味着 Automation 正在等待来自审批者的输入。

类型:字符串

ApproverDecisions

包括每位审批者的批准决定的 JSON 映射。

类型:MapList

aws:assertAwsResourceProperty

aws:assertAwsResourceProperty 操作可用于对特定 Automation 步骤的资源状态或事件状态进行断言。例如,您可以指定某个 Automation 步骤必须等待 Amazon EC2 实例启动。然后,它将使用 running 的 DesiredValue 属性调用 Amazon EC2 DescribeInstanceStatus API 操作。这可确保 Automation 工作流程等待一个正在运行的实例,并在实例确实正在运行时继续。

有关如何使用此操作的更多信息和示例,请参阅从 Systems Manager Automation 工作流程调用其他 AWS 服务

输入

输入由您选择的 API 操作定义。

JSON

{ "action": "aws:assertAwsResourceProperty", "inputs": { "Service":"The official namespace of the service", "Api":"The API action or method name", "API action inputs or parameters":"A value", "PropertySelector": "Response object", "DesiredValues": [ "Desired property values" ] } }

YAML

action: aws:assertAwsResourceProperty inputs: Service: The official namespace of the service Api: The API action or method name API action inputs or parameters: A value PropertySelector: Response object DesiredValues: - Desired property values
服务

包含要运行的 API 操作的 AWS 服务命名空间。例如,Systems Manager 的命名空间为 ssm。Amazon EC2 的命名空间为 ec2。您可以在 AWS CLI Command Reference可用服务部分中查看支持的 AWS 服务命名空间的列表。

类型:字符串

必需:是

API

要运行的 API 操作的名称。您可以在以下服务参考页面的左侧导航栏中选择服务来查看 API 操作(也称为方法)。在要调用的服务的 Client 部分中选择一种方法。例如,以下页面中列出了 Amazon Relational Database Service (Amazon RDS) 的所有 API 操作(方法):Amazon RDS 方法

类型:字符串

必需:是

API 操作输入

一个或多个 API 操作输入。您可以在以下服务参考页面的左侧导航栏中选择服务来查看可用的输入(也称为参数)。在要调用的服务的 Client 部分中选择一种方法。例如,Amazon RDS 方法页面中列出了 Amazon RDS 的所有方法。选择 describe_db_instances 方法并向下滚动以查看可用的参数,例如 DBInstanceIdentifierNameValues。使用以下格式指定多个输入。

JSON

"inputs":{ "Service":"The official namespace of the service", "Api":"The API action name", "API input 1":"A value", "API Input 2":"A value", "API Input 3":"A value" }

YAML

inputs: Service: The official namespace of the service Api: The API action name API input 1: A value API Input 2: A value API Input 3: A value

类型:由选择的 API 操作确定

必需:是

PropertySelector

响应对象中特定属性的 JSONPath。您可以在以下服务参考页面的左侧导航栏中选择服务来查看响应对象。在要调用的服务的 Client 部分中选择一种方法。例如,Amazon RDS 方法页面中列出了 Amazon RDS 的所有方法。选择 describe_db_instances 方法,然后向下滚动到 Response Structure (响应结构) 部分。DBInstances 被列为响应对象。

类型:Integer、Boolean、String、StringList、StringMap 或 MapList

必需:是

DesiredValues

要继续 Automation 工作流程的预期状态。如果指定布尔值,则必须使用大写字母,例如 True 或 False。

类型:可变

必需:是

aws:branch

aws:branch 操作让您能够创建一个动态 Automation 工作流程,该流程在一个步骤中评估不同选择,然后根据评估结果跳转到 Automation 文档中的不同步骤。

在为步骤指定 aws:branch 操作时,请指定工作流程必须评估的 ChoicesChoices 可以基于您在 Automation 文档的 Parameters 部分中指定的值,也可以基于上一步的输出生成的动态值。Automation 工作流程使用布尔表达式评估每个选择。如果第一个选择为真,则工作流程跳转到为此选择指定的步骤。如果第一个选择为假,则工作流程评估下一个选择。工作流程继续评估每个选择,直到遇到结果为真的选择。然后,工作流程跳转到为结果为真的选择指定的步骤。

如果所有选择都为假,则工作流程检查该步骤是否包含 default 值。默认值定义当所有选择都为假时工作流程应跳转到的步骤。如果没有为该步骤指定 default 值,则 Automation 工作流程处理文档中的下一个步骤。

aws:branch 操作通过组合使用 AndNotOr 运算符来支持复杂的选择评估。有关如何使用 aws:branch 的更多信息,包括使用不同运算符的示例文档和示例,请参阅使用条件分支创建动态 Automation 工作流程

输入

在步骤中指定一个或多个 ChoicesChoices 可以基于您在 Automation 文档的 Parameters 部分中指定的值,也可以基于上一步的输出生成的动态值。下面是一个评估参数的 YAML 示例。

mainSteps: - name: chooseOS action: aws:branch inputs: Choices: - NextStep: runWindowsCommand Variable: "{{Name of a parameter defined in the Parameters section. For example: OS_name}}" StringEquals: windows - NextStep: runLinuxCommand Variable: "{{Name of a parameter defined in the Parameters section. For example: OS_name}}" StringEquals: linux Default: sleep3

下面是一个评估上一步输出的 YAML 示例。

mainSteps: - name: chooseOS action: aws:branch inputs: Choices: - NextStep: runPowerShellCommand Variable: "{{Name of a response object. For example: GetInstance.platform}}" StringEquals: Windows - NextStep: runShellCommand Variable: "{{Name of a response object. For example: GetInstance.platform}}" StringEquals: Linux Default: sleep3
Choices

Automation 在确定下一个要处理的步骤时应评估的一个或多个表达式。通过使用布尔表达式对选择进行评估。每个选择都必须定义以下选项:

  • NextStep:当指定的选择为真时,Automation 文档要处理的下一个步骤。

  • Variable:指定在 Automation 文档的 Parameters 部分中定义的参数名称。或指定来自 Automation 文档中上一步的输出对象。有关为 aws:branch 创建变量的更多信息,请参阅关于创建输出变量

  • 运算:用于评估选择的标准。aws:branch 操作支持以下运算:

    字符串运算

    • 字符串等于

    • EqualsIgnoreCase

    • StartsWith

    • EndsWith

    • 包含

    数值运算

    • NumericEquals

    • NumericGreater

    • NumericLesser

    • NumericGreaterOrEquals

    • NumericLesser

    • NumericLesserOrEquals

    布尔运算

    • BooleanEquals

    重要

    创建 Automation 文档时,系统将验证文档中的每个操作。在尝试创建文档时,如果某个操作不受支持,系统会返回错误。

默认值

当所有 Choices 都为假时,工作流程应跳转到的步骤的名称。

类型:字符串

必需:否

注意

aws:branch 操作支持 AndOrNot 运算符。有关使用运算符的 aws:branch 的示例,请参阅使用条件分支创建动态 Automation 工作流程

aws:changeInstanceState

更改或断言实例的状态。

此操作可在断言模式下使用(不要运行 API 来更改状态,而应验证实例是否处于预期状态。) 要使用断言模式,请将 CheckStateOnly 参数设置为 true。当在 Windows 上运行 Sysprep 命令时,此模式很有用。该命令是一种可在后台长时间运行的异步命令。您可以确保在创建 AMI 之前停止实例。

输入

JSON

{ "name":"stopMyInstance", "action": "aws:changeInstanceState", "maxAttempts": 3, "timeoutSeconds": 3600, "onFailure": "Abort", "inputs": { "InstanceIds": ["i-1234567890abcdef0"], "CheckStateOnly": true, "DesiredState": "stopped" } }

YAML

name: stopMyInstance action: aws:changeInstanceState maxAttempts: 3 timeoutSeconds: 3600 onFailure: Abort inputs: InstanceIds: - i-1234567890abcdef0 CheckStateOnly: true DesiredState: stopped
InstanceIds

实例的 ID。

类型:StringList

必需:是

CheckStateOnly

如果为 false,请将实例状态设置为预期状态。如果为 true,请使用轮询断言预期状态。

默认值:false

类型:布尔值

必需:否

DesiredState

预期状态。设置为 running 时,此操作在完成之前等待 Amazon EC2 状态变为 Running、实例状态变为 OK、系统状态变为 OK

类型:字符串

有效值:running | stopped | terminated

必需:是

Force

如果设置此项,则强制停止实例。则该实例没有机会来刷新文件系统缓存或文件系统元数据。如果您使用此选项,则必须执行文件系统检查和修复流程。我们不建议将该选项用于 Windows 实例。

类型:布尔值

必需:否

AdditionalInfo

预留。

类型:字符串

必需:否

输出

aws:copyImage

将 AMI 从任何区域复制到当前区域中。此操作还可以对新的 AMI 进行加密。

输入

此操作支持大多数 CopyImage 参数。有关更多信息,请参阅 CopyImage

以下示例在首尔区域创建 AMI 的副本(SourceImageID: ami-0fe10819,SourceRegion: ap-northeast-2)。新的 AMI 将复制到您启动 Automation 操作的区域。将对复制的 AMI 进行加密,因为可选 Encrypted 标记将设置为 true

JSON

{ "name": "createEncryptedCopy", "action": "aws:copyImage", "maxAttempts": 3, "onFailure": "Abort", "inputs": { "SourceImageId": "ami-0fe10819", "SourceRegion": "ap-northeast-2", "ImageName": "Encrypted Copy of LAMP base AMI in ap-northeast-2", "Encrypted": true } }

YAML

name: createEncryptedCopy action: aws:copyImage maxAttempts: 3 onFailure: Abort inputs: SourceImageId: ami-0fe10819 SourceRegion: ap-northeast-2 ImageName: Encrypted Copy of LAMP base AMI in ap-northeast-2 Encrypted: true
SourceRegion

源 AMI 当前所在的区域。

类型:字符串

必需:是

SourceImageId

要从源区域复制的 AMI ID。

类型:字符串

必需:是

ImageName

新映像的名称。

类型:字符串

必需:是

ImageDescription

目标映像的描述。

类型:字符串

必需:否

加密

对目标 AMI 进行加密。

类型:布尔值

必需:否

KmsKeyId

在复制操作期间对映像快照进行加密时要使用的 AWS Key Management Service CMK 的完整 Amazon 资源名称 (ARN)。有关更多信息,请参阅 CopyImage

类型:字符串

必需:否

ClientToken

您为确保请求幂等性而提供的唯一、区分大小写的标识符。有关更多信息,请参阅 CopyImage

类型:字符串

必需:否

输出

ImageId

已复制映像的 ID。

ImageState

已复制映像的状态。

有效值:available | pending | failed

aws:createImage

从正在运行的或已停止的实例创建新的 AMI。

输入

此操作支持大多数 CreateImage 参数。有关更多信息,请参阅 CreateImage

JSON

{ "name": "createMyImage", "action": "aws:createImage", "maxAttempts": 3, "onFailure": "Abort", "inputs": { "InstanceId": "i-1234567890abcdef0", "ImageName": "AMI Created on{{global:DATE_TIME}}", "NoReboot": true, "ImageDescription": "My newly created AMI" } }

YAML

name: createMyImage action: aws:createImage maxAttempts: 3 onFailure: Abort inputs: InstanceId: i-1234567890abcdef0 ImageName: AMI Created on{{global:DATE_TIME}} NoReboot: true ImageDescription: My newly created AMI
实例 ID

实例的 ID。

类型:字符串

必需:是

ImageName

映像的名称。

类型:字符串

必需:是

ImageDescription

映像的描述。

类型:字符串

必需:否

NoReboot

一种布尔文本。

默认情况下,Amazon EC2 会尝试关闭并重新启动实例,然后再创建映像。如果 No Reboot (不重启) 选项设置为 true,则 Amazon EC2 在创建映像前不会关闭实例。如果使用此选项,则无法保证所创建映像上的文件系统的完整性。

如果您希望在从实例创建 AMI 映像后,该实例不运行,请先使用 aws:changeInstanceState 插件停止实例,然后在 NoReboot 选项设置为 true 的情况下使用此 aws:createImage 插件。

类型:布尔值

必需:否

BlockDeviceMappings

适用于实例的块储存设备。

类型:映射

必需:否

输出

ImageId

新建映像的 ID。

ImageState

作为字符串文本值提供的执行脚本。如果输入文本值,则必须为 Base64 编码。

必需:否

aws:createStack

从模板创建新 AWS CloudFormation 堆栈。

输入

JSON

{ "name": "makeStack", "action": "aws:createStack", "maxAttempts": 1, "onFailure": "Abort", "inputs": { "Capabilities": [ "CAPABILITY_IAM" ], "StackName": "myStack", "TemplateURL": "http://s3.amazonaws.com/mybucket/myStackTemplate", "TimeoutInMinutes": 5 } }

YAML

name: makeStack action: aws:createStack maxAttempts: 1 onFailure: Abort inputs: Capabilities: - CAPABILITY_IAM StackName: myStack TemplateURL: http://s3.amazonaws.com/mybucket/myStackTemplate TimeoutInMinutes: 5
功能

必须在 AWS CloudFormation 可以创建某些堆栈之前指定的值列表。一些堆栈模板中包含的资源会影响您的 AWS 账户中的权限。例如,创建新 AWS Identity and Access Management (IAM) 用户会影响您账户中的权限。对于这些堆栈,您必须通过指定此参数来明确确认它们的功能。

有效值仅为 CAPABILITY_IAMCAPABILITY_NAMED_IAM。以下资源要求您指定此参数。

如果您的堆栈模板包含这些资源,我们建议您查看与之关联的所有权限并在必要时编辑其权限。

如果包含 IAM 资源,您可以指定任意一个功能。如果包含具有自定义名称的 IAM 资源,则必须指定 CAPABILITY_NAMED_IAM。如果您不指定此参数,则此操作会返回 InsufficientCapabilities 错误。

有关更多信息,请参阅确认 AWS CloudFormation 模板中的 IAM 资源

类型:字符串的数组

有效值:CAPABILITY_IAM | CAPABILITY_NAMED_IAM

必需:否

ClientRequestToken

该 CreateStack 请求的唯一标识符。如果将此步骤中的 maxAttempts 设置为大于 1 的值,请指定此令牌。通过指定此令牌,AWS CloudFormation 知道您未在尝试使用相同的名称创建新堆栈。

类型:字符串

必需:否

长度约束:最小长度为 1。长度上限为 128。

模式:[a-zA-Z0-9][-a-zA-Z0-9]*

DisableRollback

如果堆栈创建失败,请设置为 true 以禁用堆栈回滚。

Conditional:您可以指定 DisableRollback 参数或 OnFailure 参数,但不能同时指定。

默认值:false

类型:布尔值

必需:否

NotificationARNs

用于发布堆栈相关事件的 Amazon SNS 主题 ARN。您可以使用 Amazon SNS 控制台 (https://console.amazonaws.cn/sns/v3/home) 找到 SNS 主题 ARN。

类型:字符串的数组

数组成员:最多 5 项。

必需:否

OnFailure

如果堆栈创建失败,确定要执行的操作。您必须指定 DO_NOTHINGROLLBACKDELETE

Conditional:您可以指定 OnFailure 参数或 DisableRollback 参数,但不能同时指定。

默认值:ROLLBACK

类型:字符串

有效值: DO_NOTHING | ROLLBACK | DELETE

必需:否

参数

指定堆栈输入参数的 Parameter 结构列表。有关更多信息,请参阅参数数据类型。

类型:参数对象数组

必需:否

ResourceTypes

您有权用于此创建堆栈操作的模板资源类型。例如,AWS::EC2::InstanceAWS::EC2::*Custom::MyCustomInstance。使用以下语法描述模板资源类型。

  • 对于所有 AWS 资源:

    AWS::*
  • 对于所有自定义资源:

    Custom::*
  • 对于指定自定义资源:

    Custom::logical_ID
  • 对于特定 AWS 服务的所有资源:

    AWS::service_name::*
  • 对于特定的 AWS 资源:

    AWS::service_name::resource_logical_ID

如果资源类型列表不包括您创建的资源,那么堆栈创建将会失败。默认情况下,AWS CloudFormation 对所有资源类型授予权限。IAM 将此参数用于 IAM 策略中 AWS CloudFormation 特定的条件键。有关更多信息,请参阅使用 AWS Identity and Access Management 控制访问权限

类型:字符串的数组

长度约束:最小长度为 1。长度上限为 256。

必需:否

RoleARN

AWS CloudFormation 创建堆栈所担任的 IAM 角色的 Amazon 资源名称 (ARN)。AWS CloudFormation 使用该角色的凭证以您的名义进行调用。AWS CloudFormation 针对堆栈的所有未来操作始终使用此角色。只要用户有权对堆栈进行操作,AWS CloudFormation 会使用此角色,即使用户无权传递它。确保该角色授予最少的权限。

如果您不指定值,则 AWS CloudFormation 会使用之前与堆栈关联的角色。如果角色不可用,则 AWS CloudFormation 会使用您的用户凭证生成的一个临时会话。

类型:字符串

长度约束:最小长度为 20。长度上限为 2048。

必需:否

StackName

与堆栈关联的名称。名称在您创建堆栈的区域中必须是唯一的。

注意

堆栈名称只能包含字母数字字符(区分大小写)和连字符。该名称必须以字母字符开头,且不得超过 128 个字符。

类型:字符串

必需:是

StackPolicyBody

包含堆栈策略正文的结构。有关更多信息,请参阅防止更新堆栈资源

Conditional:您可以指定 StackPolicyBody 参数或 StackPolicyURL 参数,但不能同时指定。

类型:字符串

长度约束:最小长度为 1。长度上限为 16384。

必需:否

StackPolicyURL

包含堆栈策略的文件的位置。URL 指向的策略必须位于与堆栈处于同一区域的 Amazon S3 存储桶中。堆栈策略允许的最大文件大小为 16 KB。

Conditional:您可以指定 StackPolicyBody 参数或 StackPolicyURL 参数,但不能同时指定。

类型:字符串

长度约束:最小长度为 1。长度上限为 1350。

必需:否

Tags

与此堆栈关联的键值对。AWS CloudFormation 还可以将这些标签传播到堆栈中创建的资源。您可以指定最多 10 个标签。

类型:标签对象数组

必需:否

TemplateBody

包含最小长度为 1 字节、最大长度为 51200 字节的模板正文的结构。有关更多信息,请参阅模板剖析

Conditional:您可以指定 TemplateBody 参数或 TemplateURL 参数,但不能同时指定。

类型:字符串

长度约束:最小长度为 1。

必需:否

TemplateURL

包含模板正文的文件的位置。URL 必须指向一个位于 Amazon S3 存储桶中的模板。模板允许的最大大小为 460800 字节。有关更多信息,请参阅模板剖析

Conditional:您可以指定 TemplateBody 参数或 TemplateURL 参数,但不能同时指定。

类型:字符串

长度约束:最小长度为 1。长度上限为 1024。

必需:否

TimeoutInMinutes

堆栈状态变为 CREATE_FAILED 前允许经过的时间。如果未设置 DisableRollback 或将其设置为 false,堆栈将被回滚。

类型:整数

有效范围:最小值为 1。

必需:否

输出

堆栈 ID

堆栈的唯一标识符。

类型:字符串

StackStatus

堆栈的当前状态。

类型:字符串

有效值:CREATE_IN_PROGRESS | CREATE_FAILED | CREATE_COMPLETE | ROLLBACK_IN_PROGRESS | ROLLBACK_FAILED | ROLLBACK_COMPLETE | DELETE_IN_PROGRESS | DELETE_FAILED | DELETE_COMPLETE | UPDATE_IN_PROGRESS | UPDATE_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_COMPLETE | UPDATE_ROLLBACK_IN_PROGRESS | UPDATE_ROLLBACK_FAILED | UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_ROLLBACK_COMPLETE | REVIEW_IN_PROGRESS

必需:是

StackStatusReason

与堆栈状态相关联的成功或失败消息。

类型:字符串

必需:否

有关更多信息,请参阅 CreateStack

安全考虑因素

您必须将以下策略分配给 IAM Automation 担任角色,才可以使用 aws:createStack 操作。有关担任角色的更多信息,请参阅任务 1:为 Automation 创建服务角色

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "sqs:*", "cloudformation:CreateStack", "cloudformation:DescribeStacks" ], "Resource":"*" } ] }

aws:createTags

为 Amazon EC2 实例或 Systems Manager 托管实例创建新标签。

输入

此操作支持大多数 EC2 CreateTags 和 SSM AddTagsToResource 参数。有关更多信息,请参阅 CreateTagsAddTagsToResource

以下示例说明如何为 AMI 和实例添加标签以作为特定部门的生产资源。

JSON

{ "name": "createTags", "action": "aws:createTags", "maxAttempts": 3, "onFailure": "Abort", "inputs": { "ResourceType": "EC2", "ResourceIds": [ "ami-9a3768fa", "i-02951acd5111a8169" ], "Tags": [ { "Key": "production", "Value": "" }, { "Key": "department", "Value": "devops" } ] } }

YAML

name: createTags action: aws:createTags maxAttempts: 3 onFailure: Abort inputs: ResourceType: EC2 ResourceIds: - ami-9a3768fa - i-02951acd5111a8169 Tags: - Key: production Value: '' - Key: department Value: devops
ResourceIds

要为其添加标签的资源的 ID。如果资源类型不是“EC2”,则此字段只能包含单个项目。

类型:字符串列表

必需:是

Tags

要与资源关联的标签。

类型:映射列表

必需:是

ResourceType

要为其添加标签的资源的类型。如果未提供,则使用默认值“EC2”。

类型:字符串

必需:否

有效值: EC2 | ManagedInstance | MaintenanceWindow | Parameter

输出

aws:deleteImage

删除指定映像和所有的相关快照。

输入

此操作仅支持一个参数。有关更多信息,请参阅 DeregisterImageDeleteSnapshot 的相关文档。

JSON

{ "name": "deleteMyImage", "action": "aws:deleteImage", "maxAttempts": 3, "timeoutSeconds": 180, "onFailure": "Abort", "inputs": { "ImageId": "ami-12345678" } }

YAML

name: deleteMyImage action: aws:deleteImage maxAttempts: 3 timeoutSeconds: 180 onFailure: Abort inputs: ImageId: ami-12345678
ImageId

要删除的映像的 ID。

类型:字符串

必需:是

输出

aws:deleteStack

删除 AWS CloudFormation 堆栈。

输入

JSON

{ "name":"deleteStack", "action":"aws:deleteStack", "maxAttempts":1, "onFailure":"Abort", "inputs":{ "StackName":"{{stackName}}" } }

YAML

name: deleteStack action: aws:deleteStack maxAttempts: 1 onFailure: Abort inputs: StackName: "{{stackName}}"
ClientRequestToken

DeleteStack 请求的唯一标识符。如果您计划重试请求以便 AWS CloudFormation 知道您未在尝试删除同名堆栈,请指定此令牌。您可以重试 DeleteStack 请求以验证 AWS CloudFormation 是否收到了它们。

类型:字符串

长度约束:最小长度为 1。长度上限为 128。

模式:[a-zA-Z][-a-zA-Z0-9]*

必需:否

RetainResources.member.N

此输入仅适用于处于 DELETE_FAILED 状态的堆栈。您想要保留的资源的逻辑资源 ID 的列表。在删除时,AWS CloudFormation 删除堆栈,但不删除保留资源。

如果无法删除某个资源 (例如非空 Amazon S3 存储桶),但需要删除堆栈,则保留资源会很有用。

类型:字符串的数组

必需:否

RoleARN

AWS CloudFormation 创建堆栈所担任的 IAM 角色的 Amazon 资源名称 (ARN)。AWS CloudFormation 使用该角色的凭证以您的名义进行调用。AWS CloudFormation 针对堆栈的所有未来操作始终使用此角色。只要用户有权对堆栈进行操作,AWS CloudFormation 会使用此角色,即使用户无权传递它。确保该角色授予最少的权限。

如果您不指定值,则 AWS CloudFormation 会使用之前与堆栈关联的角色。如果角色不可用,则 AWS CloudFormation 会使用您的用户凭证生成的一个临时会话。

类型:字符串

长度约束:最小长度为 20。长度上限为 2048。

必需:否

StackName

与堆栈关联的名称或唯一堆栈 ID。

类型:字符串

必需:是

安全考虑因素

您必须将以下策略分配给 IAM Automation 担任角色,才可以使用 aws:deleteStack 操作。有关担任角色的更多信息,请参阅任务 1:为 Automation 创建服务角色

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "sqs:*", "cloudformation:DeleteStack", "cloudformation:DescribeStacks" ], "Resource":"*" } ] }

aws:executeAutomation

通过调用辅助 Automation 文件运行辅助 Automation 工作流程。借助此操作,您可以为最常见的工作流程创建 Automation 文档,并在自动化执行期间引用这些文档。因为无需跨类似文档复制步骤,此操作可以简化您的 Automation 文档。

辅助自动化将在启动初始自动化的用户环境中运行。这意味着辅助自动化将使用与启动初次自动化的用户相同的 IAM 角色和用户账户。

重要

如果您在使用担任角色 (使用 iam:passRole 策略的角色) 的辅助自动化中指定参数,则启动主要自动化的用户或角色必须具有在辅助自动化中传递指定的担任角色的权限。有关为自动化设置担任角色的更多信息,请参阅方法 2:使用 IAM 为 Automation 配置角色

输入

JSON

{ "name":"Secondary_Automation_Workflow", "action":"aws:executeAutomation", "maxAttempts":3, "timeoutSeconds":3600, "onFailure":"Abort", "inputs":{ "DocumentName":"secondaryWorkflow", "RuntimeParameters":{ "instanceIds":[ "i-1234567890abcdef0" ] } } }

YAML

name: Secondary_Automation_Workflow action: aws:executeAutomation maxAttempts: 3 timeoutSeconds: 3600 onFailure: Abort inputs: DocumentName: secondaryWorkflow RuntimeParameters: instanceIds: - i-1234567890abcdef0
DocumentName

要在步骤中运行的辅助 Automation 文档的名称。该文档必须属于与主要 Automation 文档相同的 AWS 账户。

类型:字符串

必需:是

DocumentVersion

要在步骤中运行的辅助 Automation 文档的版本。如果未指定,自动化将运行默认文档版本。

类型:字符串

必需:是

RuntimeParameters

辅助文档执行所需的参数。映射使用以下格式:{"parameter1" : ["value1"], "parameter2" : ["value2"] }

类型:映射

必需:否

输出

输出

辅助执行生成的输出。您可以使用以下格式引用输出:Secondary_Automation_Step_Name.Output

类型:StringList

ExecutionId

辅助执行的执行 ID。

类型:字符串

Status

辅助执行的状态。

类型:字符串

aws:executeAwsApi

调用并运行 AWS API 操作。支持大多数 API 操作,但某些 API 操作未经过测试。例如,支持以下 API 操作:CreateImage删除存储桶RebootDBInstanceCreateGroups 等。不支持流式处理 API 操作,例如 Get Object 操作。有关如何使用此操作的更多信息和示例,请参阅从 Systems Manager Automation 工作流程调用其他 AWS 服务

输入

输入由您选择的 API 操作定义。

JSON

{ "action":"aws:executeAwsApi", "inputs":{ "Service":"The official namespace of the service", "Api":"The API action or method name", "API action inputs or parameters":"A value" }, "outputs":[ These are user-specified outputs { "Name":"The name for a user-specified output key", "Selector":"A response object specified by using JSONPath format", "Type":"The data type" } ] }

YAML

action: aws:executeAwsApi inputs: Service: The official namespace of the service Api: The API action or method name API action inputs or parameters: A value outputs: # These are user-specified outputs - Name: The name for a user-specified output key Selector: A response object specified by using jsonpath format Type: The data type
服务

包含要运行的 API 操作的 AWS 服务命名空间。例如,Systems Manager 的命名空间为 ssm。Amazon EC2 的命名空间为 ec2。您可以在 AWS CLI Command Reference可用服务部分中查看支持的 AWS 服务命名空间的列表。

类型:字符串

必需:是

API

要运行的 API 操作的名称。您可以在以下服务参考页面的左侧导航栏中选择服务来查看 API 操作(也称为方法)。在要调用的服务的 Client 部分中选择一种方法。例如,Amazon RDS 方法页面中列出了 Amazon RDS 的所有 API 操作(方法)。

类型:字符串

必需:是

API 操作输入

一个或多个 API 操作输入。您可以在以下服务参考页面的左侧导航栏中选择服务来查看可用的输入(也称为参数)。在要调用的服务的 Client 部分中选择一种方法。例如,Amazon RDS 方法页面中列出了 Amazon RDS 的所有方法。选择 describe_db_instances 方法并向下滚动以查看可用的参数,例如 DBInstanceIdentifierNameValues

JSON

"inputs":{ "Service":"The official namespace of the service", "Api":"The API action name", "API input 1":"A value", "API Input 2":"A value", "API Input 3":"A value" }

YAML

inputs: Service: The official namespace of the service Api: The API action name API input 1: A value API Input 2: A value API Input 3: A value

类型:由选择的 API 操作确定

必需:是

名称

输出的名称。

类型:字符串

必需:是

Selector

响应对象中特定属性的 JSONPath。您可以在以下服务参考页面的左侧导航栏中选择服务来查看响应对象。在要调用的服务的 Client 部分中选择一种方法。例如,Amazon RDS 方法页面中列出了 Amazon RDS 的所有方法。选择 describe_db_instances 方法,然后向下滚动到 Response Structure (响应结构) 部分。DBInstances 被列为响应对象。

类型:Integer、Boolean、String、StringList、StringMap 或 MapList

必需:是

Type

响应元素的数据类型。

类型:可变

必需:是

aws:executeStateMachine

运行 AWS Step Functions 状态机。

输入

此操作支持 Step Functions StartExecution API 操作的大多数参数。

JSON

{ "name": "executeTheStateMachine", "action": "aws:executeStateMachine", "inputs": { "stateMachineArn": "StateMachine_ARN", "input": "{\"parameters\":\"values\"}", "name": "name" } }

YAML

name: executeTheStateMachine action: aws:executeStateMachine inputs: stateMachineArn: StateMachine_ARN input: '{"parameters":"values"}' name: name
stateMachineArn

Step Functions 状态机的 ARN。

类型:字符串

必需:是

name

执行的名称。

类型:字符串

必需:否

input

包含执行的 JSON 输入数据的字符串。

类型:字符串

必需:否

aws:invokeLambdaFunction

调用指定的 Lambda 函数。

输入

此操作支持 Lambda 服务的大多数调用参数。有关更多信息,请参阅调用

JSON

{ "name": "invokeMyLambdaFunction", "action": "aws:invokeLambdaFunction", "maxAttempts": 3, "timeoutSeconds": 120, "onFailure": "Abort", "inputs": { "FunctionName": "MyLambdaFunction" } }

YAML

name: invokeMyLambdaFunction action: aws:invokeLambdaFunction maxAttempts: 3 timeoutSeconds: 120 onFailure: Abort inputs: FunctionName: MyLambdaFunction
FunctionName

Lambda 函数的名称。此函数必须存在。

类型:字符串

必需:是

Qualifier

函数版本或别名。

类型:字符串

必需:否

InvocationType

调用类型。默认为 RequestResponse

类型:字符串

有效值:Event | RequestResponse | DryRun

必需:否

LogType

如果是 Tail,调用类型必须为 RequestResponse。AWS Lambda 返回 Lambda 函数生成的采用 base64 编码的最后 4 KB 日志数据。

类型:字符串

有效值:None | Tail

必需:否

ClientContext

特定于客户端的信息。

必需:否

Payload

您的 Lambda 函数的 JSON 输入。

必需:否

输出

StatusCode

函数执行状态代码。

FunctionError

指示运行 Lambda 函数时是否出现错误。如果出现错误,则此字段将显示 HandledUnhandledHandled 错误由函数报告。Unhandled 错误由 AWS Lambda 检测和报告。

LogResult

Lambda 函数调用的 base64 编码日志。只有在调用类型为 RequestResponse 并且请求了日志时,才存在日志。

Payload

Lambda 函数返回的对象的 JSON 表示形式。只有在调用类型为 RequestResponse 时才存在有效负载。

aws:pause

此操作会暂停自动化执行。暂停后的执行状态为正在等待。要继续 Automation 执行,请使用信号类型为“恢复”的 SendAutomationSignal API 操作。

输入

输入如下。

JSON

{ "name": "pauseThis", "action": "aws:pause", "inputs": {} }

YAML

name: pauseThis action: aws:pause inputs: {}

输出

aws:runCommand

运行指定的命令。

注意

Automation 仅支持一个 Run Command 操作的输出。一个文档可以包括多个 Run Command 操作和插件,但一次仅支持对一个操作和插件输出。

输入

此操作支持大多数 send command 参数。有关更多信息,请参阅 SendCommand

JSON

{ "name": "installPowerShellModule", "action": "aws:runCommand", "inputs": { "DocumentName": "AWS-InstallPowerShellModule", "InstanceIds": ["i-1234567890abcdef0"], "Parameters": { "source": "https://my-s3-url.com/MyModule.zip ", "sourceHash": "ASDFWER12321WRW" } } }

YAML

name: installPowerShellModule action: aws:runCommand inputs: DocumentName: AWS-InstallPowerShellModule InstanceIds: - i-1234567890abcdef0 Parameters: source: 'https://my-s3-url.com/MyModule.zip ' sourceHash: ASDFWER12321WRW
DocumentName

Run Command 文档的名称。

类型:字符串

必需:是

InstanceIds

要在其中运行命令的实例 ID。您可以指定最多 50 个 ID。如果不想指定每个实例 ID,可以使用 Targets 参数将命令发送到一组实例。Targets 参数接受 Amazon EC2 标签。有关如何使用 Targets 参数的更多信息,请参阅使用目标和速率控制将命令发送到队列

类型:StringList

必需:否(如果未指定 InstanceIds,则必须指定 Targets 参数。)

目标

一组搜索条件,使用您指定的 Key、Value 组合来设置实例目标。如果未在调用中提供一个或多个实例 ID,则 Targets 是必需的。有关如何使用 Targets 参数的更多信息,请参阅使用目标和速率控制将命令发送到队列

类型:MapList(列表中 map 的架构必须与对象匹配。有关信息,请参阅 AWS Systems Manager API Reference 中的 Target。)

必需:否(如果未指定 Targets,则必须指定 InstanceIds 参数。)

以下是一个示例:

{ "name": "installPowerShellModule", "action": "aws:runCommand", "inputs": { "DocumentName": "AWS-InstallPowerShellModule", "Targets": [ { "Key": "tag:Stage", "Values": [ "Gamma", "Beta" ] }, { "Key": "tag-key", "Values": [ "Suite" ] } ] "Parameters": { "source": "https://my-s3-url.com/MyModule.zip ", "sourceHash": "ASDFWER12321WRW" } } }
Parameters

文档中指定的必需参数和可选参数。

类型:映射

必需:否

CloudWatchOutputConfig

用于将命令输出发送到 Amazon CloudWatch Logs 的配置选项。有关将命令输出发送到 CloudWatch Logs 的更多信息,请参阅为 Run Command 配置 Amazon CloudWatch Logs

类型:StringMap(map 的架构必须与对象匹配。有关更多信息,请参阅 AWS Systems Manager API Reference 中的 CloudWatchOutputConfig。)

必需:否

以下是一个示例:

{ "name": "installPowerShellModule", "action": "aws:runCommand", "inputs": { "DocumentName": "AWS-InstallPowerShellModule", "InstanceIds": ["i-1234567890abcdef0"], "Parameters": { "source": "https://my-s3-url.com/MyModule.zip ", "sourceHash": "ASDFWER12321WRW" }, "CloudWatchOutputConfig" : { "CloudWatchLogGroupName": "CloudWatchGroupForSSMAutomationService", "CloudWatchOutputEnabled": true } } }
Comment

有关此命令的用户定义的信息。

类型:字符串

必需:否

DocumentHash

文档的哈希。

类型:字符串

必需:否

DocumentHashType

哈希的类型。

类型:字符串

有效值:Sha256 | Sha1

必需:否

NotificationConfig

用于发送通知的配置。

必需:否

OutputS3BucketName

命令执行响应的 S3 存储桶的名称。

类型:字符串

必需:否

OutputS3KeyPrefix

前缀。

类型:字符串

必需:否

ServiceRoleArn

IAM 角色的 ARN。

类型:字符串

必需:否

TimeoutSeconds

run-command 超时值 (以秒为单位)。

类型:整数

必需:否

输出

CommandId

命令的 ID。

Status

命令的状态。

ResponseCode

命令的响应代码。

输出

命令的输出。

aws:runInstances

启动新实例。

输入

此操作支持大多数 API 参数。有关更多信息,请参阅 RunInstances API 文档。

JSON

{ "name":"launchInstance", "action":"aws:runInstances", "maxAttempts":3, "timeoutSeconds":1200, "onFailure":"Abort", "inputs":{ "ImageId":"ami-12345678", "InstanceType":"t2.micro", "MinInstanceCount":1, "MaxInstanceCount":1, "IamInstanceProfileName":"myRunCmdRole", "TagSpecifications":[ { "ResourceType":"instance", "Tags":[ { "Key":"LaunchedBy", "Value":"SSMAutomation" }, { "Key":"Category", "Value":"HighAvailabilityFleetHost" } ] } ] } }

YAML

name: launchInstance action: aws:runInstances maxAttempts: 3 timeoutSeconds: 1200 onFailure: Abort inputs: ImageId: ami-12345678 InstanceType: t2.micro MinInstanceCount: 1 MaxInstanceCount: 1 IamInstanceProfileName: myRunCmdRole TagSpecifications: - ResourceType: instance Tags: - Key: LaunchedBy Value: SSMAutomation - Key: Category Value: HighAvailabilityFleetHost
ImageId

Amazon 系统映像 (AMI) 的 ID。

类型:字符串

必需:是

InstanceType

实例的类型。

注意

如果未提供实例类型值,则使用 m1.small 实例类型。

类型:字符串

必需:否

MinInstanceCount

要启动的实例的最小数量。

类型:字符串

必需:否

MaxInstanceCount

要启动的实例的最大数量。

类型:字符串

必需:否

AdditionalInfo

预留。

类型:字符串

必需:否

BlockDeviceMappings

适用于实例的块储存设备。

类型:MapList

必需:否

ClientToken

用于确保请求的幂等性的标识符。

类型:字符串

必需:否

DisableApiTermination

启用或禁用实例 API 终止

类型:布尔值

必需:否

EbsOptimized

启用或禁用 EBS 优化。

类型:布尔值

必需:否

IamInstanceProfileArn

实例的 IAM 实例配置文件的 ARN。

类型:字符串

必需:否

IamInstanceProfileName

实例的 IAM 实例配置文件的名称。

类型:字符串

必需:否

InstanceInitiatedShutdownBehavior

指示此实例是否在系统关闭时停止或终止。

类型:字符串

必需:否

KernelId

内核的 ID。

类型:字符串

必需:否

KeyName

密钥对的名称。

类型:字符串

必需:否

MaxInstanceCount

搜索服务时可筛选的实例数量上限。

类型:整数

必需:否

MinInstanceCount

搜索服务时可筛选的实例数量下限。

类型:整数

必需:否

监控

启动或禁用详细监控。

类型:布尔值

必需:否

NetworkInterfaces

网络接口。

类型:MapList

必需:否

Placement

实例的置放。

类型:StringMap

必需:否

PrivateIpAddress

主要 IPv4 地址。

类型:字符串

必需:否

RamdiskId

RAM 磁盘的 ID。

类型:字符串

必需:否

SecurityGroupIds

实例的安全组的 ID。

类型:StringList

必需:否

SecurityGroups

实例的安全组的名称。

类型:StringList

必需:否

SubnetId

子网 ID。

类型:字符串

必需:否

TagSpecifications

在启动期间应用于资源的标签。您只能在启动时标记实例和卷。指定的标签将应用于在启动期间创建的所有实例或卷。要在启动实例后对其进行标记,请使用 aws:createTags 操作。

类型:MapList(有关更多信息,请参阅 TagSpecification。)

必需:否

UserData

作为字符串文本值提供的执行脚本。如果输入文本值,则必须为 Base64 编码。

类型:字符串

必需:否

输出

InstanceIds

实例的 ID。

aws:sleep

将 Automation 执行时间延迟指定的时间。此操作使用国际标准化组织 (ISO) 8601 日期和时间格式。有关此日期和时间格式的更多信息,请参阅 ISO 8601

输入

可将执行时间延迟指定的时间。

JSON

{ "name":"sleep", "action":"aws:sleep", "inputs":{ "Duration":"PT10M" } }

YAML

name: sleep action: aws:sleep inputs: Duration: PT10M

还可以将执行时间延迟到指定日期和时间。如果指定日期和时间已过,操作将立即执行。

JSON

{ "name": "sleep", "action": "aws:sleep", "inputs": { "Timestamp": "2020-01-01T01:00:00Z" } }

YAML

name: sleep action: aws:sleep inputs: Timestamp: '2020-01-01T01:00:00Z'

注意

Automation 当前支持的最大延迟为 604800 秒 (7 天)。

Duration

ISO 8601 持续时间。您不能指定负数持续时间。

类型:字符串

必需:否

时间戳

ISO 8601 时间戳。如果您没有为此参数指定值,那么必须为 Duration 参数指定一个值。

类型:字符串

必需:否

输出

aws:waitForAwsResourceProperty

aws:waitForAwsResourceProperty 操作让 Automation 工作流程等待特定的资源状态或事件状态,然后才继续工作流程。有关如何使用此操作的更多信息和示例,请参阅从 Systems Manager Automation 工作流程调用其他 AWS 服务

输入

输入由您选择的 API 操作定义。

JSON

{ "action": "aws:waitForAwsResourceProperty", "inputs": { "Service":"The official namespace of the service", "Api":"The API action or method name", "API action inputs or parameters":"A value", "PropertySelector": "Response object", "DesiredValues": [ "Desired property value" ] } }

YAML

action: aws:waitForAwsResourceProperty inputs: Service: The official namespace of the service Api: The API action or method name API action inputs or parameters: A value PropertySelector: Response object DesiredValues: - Desired property value
服务

包含要运行的 API 操作的 AWS 服务命名空间。例如,Systems Manager 的命名空间为 ssm。Amazon EC2 的命名空间为 ec2。您可以在 AWS CLI Command Reference可用服务部分中查看支持的 AWS 服务命名空间的列表。

类型:字符串

必需:是

API

要运行的 API 操作的名称。您可以在以下服务参考页面的左侧导航栏中选择服务来查看 API 操作(也称为方法)。在要调用的服务的 Client 部分中选择一种方法。例如,Amazon RDS 方法页面中列出了 Amazon RDS 的所有 API 操作(方法)。

类型:字符串

必需:是

API 操作输入

一个或多个 API 操作输入。您可以在以下服务参考页面的左侧导航栏中选择服务来查看可用的输入(也称为参数)。在要调用的服务的 Client 部分中选择一种方法。例如,Amazon RDS 方法页面中列出了 Amazon RDS 的所有方法。选择 describe_db_instances 方法并向下滚动以查看可用的参数,例如 DBInstanceIdentifierNameValues

JSON

"inputs":{ "Service":"The official namespace of the service", "Api":"The API action name", "API input 1":"A value", "API Input 2":"A value", "API Input 3":"A value" }

YAML

inputs: Service: The official namespace of the service Api: The API action name API input 1: A value API Input 2: A value API Input 3: A value

类型:由选择的 API 操作确定

必需:是

PropertySelector

响应对象中特定属性的 JSONPath。您可以在以下服务参考页面的左侧导航栏中选择服务来查看响应对象。在要调用的服务的 Client 部分中选择一种方法。例如,Amazon RDS 方法页面中列出了 Amazon RDS 的所有方法。选择 describe_db_instances 方法,然后向下滚动到 Response Structure (响应结构) 部分。DBInstances 被列为响应对象。

类型:Integer、Boolean、String、StringList、StringMap 或 MapList

必需:是

DesiredValues

要继续 Automation 工作流程的预期状态。

类型:可变

必需:是