本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
设置或更改管道执行模式
您可以为管道设置执行模式,以指定如何处理多个执行。
有关管道执行模式的更多信息,请参见管道执行的工作原理。
重要
对于处于PARALLEL模式的管道,当将管道执行模式编辑为QUEUED或时SUPERSEDED,管道状态不会将更新的状态显示为PARALLEL。有关更多信息,请参阅 从PARALLEL模式更改的管道将显示之前的执行模式。
重要
对于处于PARALLEL模式的管道,当将管道执行模式编辑为QUEUED或时SUPERSEDED,不会更新每种模式下管道的管道定义。有关更多信息,请参阅 如果在更改为QUEUED或PARALLEL模式时进行编辑,则处于SUPERSEDED模式的管道定义会过时。
查看执行模式的注意事项
在特定执行模式下查看管道需要注意一些注意事项。
对于SUPERSEDED和QUEUED模式,使用管道视图查看正在进行的执行,然后单击执行 ID 查看详细信息和历史记录。对于PARALLEL模式,请单击执行 ID 以在 “可视化” 选项卡上查看正在进行的执行。
下图显示了SUPERSEDED模式中的视图 CodePipeline。
下图显示了QUEUED模式中的视图 CodePipeline。
下图显示了PARALLEL模式中的视图 CodePipeline。
在执行模式之间切换的注意事项
以下是更改管道模式时管道的注意事项。在编辑模式下从一种执行模式切换到另一种执行模式并保存更改时,某些视图或状态可能会进行调整。
例如,从PARALLEL模式切换到QUEUED或SUPERSEDED模式时,在PARALLEL模式下启动的执行将继续运行。这些可以在执行历史页面上查看。管道视图将显示在QUEUED或更早SUPERSEDED模式下运行的执行,否则显示为空状态。
再举一个例子,当从QUEUED或切换SUPERSEDED到PARALLEL模式时,您将不再看到管道视图/状态页面。要查看PARALLEL模式下的执行情况,请使用执行详细信息页面上的可视化选项卡。在SUPERSEDED或QUEUED模式下开始的执行将被取消。
下表提供了更多详细信息。
模式更改 | 待处理和正在执行的执行详情 | 管道状态详情 |
---|---|---|
SUPERSEDED到SUPERSEDED/SUPERSEDED到 QUEUED |
|
管道状态(例如已取消)在第一模式和第二模式的版本之间保留。 |
QUEUED到QUEUED/QUEUED到 SUPERSEDED |
|
管道状态(例如已取消)在第一模式和第二模式的版本之间保留。 |
PARALLEL到 PARALLEL |
允许所有执行独立于管道定义更新运行。 |
空。并行模式没有管道状态。 |
SUPERSEDED到PARALLEL/QUEUED到 PARALLEL |
|
空。并行模式没有管道状态。 |
设置或更改管道执行模式(控制台)
您可以使用控制台设置管道执行模式。
-
登录 Amazon Web Services Management Console 并打开 CodePipeline 控制台,网址为 http://console.aws.amazon.com/codesuite/codepipeline/home
。 将显示与您的 Amazon 账户关联的所有管道的名称和状态。
-
在 Name 中,选择您要编辑的管道的名称。
-
在管道详细信息页中,选择编辑。
-
在编辑页面上,选择编辑:管道属性。
-
为您的管道选择模式。
-
已取代
-
已排队(需要管道类型 V2)
-
并行(需要管道类型 V2)
-
-
在 “编辑” 页面上,选择 “完成”。
设置管道执行模式 (CLI)
要使用 Amazon CLI 来设置管道执行模式,请使用create-pipeline
或update-pipeline
命令。
-
打开终端会话(Linux、macOS 或 Unix)或命令提示符 (Windows),然后运行get-pipeline命令将管道结构复制到文件中。JSON例如,对于名为
MyFirstPipeline
的管道,输入以下命令:aws codepipeline get-pipeline --name
MyFirstPipeline
>pipeline.json
该命令不会返回任何结果,但您创建的文件将出现在您运行命令所在的目录中。
-
在任何纯文本编辑器中打开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" } } -
如果您正在使用使用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
" }保存该文件。
-
要应用您的更改,请运行update-pipeline命令,指定管道JSON文件:
重要
务必在文件名前包含
file://
。此命令中需要该项。aws codepipeline update-pipeline --cli-input-json file://
pipeline.json
该命令会返回编辑后的管道的整个结构。
注意
update-pipeline 命令会停止管道。如果在运行 update-pipeline 命令时正在通过管道运行修订,则该运行会被停止。您必须手动启动管道,通过更新后的管道运行此修订。