Image Builder 中的語意版本控制 - EC2 Image Builder

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

Image Builder 中的語意版本控制

Image Builder 使用語意版本控制來組織資源,並確保資源具有唯一的 IDs。語意版本有四個節點:

<major>.<minor>.<patch>/<build>

您可以為前三個節點指派數值,並且可以篩選所有數值。

語意版本控制包含在每個物件的 Amazon Resource Name (ARN) 中,其層級適用於該物件,如下所示:

  1. 無版本 ARNs 和名稱 ARNs 不會在任何節點中包含特定值。節點會完全移出,或指定為萬用字元,例如:x.x.x。

  2. 版本 ARNs僅有前三個節點:<major>.<minor>.<patch>

  3. 組建版本 ARNs 有全部四個節點,並指向特定版本物件的特定組建。

指派:對於前三個節點,您可以指派任何正整數值或零,每個節點的上限為 2^30-1 或 1073741823。Image Builder 會將建置編號自動指派給第四個節點。

模式:對於您可以指派的節點,您可以使用任何符合指派要求的數值模式。例如,您可以選擇 1.0.0 等數值或 2021.01.01 等日期格式的軟體版本模式。

選擇:使用語意版本控制,您可以在為配方選取基礎映像或元件時,彈性使用萬用字元 (x) 來指定最新版本或節點。在任何節點中使用萬用字元時,第一個萬用字元右側的所有節點也必須是萬用字元。

例如,假設有下列最新版本:2.2.4、1.7.8 和 1.6.8,使用萬用字元的版本選擇會產生下列結果:

  • x.x.x = 2.2.4

  • 1.x.x = 1.7.8

  • 1.6.x = 1.6.8

  • x.2.x 無效,並產生錯誤

  • 1.x.8 無效,並產生錯誤

使用版本參考

版本參考是ready-to-use ARN 字串,其中包含根據您建立或擷取之資源的語意版本所建立或擷取的萬用字元模式。Image Builder 不會編寫自訂程式碼來剖析 ARNs 並插入萬用字元,而是為您執行這項工作。

當您建立或擷取 Image Builder 資源時,Image Builder 會自動在 latestVersionReferences 物件中提供具有萬用字元版本模式的預先建構 ARNs。當您想要使用萬用字元版本控制模式參考資源時,就不需要手動剖析和重建 ARNs。

例如,當您使用版本 建立元件時1.2.3,Image Builder 會傳回:

{ "componentBuildVersionArn": "arn:aws:imagebuilder:us-west-2:123456789012:component/my-component/1.2.3/1", "latestVersionReferences": { "latestVersionArn": "arn:aws:imagebuilder:us-west-2:123456789012:component/my-component/x.x.x", "latestMajorVersionArn": "arn:aws:imagebuilder:us-west-2:123456789012:component/my-component/1.x.x", "latestMinorVersionArn": "arn:aws:imagebuilder:us-west-2:123456789012:component/my-component/1.2.x", "latestPatchVersionArn": "arn:aws:imagebuilder:us-west-2:123456789012:component/my-component/1.2.3" } }

可用的版本參考模式

latestVersionReferences 物件包含四個 ARN 模式:

  • latestVersionArn (x.x.x) - 一律解析為絕對最新版本。

  • atestMajorVersionArn (1.x.x) - 解決主要版本中最新的次要和修補程式版本。

  • latestMinorVersionArn (1.2.x) - 解決特定次要版本中的最新修補程式版本。

  • latestPatchVersionArn (1.2.3) - 參考特定語意版本,並解析為支援多個建置版本之資源的最新建置版本。

傳回版本參考的資源

所有版本控制的映像建置器資源的 CreateGet APIs都會傳回版本參考:

  • 元件 - CreateComponentGetComponent

  • 映像配方 - CreateImageRecipeGetImageRecipe

  • 容器配方 - CreateContainerRecipeGetContainerRecipe

  • 影像 - CreateImageGetImage

  • 工作流程 - CreateWorkflowGetWorkflow

注意:對於映像建置器受管工作流程,只會latestVersionArn (x.x.x)傳回 ,因為映像建置器要求您一律使用最新版本的映像建置器受管工作流程。