本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從遠端位置執行 文件
您可以使用AWS-RunDocument
預先定義的 SSM 文件,從遠端位置執行 AWS Systems Manager (SSM) 文件。本文件支援執行在下列位置存放的 SSM 文件:
-
公有和私有 GitHub 儲存庫 (不支援 GitHub Enterprise)
-
Amazon S3 儲存貯體
-
Systems Manager
雖然您也可以使用 State Manager或 自動化 中的工具來執行遠端文件 AWS Systems Manager,但下列程序只會說明如何在 Systems Manager 主控台中使用 AWS Systems Manager Run Command 來執行遠端 SSM 文件。
注意
AWS-RunDocument
只能用來執行命令類型的 SSM 文件,而不能執行其他類型,例如 Automation Runbook。AWS-RunDocument
使用 aws:downloadContent
外掛程式。如需有關 aws:downloadContent
外掛程式的詳細資訊,請參閱 aws:downloadContent。
開始之前
在您可以開始執行遠端文件之前,請必須完成以下工作。
-
建立一份 SSM 命令文件,並將它儲存在遠端位置。如需詳細資訊,請參閱 建立 SSM 文件內容
-
如果您打算執行存放在 GitHub 私有儲存庫中的遠端文件,則必須為 GitHub 安全存取權杖建立一個 Systems Manager
SecureString
參數。您無法透過 SSH 手動傳遞權杖來存取 GitHub 私有儲存庫中的遠端文件。您必須將存取字符做為 Systems ManagerSecureString
參數傳遞。如需建立SecureString
參數的詳細資訊,請參閱 在 Systems Manager 中建立 Parameter Store 參數。
執行遠端文件 (主控台)
執行遠端文件
在 https://https://console.aws.amazon.com/systems-manager/
開啟 AWS Systems Manager 主控台。 在導覽窗格中,選擇 Run Command。
-
選擇執行命令。
-
在 Document (文件) 清單中,請選擇
AWS-RunDocument
。 -
在 Command parameters (命令參數) 中,針對 Source Type (來源類型) 選擇選項。
-
如果選擇 GitHub,請指定來源資訊,資訊格式如下:
{ "owner": "
owner_name
", "repository": "repository_name
", "path": "path_to_document
", "getOptions":"branch:branch_name
", "tokenInfo": "{{ssm-secure:secure-string-token
}}" }例如:
{ "owner":"TestUser", "repository":"GitHubTestExamples", "path":"scripts/python/test-script", "getOptions":"branch:exampleBranch", "tokenInfo":"{{ssm-secure:my-secure-string-token}}" }
注意
getOptions
是可從主要分支以外的分支或從儲存庫中的特定遞交中擷取內容的額外選項。如果您使用主要分支中的最新遞交,則可省略getOptions
。只有當 SSM 文件存放於master
以外的分支時,才需要branch
參數。若要使用存放庫中特定「遞交」中的 SSM 文件,請使用
commitID
與getOptions
來代替branch
。例如:"getOptions": "commitID:bbc1ddb94...b76d3bEXAMPLE",
-
如果您選擇 S3,指定 Source Info (來源資訊) 的資訊格式如下:
{"path":"
URL_to_document_in_S3
"}例如:
{"path":"https://s3.amazonaws.com/amzn-s3-demo-bucket/scripts/ruby/mySSMdoc.json"}
-
如果您選擇 SSMDocument,指定 Source Info (來源資訊) 的資訊格式如下:
{"name": "document_name"}
例如:
{"name": "mySSMdoc"}
-
-
在 Document Parameters (文件參數) 欄位中輸入遠端 SSM 文件的參數。例如,如果您執行
AWS-RunPowerShell
文件,您可以指定:{"commands": ["date", "echo \"Hello World\""]}
如果您執行
AWS-ConfigureAWSPack
文件,您可以指定:{ "action":"Install", "name":"AWSPVDriver" }
在 Targets (目標) 區段中,透過手動指定標籤、選取執行個體或邊緣裝置,或指定資源群組,選擇您要執行這項操作的受管節點。
提示
如果您預期看到的受管節點未列出,請參閱 疑難排解受管節點的可用性 以取得疑難排解秘訣。
對於其他參數:
-
在 Comment (註解) 中,輸入此命令的相關資訊。
-
在逾時 (秒) 中,指定在命令執行全面失敗之前,系統要等候的秒數。
-
對於 Rate control (速率控制):
-
在並行中,指定可同時執行命令的受管節點數目或百分比。
注意
如果透過指定套用至受管節點的標籤或指定 AWS 資源群組選取了目標,且您不確定會以多少個受管節點為目標,則透過指定百分比限制可以同時執行文件之目標的數量。
-
在 Error threshold (錯誤閾值) 中,指定在特定數目或百分比之節點上的命令失敗之後,停止在其他受管節點上執行命令。例如,如果您指定三個錯誤,則 Systems Manager 會在收到第四個錯誤時停止傳送命令。仍在處理命令的受管節點也可能會傳送錯誤。
-
(選用) 針對輸出選項,若要將命令輸出儲存至檔案,請選取將命令輸出寫入至 S3 儲存貯體方塊。在方塊中輸入儲存貯體和字首 (資料夾) 名稱。
注意
授予能力以將資料寫入至 S3 儲存貯體的 S3 許可,會是指派給執行個體之執行個體設定檔 (適用於 EC2 執行個體) 或 IAM 服務角色 (啟用混合模式的機器) 的許可,而不是執行此任務之 IAM 使用者的許可。如需詳細資訊,請參閱設定 Systems Manager 所需的執行個體許可或建立混合環境的 IAM 服務角色。此外,如果指定的 S3 儲存貯體位於不同的 中 AWS 帳戶,請確定與受管節點相關聯的執行個體設定檔或 IAM 服務角色具有寫入該儲存貯體的必要許可。
在SNS 通知區段中,如果您要傳送有關命令執行狀態的通知,請選取啟用 SNS 通知核取方塊。
如需為 Run Command 設定 Amazon SNS 通知的詳細資訊,請參閱 使用 Amazon SNS 通知監控 Systems Manager 狀態變更。
-
選擇執行。
注意
如需使用 Run Command 呼叫指令碼時重新開機伺服器和執行個體的資訊,請參閱 執行命令時處理重新啟動。