本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從遠端位置執行 文件
您可以使用AWS-RunDocument
預先定義的文件,從遠端位置執行 AWS Systems Manager (SSM) 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文件,而不能執行其他類型,例如自動化工作流程手冊。AWS-RunDocument
使用 aws:downloadContent
外掛程式。如需有關 aws:downloadContent
外掛程式的詳細資訊,請參閱 aws:downloadContent。
開始之前
在您可以開始執行遠端文件之前,請必須完成以下工作。
-
創建一個 SSM Command 文檔並將其保存在遠程位置。如需詳細資訊,請參閱 建立SSM文件內容
-
如果您打算執行儲存在私人存GitHub放庫中的遠端文件,則必須為GitHub安全性存取權杖建立 Systems Manager
SecureString
參數。您無法通過手動傳遞令牌來訪問私有GitHub存儲庫中的遠程文檔SSH。您必須將存取字符做為 Systems ManagerSecureString
參數傳遞。如需建立SecureString
參數的詳細資訊,請參閱 建立 Systems Manager 參數。
執行遠端文件 (主控台)
執行遠端文件
在開啟 AWS Systems Manager 主控台https://console.aws.amazon.com/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文件儲存在以外的分支中時,才需要branch
參數master
。若要在儲存庫中的特定提交中使用SSM文件的版本,請使
commitID
用 andgetOptions
而非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,請以下列格式指定「來源資訊」資訊:
{"name": "document_name"}
例如:
{"name": "mySSMdoc"}
-
-
在「文件參數」欄位中,輸入遠端SSM文件的參數。例如,如果您執行
AWS-RunPowerShell
文件,您可以指定:{"commands": ["date", "echo \"Hello World\""]}
如果您執行
AWS-ConfigureAWSPack
文件,您可以指定:{ "action":"Install", "name":"AWSPVDriver" }
在 Targets (目標) 區段中,透過手動指定標籤、選取執行個體或邊緣裝置,或指定資源群組,選擇您要執行這項操作的受管節點。
提示
如果您預期看到的受管節點未列出,請參閱 疑難排解受管節點的可用性 以取得疑難排解秘訣。
對於 Other parameters (其他參數):
-
在 Comment (註解) 中,輸入此命令的相關資訊。
-
在 Timeout (seconds) (逾時 (秒)) 中,指定在命令執行全面失敗之前,系統要等候的秒數。
-
對於 Rate control (速率控制):
-
在 Concurrency (並行) 中,指定可同時執行命令的受管節點數目或百分比。
注意
如果透過指定套用至受管節點的標籤或指定 AWS 資源群組選取了目標,且您不確定會以多少個受管節點為目標,則透過指定百分比限制可以同時執行文件之目標的數量。
-
在 Error threshold (錯誤閾值) 中,指定在特定數目或百分比之節點上的命令失敗之後,停止在其他受管節點上執行命令。例如,如果您指定三個錯誤,則 Systems Manager 會在收到第四個錯誤時停止傳送命令。仍在處理命令的受管節點也可能會傳送錯誤。
-
(選用) 針對 Output options (輸出選項),若要將命令輸出儲存至檔案,請選取 Write command output to an S3 bucket (將命令輸出寫入至 S3 儲存貯體) 方塊。在方塊中輸入儲存貯體和字首 (資料夾) 名稱。
注意
授與將資料寫入 S3 儲存貯體之能力的 S3 許可是指派給執行個體的執行個體設定檔 (針對EC2執行個體) 或IAM服務角色 (混合式啟動機器) 的許可,而不是執行此任務的IAM使用者。如需詳細資訊,請參閱設定 Systems Manager 所需的執行個體權限或為混合式環境建立IAM服務角色。此外,如果指定的 S3 儲存貯體位於不同的儲存貯體 AWS 帳戶,請確定與受管節點關聯的執行個體設定檔或IAM服務角色具有寫入該儲存貯體的必要權限。
在「SNS通知」區段中,如果您要傳送有關命令執行狀態的通知,請選取「啟用SNS通知」核取方塊。
如需設定 Amazon SNS 通知的詳細資訊Run Command,請參閱使用 Amazon SNS 通知監控 Systems Manager 狀態變更。
-
選擇執行。
注意
如需使用 Run Command 呼叫指令碼時重新開機伺服器和執行個體的資訊,請參閱 執行命令時處理重新啟動。