本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
教程:创建部署到 Service Catalog 的管道
通过 Service Catalog,您可以根据 Amazon CloudFormation 模板创建和预调配产品。
重要
作为创建管道的一部分,CodePipeline 将使用客户提供的 S3 构件存储桶来存放构件。(这与用于 S3 源操作的存储桶不同。) 如果 S3 构件存储桶所在的账户与您的管道账户不同,请确保 S3 构件存储桶归 Amazon Web Services 账户所有,并且安全可靠。
本教程介绍如何创建和配置管道,以将您的产品模板部署到 Service Catalog,并交付您已在源存储库(已在 GitHub、CodeCommit 或 Amazon S3 中创建)中所做的更改。
注意
当 Amazon S3 是管道的源提供程序时,您必须将所有源文件打包为单个 .zip 文件上传到桶。否则,源操作将失败。
首先,您在 Service Catalog 中创建一个产品,然后在 Amazon CodePipeline 中创建管道。本教程提供两个设置部署配置的选项:
-
在 Service Catalog 中创建产品并将模板文件上传到您的源存储库。在 CodePipeline 控制台中提供产品版本和部署配置(没有单独的配置文件)。请参阅选项 1:在不使用配置文件的情况下部署到 Service Catalog。
注意
可以按 YAML 或 JSON 格式创建模板文件。
-
在 Service Catalog 中创建产品并将模板文件上传到您的源存储库。在单独的配置文件中提供产品版本和部署配置。请参阅选项 2:使用配置文件部署到 Service Catalog。
选项 1:在不使用配置文件的情况下部署到 Service Catalog
在本示例中,您为 S3 桶上传示例 Amazon CloudFormation 模板文件,然后在 Service Catalog 中创建您的产品。接下来,在 CodePipeline 控制台中创建您的管道,并指定部署配置。
步骤 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 桶。
-
将
S3_template.json文件上传到 Amazon CodeCommit 存储库中。
步骤 2:在 Service Catalog 中创建产品
-
以 IT 管理员身份登录到 Service Catalog 控制台,转到产品页面,然后选择上传新产品。
-
在上传新产品页面上,完成以下操作:
-
在产品名称中,输入您要用于新产品的名称。
-
在描述中,输入产品目录描述。此说明显示在产品列表中,可帮助用户选择正确的产品。
-
在提供者中,输入 IT 部门或管理员的名称。
-
选择下一步。
-
-
(可选)在输入支持详细信息中,输入产品支持联系人信息,然后选择下一步。
-
在版本详细信息中,完成以下内容:
-
选择上传模板文件。浏览您的
S3_template.json文件并将其上传。 -
在版本标题中,输入产品版本名称(例如
devops S3 v2)。 -
在描述中,输入区分此版本与其他版本的详细信息。
-
选择下一步。
-
-
在审核页面上,确认信息正确,然后选择创建。
-
在产品页面上,在浏览器中复制新产品的 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:创建管道
-
要命名您的管道并选择用于管道的参数,请执行以下操作:
通过以下网址登录 Amazon Web Services 管理控制台 并打开 CodePipeline 控制台:https://console.aws.amazon.com/codepipeline/
。 -
在欢迎页面、入门页面或管道页面上,选择创建管道。
-
在步骤 1:选择创建选项页面上的创建选项下,选择构建自定义管道选项。选择下一步。
-
在步骤 2:选择管道设置的管道名称中,输入管道的名称。
-
CodePipeline 提供 V1 和 V2 类型的管道,它们在特性和价格上有所不同。在控制台中,您只能选择 V2 类型。有关更多信息,请参阅管道类型。有关 CodePipeline 的定价信息,请参阅定价
。 -
在服务角色中,选择新建服务角色,以允许 CodePipeline 在 IAM 中创建服务角色。
-
将高级设置中的各项设置保留为默认值,然后选择下一步。
-
要在步骤 3:添加源阶段页面上添加源阶段,请执行以下操作:
-
在源提供程序中,选择 Amazon CodeCommit。
-
在存储库名称和分支名称中,输入您要用于自己的源操作的存储库和分支。
-
选择下一步。
-
-
在步骤 4:添加构建阶段中,选择跳过构建阶段,并通过再次选择跳过接受警告消息。
-
在步骤 5:添加测试阶段中,选择跳过测试阶段,并通过再次选择跳过接受警告消息。
选择下一步。
-
在步骤 6:添加部署阶段中,完成以下操作:
-
在部署提供商中,选择Amazon Service Catalog。
-
对于部署配置,请选择输入部署配置。
-
在产品 ID 中,粘贴您从 Service Catalog 控制台复制的产品 ID。
-
在模板文件路径中,输入存储模板文件的位置的相对路径。
-
在产品类型中,选择 Amazon CloudFormation 模板。
-
在产品版本名称中,输入您在 Service Catalog 中指定的产品版本的名称。如果您想将模板更改部署到新的产品版本,请输入尚未用于同一产品中任何先前产品版本的产品版本名称。
-
对于输入项目,选择源输入项目。
-
选择下一步。
-
-
在步骤 7:审核中,审核您的管道设置,然后选择创建。
-
管道成功运行后,在部署阶段上选择详细信息。这会在 Service Catalog 中打开您的产品。
-
在您的产品信息中,选择您的版本名称以打开产品模板。查看模板部署。
步骤 4:在 Service Catalog 中推送更改并验证产品
-
在 CodePipeline 控制台中查看您的管道,并在源阶段上选择详细信息。您的源 Amazon CodeCommit 存储库将在控制台中打开。选择编辑,然后在文件中进行更改(例如,更改描述)。
"Description": "Name of Amazon S3 bucket to hold and version website content" -
提交并推送您的更改。推送更改后,您的管道启动。当管道运行完成时,在部署阶段上选择详细信息以在 Service Catalog 中打开您的产品。
-
在您的产品信息中,选择新的版本名称以打开产品模板。查看部署的模板更改。
选项 2:使用配置文件部署到 Service Catalog
在本示例中,您为 S3 桶上传示例 Amazon CloudFormation 模板文件,然后在 Service Catalog 中创建您的产品。您还可以上传指定您的部署配置的单独配置文件。接下来,您可以创建您的管道,并指定部署文件的位置。
步骤 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 桶。
-
将
S3_template.json文件上传到 Amazon CodeCommit 存储库中。
步骤 2:创建产品部署配置文件
-
打开文本编辑器。为您的产品创建配置文件。配置文件用于定义 Service Catalog 部署参数/首选项。创建管道时要使用此文件。
此示例提供了“devops S3 v2”的
ProductVersionName和ProductVersionDescription的MyProductVersionDescription。如果您想将模板更改部署到新的产品版本,只需输入尚未用于同一产品中任何先前产品版本的产品版本名称。将该文件保存为
sample_config.json。{ "SchemaVersion": "1.0", "ProductVersionName": "devops S3 v2", "ProductVersionDescription": "MyProductVersionDescription", "ProductType": "CLOUD_FORMATION_TEMPLATE", "Properties": { "TemplateFilePath": "/S3_template.json" } }此文件将在您的管道每次运行时为您创建产品版本信息。
-
将
sample_config.json文件上传到 Amazon CodeCommit 存储库中。确保您将此文件上载到您的源存储库。
步骤 3:在 Service Catalog 中创建产品
-
以 IT 管理员身份登录到 Service Catalog 控制台,转到产品页面,然后选择上传新产品。
-
在上传新产品页面上,完成以下操作:
-
在产品名称中,输入您要用于新产品的名称。
-
在描述中,输入产品目录描述。此说明出现在产品列表中,可帮助用户选择正确的产品。
-
在提供者中,输入 IT 部门或管理员的名称。
-
选择下一步。
-
-
(可选)在输入支持详细信息中,输入产品支持联系人信息,然后选择下一步。
-
在版本详细信息中,完成以下内容:
-
选择上传模板文件。浏览您的
S3_template.json文件并将其上传。 -
在版本标题中,输入产品版本的名称(例如,“devops S3 v2”)。
-
在描述中,输入区分此版本与其他版本的详细信息。
-
选择下一步。
-
-
在审核页面上,确认信息正确,然后选择确认并上传。
-
在产品页面上,在浏览器中复制新产品的 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:创建管道
-
要命名您的管道并选择用于管道的参数,请执行以下操作:
通过以下网址登录 Amazon Web Services 管理控制台 并打开 CodePipeline 控制台:https://console.aws.amazon.com/codepipeline/
。 -
选择开始使用。选择创建管道,然后输入管道名称。
-
在服务角色中,选择新建服务角色,以允许 CodePipeline 在 IAM 中创建服务角色。
-
将高级设置中的各项设置保留为默认值,然后选择下一步。
-
要添加源阶段,请执行以下操作:
-
在源提供程序中,选择 Amazon CodeCommit。
-
在存储库名称和分支名称中,输入您要用于自己的源操作的存储库和分支。
-
选择下一步。
-
-
在添加构建阶段中,选择跳过构建阶段,然后再次选择跳过以接受警告消息。
-
在添加部署阶段中,完成以下操作:
-
在部署提供商中,选择Amazon Service Catalog。
-
选择使用配置文件。
-
在产品 ID 中,粘贴您从 Service Catalog 控制台复制的产品 ID。
-
在配置文件路径中,输入存储库中配置文件的文件路径。
-
选择下一步。
-
-
在审核中,审核您的管道设置,然后选择创建。
-
管道成功运行后,在部署阶段上选择详细信息,以便在 Service Catalog 中打开您的产品。
-
在您的产品信息中,选择您的版本名称以打开产品模板。查看模板部署。
步骤 5:在Service Catalog 中推送更改并验证产品
-
在 CodePipeline 控制台中查看您的管道,并在源阶段上选择详细信息。您的源 Amazon CodeCommit 存储库将在控制台中打开。选择编辑,然后在文件中进行更改(例如,更改描述)。
"Description": "Name of Amazon S3 bucket to hold and version website content" -
提交并推送您的更改。推送更改后,您的管道启动。当管道运行完成时,在部署阶段上选择详细信息以在 Service Catalog 中打开您的产品。
-
在您的产品信息中,选择新的版本名称以打开产品模板。查看部署的模板更改。