设置或更改管道执行模式 - Amazon CodePipeline
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

设置或更改管道执行模式

您可以为管道设置执行模式,以指定如何处理多个执行。

有关管道执行模式的更多信息,请参见管道执行的工作原理

重要

对于处于并行模式的管道,当将管道执行模式编辑为 QUEUED 或 SUPERSEDED 时,管道状态不会将更新的状态显示为 PARALLEL。有关更多信息,请参阅 从 PARALLEL 模式更改的管道将显示之前的执行模式

重要

对于处于并行模式的管道,当将管道执行模式编辑为 QUEUED 或 SUPERSEDED 时,不会更新每种模式下管道的管道定义。有关更多信息,请参阅 如果在更改为 QUEUED 或 SUPERSEDED 模式时进行编辑,则处于并行模式的管道定义会过时

查看执行模式的注意事项

在特定执行模式下查看管道需要注意一些注意事项。

对于 SUPERSEDED 和 QUEUED 模式,使用管道视图查看正在进行的执行,然后单击执行 ID 查看详细信息和历史记录。对于并行模式,单击执行 ID 可在可视化选项卡上查看正在进行的执行。

下图显示了 SUPERSEDED 模式在中的视图。 CodePipeline

使用的一个发布流程示例 CodePipeline。

下图显示了中排队模式的 CodePipeline视图。

使用的一个发布流程示例 CodePipeline。

下图显示了中并行模式的视图 CodePipeline。

使用的一个发布流程示例 CodePipeline。

在执行模式之间切换的注意事项

以下是更改管道模式时管道的注意事项。在编辑模式下从一种执行模式切换到另一种执行模式并保存更改时,某些视图或状态可能会进行调整。

例如,从并行模式切换到队列或取代模式时,在并行模式下启动的执行将继续运行。这些可以在执行历史页面上查看。管道视图将显示之前在 QUEUED 或 SUPERSEDED 模式下运行的执行,否则显示为空状态。

再举一个例子,当从 QUEUED 或 SUPERSEDED 模式切换到并行模式时,您将不再看到管道视图/状态页面。要以并行模式查看执行情况,请使用执行详细信息页面上的可视化选项卡。在 “取代” 或 “队列” 模式下开始的执行将被取消。

下表提供了更多详细信息。

模式更改 待处理和正在执行的执行详情 管道状态详情
已取代为 “已取代”/“取代” 为 “已排队”
  • 正在进行的操作完成后,主动执行将被取消。

  • 待处理的执行被取消。

管道状态(例如已取消)在第一模式和第二模式的版本之间保留。
已排队等候/已排队等候取代
  • 正在进行的操作完成后,主动执行将被取消。

  • 待处理的执行被取消。

管道状态(例如已取消)在第一模式和第二模式的版本之间保留。
平行到平行

允许所有执行独立于管道定义更新运行。

空。并行模式没有管道状态。

已取代为并行/已排队为并行
  • 正在进行的操作完成后,主动执行将被取消。

  • 待处理的执行被取消。

空。并行模式没有管道状态。

设置或更改管道执行模式(控制台)

您可以使用控制台设置管道执行模式。

  1. 登录 Amazon Web Services Management Console 并打开 CodePipeline 控制台,网址为 http://console.aws.amazon.com/codesuite/codepipeline/home

    将显示与您的 Amazon 账户关联的所有管道的名称和状态。

  2. Name 中,选择您要编辑的管道的名称。

  3. 在管道详细信息页中,选择编辑

  4. 编辑页面上,选择编辑:管道属性

  5. 为您的管道选择模式。

    • 已取代

    • 已排队(需要管道类型 V2)

    • 并行(需要管道类型 V2)

  6. “编辑” 页面上,选择 “完成”。

设置管道执行模式 (CLI)

要使用 Amazon CLI 来设置管道执行模式,请使用create-pipelineupdate-pipeline命令。

  1. 打开终端会话(Linux、macOS 或 Unix)或命令提示符 (Windows),然后运行 get-pipeline 命令以将管道结构复制到 JSON 文件中。例如,对于名为 MyFirstPipeline 的管道,输入以下命令:

    aws codepipeline get-pipeline --name MyFirstPipeline >pipeline.json

    该命令不会返回任何结果,但您创建的文件将出现在您运行命令所在的目录中。

  2. 在任何纯文本编辑器中打开 JSON 文件,然后修改文件结构以反映要设置的管道执行模式,例如 QUEUED。

    "executionMode": "QUEUED"

    以下示例说明如何在包含两个阶段的示例管道中将执行模式设置为 QUEUED。

    { "pipeline": { "name": "MyPipeline", "roleArn": "arn:aws:iam::111122223333:role/service-role/AWSCodePipelineServiceRole-us-east-1-dkpippe", "artifactStore": { "type": "S3", "location": "bucket" }, "stages": [ { "name": "Source", "actions": [ { "name": "Source", "actionTypeId": { "category": "Source", "owner": "AWS", "provider": "CodeCommit", "version": "1" }, "runOrder": 1, "configuration": { "BranchName": "main", "OutputArtifactFormat": "CODE_ZIP", "PollForSourceChanges": "true", "RepositoryName": "MyDemoRepo" }, "outputArtifacts": [ { "name": "SourceArtifact" } ], "inputArtifacts": [], "region": "us-east-1", "namespace": "SourceVariables" } ] }, { "name": "Build", "actions": [ { "name": "Build", "actionTypeId": { "category": "Build", "owner": "AWS", "provider": "CodeBuild", "version": "1" }, "runOrder": 1, "configuration": { "ProjectName": "MyBuildProject" }, "outputArtifacts": [ { "name": "BuildArtifact" } ], "inputArtifacts": [ { "name": "SourceArtifact" } ], "region": "us-east-1", "namespace": "BuildVariables" } ] } ], "version": 1, "executionMode": "QUEUED" } }
  3. 如果您正在使用通过 get-pipeline 命令检索到的管道结构,则必须在 JSON 文件中修改结构。您必须从文件中删除 metadata 行以便 update-pipeline 命令可以使用它。从 JSON 文件中的管道结构中删除该部分("metadata": { } 行以及 "created""pipelineARN""updated" 字段)。

    例如,从结构中删除以下各行:

    "metadata": { "pipelineArn": "arn:aws:codepipeline:region:account-ID:pipeline-name", "created": "date", "updated": "date" }

    保存该文件。

  4. 要应用更改,请运行 update-pipeline 命令,指定管道 JSON 文件:

    重要

    务必在文件名前包含 file://。此命令中需要该项。

    aws codepipeline update-pipeline --cli-input-json file://pipeline.json

    该命令会返回编辑后的管道的整个结构。

    注意

    update-pipeline 命令会停止管道。如果在运行 update-pipeline 命令时正在通过管道运行修订,则该运行会被停止。您必须手动启动管道,通过更新后的管道运行此修订。