本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
输入和输出构件
CodePipeline 与开发工具集成以检查代码更改,然后在持续交付过程的所有阶段进行构建和部署。构件是指通过管道中的操作处理的文件,例如包含应用程序代码的文件或文件夹、索引页文件、脚本等。例如,Amazon S3 源操作项目是一个文件名(或文件路径),其中为管道源操作提供了应用程序源代码文件,这些文件通常以ZIP文件形式提供,例如以下示例项目名称: SampleApp_Windows.zip。源操作的输出构件,即应用程序源代码文件,是源操作的输出构件,也是下一操作(例如构建操作)的输入构件。又例如,构建操作可能会运行构建命令以编译输入构件(源操作中的应用程序源代码文件)的应用程序源代码。有关构件参数(例如操作)的详细信息,请参阅特定操作Amazon CodeBuild 生成和测试操作参考的 CodeBuild 操作配置参考页面。
操作使用存储在您在创建管道时选择的 Amazon S3 项目存储桶中的输入和输出项目。 CodePipeline 根据舞台中的操作类型,压缩和传输输入或输出工件的文件。
注意
构件桶与用作管道源文件位置的桶不同,其中所选源操作为 S3。
例如:
-
CodePipeline 在提交源存储库时触发管道运行,提供源阶段的输出工件(任何要构建的文件)。
-
上一步骤中的输出构件(要构建的任意文件)将作为构建阶段的输入构件。构建阶段的输出构件(构建应用程序)可能是为容器构建的更新的应用程序或更新的 Docker 镜像。
-
上一步骤中的输出构件(构建应用程序)将作为部署阶段的输入构件,例如, Amazon Web Services 云中的暂存或生产环境。您可以将应用程序部署到部署队列,也可以将基于容器的应用程序部署到集群中ECS运行的任务。
创建或编辑操作时,您可以为操作指定输入和输出构件。例如,对于具有源和部署阶段的两阶段管道,在编辑操作中,您可以为部署操作的输入构件选择源操作的构件名称。
-
当您使用控制台创建第一个管道时, CodePipeline 会在同一个管道中创建一个 Amazon S3 存储桶 Amazon Web Services 区域 , Amazon Web Services 账户 并存储所有管道的项目。每次使用控制台在该区域创建另一个管道时,都会在存储桶中为该管道 CodePipeline 创建一个文件夹。在自动化发布过程运行时,它将使用该文件夹来存储管道的项目。这个存储桶名为 codepipeline-
region
-12345EXAMPLE
其中,region
是您创建管道的 Amazon 区域,以及12345EXAMPLE
是一个 12 位随机数,可确保存储桶名称的唯一性。注意
如果您在创建管道的区域中已经有一个以 codepipeline-region 开头的存储桶, CodePipeline 请将其用作默认存储桶。它还遵循字母表顺序;例如 codepipeline-region-abcexample 先于 codepipeline-region-defexample 选择。
CodePipeline 截断对象名称,这可能会导致某些存储桶名称看起来相似。尽管工件名称似乎已被截断,但 CodePipeline 映射到工件存储桶的方式不会受到名称被截断的工件的影响。管道可以正常工作。这不是文件夹或构件的问题。管道名称不能超过 100 个字符。尽管构件文件夹名称似乎已缩短,但它对您的管道来说仍然是唯一的。
创建或编辑管道时,管道中必须有一个工件存储桶 Amazon Web Services 区域, Amazon Web Services 账户 并且您计划在其中执行操作的每个区域都必须有一个构件存储桶。如果您使用控制台创建管道或跨区域操作,则默认对象存储桶由 CodePipeline 在您有操作的区域中进行配置。
如果您使用创建管道,则可以 Amazon CLI 将该管道的项目存储在任何 Amazon S3 存储桶中,前提是该存储桶 Amazon Web Services 账户 与 Amazon Web Services 区域 管道位于同一存储桶中。如果您担心超出您的账户允许的 Amazon S3 桶限制,则可以这么做。如果您使用创建或编辑管道,并且添加了跨区域操作(即 Amazon 提供商位于与您的管道不同的区域的操作),则必须为计划执行操作的每个其他区域提供一个构件存储桶。 Amazon CLI
-
每个操作都有一个类型。根据类型,操作可能具有以下一项或两项:
-
输入项目,它是操作在运行过程中使用或处理的项目。
-
输出构件,它是操作的输出。
管道中的每个输出构件必须具有唯一的名称。操作的每个输入项目必须与管道中的以前操作的输出构件匹配,无论该操作直接位于某个阶段中的操作前面,还是相差几个阶段。
项目可以由多个操作处理。
-