配置 AWS TOE 運行命令的輸入 - EC2 Image Builder

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

配置 AWS TOE 運行命令的輸入

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

  • 本機檔案路徑 (. /配置.json)。

  • 一個 S3 存儲桶(S3:///配置.json <bucket-path><bucket-name>)。

當您輸入指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(字串) — 適用於 CloudWatch 記錄的 AWS 區域。

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

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

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

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

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

      • 本機檔案路徑 (. /component-doc-example. 亞米爾).

      • 一個 S3 URI (s3://bucket/key)。

      • Image Builder 組件構建 ARN 版本(ARN:AW:圖像生成器:美國西部 2:1234567890:組件/2021.12.02/1)。my-example-component

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

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

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

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

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

  • ExecutId(字符串)-這是適用於當前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 (建議使用),這是 AWS TOE 寫入日誌檔的儲存貯體的擁有者帳戶 ID。

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

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

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

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

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

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

  • 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>" }