設定輸入 AWS TOE 運行命令 - EC2Image Builder

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

設定輸入 AWS TOE 運行命令

簡化指令行輸入 AWS TOE run指令,您可以在具有副檔名的JSON格式輸入組態檔案中包含指令參數和選項的.json設定。 AWS TOE 可以從下列其中一個位置讀取您的檔案:

  • 本機檔案路徑 (./config.json).

  • 一個 S3 存儲桶(s3://<bucket-path>/<bucket-name>/config.json).

當您輸入指run令時,您可以使用--config參數指定輸入規劃檔案。例如:

awstoe run --config <file-path>/config.json
輸入配置文件

輸入組態JSON檔案包括您可以透過run指令參數和選項直接提供的所有設定的鍵值配對。如果您同時在輸入組態檔案和指run令中指定設定作為參數或選項,則適用下列優先順序規則:

優先順序規則
  1. 直接提供給中run指令的設定 AWS CLI透過參數或選項,覆寫在輸入組態檔案中針對相同設定定義的任何值。

  2. 輸入規劃檔案中的設定會取代元件預設值。

  3. 如果沒有其他設定傳遞至元件文件,它可以套用預設值 (如果有的話)。

此規則有兩個例外狀況 — 文件和參數。這些設定在輸入組態和指令參數中的運作方式不同。如果使用輸入組態檔案,則不得將這些參數直接指定給指run令。這樣做會產生錯誤。

元件設定

輸入組態檔案包含下列設定。為了簡化您的文件,您可以省略任何不需要的可選設置。除非另有說明,否則所有設定均為選用

  • cwIgnoreFailures(布林值) — 忽略記錄 CloudWatch 檔中的記錄失敗。

  • cwLogGroup(字串) — 記 CloudWatch 錄檔的LogGroup名稱。

  • cwLogRegion(字符串)- AWS 適用於 CloudWatch 日誌的區域。

  • cwLogStream(字符串)- CloudWatch 日誌的LogStream名稱,指示 AWS TOE 在哪裡流式傳輸console.log文件。

  • 文件 3 BucketOwner (字串) — S3 URI 文件的儲存貯體擁有者帳戶 ID。

  • 件 (物件陣列,必要) — JSON 物件陣列代表的YAML元件文件 AWS TOE run命令正在運行。至少必須指定一個元件文件。

    每個物件都包含下列欄位:

    • path (字串,必要) — YAML 元件文件的檔案位置。這必須是下列其中一項:

      • 本機檔案路徑 (./component-doc-example.yaml).

      • 一個 S3URI(s3://bucket/key)。

      • 映 Image Builder 元件建置版本 ARN (arn: aw: 影像建置器:美國西部2:123456789012:組件/my-example-component(1).

    • parameters (物件陣列) — 鍵值對物件的陣列,每個物件都代表run指令執行元件文件時所傳入的元件特定參數。元件的參數是可選的。零組件文件可能已定義參數,也可能沒有定義參數。

      每個物件都包含下列欄位:

      • name (字串,必要) — 元件參數的名稱。

      • value (字串,必要) — 要傳入至具名參數之元件文件的值。

      若要深入瞭解元件參數,請參閱在自訂元件文件中使用變數頁面中的參數段落。

  • executonId(字符串)-這是適用於當前run命令的執行的唯一 ID。此 ID 包含在輸出檔和記錄檔名稱中,以唯一識別這些檔案,並將它們連結至目前的指令執行。如果省略了此設置, AWS TOE 會產生一個GUID。

  • logDirectory(字符串)-目標目錄,其中 AWS TOE 存儲此命令執行中的所有日誌文件。根據預設,此目錄位於下列父目錄內:TOE_<DATETIME>_<EXECUTIONID>。如果您未指定記錄目錄, AWS TOE 使用當前工作目錄(.)。

  • LogS3 BucketName (字串) — 如果元件日誌存放在 Amazon S3 (建議使用), AWS TOE 將元件應用程式日誌上傳到此參數中指定的 S3 儲存貯體。

  • LogS3 BucketOwner (字串) — 如果元件日誌存放在 Amazon S3 (建議使用),則此為儲存貯體的擁有者帳戶 ID AWS TOE 寫入記錄檔。

  • LogS3 KeyPrefix (字串) — 如果元件日誌存放在 Amazon S3 (建議使用),這是儲存貯體中日誌位置的 S3 物件 key prefix 置詞。

  • parameters (物件陣列) — 鍵值配對物件的陣列,代表全域套用至目前run命令執行中包含的所有元件的參數。

    • name (字串,必要) — 全域參數的名稱。

    • value (字串,必要) — 要傳入至具名參數之所有元件文件的值。

  • 階段 (字串) — 以逗號分隔的清單,指定要從YAML元件文件執行的階段。如果元件文件包含其他階段,則這些階段將不會執行。

  • stateDirectory(字串) — 儲存狀態追蹤檔案的檔案路徑。

  • trace (布林值) — 啟用主控台的詳細記錄功能。

範例

下列範例顯示一個輸入組態檔案,該檔案會針對兩個零組件文件執行buildtest階段:sampledoc.yaml、和conversation-intro.yaml。每個元件文件都有一個僅適用於本身的參數,並且兩者都使用一個共用參數。project參數適用於兩個零組件文件。

{ "documents": [ { "path": "<file path>/awstoe/sampledoc.yaml>", "parameters": [ { "name": "dayofweek", "value": "Monday" } ] }, { "path": "<file path>/awstoe/conversation-intro.yaml>", "parameters": [ { "name": "greeting", "value": "Hello, HAL." } ] } ], "phases": "build,test", "parameters": [ { "name": "project", "value": "examples" } ], "cwLogGroup": "<log_group_name>", "cwLogStream": "<log_stream_name>", "documentS3BucketOwner": "<owner_aws_account_number>", "executionId": "<id_number>", "logDirectory": "<local_directory_path>", "logS3BucketName": "<bucket_name_for_log_files>", "logS3KeyPrefix": "<key_prefix_for_log_files>", "logS3BucketOwner": "<owner_aws_account_number>" }