创建使用 CodeBuild 的管道 (Amazon CLI) - Amazon CodeBuild
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

创建使用 CodeBuild 的管道 (Amazon CLI)

执行以下步骤,创建使用 CodeBuild 来构建源代码的管道。

使用Amazon CLI要创建可部署已生成的源代码或仅测试源代码的管道,您可以调整中的说明编辑管道 (Amazon CLI)CodePipeline 管道结构参考中的Amazon CodePipeline用户指南.

  1. 在 CodeBuild 中创建或标识生成项目。有关更多信息,请参阅创建构建项目

    重要

    构建项目必须定义构建输出项目设置(即使 CodePipeline 覆盖它们)。有关更多信息,请参阅 创建构建项目 (Amazon CLI)artifacts 的描述。

  2. 确保您已配置Amazon CLI使用Amazon访问密钥和Amazon与本主题中介绍的其中一个 IAM 实体相对应的私有访问密钥。有关更多信息,请参阅 。开始设置Amazon Command Line Interface中的Amazon Command Line Interface用户指南.

  3. 创建代表管道结构的 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 相匹配。

    • configurationS3BucketS3ObjectKey 的值假定源代码存储在 S3 存储桶中。有关其他源代码存储库类型的设置,请参阅CodePipeline 管道结构参考中的Amazon CodePipeline用户指南.

    • 的值ProjectName是您之前在此过程中创建的 CodeBuild 构建项目的名称。

    • location 的值是此管道所用的 S3 存储桶的名称。有关更多信息,请参阅 。为要用作 CodePipeline 的构件存储的 S3 存储桶创建策略中的Amazon CodePipeline用户指南.

    • name 的值是此管道的名称。所有管道名称对您的账户都必须是唯一的。

    尽管此数据仅介绍源操作和构建操作,但您可以为与测试、部署构建输出项目和调用 Amazon Lambda 函数等相关的活动添加操作。有关更多信息,请参阅 。Amazon CodePipeline管道结构参考中的Amazon CodePipeline用户指南.

  4. 切换到包含 JSON 文件的文件夹,然后运行 CodePipelinecreate-pipeline命令,指定文件名:

    aws codepipeline create-pipeline --cli-input-json file://create-pipeline.json
    注意

    您必须在中创建管道Amazon支持 CodeBuild 的区域。有关更多信息,请参阅 Amazon Web Services 一般参考 中的 Amazon CodeBuild

    输出中将显示 JSON 格式的数据,CodePipeline 会创建管道。

  5. 要获取有关管道状态的信息,请运行 CodePipelineget-pipeline-state命令,指定管道名称:

    aws codepipeline get-pipeline-state --name <my-pipeline-name>

    在输出中,查找确认构建成功的信息。省略号 (...) 用于显示为简洁起见而省略的数据。

    { ... "stageStates": [ ... { "actionStates": [ { "actionName": "CodeBuild", "latestExecution": { "status": "SUCCEEDED", ... }, ... } ] } ] }

    如果您过早运行此命令,您可能不会看到有关构建操作的信息。您可能需要多次运行此命令,直到管道已完成构建操作的运行。

  6. 成功构建后,请按照以下说明操作,获取构建输出项目。通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

    注意

    您还可以通过选择构建构件CodeBuild 控制台的相关构建详细信息页面上的链接。要前往此页面,请跳过此过程中的剩余步骤,并参阅 查看构建详细信息(控制台)

  7. 在存储桶列表中,请打开管道使用的存储桶。此存储桶的名称应遵循格式 codepipeline-<region-ID>-<random-number>。您可以从中获取存储桶名称:create-pipeline.json文件或者你可以运行 CodePipelineget-pipeline命令来获取存储桶的名称。

    aws codepipeline get-pipeline --name <pipeline-name>

    在输出中,该 pipeline 对象包含一个 artifactStore 对象,其中包含带有存储桶名称的 location 值。

  8. 打开与您的管道名称相匹配的文件夹 (例如,<pipeline-name>)。

  9. 在该文件夹中,打开名为 default 的文件夹。

  10. 提取 文件内容。如果该文件夹中有多个文件,请提取具有最新 Last Modified 时间戳的文件的内容。(您可能需要为文件提供 .zip 扩展名,这样,您可以将其用于您系统内的 ZIP 实用工具。) 生成输出项目将位于文件的提取内容中。