aws:approve – 暂停自动化以进行手动批准 - Amazon Systems Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

aws:approve – 暂停自动化以进行手动批准

临时暂停自动化,直至指定委托人批准或拒绝操作。在达到所需批准数后,自动化执行将恢复。您可以将批准步骤插入到运行手册的 mainSteps 部分。

注意

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

在以下示例中,aws:approve 操作临时暂停自动化,直至一个审批者接受或拒绝自动化。获得批准后,自动化将运行一个简单的 PowerShell 命令。

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
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-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. 打开 Amazon Systems Manager 控制台,网址为 https://console.aws.amazon.com/systems-manager/

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

    –或者–

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

  3. 选择状态为正在等待的自动化旁边的选项。

    
                        访问批准/拒绝自动化页面
  4. 选择批准/拒绝

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

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

输入示例

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
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" ] }
NotificationArn

用于批准自动化的 Amazon Resource Name (即 ARN,属于 Amazon Simple Notification Service (Amazon SNS)) 的主题。当您在运行手册中指定 aws:approve 步骤时,自动化 将向此主题发送消息,以让委托人知道必须批准或拒绝自动化步骤。Amazon SNS 主题的标题必须使用前缀“自动化”。

类型:字符串

必需:否

消息

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

类型:字符串

必需:否

MinRequiredApprovals

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

类型:整数

必需:否

Approvers

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

  • 一个用户名称

  • 用户 ARN

  • IAM 角色 ARN

  • IAM 担任角色 ARN

类型: StringList

必需:是

输出

ApprovalStatus

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

类型:字符串

ApproverDecisions

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

类型: MapList