本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
映像定義檔案參考
本節僅供參考。如需有關利用來源建立管道或部署容器動作的詳細資訊,請參閱 建立管道、階段和動作。
AWS CodePipeline 容器動作的工作工作者,例如 Amazon ECR來源動作或 Amazon ECS 部署動作,請使用定義檔案將映像URI和容器名稱對應至任務定義。每個定義檔案都是動作提供者使用的JSON格式化檔案,如下所示:
-
Amazon ECS標準部署需要
imagedefinitions.json
檔案作為部署動作的輸入。如需在 中使用 Amazon ECS標準部署動作的教學課程 CodePipeline,請參閱 教學課程:使用 的 Amazon ECS 標準部署 CodePipeline。 -
Amazon ECS 藍/綠部署需要
imageDetail.json
檔案作為部署動作的輸入。如需藍/綠部署範例的教學課程,請參閱 教學課程:使用 Amazon ECR來源和 部署ECS至 CodeDeploy 部署建立管道。-
Amazon ECR來源動作會產生檔案,該
imageDetail.json
檔案是以來源動作的輸出形式提供。
-
Amazon ECS標準部署動作的 image Definitions.json 檔案
映像定義文件是描述 Amazon ECS容器名稱和映像和標籤JSON的檔案。如果您正在部署容器型應用程式,則必須產生映像定義檔案,為 CodePipeline 作業工作者提供 Amazon ECS容器和映像識別,以便從映像儲存庫擷取,例如 Amazon ECR。
注意
此檔案的預設檔案名稱為 imagedefinitions.json
。如果您選擇使用不同的檔案名稱,必須在建立管道部署階段時提供該名稱。
根據下列考量建立 imagedefinitions.json
檔案:
-
檔案必須使用 UTF-8 編碼。
-
映像定義檔案的檔案大小上限為 100 KB。
-
您必須建立 檔案做為來源或建置成品,以做為部署動作的輸入成品。換句話說,請確定檔案已上傳至您的來源位置,例如儲存 CodeCommit 庫,或產生為建置的輸出成品。
imagedefinitions.json
檔案提供容器名稱和映像 URI。它必須以下列索引鍵/值組建構。
金鑰 | 值 |
---|---|
name | container_name |
imageUri | imageUri |
注意
名稱欄位用於容器映像名稱,即 Docker 映像的名稱。
以下是 JSON結構,其中容器名稱為 sample-app
,映像URI為 ecs-repo
,標籤為 latest
:
[ { "name": "sample-app", "imageUri": "11111EXAMPLE.dkr.ecr.us-west-2.amazonaws.com/ecs-repo:latest" } ]
您也可以建構此檔案以列出多個容器映像組。
JSON 結構:
[ { "name": "simple-app", "imageUri": "httpd:2.4" }, { "name": "simple-app-1", "imageUri": "mysql" }, { "name": "simple-app-2", "imageUri": "java1.8" } ]
在您建立管道前,請使用下列步驟來設定 imagedefinitions.json
檔案。
-
在管道中規劃容器式應用程式部署時,請適時規劃原始碼階段與建置階段。
-
選擇下列其中一項:
-
如果建立管道以略過建置階段,則必須手動建立JSON檔案並將其上傳至來源儲存庫,以便來源動作可以提供成品。使用文字編輯器建立檔案,並為檔案命名或使用預設的
imagedefinitions.json
檔案名稱。推送映像定義檔案到您的原始碼儲存庫。注意
如果您的來源儲存庫是 Amazon S3 儲存貯體,請記得壓縮JSON檔案。
-
若您的管道有建置階段,請新增命令到您的建置規格檔案;此檔案會在建置階段將映像定義檔案輸出至來源碼儲存庫。以下範例使用 printf 命令來建立
imagedefinitions.json
檔案。在buildspec.yml
檔案的post_build
部分列出此命令:printf '[{"name":"
container_name
","imageUri":"image_URI
"}]' > imagedefinitions.json您必須納入映像定義檔案做為
buildspec.yml
檔案的輸出成品。
-
-
當您在主控台中建立管道時,請在建立管道精靈的部署頁面上,在映像檔案名稱 中輸入映像定義檔案名稱。
如需建立使用 Amazon ECS作為部署提供者的管道的 step-by-step 教學課程,請參閱教學課程:使用 進行連續部署 CodePipeline。
imageDetailAmazon ECS 藍/綠部署動作的 .json 檔案
imageDetail.json
文件是描述 Amazon ECS映像 JSON的檔案URI。如果您要為藍/綠部署部署容器型應用程式,則必須產生 imageDetail.json
檔案,為 Amazon ECS和 CodeDeploy作業工作者提供映像識別,以便從映像儲存庫擷取,例如 Amazon ECR。
注意
此檔案的名稱必須是 imageDetail.json
。
如需動作及其參數的說明,請參閱 Amazon Elastic Container Service 和 CodeDeploy 藍綠部署動作參考。
您必須建立 imageDetail.json
檔案做為來源或建置成品,以做為部署動作的輸入成品。您可以使用下列其中一種方法在管道中提供 imageDetail.json
檔案:
-
將
imageDetail.json
檔案包含在來源位置中,以便在管道中提供,作為 Amazon ECS 藍/綠部署動作的輸入。注意
如果您的來源儲存庫是 Amazon S3 儲存貯體,請記得壓縮JSON檔案。
-
Amazon ECR來源動作會自動產生
imageDetail.json
檔案,做為下一個動作的輸入成品。注意
由於 Amazon ECR來源動作會建立此檔案,因此具有 Amazon ECR來源動作的管道不需要手動提供
imageDetail.json
檔案。如需建立包含 Amazon ECR來源階段之管道的教學課程,請參閱 教學課程:使用 Amazon ECR來源和 部署ECS至 CodeDeploy 部署建立管道。
imageDetail.json
檔案提供映像 URI。它必須以下列索引鍵/值組建構。
金鑰 | 值 |
---|---|
影像URI | image_URI |
在您建立管道前,請使用下列步驟來設定 imageDetail.json
檔案。
-
在管道中規劃容器式應用程式藍/綠部署時,請適時規劃原始碼階段與建置階段。
-
選擇下列其中一項:
-
如果您的管道已略過建置階段,則必須手動建立JSON檔案並將其上傳至來源儲存庫,例如 CodeCommit,以便來源動作可提供成品。使用文字編輯器建立檔案,並為檔案命名或使用預設的
imageDetail.json
檔案名稱。推送imageDetail.json
檔案到您的原始碼儲存庫。 -
如果您的管道有建置階段,請執行以下操作:
-
新增命令到您的建置規格檔案,此檔案會在建置階段將映像定義檔案輸出至原始碼儲存庫。以下範例使用 printf 命令來建立
imageDetail.json
檔案。在 buildspec.yml 檔案的post_build
區段列出此命令:printf '{"ImageURI":"
image_URI
"}' > imageDetail.json您必須在
buildspec.yml
檔案包含imageDetail.json
檔案以做為輸出成品。 -
在
buildspec.yml
檔案中新增imageDetail.json
為成品檔案。artifacts: files: - imageDetail.json
-
-