從 建立 AMI 映像管道 AWS CLI - EC2 Image Builder

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

從 建立 AMI 映像管道 AWS CLI

若要從 建立映像管道 AWS CLI,請使用適用於管道的組態選項來執行 create-image-pipeline命令。您可以選擇建立包含所有管道組態的 JSON 檔案,或在執行時間指定組態。本節使用 JSON 組態檔案方法來簡化命令。

管道建置新映像以納入基礎映像和元件中任何待定更新的頻率取決於schedule您設定的 。schedule 具有下列屬性:

  • scheduleExpression – 設定管道執行的時間排程,以評估 pipelineExecutionStartCondition 並判斷是否應該啟動建置。排程是以 cron 表達式設定。如需如何在映像建置器中格式化 cron 表達式的詳細資訊,請參閱 在映像建置器中使用 Cron 表達式

  • pipelineExecutionStartCondition – 判斷您的管道是否應該啟動建置。有效值包含:

    • EXPRESSION_MATCH_ONLY – 每次 Cron 表達式符合目前時間時,您的管道都會建立新的映像。

    • EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE – 除非基礎映像或元件有待定的變更,否則您的管道不會啟動新的映像建置。

當您在 中執行 create-image-pipeline命令時 AWS CLI,許多組態資源都是選用的。不過,根據管道建立的影像類型,有些資源有條件需求。AMI 映像管道需要下列資源識別符:

  • 映像配方 ARN

  • 基礎設施組態 ARN

 

範例:建立 Windows 2019 映像

此範例會設定排程在週日每週執行一次的管道。第一個步驟中顯示的組態檔案會使用映像配方、基礎設施和分佈組態的現有資源,以及其他設定來建立 Windows 2019 映像。

  1. 建立組態檔案 (選用)

    此範例使用名為 的組態檔案create-image-pipeline.json,在一個位置設定設定。或者,您可以在執行 命令時,使用命令列選項來指定組態檔案中此處顯示的所有詳細資訊。

    { "name": "ExampleWindows2019Pipeline", "description": "Builds Windows 2019 Images", "enhancedImageMetadataEnabled": true, "imageRecipeArn": "arn:aws:imagebuilder:us-west-2:123456789012:image-recipe/my-example-recipe/2020.12.03", "infrastructureConfigurationArn": "arn:aws:imagebuilder:us-west-2:123456789012:infrastructure-configuration/my-example-infrastructure-configuration", "distributionConfigurationArn": "arn:aws:imagebuilder:us-west-2:123456789012:distribution-configuration/my-example-distribution-configuration", "imageTestsConfiguration": { "imageTestsEnabled": true, "timeoutMinutes": 60 }, "schedule": { "scheduleExpression": "cron(0 0 * * SUN *)", "pipelineExecutionStartCondition": "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" }, "status": "ENABLED" }
    注意
    • 您必須在 JSON 檔案路徑的開頭包括 file:// 標記。

    • JSON 檔案的路徑應遵循執行命令之基礎作業系統的適當慣例。例如,Windows 使用反斜線 (\) 來參考目錄路徑,而 Linux 和 macOS 則使用正斜線 (/)。

  2. 執行 命令來建立映像

    此範例使用第一個步驟中建立的組態檔案做為 create-image-pipeline命令的輸入。或者,您可以在執行 命令時直接指定管道的設定和資源。如需詳細資訊,請參閱 AWS CLI 參考中的 create-image-pipeline

    aws imagebuilder create-image-pipeline --cli-input-json file://create-image-pipeline.json