本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
映像定義檔案參考
本節僅供參考。如需有關利用來源建立管道或部署容器動作的詳細資訊,請參閱 在中建立管線 CodePipeline。
AWS CodePipeline 容器動作的工作者 (例如 Amazon ECR 來源動作或 Amazon ECS 部署動作) 會使用定義檔案將映像 URI 和容器名稱對應至任務定義。每個定義檔案都是一種 JSON 格式的檔案,由動作提供者使用,如下所示:
-
Amazon ECS 標準部署需要
imagedefinitions.json
檔案做為部署動作的輸入。 -
Amazon ECS 藍/綠部署需要
imageDetail.json
檔案做為部署動作的輸入。-
Amazon ECR 來源動作產生
imageDetail.json
檔案,提供做為來源動作的輸出。
-
適用於 Amazon ECS 標準部署動作的影像定義 .json 檔案
影像定義文件是一個 JSON 檔案,用來描述您的 Amazon ECS 容器名稱以及影像和標籤。如果您要部署容器型應用程式,則必須產生影像定義檔案,以便為 CodePipeline 工作者提供 Amazon ECS 容器和影像識別,以便從映像儲存庫 (例如 Amazon ECR) 擷取。
注意
此檔案的預設檔案名稱為 imagedefinitions.json
。如果您選擇使用不同的檔案名稱,必須在建立管道部署階段時提供該名稱。
根據下列考量建立 imagedefinitions.json
檔案:
-
檔案必須使用 UTF-8 編碼。
-
映像定義檔案的檔案大小上限為 100 KB。
-
您必須建立 檔案做為來源或建置成品,以做為部署動作的輸入成品。換句話說,請確定檔案已上傳到您的來源位置 (例如 CodeCommit 儲存庫),或是以建置輸出成品的形式產生。
imagedefinitions.json
檔案提供容器名稱和映像 URI。它必須以下列索引鍵/值組建構。
金鑰 | 值 |
---|---|
name | container_name |
imageUri | imageUri |
此處為 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.
適用於Amazon ECS 藍色/綠色部署動作的影像詳細資料.json 檔案
imageDetail.json
文件是描述您的 Amazon ECS 映像 URI 的 JSON 檔案。如果您要為藍/綠部署部署以容器為基礎的應用程式,則必須產生imageDetail.json
檔案,為 Amazon ECS 和任務 CodeDeploy工作者提供要從映像儲存庫 (例如 Amazon ECR) 擷取的映像識別。
注意
此檔案的名稱必須是 imageDetail.json
。
如需動作及其參數的描述,請參閱Amazon 彈性容器服務和 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。它必須以下列索引鍵/值組建構。
金鑰 | 值 |
---|---|
ImageURI | 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
-
-