教程:创建部署到 Service Catalog 的管道 - Amazon CodePipeline
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

教程:创建部署到 Service Catalog 的管道

Service Catalog 使您能够基于 Amazon CloudFormation 模板创建和配置产品。本教程向您展示如何创建和配置管道,以便将您的产品模板部署到 Service Catalog,并交付您在源存储库(已在 GitHub CodeCommit、或 Amazon S3 中创建)中所做的更改。

注意

当 Amazon S3 是管道的源提供程序时,您必须将所有源文件打包为单个 .zip 文件上传到桶。否则,源操作将失败。

首先,您在 Service Catalog 中创建一个产品,然后在 Amazon CodePipeline中创建管道。本教程提供两个设置部署配置的选项:

选项 1:在不使用配置文件的情况下部署到 Service Catalog

在此示例中,您上传了 S3 存储桶的示例 Amazon 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" } } }

    此模板 Amazon CloudFormation 允许创建可由 Service Catalog 使用的 S3 存储桶。

  2. S3_template.json文件上传到 Amazon CodeCommit 存储库中。

步骤 2:在 Service Catalog 中创建产品

  1. 以 IT 管理员身份登录到 Service Catalog 控制台,转到产品页面,然后选择上传新产品

  2. 上传新产品页面上,完成以下操作:

    1. 产品名称中,输入您要用于新产品的名称。

    2. 描述中,输入产品目录描述。此说明显示在产品列表中,可帮助用户选择正确的产品。

    3. 提供者中,输入 IT 部门或管理员的名称。

    4. 选择下一步

  3. (可选)在输入支持详细信息中,输入产品支持联系人信息,然后选择下一步

  4. 版本详细信息中,完成以下内容:

    1. 选择上传模板文件。浏览您的 S3_template.json 文件并将其上传。

    2. 版本标题中,输入产品版本名称(例如 devops S3 v2)。

    3. 描述中,输入区分此版本与其他版本的详细信息。

    4. 选择下一步

  5. 审核页面上,确认信息正确,然后选择创建

  6. 产品页面上,在浏览器中复制新产品的 URL。这包含产品 ID。复制并保留此产品 ID。您可以在中创建管道时使用它 CodePipeline。

    以下是名为 my-product 的产品的 URL。要提取产品 ID,请复制等号(=)和符号(&)之间的值。在此示例中,产品 ID 为 prod-example123456

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

    复制您的产品的 URL,然后再离开该页面。离开此页面后,必须使用 CLI 获取产品 ID。

    几秒钟后,您的产品会显示在产品页面上。您可能需要刷新浏览器才能在列表中看到此产品。

步骤 3:创建管道

  1. 要命名您的管道并选择用于管道的参数,请执行以下操作:

    1. 登录 Amazon Web Services Management Console 并打开 CodePipeline 控制台,网址为 https://console.aws.amazon.com/codepipeline/

    2. 选择开始使用。选择创建管道,然后输入管道名称。

    3. 在本教程中,为管道类型选择 V1。也可以选择 V2;但请注意,不同管道类型具有不同的特性和价格。有关更多信息,请参阅 管道类型

    4. 服务角色中,选择新建服务角色 CodePipeline 以允许在 IAM 中创建服务角色。

    5. 高级设置中的各项设置保留为默认值,然后选择下一步

  2. 要添加源阶段,请执行以下操作:

    1. 源提供程序中,选择 Amazon CodeCommit

    2. 存储库名称分支名称中,输入您要用于自己的源操作的存储库和分支。

    3. 选择下一步

  3. 添加构建阶段中,选择跳过构建阶段,然后再次选择跳过以接受警告消息。

  4. 添加部署阶段中,完成以下操作:

    1. 部署提供商中,选择Amazon Service Catalog

    2. 对于部署配置,请选择输入部署配置

    3. 产品 ID 中,粘贴您从 Service Catalog 控制台复制的产品 ID。

    4. 模板文件路径中,输入存储模板文件的位置的相对路径。

    5. 产品类型中,选择 Amazon CloudFormation 模板

    6. 产品版本名称中,输入您在 Service Catalog 中指定的产品版本的名称。如果您想将模板更改部署到新的产品版本,请输入尚未用于同一产品中任何先前产品版本的产品版本名称。

    7. 对于输入项目,选择源输入项目。

    8. 选择下一步

  5. 审核中,审核您的管道设置,然后选择创建

  6. 管道成功运行后,在部署阶段上选择详细信息。这会在 Service Catalog 中打开您的产品。

    查看管道的 Service Catalog 部署阶段
  7. 在您的产品信息中,选择您的版本名称以打开产品模板。查看模板部署。

步骤 4:在 Service Catalog 中推送更改并验证产品

  1. 在 CodePipeline 控制台中查看您的管道,然后在源代码舞台上选择 Deta ils。您的源 Amazon CodeCommit 存储库将在控制台中打开。选择编辑,然后在文件中进行更改(例如,更改描述)。

    "Description": "Name of Amazon S3 bucket to hold and version website content"
  2. 提交并推送您的更改。推送更改后,您的管道启动。当管道运行完成时,在部署阶段上选择详细信息以在 Service Catalog 中打开您的产品。

  3. 在您的产品信息中,选择新的版本名称以打开产品模板。查看部署的模板更改。

选项 2:使用配置文件部署到 Service Catalog

在此示例中,您上传了 S3 存储桶的示例 Amazon 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" } } }

    此模板 Amazon CloudFormation 允许创建可由 Service Catalog 使用的 S3 存储桶。

  2. S3_template.json文件上传到 Amazon 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文件上传到 Amazon CodeCommit 存储库中。确保您将此文件上载到您的源存储库。

步骤 3:在 Service Catalog 中创建产品

  1. 以 IT 管理员身份登录到 Service Catalog 控制台,转到产品页面,然后选择上传新产品

  2. 上传新产品页面上,完成以下操作:

    1. 产品名称中,输入您要用于新产品的名称。

    2. 描述中,输入产品目录描述。此说明出现在产品列表中,可帮助用户选择正确的产品。

    3. 提供者中,输入 IT 部门或管理员的名称。

    4. 选择下一步

  3. (可选)在输入支持详细信息中,输入产品支持联系人信息,然后选择下一步

  4. 版本详细信息中,完成以下内容:

    1. 选择上传模板文件。浏览您的 S3_template.json 文件并将其上传。

    2. 版本标题中,输入产品版本的名称(例如,“devops S3 v2”)。

    3. 描述中,输入区分此版本与其他版本的详细信息。

    4. 选择下一步

  5. 审核页面上,确认信息正确,然后选择确认并上传

  6. 产品页面上,在浏览器中复制新产品的 URL。这包含产品 ID。复制并保留此产品 ID。您在中创建管道时使用 CodePipeline。

    以下是名为 my-product 的产品的 URL。要提取产品 ID,请复制等号(=)和符号(&)之间的值。在此示例中,产品 ID 为 prod-example123456

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

    复制您的产品的 URL,然后再离开该页面。离开此页面后,必须使用 CLI 获取产品 ID。

    几秒钟后,您的产品会显示在产品页面上。您可能需要刷新浏览器才能在列表中看到此产品。

步骤 4:创建管道

  1. 要命名您的管道并选择用于管道的参数,请执行以下操作:

    1. 登录 Amazon Web Services Management Console 并打开 CodePipeline 控制台,网址为 https://console.aws.amazon.com/codepipeline/

    2. 选择开始使用。选择创建管道,然后输入管道名称。

    3. 服务角色中,选择新建服务角色 CodePipeline 以允许在 IAM 中创建服务角色。

    4. 高级设置中的各项设置保留为默认值,然后选择下一步

  2. 要添加源阶段,请执行以下操作:

    1. 源提供程序中,选择 Amazon CodeCommit

    2. 存储库名称分支名称中,输入您要用于自己的源操作的存储库和分支。

    3. 选择下一步

  3. 添加构建阶段中,选择跳过构建阶段,然后再次选择跳过以接受警告消息。

  4. 添加部署阶段中,完成以下操作:

    1. 部署提供商中,选择Amazon Service Catalog

    2. 选择使用配置文件

    3. 产品 ID 中,粘贴您从 Service Catalog 控制台复制的产品 ID。

    4. 配置文件路径中,输入存储库中配置文件的文件路径。

    5. 选择下一步

  5. 审核中,审核您的管道设置,然后选择创建

  6. 管道成功运行后,在部署阶段上选择详细信息,以便在 Service Catalog 中打开您的产品。

    查看管道的 Service Catalog 部署阶段
  7. 在您的产品信息中,选择您的版本名称以打开产品模板。查看模板部署。

步骤 5:在Service Catalog 中推送更改并验证产品

  1. 在 CodePipeline 控制台中查看您的管道,然后在源代码舞台上选择 Deta ils。您的源 Amazon CodeCommit 存储库将在控制台中打开。选择编辑,然后在文件中进行更改(例如,更改描述)。

    "Description": "Name of Amazon S3 bucket to hold and version website content"
  2. 提交并推送您的更改。推送更改后,您的管道启动。当管道运行完成时,在部署阶段上选择详细信息以在 Service Catalog 中打开您的产品。

  3. 在您的产品信息中,选择新的版本名称以打开产品模板。查看部署的模板更改。