本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從 執行 Python 指令碼 GitHub
本節包含可協助您從 執行 Python 指令碼的程序 GitHub 使用 AWS Systems Manager 主控台或 AWS Command Line Interface (AWS CLI)。
從 執行 Python 指令碼 GitHub (主控台)
從 執行 Python 指令碼 GitHub
在 開啟 AWS Systems Manager 主控台https://console.aws.amazon.com/systems-manager/
。 在導覽窗格中,選擇 Run Command.
-
選擇 執行命令。
-
在 Command document (命令文件) 清單,請選擇
AWS-RunRemoteScript
。 -
在 Command parameters (命令參數) 中,執行以下操作:
-
在來源類型 中,選取 GitHub.
-
在 Source Info (來源資訊) 方塊中,按照以下格式輸入所需資訊,藉此存取來源:
{ "owner": "
owner_name
", "repository": "repository_name
", "getOptions": "branch:branch_name
", "path": "path_to_document
", "tokenInfo": "{{ssm-secure:SecureString_parameter_name
}}" }下列範例會下載名為 complex-script 的指令碼目錄。
{ "owner": "TestUser1", "repository": "SSMTestDocsRepo", "getOptions": "branch:myBranch", "path": "scripts/python/complex-script", "tokenInfo": "{{ssm-secure:myAccessTokenParam}}" }
注意
只有當指令碼存放在
master
以外的分支中時,才需要"branch"
。若要使用存放庫中特定「遞交」中的指令碼版本,請使用
commitID
與getOptions
來代替branch
。例如:"getOptions": "commitID:bbc1ddb94...b76d3bEXAMPLE",
-
針對 Command Line (命令列),輸入指令碼執行參數。請見此處範例。
mainFile.py argument-1 argument-2
此範例會執行
mainFile.py
,其稍後可執行complex-script
目錄中的其他指令碼。 -
(選用) 針對 Working Directory (工作目錄),輸入節點上的目錄名稱;您將下載指令碼至該目錄並予以執行。
-
(選用) 針對 Execution Timeout (執行逾時),指定指令碼命令執行失敗前,系統的等待時間 (秒)。
-
在 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 狀態變更。
-
選擇執行。
從 執行 Python 指令碼 GitHub 使用 AWS CLI
如果您尚未安裝和設定 AWS Command Line Interface (AWS CLI),請執行 。
如需相關資訊,請參閱安裝或更新最新版本的 AWS CLI。
-
執行下列命令,從 下載並執行指令碼 GitHub.
aws ssm send-command --document-name "AWS-RunRemoteScript" --instance-ids "
instance-IDs
" --parameters '{"sourceType":["GitHub"],"sourceInfo":["{\"owner\":\"owner_name
\", \"repository\":\"repository_name
\", \"path\": \"path_to_script_or_directory
"}"],"commandLine":["commands_to_run
"]}'請見此處範例。
aws ssm send-command --document-name "AWS-RunRemoteScript" --instance-ids "i-02573cafcfEXAMPLE" --parameters '{"sourceType":["GitHub"],"sourceInfo":["{\"owner\":\"TestUser1\", \"repository\":\"GitHubTestPublic\", \"path\": \"scripts/python/complex-script\"}"],"commandLine":["mainFile.py argument-1 argument-2 "]}'
此範例會下載名為
complex-script
的指令碼目錄。commandLine
項目會執行mainFile.py
,其稍後可執行complex-script
目錄中的其他指令碼。