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

手动运行 Automation 工作流程

以下过程介绍了如何使用 AWS Systems Manager 控制台、AWS Command Line Interface (AWS CLI) 和 AWS Tools for Windows PowerShell 通过手动执行模式运行 Systems Manager Automation 工作流程。通过使用手动执行模式,Automation 工作流程在正在等待状态下启动,并在两个步骤之间在正在等待状态下暂停。这允许您控制工作流程何时继续,如果您需要先查看某个步骤的结果,然后再继续,这会很有用。

工作流程在当前 AWS Identity and Access Management (IAM) 用户的环境中运行。这意味着只要您有权运行 Automation 文档和此文档调用的任何操作,就无需配置其他 IAM 权限。如果您在 IAM 中拥有管理员权限,则已有权运行此 Automation 工作流程。

注意

有关如何运行使用 IAM 服务角色或更高级的委托管理形式的 Automation 工作流程的信息,请参阅使用不同的安全模型运行 Automation 工作流程

分步运行 Automation 工作流程(控制台)

以下过程介绍了如何使用 Systems Manager 控制台分步手动运行 Automation 工作流程。

分步运行 Automation 工作流程

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

  2. 在导航窗格中,选择 Automation (自动化),然后选择 Execute automation (执行自动化)

  3. Automation document (自动化文档) 列表中,选择一个文档。在 Document categories (文档类别) 窗格中选择一个或多个选项,以根据其用途筛选 SSM 文档。要查看您拥有的文档,请选择 Owned by me (我拥有的) 选项卡。要查看与您的账户共享的文档,请选择 Shared with me (与我共享) 选项卡。要查看所有文档,请选择 All documents (所有文档) 选项卡。

    注意

    可以通过选择文档名称来查看有关文档的信息。

  4. Document details (文档详细信息) 部分中,验证文档版本已设置为要运行的版本。系统包括以下版本选项:

    • Default version at runtime (运行时的默认版本):如果定期更新 Automation 文档并指定新的默认版本,请选择此选项。

    • 运行时的最新版本:如果定期更新自动化文档,并且需要运行最新更新版本,请选择此选项。

    • 1 (默认):选择此选项可运行文档的第一个版本,这是默认设置。

  5. 选择 Next

  6. Execution Mode (执行模式) 部分中,选择 Manual execution (手动执行)

  7. Input parameters (输入参数) 部分中,指定所需的输入。(可选)您可以从 AutomationAssumeRole 列表中选择一个 IAM 服务角色。

  8. 选择 Execute (执行)

  9. 在准备好开始执行 Automation 工作流程的第一步时,选择执行此步骤。Automation 工作流程执行步骤 1,并在运行您在该过程的步骤 3 中选择的 Automation 文档中指定的任何后续步骤之前暂停。如果文档具有多个步骤,则必须为每个步骤选择 Execute this step (执行此步骤) 以让工作流程继续。

    注意

    控制台将显示 Automation 执行的状态。如果 Automation 无法运行某个步骤,请参阅排除 Systems Manager Automation 的故障

  10. 在完成 Automation 文档中指定的所有步骤后,选择完成并查看结果以完成 Automation 工作流程并查看结果。

分步运行 Automation 工作流程(命令行)

以下过程介绍了如何使用 AWS CLI(在 Linux 或 Windows 上)或 AWS Tools for PowerShell 分步手动运行 Automation 工作流程。

分步运行 Automation 工作流程

  1. 安装并配置 AWS CLI 或 AWS Tools for PowerShell(如果尚未执行该操作)。

    有关更多信息,请参阅 安装或升级 AWS CLIInstall or Upgrade the AWS Tools for PowerShell

  2. 运行以下命令以启动一个手动 Automation 工作流程。

    LinuxWindowsPowerShell
    Linux
    aws ssm start-automation-execution \ --document-name DocumentName \ --mode Interactive \ --parameters ParametersRequiredByDocument
    Windows
    aws ssm start-automation-execution ^ --document-name DocumentName ^ --mode Interactive ^ --parameters ParametersRequiredByDocument
    PowerShell
    Start-SSMAutomationExecution ` -DocumentName DocumentName ` -Mode Interactive ` -Parameter ParametersRequiredByDocument

    以下是使用 AWS-RestartEC2Instance 文档重新启动指定 EC2 实例的示例。

    LinuxWindowsPowerShell
    Linux
    aws ssm start-automation-execution \ --document-name "AWS-RestartEC2Instance" \ --mode Interactive \ --parameters "InstanceId=i-1234567890abcdef0"
    Windows
    aws ssm start-automation-execution ^ --document-name "AWS-RestartEC2Instance" ^ --mode Interactive ^ --parameters "InstanceId=i-1234567890abcdef0"
    PowerShell
    Start-SSMAutomationExecution ` -DocumentName AWS-RestartEC2Instance ` -Mode Interactive -Parameter @{"InstanceId"="i-1234567890abcdef0"}

    系统将返回类似于以下内容的信息。

    LinuxWindowsPowerShell
    Linux
    {
        "AutomationExecutionId": "ba9cd881-1b36-4d31-a698-0123456789ab"
    }
    Windows
    {
        "AutomationExecutionId": "ba9cd881-1b36-4d31-a698-0123456789ab"
    }
    PowerShell
    27ba8174-59ae-4e13-8626-0123456789ab
  3. 在准备好开始执行 Automation 工作流程的第一步时,运行以下命令。Automation 工作流程执行步骤 1,并在运行您在该过程的步骤 1 中选择的 Automation 文档中指定的任何后续步骤之前暂停。如果文档具有多个步骤,则必须为每个步骤运行以下命令以使工作流程继续执行。

    LinuxWindowsPowerShell
    Linux
    aws ssm send-automation-signal \ --automation-execution-id ba9cd881-1b36-4d31-a698-0123456789ab \ --signal-type StartStep \ --payload StepName="stopInstances"
    Windows
    aws ssm send-automation-signal ^ --automation-execution-id ba9cd881-1b36-4d31-a698-0123456789ab ^ --signal-type StartStep ^ --payload StepName="stopInstances"
    PowerShell
    Send-SSMAutomationSignal ` -AutomationExecutionId 27ba8174-59ae-4e13-8626-0123456789ab ` -SignalType StartStep -Payload @{"StepName"="stopInstances"}

    如果此命令成功,则无任何输出。

  4. 运行以下命令以检索 Automation 工作流程中的每个步骤执行的状态。

    LinuxWindowsPowerShell
    Linux
    aws ssm describe-automation-step-executions \ --automation-execution-id ba9cd881-1b36-4d31-a698-0123456789ab
    Windows
    aws ssm describe-automation-step-executions ^ --automation-execution-id ba9cd881-1b36-4d31-a698-0123456789ab
    PowerShell
    Get-SSMAutomationStepExecution ` -AutomationExecutionId 27ba8174-59ae-4e13-8626-e177cdc11686

    系统将返回类似于以下内容的信息。

    LinuxWindowsPowerShell
    Linux
    {
        "StepExecutions": [
            {
                "StepName": "stopInstances",
                "Action": "aws:changeInstanceState",
                "ExecutionStartTime": 1557167178.42,
                "ExecutionEndTime": 1557167220.617,
                "StepStatus": "Success",
                "Inputs": {
                    "DesiredState": "\"stopped\"",
                    "InstanceIds": "[\"i-1234567890abcdef0\"]"
                },
                "Outputs": {
                    "InstanceStates": [
                        "stopped"
                    ]
                },
                "StepExecutionId": "654243ba-71e3-4771-b04f-0123456789ab",
                "OverriddenParameters": {},
                "ValidNextSteps": [
                    "startInstances"
                ]
            },
            {
                "StepName": "startInstances",
                "Action": "aws:changeInstanceState",
                "ExecutionStartTime": 1557167273.754,
                "ExecutionEndTime": 1557167480.73,
                "StepStatus": "Success",
                "Inputs": {
                    "DesiredState": "\"running\"",
                    "InstanceIds": "[\"i-1234567890abcdef0\"]"
                },
                "Outputs": {
                    "InstanceStates": [
                        "running"
                    ]
                },
                "StepExecutionId": "8a4a1e0d-dc3e-4039-a599-0123456789ab",
                "OverriddenParameters": {}
            }
        ]
    }
    Windows
    {
        "StepExecutions": [
            {
                "StepName": "stopInstances",
                "Action": "aws:changeInstanceState",
                "ExecutionStartTime": 1557167178.42,
                "ExecutionEndTime": 1557167220.617,
                "StepStatus": "Success",
                "Inputs": {
                    "DesiredState": "\"stopped\"",
                    "InstanceIds": "[\"i-1234567890abcdef0\"]"
                },
                "Outputs": {
                    "InstanceStates": [
                        "stopped"
                    ]
                },
                "StepExecutionId": "654243ba-71e3-4771-b04f-0123456789ab",
                "OverriddenParameters": {},
                "ValidNextSteps": [
                    "startInstances"
                ]
            },
            {
                "StepName": "startInstances",
                "Action": "aws:changeInstanceState",
                "ExecutionStartTime": 1557167273.754,
                "ExecutionEndTime": 1557167480.73,
                "StepStatus": "Success",
                "Inputs": {
                    "DesiredState": "\"running\"",
                    "InstanceIds": "[\"i-1234567890abcdef0\"]"
                },
                "Outputs": {
                    "InstanceStates": [
                        "running"
                    ]
                },
                "StepExecutionId": "8a4a1e0d-dc3e-4039-a599-0123456789ab",
                "OverriddenParameters": {}
            }
        ]
    }
    PowerShell
    Action               : aws:changeInstanceState
    ExecutionEndTime     : 5/6/2019 19:45:46
    ExecutionStartTime   : 5/6/2019 19:45:03
    FailureDetails       : 
    FailureMessage       : 
    Inputs               : {[DesiredState, "stopped"], [InstanceIds, ["i-1234567890abcdef0"]]}
    IsCritical           : False
    IsEnd                : False
    MaxAttempts          : 0
    NextStep             : 
    OnFailure            : 
    Outputs              : {[InstanceStates, Amazon.Runtime.Internal.Util.AlwaysSendList`1[System.String]]}
    OverriddenParameters : {}
    Response             : 
    ResponseCode         : 
    StepExecutionId      : 8fcc9641-24b7-40b3-a9be-0123456789ab
    StepName             : stopInstances
    StepStatus           : Success
    TimeoutSeconds       : 0
    ValidNextSteps       : {startInstances}
  5. 在完成所选的 Automation 文档中指定的所有步骤后,运行以下命令以完成 Automation 工作流程。

    LinuxWindowsPowerShell
    Linux
    aws ssm stop-automation-execution \ --automation-execution-id ba9cd881-1b36-4d31-a698-0123456789ab \ --type Complete
    Windows
    aws ssm stop-automation-execution ^ --automation-execution-id ba9cd881-1b36-4d31-a698-0123456789ab ^ --type Complete
    PowerShell
    Stop-SSMAutomationExecution ` -AutomationExecutionId 27ba8174-59ae-4e13-8626-0123456789ab ` -Type Complete

    如果此命令成功,则无任何输出。