教學課程:建立管道以部署至 Service Catalog - AWS CodePipeline

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

教學課程:建立管道以部署至 Service Catalog

Service Catalog 可讓您根據 AWS CloudFormation 範本建立和佈建產品。

重要

作為建立管道的一部分,客戶提供的 S3 成品儲存貯體將由 CodePipeline 用於成品。(這與用於 S3 來源動作的儲存貯體不同。) 如果 S3 成品儲存貯體位於與管道帳戶不同的帳戶中,請確保 S3 成品儲存貯體由 AWS 帳戶 安全且可靠的 擁有。

本教學課程示範如何建立和設定管道,以將產品範本部署至 Service Catalog,並交付您在來源儲存庫中所做的變更 (已在 GitHub CodeCommit、 或 Amazon S3 中建立)。

注意

當 Amazon S3 是管道的來源提供者時,您必須將所有原始檔案上傳到儲存貯體,並以單一 .zip 檔案包裝。否則,來源動作會失敗。

首先,您在 Service Catalog 中建立產品,然後在 中建立管道 AWS CodePipeline。本教學課程提供兩種設定部署組態的選項:

選項 1:部署至不含組態檔案的服務目錄

在此範例中,您會上傳 S3 儲存貯體的範例 AWS CloudFormation 範本檔案,然後在 Service Catalog 中建立您的產品。接下來,您可以在 CodePipeline 主控台中建立管道並指定部署組態。

步驟 1:上傳範例範本檔案到來源儲存庫

  1. 開啟文字編輯器。將以下項目貼到檔案以建立範例範本。儲存檔案為 S3_template.json

    { "AWSTemplateFormatVersion": "2010-09-09", "Description": "CloudFormation Sample Template S3_Bucket: Sample template showing how to create a privately accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the resources used if you create a stack from this template.", "Resources": { "S3Bucket": { "Type": "AWS::S3::Bucket", "Properties": {} } }, "Outputs": { "BucketName": { "Value": { "Ref": "S3Bucket" }, "Description": "Name of Amazon S3 bucket to hold website content" } } }

    此範本允許 AWS CloudFormation 建立可供 Service Catalog 使用的 S3 儲存貯體。

  2. S3_template.json 檔案上傳至 AWS CodeCommit 儲存庫。

步驟 2:在 Service Catalog 中建立產品

  1. 身為 IT 管理員,請登入 Service Catalog 主控台,前往產品頁面,然後選擇上傳新產品。

  2. Upload new product (上傳新產品) 頁面上,完成下列動作:

    1. Product name (產品名稱) 中,輸入您想要使用的新產品名稱。

    2. Description (敘述) 中輸入產品型錄描述。此處的描述會顯示在產品列表中,以協助使用者選擇正確的產品。

    3. Provided by (提供者) 中輸入 IT 部門或管理員的名稱。

    4. 選擇 Next (下一步)

  3. (選擇性) 在 Enter support details (輸入支援詳細資訊) 中,請輸入產品支援聯絡資訊,然後選擇 Next (下一步)

  4. Version details (版本詳細資訊) 中,完成以下項目:

    1. 選擇 Upload a template file (上傳範本檔案)。瀏覽您的 S3_template.json 檔案並上傳。

    2. Version title (版本標題) 中,輸入產品版本名稱 (例如,devops S3 v2)。

    3. Description (敘述) 中,輸入區分此版本與其他版本的詳細資訊。

    4. 選擇 Next (下一步)

  5. Review (檢閱) 頁面上,確認資訊正確,然後選擇 Create (建立)

  6. 產品頁面的瀏覽器中,複製新產品URL的 。這會包含產品 ID。複製並保留此產品 ID。您可以在 中建立管道時使用它 CodePipeline。

    以下是名為 URL之產品的 my-product。若要擷取產品 ID,請複製等號 (=) 和 & (&) 之間的值。在此範例中,產品 ID 為 prod-example123456

    https://<region-URL>/servicecatalog/home?region=<region>#/admin-products?productCreated=prod-example123456&createdProductTitle=my-product
    注意

    在離開頁面之前,請URL為您的產品複製 。離開此頁面後,您必須使用 CLI取得產品 ID。

    幾秒鐘後,您的產品即會出現在 Products (產品) 頁面上。可能需要重新整理瀏覽器才能在清單中看到產品。

步驟 3:建立管道

  1. 若要命名管道和選擇管道參數,請執行下列動作:

    1. 登入 AWS Management Console 並在 開啟 CodePipeline 主控台https://console.aws.amazon.com/codepipeline/

    2. 選擇 Getting started (入門)。選擇 Create pipeline (建立管道) 然後輸入管道名稱。

    3. 管道類型 中,選擇 V2。如需詳細資訊,請參閱管道類型。選擇 Next (下一步)

    4. 服務角色 中,選擇要允許 CodePipeline 在 中建立服務角色的新服務角色IAM。

    5. Advanced settings (進階設定) 下的設定保留為預設值,然後選擇 Next (下一步)

  2. 若要新增來源階段,請執行以下操作:

    1. Source provider (來源提供者) 中選擇 AWS CodeCommit

    2. Repository name (儲存庫名稱)Branch name (分支名稱) 中,輸入您想為來源動作使用的儲存庫和分支。

    3. 選擇 Next (下一步)

  3. Add build stage (新增建置階段) 中,選擇 Skip build stage (跳過建置階段),然後再次選擇 Skip (跳過) 來接受警告訊息​。

  4. Add deploy stage (新增部署階段) 中,完成以下項目:

    1. 部署提供者 中,選擇 AWS Service Catalog

    2. 對於部署設定,選擇 Enter deployment configuration (輸入部署設定)

    3. 產品 ID 中,貼上您從 Service Catalog 主控台複製的產品 ID。

    4. Template file path (範本檔案路徑) 中,輸入範本檔案存放的相對路徑。

    5. 產品類型 中,選擇AWS CloudFormation 範本

    6. 產品版本名稱 中,輸入您在 Service Catalog 中指定的產品版本名稱。如果要將範本變更部署到新產品版本,請輸入同一產品之前版本中未曾使用過的產品版本名稱。

    7. 對於 Input artifact (輸入成品),請選擇來源輸入成品。

    8. 選擇 Next (下一步)

  5. Review (檢閱) 中檢閱您的管道設定,然後選擇 Create (建立)

  6. 管道成功執行之後,在部署階段選擇 Details (詳細資訊)。這會在 Service Catalog 中開啟您的產品。

    檢視管道的 Service Catalog 部署階段
  7. 在您的產品資訊下,選擇您的版本名稱以開啟產品範本。檢視範本部署。

步驟 4:在 Service Catalog 中推送變更並驗證您的產品

  1. 在 CodePipeline 主控台中檢視管道,並在來源階段,選擇詳細資訊 。您的來源 AWS CodeCommit 儲存庫會在主控台中開啟。選擇 Edit (編輯),並在檔案中進行變更 (例如,對描述進行變更)。

    "Description": "Name of Amazon S3 bucket to hold and version website content"
  2. 遞交並推送您的變更。您的管道將在您推送變更之後啟動。當管道的執行完成時,在部署階段,選擇詳細資訊以在 Service Catalog 中開啟您的產品。

  3. 在您的產品資訊下,選擇新版本名稱以開啟產品範本。查看部署的範本變更。

選項 2:使用組態檔案部署至 Service Catalog

在此範例中,您會上傳 S3 儲存貯體的範例 AWS CloudFormation 範本檔案,然後在 Service Catalog 中建立您的產品。您也可以上傳指定您部署組態的單獨組態檔案。接著,您將建立管道並指定組態檔案的位置。

步驟 1:上傳範例範本檔案到來源儲存庫

  1. 開啟文字編輯器。將以下項目貼到檔案以建立範例範本。儲存檔案為 S3_template.json

    { "AWSTemplateFormatVersion": "2010-09-09", "Description": "CloudFormation Sample Template S3_Bucket: Sample template showing how to create a privately accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the resources used if you create a stack from this template.", "Resources": { "S3Bucket": { "Type": "AWS::S3::Bucket", "Properties": {} } }, "Outputs": { "BucketName": { "Value": { "Ref": "S3Bucket" }, "Description": "Name of Amazon S3 bucket to hold website content" } } }

    此範本允許 AWS CloudFormation 建立可供 Service Catalog 使用的 S3 儲存貯體。

  2. S3_template.json 檔案上傳至 AWS CodeCommit 儲存庫。

步驟 2:建立您的產品部署組態檔案

  1. 開啟文字編輯器。為您的產品建立組態檔案。組態檔案用於定義 Service Catalog 部署參數/偏好設定。您將在建立管道時使用此檔案。

    此範例提供一個「devops S3 v2」的 ProductVersionNameMyProductVersionDescriptionProductVersionDescription。如果您要將範本變更部署到新產品版本,只要輸入同一產品之前版本中未曾使用過的產品版本名稱即可。

    儲存檔案為 sample_config.json

    { "SchemaVersion": "1.0", "ProductVersionName": "devops S3 v2", "ProductVersionDescription": "MyProductVersionDescription", "ProductType": "CLOUD_FORMATION_TEMPLATE", "Properties": { "TemplateFilePath": "/S3_template.json" } }

    此檔案會在您每次執行管道時建立產品版本資訊。

  2. sample_config.json 檔案上傳至 AWS CodeCommit 儲存庫。請確定您上傳此檔案到您的來源儲存庫。

步驟 3:在 Service Catalog 中建立產品

  1. 身為 IT 管理員,請登入 Service Catalog 主控台,前往產品頁面,然後選擇上傳新產品。

  2. Upload new product (上傳新產品) 頁面上,完成下列動作:

    1. Product name (產品名稱) 中,輸入您想要使用的新產品名稱。

    2. Description (敘述) 中輸入產品型錄描述。此處的描述顯示於產品列表中,以協助使用者選擇正確的產品。

    3. Provided by (提供者) 中輸入 IT 部門或管理員的名稱。

    4. 選擇 Next (下一步)

  3. (選擇性) 在 Enter support details (輸入支援詳細資訊) 中,請輸入產品支援聯絡資訊,然後選擇 Next (下一步)

  4. Version details (版本詳細資訊) 中,完成以下項目:

    1. 選擇 Upload a template file (上傳範本檔案)。瀏覽您的 S3_template.json 檔案並上傳。

    2. Version title (版本標題) 中,輸入產品版本名稱 (例如「devops S3 v2」)。

    3. Description (敘述) 中,輸入區分此版本與其他版本的詳細資訊。

    4. 選擇 Next (下一步)

  5. Review (檢閱) 頁面上,確認資訊正確,然後選擇確認並上傳

  6. 產品頁面的瀏覽器中,複製新產品URL的 。這會包含產品 ID。複製並保留此產品 ID。您可以在 中建立管道時使用 CodePipeline。

    以下是名為 URL之產品的 my-product。若要擷取產品 ID,請複製等號 (=) 和 & (&) 之間的值。在此範例中,產品 ID 為 prod-example123456

    https://<region-URL>/servicecatalog/home?region=<region>#/admin-products?productCreated=prod-example123456&createdProductTitle=my-product
    注意

    在離開頁面之前,請URL為您的產品複製 。離開此頁面後,您必須使用 CLI取得產品 ID。

    幾秒鐘後,您的產品即會出現在 Products (產品) 頁面上。可能需要重新整理瀏覽器才能在清單中看到產品。

步驟 4:建立管道

  1. 若要命名管道和選擇管道參數,請執行下列動作:

    1. 登入 AWS Management Console 並在 開啟 CodePipeline 主控台https://console.aws.amazon.com/codepipeline/

    2. 選擇 Getting started (入門)。選擇 Create pipeline (建立管道) 然後輸入管道名稱。

    3. 服務角色 中,選擇要允許 CodePipeline 在 中建立服務角色的新服務角色IAM。

    4. Advanced settings (進階設定) 下的設定保留為預設值,然後選擇 Next (下一步)

  2. 若要新增來源階段,請執行以下操作:

    1. Source provider (來源提供者) 中選擇 AWS CodeCommit

    2. Repository name (儲存庫名稱)Branch name (分支名稱) 中,輸入您想為來源動作使用的儲存庫和分支。

    3. 選擇 Next (下一步)

  3. Add build stage (新增建置階段) 中,選擇 Skip build stage (跳過建置階段),然後再次選擇 Skip (跳過) 來接受警告訊息​。

  4. Add deploy stage (新增部署階段) 中,完成以下項目:

    1. 部署提供者 中,選擇 AWS Service Catalog

    2. 選擇 Use configuration file (使用組態檔案)

    3. 產品 ID 中,貼上您從 Service Catalog 主控台複製的產品 ID。

    4. Configuration file path (組態檔案路徑中),輸入您儲存庫中組態檔案的檔案路徑。

    5. 選擇 Next (下一步)

  5. Review (檢閱) 中檢閱您的管道設定,然後選擇 Create (建立)

  6. 管道成功執行後,請在部署階段選擇詳細資訊,以在 Service Catalog 中開啟產品。

    檢視管道的 Service Catalog 部署階段
  7. 在您的產品資訊下,選擇您的版本名稱以開啟產品範本。檢視範本部署。

步驟 5:在 Service Catalog 中推送變更並驗證您的產品

  1. 在 CodePipeline 主控台中檢視管道,並在來源階段,選擇詳細資訊 。您的來源 AWS CodeCommit 儲存庫會在主控台中開啟。選擇 Edit (編輯),然後在檔案中進行變更 (例如,對描述進行變更)。

    "Description": "Name of Amazon S3 bucket to hold and version website content"
  2. 遞交並推送您的變更。您的管道將在您推送變更之後啟動。當管道的執行完成時,在部署階段,選擇詳細資訊以在 Service Catalog 中開啟您的產品。

  3. 在您的產品資訊下,選擇新版本名稱以開啟產品範本。查看部署的範本變更。