本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立和更新 AMI 分佈組態
本節涵蓋建立和更新映像建置器 AMI 的分佈組態。
SSM 輸出參數的先決條件
建立新的 AMI 分佈組態來設定 AWS Systems Manager 參數存放區參數 (SSM 參數) 之前,請確定您符合下列先決條件。
- 執行角色
-
當您在 中建立管道或使用 create-image 命令時 AWS CLI,您只能指定一個 Image Builder 執行角色。如果您已定義 Image Builder 工作流程執行角色,您可以將任何其他功能許可新增至該角色。否則,您會建立新的自訂角色,其中包含必要的許可。
-
若要在分發期間將輸出 AMI ID 存放在 SSM 參數中,您必須在 Image Builder 執行角色中指定
ssm:PutParameter
動作,並將 參數列為資源。 -
當您將參數資料類型設定為
AWS EC2 Image
以向 Systems Manager 發出訊號,以驗證參數值為 AMI ID 時,您也必須新增ec2:DescribeImages
動作。
-
建立 AMI 分佈組態
分佈組態包括輸出 AMI 名稱、加密的特定區域設定、啟動許可 AWS 帳戶,以及可啟動輸出 AMI 的組織和組織單位 (OUs),以及授權組態。
分佈組態可讓您指定輸出 AMI 的名稱和描述、授權其他 AWS 帳戶 啟動 AMI、將 AMI 複製到其他帳戶,以及將 AMI 複製到其他 AWS 區域。它還允許您將 AMI 匯出到 Amazon Simple Storage Service (Amazon S3),或為輸出 Windows AMIs 設定 EC2 Fast Launch。若要公開 AMI,請將啟動許可授權帳戶設定為 all
。請參閱 EC2 上公開 AMI 的範例ModifyImageAttribute。
更新 AMI 分佈組態
您可以變更 AMI 分佈組態。不過,您所做的變更不適用於 Image Builder 已分發的任何資源。例如,如果您已將 AMI 分發到稍後從分發中移除的區域,則已分發的 AMI 會保留在該區域中,直到您手動將其移除為止。
建立分佈設定以啟用輸出 AMIs的 EC2 Fast Launch
下列範例示範如何使用 create-distribution-configuration
注意
Image Builder 不支援預先啟用 EC2 Fast Launch 的 AMIs 跨帳戶分佈。必須從目的地帳戶啟用 EC2 Fast Launch。
-
建立 CLI 輸入 JSON 文件
使用檔案編輯工具建立具有金鑰的 JSON 檔案,如下列範例所示,加上適用於您環境的值。
此範例會同時為其所有目標資源啟動執行個體,因為平行啟動的最大數量大於目標資源計數。此檔案在下一個步驟
ami-dist-config-win-fast-launch.json
中顯示的命令範例中命名。{ "name": "WinFastLaunchDistribution", "description": "An example of Windows AMI EC2 Fast Launch settings in the distribution configuration.", "distributions": [ { "region": "us-west-2", "amiDistributionConfiguration": { "name": "Name {{imagebuilder:buildDate}}", "description": "Includes Windows AMI EC2 Fast Launch settings.", "amiTags": { "KeyName": "Some Value" } }, "fastLaunchConfigurations": [{ "enabled": true, "snapshotConfiguration": { "targetResourceCount": 5 }, "maxParallelLaunches": 6, "launchTemplate": { "launchTemplateId": "lt-0ab1234c56d789012", "launchTemplateVersion": "1" } }], "launchTemplateConfigurations": [{ "launchTemplateId": "lt-0ab1234c56d789012", "setDefaultVersion": true }] }] }
注意
您可以在
launchTemplate
區段launchTemplateId
中指定launchTemplateName
,而不是 ,但無法同時指定名稱和 ID。 -
使用您建立做為輸入的檔案,執行下列命令。
aws imagebuilder create-distribution-configuration --cli-input-json file://
ami-dist-config-win-fast-launch.json
注意
-
您必須在 JSON 檔案路徑的開頭包括
file://
標記。 -
JSON 檔案的路徑應遵循執行命令之基礎作業系統的適當慣例。例如,Windows 使用反斜線 (\) 來參考目錄路徑,而 Linux 和 macOS 則使用正斜線 (/)。
如需詳細資訊,請參閱《 AWS CLI 命令參考create-distribution-configuration
》中的 。 -
從 建立輸出 VM 磁碟的分佈設定 AWS CLI
下列範例示範如何使用 create-distribution-configuration命令來建立分佈設定,以在每次建置映像時將 VM 映像磁碟匯出至 Amazon S3。
-
建立 CLI 輸入 JSON 文件
您可以簡化在 中使用的create-distribution-configuration命令 AWS CLI。若要執行此作業,請建立 JSON 檔案,其中包含您要傳入命令的所有匯出組態。
注意
JSON 檔案中資料值的命名慣例遵循為映像建置器 API 操作請求參數指定的模式。若要檢閱 API 操作請求參數,請參閱 EC2 Image Builder API 參考中的 CreateDistributionConfiguration命令。
若要提供資料值做為命令列參數,請參閱 AWS CLI 命令參考中指定的參數名稱。 會將 create-distribution-configuration命令做為選項。
以下是我們在
s3ExportConfiguration
JSON 物件中為此範例指定的參數摘要:-
roleName (字串,必要) – 授予 VM Import/Export 許可將映像匯出至 S3 儲存貯體的角色名稱。
-
diskImageFormat (字串,必要) – 將更新的磁碟映像匯出為下列其中一個支援的格式:
-
Virtual Hard Disk (VHD) – 與 Citrix Xen 和 Microsoft Hyper-V 虛擬化產品相容。
-
串流最佳化 ESX 虛擬機器磁碟 (VMDK) – 與 VMware ESX 和 VMware vSphere 第 4、5 和 6 版相容。
-
原始 – 原始格式。
-
-
s3Bucket (字串,必要) – 存放 VM 輸出磁碟映像的 S3 儲存貯體。
儲存檔案為
export-vm-disks.json
。在 create-distribution-configuration命令中使用檔案名稱。{ "name": "example-distribution-configuration-with-vm-export", "description": "example", "distributions": [ { "region": "us-west-2", "amiDistributionConfiguration": { "description": "example-with-vm-export" }, "s3ExportConfiguration": { "roleName": "vmimport", "diskImageFormat": "RAW", "s3Bucket": "vm-bucket-export" } }], "clientToken": "abc123def4567ab" }
-
-
使用您建立做為輸入的檔案,執行下列命令。
aws imagebuilder create-distribution-configuration --cli-input-json file://
export-vm-disks.json
注意
-
您必須在 JSON 檔案路徑的開頭包括
file://
標記。 -
JSON 檔案的路徑應遵循執行命令之基礎作業系統的適當慣例。例如,Windows 使用反斜線 (\) 來參考目錄路徑,而 Linux 和 macOS 則使用正斜線 (/)。
如需詳細資訊,請參閱《 AWS CLI 命令參考create-distribution-configuration
》中的 。 -