

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

# AWS CodePipeline 搭配 OpsWorks Stacks - Chef 12 Stacks
<a name="other-services-cp-chef12"></a>

**重要**  
 AWS OpsWorks Stacks 此服務已於 2024 年 5 月 26 日終止，並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載遷移至其他解決方案。如果您對遷移有任何疑問，請透過 [AWS re：Post](https://repost.aws/) 或透過 [AWS Premium Support](https://aws.amazon.com/support) 聯絡 AWS 支援 團隊。

[AWS CodePipeline](https://aws.amazon.com/codepipeline/) 可讓您建立持續交付管道，以追蹤來自 CodeCommit、Amazon Simple Storage Service (Amazon S3) 或 [GitHub](https://github.com/) 等來源的程式碼變更。本主題中的範例說明如何從 CodePipeline 建立和使用簡單的管道，做為您在 OpsWorks Stacks layer 上執行之程式碼的部署工具。在此範例中，您會為簡單的 [Node.js 應用程式](samples/opsworks-nodejs-demo-app.zip)建立管道，然後指示 OpsWorks Stacks 在 Chef 12 堆疊中層中的所有執行個體上執行應用程式 （在此案例中為單一執行個體）。

**注意**  
本主題說明如何使用管道在 Chef 12 堆疊上執行與更新應用程式。如需如何使用管道在 Chef 11.10 堆疊上執行與更新應用程式的資訊，請參閱 [AWS CodePipeline 搭配 OpsWorks Stacks - Chef 11 Stacks](other-services-cp-chef11.md)。傳遞至 Amazon S3 儲存貯體的內容可能包含客戶內容。如需移除敏感資料的詳細資訊，請參閱[如何清空 S3 儲存貯體？](https://docs.aws.amazon.com/AmazonS3/latest/userguide/empty-bucket.html)或[如何刪除 S3 儲存貯體？](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html)。

**Topics**
+ [先決條件](#w2ab1c14c73c19c11c11)
+ [其他支援的案例](#w2ab1c14c73c19c11c13)
+ [步驟 1：在 Stacks 中建立堆疊、 layer OpsWorks 和執行個體](other-services-cp-chef12-stack.md)
+ [步驟 2：設定您的堆疊和 layer 使用自訂的技術指南](other-services-cp-stackconfig.md)
+ [步驟 3：將應用程式碼上傳至 Amazon S3 儲存貯體](other-services-cp-chef12-s3.md)
+ [步驟 4：將您的應用程式新增至 OpsWorks Stacks](other-services-cp-chef12-addapp.md)
+ [步驟 5：在 CodePipeline 中建立管道](other-services-cp-chef12-pipeline.md)
+ [步驟 6：驗證 OpsWorks Stacks 中的應用程式部署](other-services-cp-chef12-verify.md)
+ [步驟 7 （選用）：更新應用程式程式碼，以查看 CodePipeline 自動重新部署您的應用程式](other-services-cp-chef12-update.md)
+ [步驟 8 (選用)：清理資源](other-services-cp-chef12-cleanup.md)

## 先決條件
<a name="w2ab1c14c73c19c11c11"></a>

在您開始本演練之前，請確定您有執行下列所有任務的管理員許可。您可以是已套用 **AdministratorAccess** 政策之群組的成員，也可以是具有下表所示許可和政策之群組的成員。作為安全最佳實務，您應該屬於具有執行下列任務許可的群組，而不是將必要的許可指派給個別使用者。

如需在 IAM 中建立安全群組和指派許可給群組的詳細資訊，請參閱[建立 IAM 使用者群組](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups_create.html)。如需管理 OpsWorks Stacks 許可的詳細資訊，請參閱[最佳實務：管理許可](https://docs.aws.amazon.com/opsworks/latest/userguide/best-practices-permissions.html)。


| 許可 | 建議連接至群組的政策 | 
| --- | --- | 
|  在 Stacks OpsWorks 中建立和編輯堆疊、層和執行個體。  | AWSOpsWorks\$1FullAccess | 
|  在 CloudFormation中建立、編輯和執行範本。  | AmazonCloudFormationFullAccess | 
|  建立、編輯和存取 Amazon S3 儲存貯體。  | AmazonS3FullAccess | 
|  在 CodePipeline 中建立、編輯和執行管道，尤其是使用 Stacks OpsWorks 做為提供者的管道。  | AWSCodePipeline\$1FullAccess | 

您也必須有 Amazon EC2 金鑰對。當您執行在此演練中建立範例堆疊、 layer 和執行個體的 CloudFormation 範本時，系統會提示您提供此金鑰對的名稱。如需在 Amazon EC2 主控台中取得金鑰對的詳細資訊，請參閱 Amazon EC2 文件中的[建立金鑰對](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/get-set-up-for-amazon-ec2.html#create-a-key-pair)。金鑰對必須位於美國東部 （維吉尼亞北部） 區域。如果您在該區域中已有金鑰對，則可以使用該現有金鑰對。

## 其他支援的案例
<a name="w2ab1c14c73c19c11c13"></a>

本演練會建立包含一個 **Source (來源)** 和一個 **Deploy (部署)** 階段的簡易管道。不過，您可以建立使用 Stacks OpsWorks 做為提供者的更複雜管道。下列是支援的管道和案例範例：
+ 您可以編輯管道，以將 Chef 技術指南新增至 **Source (來源)** 階段，以及將已更新技術指南的相關聯目標新增至 **Deploy (部署)** 階段。在此情況下，您可以新增 **Deploy (部署)** 動作，以在您變更來源時觸發技術指南更新。已更新的技術指南會比應用程式先部署。
+ 您可以使用自訂技術指南和多個應用程式建立複雜的管道，並部署到 Stacks OpsWorks 堆疊。該管道會同時追蹤對應用程式和技術指南來源所做的變更，並在您變更後重新部署。下圖示範類似的複雜管道範例：  
![\[Pipeline diagram showing Source stage with Amazon S3 inputs and Beta stage with AWS OpsWorks outputs.\]](http://docs.aws.amazon.com/zh_tw/opsworks/latest/userguide/images/cp_integ_complexpipeline.png)

如需使用 CodePipeline 的詳細資訊，請參閱 [CodePipeline 使用者指南](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)。