本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建使用 CodeBuild 的管道 (Amazon CLI)
执行以下步骤,创建使用 CodeBuild 来构建源代码的管道。
使用Amazon CLI要创建可部署已生成的源代码或仅测试源代码的管道,您可以调整中的说明编辑管道 (Amazon CLI)和CodePipeline 管道结构参考中的Amazon CodePipeline用户指南.
-
在 CodeBuild 中创建或标识构建项目。有关更多信息,请参阅创建构建项目。
重要 构建项目必须定义构建输出项目设置(即使 CodePipeline 覆盖它们)。有关更多信息,请参阅 创建构建项目 (Amazon CLI) 中
artifacts
的描述。 -
确保您已配置Amazon CLI使用Amazon访问密钥和Amazon与本主题中介绍的其中一个 IAM 实体相对应的秘密访问密钥。有关更多信息,请参阅 。开始设置Amazon Command Line Interface中的Amazon Command Line Interface用户指南.
-
创建代表管道结构的 JSON 格式的文件。将文件命名为
create-pipeline.json
或类似名称。例如,此 JSON 格式的结构借助引用了 S3 输入存储桶的源操作和使用 CodeBuild 的构建操作创建了管道:{ "pipeline": { "roleArn": "arn:aws:iam::
<account-id>
:role/<AWS-CodePipeline-service-role-name>
", "stages": [ { "name": "Source", "actions": [ { "inputArtifacts": [], "name": "Source", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "MyApp" } ], "configuration": { "S3Bucket": "<bucket-name>
", "S3ObjectKey": "<source-code-file-name.zip>
" }, "runOrder": 1 } ] }, { "name": "Build", "actions": [ { "inputArtifacts": [ { "name": "MyApp" } ], "name": "Build", "actionTypeId": { "category": "Build", "owner": "AWS", "version": "1", "provider": "CodeBuild" }, "outputArtifacts": [ { "name": "default" } ], "configuration": { "ProjectName": "<build-project-name>
" }, "runOrder": 1 } ] } ], "artifactStore": { "type": "S3", "location": "<CodePipeline-internal-bucket-name>
" }, "name": "<my-pipeline-name>
", "version": 1 } }在此 JSON 格式的数据中:
-
的价值
roleArn
必须与您作为先决条件的一部分创建或标识的 CodePipeline 服务角色 ARN 相匹配。 -
configuration
中S3Bucket
和S3ObjectKey
的值假定源代码存储在 S3 存储桶中。有关其他源代码存储库类型的设置,请参阅CodePipeline 管道结构参考中的Amazon CodePipeline用户指南. -
的价值
ProjectName
是您之前在此过程中创建的 CodeBuild 项目的名称。 -
location
的值是此管道所用的 S3 存储桶的名称。有关更多信息,请参阅 。为要用作 CodePipeline 的项目存储的 S3 存储桶创建策略中的Amazon CodePipeline用户指南. -
name
的值是此管道的名称。所有管道名称对您的账户都必须是唯一的。
尽管此数据仅介绍源操作和构建操作,但您可以为与测试、部署构建输出项目和调用 Amazon Lambda 函数等相关的活动添加操作。有关更多信息,请参阅 。Amazon CodePipeline管道结构参考中的Amazon CodePipeline用户指南.
-
-
切换到包含 JSON 文件的文件夹,然后运行 CodePipelinecreate-pipeline命令,指定文件名:
aws codepipeline create-pipeline --cli-input-json file://create-pipeline.json
注意 您必须在Amazon支持 CodeBuild 的区域。有关更多信息,请参阅 Amazon Web Services 一般参考 中的 Amazon CodeBuild。
输出中将显示 JSON 格式的数据,CodePipeline 会创建管道。
-
要获取有关管道状态的信息,请运行 CodePipelineget-pipeline-state命令,指定管道名称:
aws codepipeline get-pipeline-state --name
<my-pipeline-name>
在输出中,查找确认构建成功的信息。省略号 (
...
) 用于显示为简洁起见而省略的数据。{ ... "stageStates": [ ... { "actionStates": [ { "actionName": "CodeBuild", "latestExecution": { "status": "SUCCEEDED", ... }, ... } ] } ] }
如果您过早运行此命令,您可能不会看到有关构建操作的信息。您可能需要多次运行此命令,直到管道已完成构建操作的运行。
-
成功构建后,请按照以下说明操作,获取构建输出项目。通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 注意 您还可以通过选择构建构件链接在 CodeBuild 控制台的相关构建详细信息页面上。要前往此页面,请跳过此过程中的剩余步骤,并参阅 查看构建详细信息(控制台)。
-
在存储桶列表中,请打开管道使用的存储桶。此存储桶的名称应遵循格式
codepipeline-
。您可以从<region-ID>
-<random-number>
create-pipeline.json
文件或者你可以运行 CodePipelineget-pipeline命令来获取存储桶的名称。aws codepipeline get-pipeline --name
<pipeline-name>
在输出中,该
pipeline
对象包含一个artifactStore
对象,其中包含带有存储桶名称的location
值。 -
打开与您的管道名称相匹配的文件夹 (例如,
)。<pipeline-name>
-
在该文件夹中,打开名为
default
的文件夹。 -
提取 文件内容。如果该文件夹中有多个文件,请提取具有最新 Last Modified 时间戳的文件的内容。(您可能需要为文件提供
.zip
扩展名,这样,您可以将其用于您系统内的 ZIP 实用工具。) 生成输出项目将位于文件的提取内容中。