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

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

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

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

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

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

    重要

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

  2. 请确保您已使用与本主题中所述的 IAM 实体之一对应的 Amazon 访问密钥和 Amazon 秘密访问密钥配置 Amazon CLI。有关更多信息,请参阅《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 存储桶中。有关其他源代码存储库类型的设置,请参阅《Amazon CodePipeline 用户指南》中的 CodePipeline 管道结构参考

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

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

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

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

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

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

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

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

  5. 要获取有关管道状态的信息,请运行 CodePipeline get-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/

    注意

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

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

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

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

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

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

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