本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用文件建置器建立執行手冊
如果 AWS Systems Manager 公有 Runbook 不支援您要在 AWS 資源上執行的所有動作,您可以建立自己的 Runbook。若要建立自訂 Runbook,您可以使用適當的自動化動作手動建立本機YAML或JSON格式檔案。或者,您可以使用 Systems Manager Automation 主控台中的文件建置器來建置自訂執行手冊。
使用 Document Builder,您可以將自動化動作新增至自訂 Runbook,並提供所需的參數,而不必使用 YAML JSON或 語法。新增步驟並建立 Runbook 之後,系統會將您新增的動作轉換為 Systems Manager 可用來執行自動化的YAML格式。
Runbook 支援使用 Markdown (一種標示語言),可讓您新增維基樣式的描述至 Runbook 內,以及在 Runbook 內新增個別步驟。如需使用 Markdown 的相關資訊,請參閱在 AWS中使用 Markdown。
使用文件建置器建立自訂執行手冊
開始之前
建議您了解可在執行手冊中使用的不同動作。如需詳細資訊,請參閱Systems Manager Automation 動作參考。
使用文件建置器建立自訂 Runbook
在 開啟 AWS Systems Manager 主控台https://console.aws.amazon.com/systems-manager/
。 在導覽窗格中,選擇 Documents (文件)。
-
選擇 Create automation (建立自動化)。
-
對於 Name (名稱),輸入 Runbook 的描述性名稱。
-
對於 Document description (文件描述),提供 Runbook 的 Markdown 樣式描述。您可以提供使用 Runbook、編號步驟或任何其他類型的資訊的指示來描述 Runbook。如需格式化內容的相關資訊,請參閱預設文字。
提示
在 Hide preview (隱藏預覽) 和 Show preview (顯示預覽) 之間切換,即可在撰寫時查看描述內容的外觀。
-
(選用) 針對假設角色 ,輸入服務角色的名稱或 ARN ,以代表您執行動作。如果您未指定角色,自動化會使用執行自動化之使用者的存取許可。
重要
對於使用
aws:executeScript
動作的非 Amazon 擁有的 Runbook,必須指定角色。如需相關資訊,請參閱 使用 Runbook 的許可。 -
(選用) 對於 Outputs (輸出),輸入用於此 Runbook 自動化以提供其他處理程序使用的任何輸出。
例如,如果您的 Runbook 建立新的 AMI,您可以指定 【"CreateImage.ImageId"】,然後使用此輸出在後續自動化中建立新的執行個體。
-
(選用) 展開 Input parameters (輸入參數) 區段,並執行下列動作。
-
對於 Parameter name (參數名稱),輸入您要建立的 Runbook 參數的描述性名稱。
-
對於 Type (類型),選擇參數的類型,例如
String
或MapList
。 -
對於 Required (必要),執行下列其中一項作業:
-
如果必須在執行時間提供此 Runbook 參數的值,請選擇 Yes (是)。
-
如果不需要參數,請選擇 No (否),並 (選擇性地) 在 Default value (預設值) 中輸入預設參數值。
-
-
對於 Description (描述),輸入 Runbook 參數的描述。
注意
若要新增更多 Runbook 參數,請選擇 Add a parameter (新增參數)。若要移除 Runbook 參數,請選擇 X (移除) 按鈕。
-
-
(選用) 展開 Target type (目標類型) 區段,並選擇目標類型,以定義自動化可執行所在的資源類型。例如,若要在EC2執行個體上使用 Runbook,請選擇
/AWS::EC2::Instance
。注意
如果您指定 '
/
' 的值,則 Runbook 可以在所有類型的資源上執行。如需有效資源類型的清單,請參閱《AWS CloudFormation 使用者指南》 中的 AWS 資源類型參考。 -
(選用) 展開 Document tags (文件標籤) 區段,並輸入要套用至 Runbook 的一或多個標籤鍵值組。標籤可讓您更容易識別、組織和搜尋資源。
-
在 Step 1 (步驟 1) 區段中,提供下列資訊。
-
對於 Step name (步驟名稱),輸入自動化第一個步驟的描述性名稱。
-
對於 Action type (動作類型),選取要用於此步驟的動作類型。
如需可用動作類型的清單和資訊,請參閱Systems Manager Automation 動作參考。
-
對於 Description (描述),輸入自動化步驟的描述。您可以使用 Markdown 來將文字格式化。
-
根據選取的 Action type (動作類型),在 Step inputs (步驟輸入) 區段中輸入動作類型的必要輸入。例如,如果您選取動作
aws:approve
,則必須指定Approvers
屬性的值。如需步驟輸入欄位的相關資訊,請參閱 Systems Manager Automation 動作參考 中您所選動作類型的項目。例如:aws:executeStateMachine - 執行 AWS Step Functions 狀態機器。。
-
(選用) 對於 Additional inputs (其他輸入),提供 Runbook 所需的任何其他輸入值。可用的輸入類型取決於您為步驟選取的動作類型。(請注意,某些動作類型需要輸入值。)
注意
若要新增更多輸入,請選擇 Add optional input (新增選用輸入)。若要移除輸入,請選擇 X (移除) 按鈕。
-
(選用) 對於 Outputs (輸出),輸入用於此步驟以提供其他處理程序使用的任何輸出。
注意
Outputs (輸出) 不適用所有動作類型。
-
(選用) 展開 Common properties (一般屬性) 區段,並指定所有 Automation 動作通用的動作屬性。例如,對於 Timeout seconds (逾時秒),您可以以秒為單位提供值,以指定步驟在停止之前可以執行的時間長度。
如需詳細資訊,請參閱依所有動作共用的屬性。
注意
若要新增更多步驟,請選取 Add step (新增步驟),然後重複建立步驟的程序。若要移除步驟,請選擇 Remove step (移除步驟)。
-
-
選擇 Create automation (建立自動化) 以儲存 Runbook。
建立執行指令碼的執行手冊
下列程序顯示如何在 AWS Systems Manager Automation 主控台中使用文件建置器,以建立可執行指令碼的自訂執行手冊。
您建立的 Runbook 的第一個步驟會執行指令碼來啟動 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。第二個步驟會執行另一個指令碼來監控要變更為 ok
的執行個體狀態檢查。然後,會報告自動化的 Success
整體狀態。
開始之前
請確認您已完成下列步驟:
-
確認您具有管理員權限,或已授予您適當的許可,以存取 () 中的 AWS Identity and Access Management Systems ManagerIAM。
如需相關資訊,請參閱 驗證 Runbook 的使用者存取權。
-
確認您在 中具有自動化IAM的服務角色 (也稱為擔任角色 ) AWS 帳戶。此角色是必要的,因為此演練使用
aws:executeScript
動作。如需建立此角色的詳細資訊,請參閱設定自動化的服務角色 (擔任角色) 存取權。
如需執行 之IAM服務角色需求的相關資訊
aws:executeScript
,請參閱 使用 Runbook 的許可。 -
確認您具有啟動EC2執行個體的許可。
如需詳細資訊,請參閱 IAMAmazon 使用者指南 中的 和 EC2 AmazonEC2。
使用文件建置器建立執行指令碼的自訂執行手冊
在 開啟 AWS Systems Manager 主控台https://console.aws.amazon.com/systems-manager/
。 在導覽窗格中,選擇 Documents (文件)。
-
選擇 Create automation (建立自動化)。
-
對於 Name (名稱),輸入 Runbook 的描述性名稱:
LaunchInstanceAndCheckStatus
。 -
(選用) 對於 Document description (文件描述),使用 Markdown,以此 Runbook 的描述取代預設文字。以下是範例。
##Title: LaunchInstanceAndCheckState ----- **Purpose**: This runbook first launches an EC2 instance using the AMI ID provided in the parameter ```imageId```. The second step of this runbook continuously checks the instance status check value for the launched instance until the status ```ok``` is returned. ##Parameters: ----- Name | Type | Description | Default Value ------------- | ------------- | ------------- | ------------- assumeRole | String | (Optional) The ARN of the role that allows Automation to perform the actions on your behalf. | - imageId | String | (Optional) The AMI ID to use for launching the instance. The default value uses the latest Amazon Linux AMI ID available. | {{ ssm:/aws/service/ami-amazon-linux-latest/amzn-ami-hvm-x86_64-gp2 }}
-
對於假設角色 ,輸入自動化IAM的服務角色 ARN (假設角色),格式為
arn:aws:iam::111122223333:role/AutomationServiceRole
。將您的 AWS 帳戶 ID 替換為 111122223333。您指定的角色是用來提供開始自動化所需的許可。
重要
對於使用
aws:executeScript
動作的非 Amazon 擁有的 Runbook,必須指定角色。如需相關資訊,請參閱 使用 Runbook 的許可。 -
展開 Input parameters (輸入參數),然後執行下列動作。
-
對於 Parameter name (參數名稱),輸入
imageId
。 -
針對 Type (類型),選擇
String
。 -
對於 Required (必要),選擇
No
。 -
對於 Default value (預設值),輸入以下內容。
{{ ssm:/aws/service/ami-amazon-linux-latest/amzn-ami-hvm-x86_64-gp2 }}
注意
此值會使用最新的 Amazon Linux 1 啟動 Amazon EC2執行個體 Amazon Machine Image (AMI) ID。如果您想要使用不同的 AMI,將 值取代為 AMI ID。
-
對於 Description (描述),輸入以下內容。
(Optional) The AMI ID to use for launching the instance. The default value uses the latest released Amazon Linux AMI ID.
-
-
選擇 Add a parameter (新增參數) 來建立第二個參數
tagValue
,然後輸入下列資訊。-
對於 Parameter name (參數名稱),輸入
tagValue
。 -
針對 Type (類型),選擇
String
。 -
對於 Required (必要),選擇
No
。 -
對於 Default value (預設值),輸入
LaunchedBySsmAutomation
。這會將標籤金鑰對值Name:LaunchedBySsmAutomation
新增至該執行個體。 -
對於 Description (描述),輸入以下內容。
(Optional) The tag value to add to the instance. The default value is LaunchedBySsmAutomation.
-
-
選擇 Add a parameter (新增參數) 來建立第三個參數
instanceType
,然後輸入下列資訊。-
對於 Parameter name (參數名稱),輸入
instanceType
。 -
針對 Type (類型),選擇
String
。 -
對於 Required (必要),選擇
No
。 -
對於 Default value (預設值),輸入
t2.micro
。 -
對於 Parameter Description (參數描述),輸入以下內容。
(Optional) The instance type to use for the instance. The default value is t2.micro.
-
-
展開 Target type (目標類型),並選擇
"/"
。 -
(選用) 展開 Document tags (文件標籤),將資源標籤套用至您的 Runbook。對於 Tag key (標籤鍵),輸入
Purpose
,以及對於 Tag value (標籤值),輸入LaunchInstanceAndCheckState
。 -
在 Step 1 (步驟 1) 區段中,完成下列步驟。
-
對於 Step name (步驟名稱),輸入自動化第一個步驟的此描述性步驟名稱:
LaunchEc2Instance
。 -
對於 Action type (動作類型),選擇 Run a script (執行指令碼) (
aws:executeScript
)。 -
對於 Description (描述),輸入自動化步驟的描述,如下所示。
**About This Step** This step first launches an EC2 instance using the ```aws:executeScript``` action and the provided script.
-
展開 Inputs (輸入)。
-
對於 Runtime (執行時間),選擇用於執行所提供指令碼的執行時間語言。
-
對於 Handler (處理常式),輸入
launch_instance
。這是在以下指令碼中宣告的函數名稱。注意
這對於 而言並非必要 PowerShell。
-
對於 Script (指令碼),請以下列項目取代預設內容。請務必將指令碼與對應的執行時間值相符。
-
展開 Additional inputs (其他輸入)。
-
針對輸入名稱 ,選擇 InputPayload。針對輸入值 ,輸入下列YAML資料。
image_id: "{{ imageId }}" tag_value: "{{ tagValue }}" instance_type: "{{ instanceType }}"
-
-
展開 Outputs (輸出),並執行下列動作:
-
針對名稱,輸入
payload
。 -
對於 Selector (選取器),輸入
$.Payload
。 -
針對 Type (類型),選擇
StringMap
。
-
-
選擇 Add step (新增步驟),將第二個步驟新增至 Runbook。第二個步驟會查詢在步驟 1 中啟動的執行個體狀態,並等候傳回的狀態為
ok
為止。 -
在 Step 2 (步驟 2) 區段中,執行下列動作。
-
對於 Step name (步驟名稱),輸入自動化第二個步驟的此描述性名稱:
WaitForInstanceStatusOk
。 -
對於 Action type (動作類型),選擇 Run a script (執行指令碼) (
aws:executeScript
)。 -
對於 Description (描述),輸入自動化步驟的描述,如下所示。
**About This Step** The script continuously polls the instance status check value for the instance launched in Step 1 until the ```ok``` status is returned.
-
對於 Runtime (執行時間),選擇用於執行所提供指令碼的執行時間語言。
-
對於 Handler (處理常式),輸入
poll_instance
。這是在以下指令碼中宣告的函數名稱。注意
這對於 而言並非必要 PowerShell。
-
對於 Script (指令碼),請以下列項目取代預設內容。請務必將指令碼與對應的執行時間值相符。
-
展開 Additional inputs (其他輸入)。
-
針對輸入名稱 ,選擇 InputPayload。對於 Input value (輸入值),輸入以下內容:
{{ LaunchEc2Instance.payload }}
-
-
選擇 Create automation (建立自動化) 以儲存 Runbook。