手动运行自动化 - Amazon Web Services Systems Manager
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

手动运行自动化

以下过程介绍如何使用Amazon Web Services Systems Manager控制台和Amazon命令行界面 (AmazonCLI)以使用手动执行模式运行自动化。通过使用手动执行模式,自动化从正在等待状态和暂停正在等待状态。这允许您控制自动化何时继续,如果您需要先查看某个步骤的结果,然后再继续,这会很有用。

自动化将在当前 AWS Identity and Access Management (IAM) 用户的上下文中运行。这意味着,只要您有权使用 Runbook 和 Runbook 调用的任何操作,您就不需要配置额外的 IAM 权限。如果您在 IAM 中拥有管理员权限,则已有权运行此 Automation。

注意

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

分步运行自动化(控制台)

以下过程介绍了如何使用 Systems Manager 控制台分步手动运行自动化。

分步运行 Automation

  1. 打开Amazon Web Services Systems Manager控制台https://console.aws.amazon.com/systems-manager/

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

  3. 自动化文档列表中,选择运行手册。选择一个或多个选项,在文档类别窗格可根据 SSM 文档的用途过滤它们。要查看您拥有的 Runbook,请选择我拥有的选项卡 要查看与您的帐户共享的 Runbook,请选择与我共享选项卡 要查看所有运行手册,请选择所有文档选项卡

    注意

    可以通过选择一个运行手册名称来查看有关该手册的信息。

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

    • 运行时的默认版本:如果定期更新 Automation Runbook 并指定新的默认版本,请选择此选项。

    • 运行时的最新版本:如果定期更新 Automation Runbook,并且需要运行最新更新版本,请选择此选项。

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

  5. 选择 Next

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

  7. Input parameters (输入参数) 部分中,指定所需的输入。或者,您可以从AutomationAssumeRole列表。

  8. 选择 Execute (执行)

  9. 选择执行此步骤当您准备好开始自动化的第一步时。自动化将继续步骤 1,并在运行您在该过程的步骤 3 中选择的 Runbook 中指定的任何后续步骤之前暂停。如果运行簿有多个步骤,则必须选择执行此步骤,以便继续执行自动化的每个步骤。每次选择执行此步骤操作将运行。

    注意

    控制台将显示 Automation 的状态。如果 Automation 无法运行步骤,请参阅Systems Manager Automation

  10. 完成 Runbook 中指定的所有步骤后,选择完成并查看结果完成自动化并查看结果。

逐步运行自动化(命令行)

以下过程介绍如何使用Amazon命令行(在 Linux 或Windows)或AmazonPowerShell 一步一步手动运行自动化的工具。

分步运行 Automation

  1. 安装和配置AmazonCLI 或AmazonTools for PowerShell,如果您还没有。

    想要了解有关信息,请参阅安装或升级Amazon命令行工具

  2. 运行以下命令以启动一个手动自动化。

    Linux & macOS
    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 实例。

    Linux & macOS
    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"}

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

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

    Linux & macOS
    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 中的每个步骤执行的状态。

    Linux & macOS
    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

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

    Linux & macOS
    {
        "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. 在完成所选 Runbook 中指定的所有步骤后,运行以下命令以完成自动化。

    Linux & macOS
    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

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