建立執行指令碼的 Runbook (主控台) - AWS Systems Manager

建立執行指令碼的 Runbook (主控台)

建立執行指令碼的 Runbook

下列程序說明如何在 AWS Systems Manager 主控台中使用文件建置器,以及建立可執行您提供的指令碼的自訂 Runbook。

  1. 開啟位於 AWS Systems Managerhttps://console.aws.amazon.com/systems-manager/ 的 主控台。https://console.aws.amazon.com/systems-manager/

  2. 在導覽窗格中,選擇 Documents (文件)

    -或-

    如果 AWS Systems Manager 首頁先開啟,選擇選單圖示 ( ) 以開啟導覽窗格,然後在導覽窗格中,選擇 Documents (文件)。

  3. 選擇 Create automation (建立自動化)

  4. 對於 Name (名稱),輸入 Runbook 的描述性名稱。

  5. 對於 Document description (文件描述),提供 Runbook 的 Markdown 樣式描述。您可以提供使用 Runbook、編號步驟或任何其他類型的資訊的指示來描述 Runbook。如需格式化內容的相關資訊,請參閱預設文字。

    提示

    Hide preview (隱藏預覽)Show preview (顯示預覽) 之間切換,即可在撰寫時查看描述內容的外觀。

  6. (選用) 對於 Assume role (擔任角色),輸入要代表您執行動作的服務角色的名稱或 Amazon 資源名稱 (ARN)。如果您未指定角色,自動化會使用呼叫自動化之使用者的存取許可。

    重要

    對於使用 aws:executeScript 動作的非 Amazon 擁有的 Runbook,必須指定角色。如需相關資訊,請參閱「使用 Runbook 的許可」。

  7. (選用) 對於 Outputs (輸出),輸入用於自動化以提供其他處理程序使用的任何輸出。

    例如,如果您的 Runbook 建立了新的 AMI,您可以指定 ["CreateImage.ImageId"],然後使用此輸出在後續的自動化中建立新的執行個體。

  8. (選用) 展開 Input parameters (輸入參數) 區段,並執行下列動作。

    1. 對於 Parameter name (參數名稱),輸入您要建立的 Runbook 參數的描述性名稱。

    2. 對於 Type (類型),選擇參數的類型,例如 StringStringList

    3. 對於 Required (必要),執行下列其中一項作業。

      • 如果必須在執行時間提供此 Runbook 參數的值,請選擇 Yes (是)。

      • 如果不需要參數,請選擇 No (否),並 (選擇性地) 在 Default value (預設值) 中輸入預設參數值。

    4. 對於 Description (描述),輸入 Runbook 參數的描述。

    注意

    若要新增更多 Runbook 參數,請選擇 Add a parameter (新增參數)。若要移除 Runbook 參數,請選擇 X (移除) 按鈕。

  9. (選用) 展開 Target type (目標類型) 區段,並選擇目標類型,以定義 Runbook 可執行所在的資源類型。例如,若要在 EC2 執行個體上使用 Runbook,請選擇 /AWS::EC2::Instance

    注意

    如果您指定 '/' 的值,則 Runbook 可以在所有類型的資源上執行。如需有效資源類型的清單,請參閱《AWS CloudFormation 使用者指南》 中的 AWS 資源類型參考

  10. Step 1 (步驟 1) 區段中,提供下列資訊。

    • 對於 Step name (步驟名稱),輸入自動化第一個步驟的描述性名稱。

    • 對於 Action type (動作類型),選取 Run a script (執行指令碼) (aws:executeScript)。

    • 對於 Description (描述),輸入自動化步驟的描述。您可以使用 Markdown 來將文字格式化。

  11. 展開 Inputs (輸入)區段,並提供下列資訊。

    • Runtime (執行時間),選擇您要新增的指令碼類型。自動化支援 Python 3.6、Python 3.7 和 PowerShell Core 6.0。

    • 對於 Handler (處理常式),輸入指令碼中的函數名稱。(PowerShell 不需要。)

      重要

      您必須確保處理常式中定義的函數有兩個參數,eventscontext。例如,如果您的指令碼開頭是以下內容,您可以輸入 launch_instance

      def launch_instance(events, context): import boto3 ec2 = boto3.client('ec2') [...truncated...]
    • 對於 Script (指令碼),請選擇一個方法來提供指令碼給 Runbook。

      • 若要在文件中嵌入指令碼,請在 Runbook 方塊區域中輸入指令碼程式碼。

        -或-

      • 對於 Attachment (附件),請選擇 Stored on my machine (儲存在我的機器上)Upload S3 File URL (上傳 S3 檔案 URL)

        如果您選擇 Stored on my machine (存放在我的機器上):對於 Amazon S3 URL,輸入帳戶中您要儲存上傳附件所在的 S3 儲存貯體位置,然後選擇 Upload (上傳) 來瀏覽並選取檔案。

        如果您選擇 Upload S3 File URL (上傳 S3 檔案 URL),請提供下列資訊:

        • S3 file url (S3 文件 url):輸入您帳戶中 S3 儲存儲體中儲存文件的位置。

        • File name (檔案名稱):輸入檔案的名稱。

        • File checksum (檔案檢查總和):使用 sha256 演算法來輸入檔案的檢查總和。

          提示

          您可以在 Linux 中使用 shasum 之類的工具,來使用 sha256 計算文件的檢查總和。例如:'shasum -a 256 /path/to/file'。在 Windows 中,您可以使用 Get-FileHash PowerShell cmdlet 來取得相同的資訊。ETag 或 md5 檢查總和不適用於此值。

  12. (選用) 展開 Additional inputs (其他輸入),並執行下列動作。

    • 對於 Input name (輸入名稱),選擇 InputPayload。– YAML 格式的函數輸入。

    • 對於 Input value (輸入值),以 YAML 格式輸入指令碼輸入。

  13. (選用) 展開 Outputs (輸出),然後輸入要從此步驟建立的任何輸出的 Name (名稱)、Selector (選取器) 和 Type (類型)。步驟輸出可以用在 Runbook 的後續步驟中。以下是用於示範的幾個範例。

    名稱myInstance | 選擇器$.InstanceInformationList[0].InstanceId | 類型String

    名稱platform | 選擇器$.Reservations[0].Instances[0].Platform | 類型String

    名稱message | 選取器:$.Payload.message | 類型String

    如需輸出的詳細資訊,請參閱 使用輸入和輸出

    提示

    若要新增更多輸出,請選取 Add output (新增輸出)

  14. (選用) 展開 Common properties (一般屬性) 區段,並指定所有自動化動作通用的動作屬性。例如,對於 Timeout seconds (逾時秒),您可以以秒為單位提供值,以指定步驟在停止之前可以執行的時間長度。

    如需更多詳細資訊,請參閱 依所有動作共用的屬性

    注意

    若要新增更多步驟,請選取 Add step (新增步驟),然後重複建立步驟的程序。若要移除步驟,請選擇 Remove step (移除步驟)。

  15. 選擇 Create document (建立文件) 以儲存 Runbook。