

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 步骤 4：在中创建管道 CodePipeline
<a name="other-services-cp-chef11-pipeline"></a>

**重要**  
该 AWS OpsWorks Stacks 服务于 2024 年 5 月 26 日终止，新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问，请通过 re [AWS : Post 或通过 Pre](https://repost.aws/) mium Su [AWS pp](https://aws.amazon.com/support) ort 与 AWS 支持 团队联系。

在你有一个包含层的堆栈并在堆栈中配置了至少一个实例之后，创建一个 CodePipeline 以 OpsWorks OpsWorks Stacks 作为提供者的管道，将应用程序或 Chef 食谱部署到你 OpsWorks 的 Stacks 资源中。

**创建管道**

1. 打开 CodePipeline 控制台，网址为[https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/)。

1. 选择 **Create pipeline（创建管道）**。

1. 在 “**入门 CodePipeline**” 页面上**MyOpsWorksPipeline**，键入您的账户独有的任何其他管道名称，然后选择 “**下一步**”。

1. 在 **Source Location** 页面上，从 **Source provider** 下拉列表中选择 **Amazon S3**。

1. 在 **Amazon S3 详细信息** 页面中，键入格式为 **s3://*bucket-name*/*file name*** 的 Amazon S3 存储桶路径。请参阅您在 [步骤 2：将应用程序代码上传到 Amazon S3 存储桶](other-services-cp-chef11-s3.md) 的步骤 10 中记录的链接。在本演练中，路径为 `s3://my-appbucket/opsworks-demo-php-simple-app-version1.zip`。选择**下一步**。  
![\[AWS CodePipeline 来源和提供商\]](http://docs.aws.amazon.com/zh_cn/opsworks/latest/userguide/images/cp_integ_source.png)

1. 在 **Build** 页面上，从下拉列表中选择 **No Build**，然后选择 **Next step**。

1. 在 **Deploy (部署)** 页面上，选择 **OpsWorks Stacks** 作为部署提供程序。  
![\[Deploy configuration form for AWS OpsWorks Stacks with fields for stack, layer, and app selection.\]](http://docs.aws.amazon.com/zh_cn/opsworks/latest/userguide/images/cp_integ_cpprovider.png)

1. 在 **Stack** 字段中，键入 `MyStack` 或者在[步骤 1：在 OpsWorks Stacks 中创建堆栈、层和实例](other-services-cp-chef11-stack.md)中创建的堆栈的名称。

1. 在 **Layer** 字段中，键入 `MyLayer` 或者在[步骤 1：在 OpsWorks Stacks 中创建堆栈、层和实例](other-services-cp-chef11-stack.md)中创建的层的名称。

1. 在**应用程序**字段中，选择在 [步骤 2：将应用程序代码上传到 Amazon S3 存储桶](other-services-cp-chef11-s3.md) 中上传到 Amazon S3 的应用程序，然后选择 **下一步**。

1. 在 **Amazon Web Service 角色** 页面上，选择**创建角色**。

   系统将打开一个新窗口，其中的 IAM 控制台页面将介绍将为您创建的角色 `AWS-CodePipeline-Service`。从 **Policy name** 下拉列表中，选择 **Create new policy**。请确保策略文档具有以下内容。选择 **Edit**，根据需要更改策略文档。

   ```
   {
       "Statement": [
           {
               "Action": [
                   "s3:GetObject",
                   "s3:GetObjectVersion",
                   "s3:GetBucketVersioning"
               ],
               "Resource": "*",
               "Effect": "Allow"
           },
           {
               "Action": "opsworks:*",
               "Resource": "*",
               "Effect": "Allow"
           }
       ]
   }
   ```

   完成对策略文档的更改后，选择 **Allow (允许)**。您的更改将显示在 IAM 控制台中。  
![\[AWSIAM role summary with policy document showing S3 object actions allowed.\]](http://docs.aws.amazon.com/zh_cn/opsworks/latest/userguide/images/cp_integ_iamrole.png)
**注意**  
如果角色创建失败，可能是因为您已经有一个名为 A **WS CodePipeline-Servic** e 的 IAM 角色。如果您在 2016 年 5 月之前一直在使用 **AWS CodePipeline-Servic** e 角色，则该角色可能无权将 OpsWorks Stacks 用作部署提供商；在这种情况下，您必须更新策略声明，如本步骤所示。如果您看到错误消息，请回到此步骤的开始位置，然后选择 **Use existing role (使用现有角色)** 而非 **Create role (创建角色)**。如果您使用现有角色，该角色应随附一个包含此步骤中所示权限的策略。有关服务角色及其策略声明的更多信息，请参阅 [Edit a Policy for an IAM Service Role](https://docs.aws.amazon.com/codepipeline/latest/userguide/access-permissions.html#how-to-custom-role)。

1. 如果角色创建过程成功，IAM 页面将关闭，并且您将返回 **Amazon Web Service 角色**页面。选择**下一步**。

1. 在 **Review your pipeline** 页面上，验证页面上显示的选择，然后选择 **Create pipeline**。  
![\[Pipeline configuration details for MyOpsWorksPipeline with source, build, and beta stages.\]](http://docs.aws.amazon.com/zh_cn/opsworks/latest/userguide/images/cp_integ_cpreview.png)

1. 当您的管道已准备就绪，该管道应开始查找您的源代码并自动将应用程序部署到您的堆栈。此过程可能耗时数分钟。