從 執行 Python 指令碼 GitHub - AWS Systems Manager

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

從 執行 Python 指令碼 GitHub

本節包含可協助您從 執行 Python 指令碼的程序 GitHub 使用 AWS Systems Manager 主控台或 AWS Command Line Interface (AWS CLI)。

從 執行 Python 指令碼 GitHub (主控台)

從 執行 Python 指令碼 GitHub
  1. 在 開啟 AWS Systems Manager 主控台https://console.aws.amazon.com/systems-manager/

  2. 在導覽窗格中,選擇 Run Command.

  3. 選擇 執行命令

  4. Command document (命令文件) 清單,請選擇 AWS-RunRemoteScript

  5. 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"

      若要使用存放庫中特定「遞交」中的指令碼版本,請使用 commitIDgetOptions 來代替 branch。例如:

      "getOptions": "commitID:bbc1ddb94...b76d3bEXAMPLE",

    • 針對 Command Line (命令列),輸入指令碼執行參數。請見此處範例。

      mainFile.py argument-1 argument-2

      此範例會執行 mainFile.py,其稍後可執行 complex-script 目錄中的其他指令碼。

    • (選用) 針對 Working Directory (工作目錄),輸入節點上的目錄名稱;您將下載指令碼至該目錄並予以執行。

    • (選用) 針對 Execution Timeout (執行逾時),指定指令碼命令執行失敗前,系統的等待時間 (秒)。

  6. Targets (目標) 區段中,透過手動指定標籤、選取執行個體或邊緣裝置,或指定資源群組,選擇您要執行這項操作的受管節點。

    提示

    如果您預期看到的受管節點未列出,請參閱 疑難排解受管節點的可用性 以取得疑難排解秘訣。

  7. 對於 Other parameters (其他參數)

    • Comment (註解) 中,輸入此命令的相關資訊。

    • Timeout (seconds) (逾時 (秒)) 中,指定在命令執行全面失敗之前,系統要等候的秒數。

  8. 對於 Rate control (速率控制):

    • Concurrency (並行) 中,指定可同時執行命令的受管節點數目或百分比。

      注意

      如果透過指定套用至受管節點的標籤或指定 AWS 資源群組選取了目標,且您不確定會以多少個受管節點為目標,則透過指定百分比限制可以同時執行文件之目標的數量。

    • Error threshold (錯誤閾值) 中,指定在特定數目或百分比之節點上的命令失敗之後,停止在其他受管節點上執行命令。例如,如果您指定三個錯誤,則 Systems Manager 會在收到第四個錯誤時停止傳送命令。仍在處理命令的受管節點也可能會傳送錯誤。

  9. (選用) 針對 Output options (輸出選項),若要將命令輸出儲存至檔案,請選取 Write command output to an S3 bucket (將命令輸出寫入至 S3 儲存貯體) 方塊。在方塊中輸入儲存貯體和字首 (資料夾) 名稱。

    注意

    授予將資料寫入 S3 儲存貯體的 S3 許可是指派給執行個體的執行個體描述檔 (適用於EC2執行個體) IAM或服務角色 (混合啟動機器),而不是執行此任務IAM的使用者。如需詳細資訊,請參閱設定 Systems Manager 所需的執行個體許可建立混合環境IAM的服務角色。此外,如果指定的 S3 儲存貯體位於不同的 中 AWS 帳戶,請確定與受管節點相關聯的執行個體設定檔IAM或服務角色具有寫入該儲存貯體的必要許可。

  10. SNS通知區段中,如果您想要傳送有關命令執行狀態的通知,請選取啟用SNS通知核取方塊。

    如需為 設定 Amazon SNS通知的詳細資訊 Run Command,請參閱使用 Amazon SNS通知監控 Systems Manager 狀態變更

  11. 選擇執行

從 執行 Python 指令碼 GitHub 使用 AWS CLI

  1. 如果您尚未安裝和設定 AWS Command Line Interface (AWS CLI),請執行 。

    如需相關資訊,請參閱安裝或更新最新版本的 AWS CLI

  2. 執行下列命令,從 下載並執行指令碼 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 目錄中的其他指令碼。