本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
逐步執行自動化
下列程序說明如何使用 AWS Systems Manager 主控台和 AWS Command Line Interface
(AWS CLI) 使用手動執行模式執行自動化操作。透過使用手動執行模式,自動化開始在等待狀態中開始並在每個步驟之間的等待狀態中暫停。這讓您能夠控制自動化的進行,在您需要檢閱每個步驟的結果再繼續時很有用。
自動化會在目前的使用者內容中執行。這意味著,你不需要配置額外的IAM權限,只要你有使用 runbook 的權限,以及所調用的 runbook 的任何動作。如果您在中具有管理員權限IAM,則您已擁有執行此自動化操作的權限。
逐步執行自動化 (主控台)
以下程序會示範如何使用 Systems Manager 主控台逐步手動執行自動化。
逐步執行自動化
在開啟 AWS Systems Manager 主控台https://console.aws.amazon.com/systems-manager/。
-
在導覽窗格中,選擇 Automation (自動化),接著選擇 Execute automation (執行自動化)。
-
在 Automation document (自動化文件)清單中,選擇 Runbook。在 [文件類別] 窗格中選擇一或多個選項,以根據SSM文件用途篩選文件。若要檢視您擁有的 Runbook,請選擇 Owned by me (我所擁有的) 索引標籤。若要檢視與您帳戶共用的 Runbook,請選擇 Shared with me (與我共用的) 索引標籤。若要檢視所有 Runbook,請選擇 All documents (所有文件) 索引標籤。
您可以選擇 Runbook 名稱檢視 Runbook 資訊。
-
在 Document details (文件詳細資訊) 部分,確認 Document version (文件版本) 設定為您想要執行的版本。系統包括以下版本選項:
-
執行期的預設版本:如果 Automation 執行手冊會定期更新且已指派新的預設版本,則請選擇此選項。
-
執行期的最新版本:如果 Automation 執行手冊會定期更新,而您想要執行最近更新的版本,請選擇此選項。
-
1 (預設):選擇此選項以執行文件的第一個版本,也是預設版本。
-
選擇 Next (下一步)。
-
在 Execution Mode (執行模式) 部分,選擇 Manual execution (手動執行)。
在 Input parameters (輸入參數) 部分,指定所需的輸入。或者,您可以從AutomationAssumeRole清單中選擇IAM服務角色。
-
選擇 Execute (執行)。
-
準備好開始自動化的第一步時,選擇 Execute this step (執行此步驟)。自動化會繼續進行步驟一,並在執行您於本程序步驟 3 中所選的 Runbook 指定的任何後續步驟之前暫停。如果 Runbook 有多個步驟,您必須為每個步驟選擇 Execute this step (執行此步驟),自動化才會繼續。每次您選擇 Execute this step (執行此步驟) 時,動作便會執行。
-
在您完成 Runbook 指定的所有步驟後,請選擇 Complete and view results (完成並檢視結果),以完成自動化並檢視結果。
逐步執行自動化 (命令列)
下列程序說明如何使用 AWS CLI (在 Linux macOS、或 Windows 上) 或 AWS Tools for PowerShell 逐步手動執行自動化。
逐步執行自動化
安裝和配置 AWS CLI 或 AWS Tools for PowerShell,如果您尚未安裝。
如需相關資訊,請參閱安裝或更新 AWS CLI的最新版本和安裝 AWS Tools for PowerShell。
-
執行以下命令來啟動手動自動化。替換每個 example resource placeholder
使用您自己的信息。
- Linux & macOS
-
aws ssm start-automation-execution \
--document-name runbook name
\
--mode Interactive \
--parameters runbook parameters
- Windows
-
aws ssm start-automation-execution ^
--document-name runbook name
^
--mode Interactive ^
--parameters runbook parameters
- PowerShell
-
Start-SSMAutomationExecution `
-DocumentName runbook name
`
-Mode Interactive `
-Parameter runbook parameters
下面是使用 runbook AWS-RestartEC2Instance
重新啟動指定的EC2實例的例子。
- Linux & macOS
-
aws ssm start-automation-execution \
--document-name "AWS-RestartEC2Instance" \
--mode Interactive \
--parameters "InstanceId=i-02573cafcfEXAMPLE"
- Windows
-
aws ssm start-automation-execution ^
--document-name "AWS-RestartEC2Instance" ^
--mode Interactive ^
--parameters "InstanceId=i-02573cafcfEXAMPLE"
- PowerShell
-
Start-SSMAutomationExecution `
-DocumentName AWS-RestartEC2Instance `
-Mode Interactive
-Parameter @{"InstanceId"="i-02573cafcfEXAMPLE"}
系統會傳回相關資訊,如下所示。
- Linux & macOS
-
{
"AutomationExecutionId": "ba9cd881-1b36-4d31-a698-0123456789ab"
}
- Windows
-
{
"AutomationExecutionId": "ba9cd881-1b36-4d31-a698-0123456789ab"
}
- PowerShell
-
ba9cd881-1b36-4d31-a698-0123456789ab
-
當您準備好開始自動化的第一步時,請執行以下命令。替換每個 example resource
placeholder
使用您自己的信息。自動化會繼續進行步驟一,並在執行您於本程序步驟 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 ba9cd881-1b36-4d31-a698-0123456789ab
`
-SignalType StartStep
-Payload @{"StepName"="stopInstances
"}
如果命令成功,則無輸出訊息。
-
執行以下命令來擷取自動化中每個步驟的執行狀態。
- 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 ba9cd881-1b36-4d31-a698-0123456789ab
系統會傳回相關資訊,如下所示。
- Linux & macOS
-
{
"StepExecutions": [
{
"StepName": "stopInstances",
"Action": "aws:changeInstanceState",
"ExecutionStartTime": 1557167178.42,
"ExecutionEndTime": 1557167220.617,
"StepStatus": "Success",
"Inputs": {
"DesiredState": "\"stopped\"",
"InstanceIds": "[\"i-02573cafcfEXAMPLE\"]"
},
"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-02573cafcfEXAMPLE\"]"
},
"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-02573cafcfEXAMPLE\"]"
},
"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-02573cafcfEXAMPLE\"]"
},
"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-02573cafcfEXAMPLE"]]}
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}
-
在所選擇 Runbook 中指定的所有步驟皆完成後,執行以下命令來完成自動化。替換每個 example resource placeholder
使用您自己的信息。
- 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 ba9cd881-1b36-4d31-a698-0123456789ab
`
-Type Complete
如果命令成功,則無輸出訊息。