本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
教程:创建部署到 Service Catalog 的管道
Service Catalog 使您能够基于 Amazon CloudFormation 模板创建和配置产品。
重要
作为创建管道的一部分,客户提供的 S3 工件存储桶将 CodePipeline 用于项目。(这与用于 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。
注意
模板文件可以JSON采用YAML或格式创建。
-
在 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。
以下是名URL为的产品的
my-product
。要提取产品 ID,请复制等号(=
)和符号(&
)之间的值。在此示例中,产品 ID 为prod-example123456
。https://<region-URL>/servicecatalog/home?region=<region>#/admin-products?productCreated=prod-example123456&createdProductTitle=my-product
注意
在URL离开页面之前,请先复制产品的内容。离开此页面后,必须使用CLI来获取您的商品编码。
几秒钟后,您的产品会显示在产品页面上。您可能需要刷新浏览器才能在列表中看到此产品。
步骤 3:创建管道
-
要命名您的管道并选择用于管道的参数,请执行以下操作:
登录 Amazon Web Services Management Console 并打开 CodePipeline 控制台,网址为https://console.aws.amazon.com/codepipeline/
。 -
选择开始使用。选择创建管道,然后输入管道名称。
-
在管道类型中,选择 V2。有关更多信息,请参阅 管道类型。选择下一步。
-
在服务角色中,选择新建服务角色 CodePipeline 以允许在中创建服务角色IAM。
-
将高级设置中的各项设置保留为默认值,然后选择下一步。
-
要添加源阶段,请执行以下操作:
-
在源提供程序中,选择 Amazon CodeCommit。
-
在存储库名称和分支名称中,输入您要用于自己的源操作的存储库和分支。
-
选择下一步。
-
-
在添加构建阶段中,选择跳过构建阶段,然后再次选择跳过以接受警告消息。
-
在添加部署阶段中,完成以下操作:
-
在部署提供商中,选择Amazon Service Catalog。
-
对于部署配置,请选择输入部署配置。
-
在产品 ID 中,粘贴您从 Service Catalog 控制台复制的产品 ID。
-
在模板文件路径中,输入存储模板文件的位置的相对路径。
-
在产品类型中,选择 Amazon CloudFormation 模板。
-
在产品版本名称中,输入您在 Service Catalog 中指定的产品版本的名称。如果您想将模板更改部署到新的产品版本,请输入尚未用于同一产品中任何先前产品版本的产品版本名称。
-
对于输入项目,选择源输入项目。
-
选择下一步。
-
-
在审核中,审核您的管道设置,然后选择创建。
-
管道成功运行后,在部署阶段上选择详细信息。这会在 Service Catalog 中打开您的产品。
-
在您的产品信息中,选择您的版本名称以打开产品模板。查看模板部署。
步骤 4:在 Service Catalog 中推送更改并验证产品
-
在 CodePipeline 控制台中查看您的管道,然后在源代码舞台上选择 Deta ils。您的源 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
和MyProductVersionDescription
的ProductVersionDescription
。如果您想将模板更改部署到新的产品版本,只需输入尚未用于同一产品中任何先前产品版本的产品版本名称。将该文件保存为
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。
以下是名URL为的产品的
my-product
。要提取产品 ID,请复制等号(=
)和符号(&
)之间的值。在此示例中,产品 ID 为prod-example123456
。https://<region-URL>/servicecatalog/home?region=<region>#/admin-products?productCreated=prod-example123456&createdProductTitle=my-product
注意
在URL离开页面之前,请先复制产品的内容。离开此页面后,必须使用CLI来获取您的商品编码。
几秒钟后,您的产品会显示在产品页面上。您可能需要刷新浏览器才能在列表中看到此产品。
步骤 4:创建管道
-
要命名您的管道并选择用于管道的参数,请执行以下操作:
登录 Amazon Web Services Management Console 并打开 CodePipeline 控制台,网址为https://console.aws.amazon.com/codepipeline/
。 -
选择开始使用。选择创建管道,然后输入管道名称。
-
在服务角色中,选择新建服务角色 CodePipeline 以允许在中创建服务角色IAM。
-
将高级设置中的各项设置保留为默认值,然后选择下一步。
-
要添加源阶段,请执行以下操作:
-
在源提供程序中,选择 Amazon CodeCommit。
-
在存储库名称和分支名称中,输入您要用于自己的源操作的存储库和分支。
-
选择下一步。
-
-
在添加构建阶段中,选择跳过构建阶段,然后再次选择跳过以接受警告消息。
-
在添加部署阶段中,完成以下操作:
-
在部署提供商中,选择Amazon Service Catalog。
-
选择使用配置文件。
-
在产品 ID 中,粘贴您从 Service Catalog 控制台复制的产品 ID。
-
在配置文件路径中,输入存储库中配置文件的文件路径。
-
选择下一步。
-
-
在审核中,审核您的管道设置,然后选择创建。
-
管道成功运行后,在部署阶段上选择详细信息,以便在 Service Catalog 中打开您的产品。
-
在您的产品信息中,选择您的版本名称以打开产品模板。查看模板部署。
步骤 5:在Service Catalog 中推送更改并验证产品
-
在 CodePipeline 控制台中查看您的管道,然后在源代码舞台上选择 Deta ils。您的源 Amazon CodeCommit 存储库将在控制台中打开。选择编辑,然后在文件中进行更改(例如,更改描述)。
"Description": "Name of Amazon S3 bucket to hold and version website content"
-
提交并推送您的更改。推送更改后,您的管道启动。当管道运行完成时,在部署阶段上选择详细信息以在 Service Catalog 中打开您的产品。
-
在您的产品信息中,选择新的版本名称以打开产品模板。查看部署的模板更改。