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

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

在中编辑管道 CodePipeline

管道描述了您 Amazon CodePipeline 要遵循的发布流程,包括必须完成的阶段和操作。您可以编辑管道以添加或删除这些元素。不过,在编辑管道时,无法更改某些值,例如管道名称或管道元数据。

您可以使用管道编辑页面编辑管道类型、变量和触发器。还可以在管道中添加或更改阶段和操作。

与创建管道不同,编辑管道不会通过管道重新运行最新的修订。如果要通过刚刚编辑的管道运行最新修订,您必须手动重新运行它。否则,编辑的管道将在您下次对在源阶段中配置的源位置进行更改时运行。有关信息,请参阅手动启动管道

您可以向管道中添加与您的管道不同的 Amazon 区域中的操作。如果 Amazon Web Services 服务 是操作的提供者,并且此操作类型/提供者类型与您的管道位于不同的 Amazon 区域,则这是跨区域操作。有关跨区域操作的更多信息,请参阅在中添加跨区域操作 CodePipeline

CodePipeline 当源代码变更被推送时,使用变更检测方法启动管道。这些检测方法基于源类型:

  • CodePipeline 使用 Amazon Ev CloudWatch ents 来检测您的 CodeCommit 源存储库或 Amazon S3 源存储桶中的更改。

注意

您使用控制台时,将自动创建更改检测资源。在使用控制台创建或编辑管道时,将为您创建其他资源。如果您使用创建管道,则必须自己创建其他资源。 Amazon CLI 有关创建或更新 CodeCommit 管道的更多信息,请参阅为 CodeCommit 来源创建 EventBridge 规则 (CLI)。有关使用创建或更新 Amazon S3 管道的更多信息,请参阅为 Amazon S3 来源创建 EventBridge 规则 (CLI)。CLI

编辑管道(控制台)

您可以使用 CodePipeline 控制台在管道中添加、编辑或移除阶段,也可以在阶段中添加、编辑或删除操作。

更新管道时, CodePipeline优雅地完成所有正在运行的操作,然后在已完成运行操作的阶段和管道执行中失败。更新管道后,您需要重新运行管道。有关运行管道的更多信息,请参阅手动启动管道

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

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

  2. Name 中,选择您要编辑的管道的名称。这将打开管道的详细视图,包括管道每个阶段中每个操作的状态。

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

  4. 要编辑管道类型,请在编辑:管道属性卡上选择编辑。选择以下选项之一,然后选择完成

    • V1 类型的管道的JSON结构包含标准管道、阶段和操作级参数。

    • V2 类型的管道与 V1 类型结构相同,并支持其他参数,例如触发器和管道级变量。

    管道类型有不同的特点和价格。有关更多信息,请参阅 管道类型

  5. 要编辑管道变量,请在编辑:变量卡上选择编辑变量。添加或更改管道级别的变量,然后选择完成

    有关管道级变量的更多信息,请参阅变量参考。有关在管道执行时传递的管道级变量的教程,请参阅教程:使用管道级变量

    注意

    虽然添加管道级变量是可选的,但如果使用管道级变量指定了管道而没有提供变量值,管道执行将失败。

  6. 要编辑管道触发器,请在编辑:触发器卡上选择编辑触发器。添加或更改触发器,然后选择完成

    有关添加触发器的更多信息,请参阅创建与 Bitbucket Cloud GitHub (版本 2)、 GitHub 企业服务器、 GitLab .com 或 GitLab自我管理的连接的步骤,例如。GitHub 连接

  7. 要在编辑页面上编辑阶段和操作,请执行以下操作之一:

    • 要编辑阶段,请选择编辑阶段。您可以添加与现有操作串行或并行运行的操作 :

      您还可以为这些操作选择编辑图标,在此视图中编辑操作。要删除某个操作,请选择该操作上的删除图标。

    • 要编辑某个操作,请选择该操作的编辑图标,然后在编辑操作上更改这些值。标记为星号(*)的项目都是必填的。

      • 对于 CodeCommit 存储库名称和分支,将显示一条消息,显示要为此管道创建的 Amazon Ev CloudWatch ents 规则。如果您移除 CodeCommit 来源,则会显示一条消息,显示要删除的 Amazon Ev CloudWatch ents 规则。

      • 对于 Amazon S3 源存储桶,将显示一条消息,显示要为此管道创建的 Amazon Ev CloudWatch ents 规则和 Amazon CloudTrail 跟踪。如果您移除 Amazon S3 来源,则会显示一条消息,显示要删除的 Amazon Ev CloudWatch ents 规则和 Amazon CloudTrail 跟踪。如果其他管道正在使用该 Amazon CloudTrail 跟踪,则不会移除该跟踪,并且会删除数据事件。

    • 要添加阶段,请在管道中您要添加阶段的时间点选择 + 添加阶段。为阶段提供一个名称,然后向该阶段至少添加一个操作。标记为星号(*)的项目都是必填的。

    • 要删除阶段,请选择该阶段上的删除图标。阶段及其所有操作都将被删除。

    • 要将阶段配置为在失败时自动回滚,请选择 “编辑阶段”,然后选中 “配置舞台失败时自动回滚” 复选框。

    例如,如果您想要向管道中的阶段添加一系列操作:

    1. 在您要添加操作的阶段中,选择编辑阶段,然后选择 + 添加操作组

    2. 编辑操作操作名称中,键入操作的名称。操作提供程序按类别显示提供程序选项。查找类别(例如部署)。在类别下,选择提供方(例如 Amazon CodeDeploy)。在区域中,选择您已在其中创建或计划在其中创建资源的 Amazon 区域。Re g ion 字段指定为此操作类型和提供者类型创建 Amazon 资源的位置。此字段仅在操作提供方是 Amazon Web Services 服务的情况下对操作显示。“区域” 字段默认为与您的管道相同的 Amazon 区域。

      有关添加操作提供程序和使用每个提供程序的默认字段的示例,请参阅创建自定义管道(控制台)

      要 CodeBuild 作为生成操作或测试操作添加到阶段,请参阅《CodeBuild 用户指南》中的 CodePipeline 与一起使用 CodeBuild 来测试代码和运行构建

      注意

      某些操作提供者(例如 GitHub)要求您先连接到提供者的网站,然后才能完成操作的配置。当您连接到提供商的网站时,请确保您使用该网站的凭证。请勿使用您的 Amazon 凭证。

    3. 配置完操作后,请选择保存

    注意

    您无法在控制台视图中重命名阶段。您可以添加具有您要更改的名称的阶段,然后删除旧阶段。确保您已添加在该阶段需要的所有操作,然后再删除旧操作。

  8. 编辑完您的管道后,请选择保存以返回到摘要页面。

    重要

    当您保存自己的更改后,便无法撤消这些更改。您必须重新编辑管道。如果当您保存更改时,修订正在通过您的管道运行,则运行将无法完成。如果您希望特定提交或更改通过编辑后的管道运行,则必须手动通过管道运行它。否则,下一个提交或更改将通过管道自动运行。

  9. 要测试您的操作,请选择发布更改来处理通过管道的提交并将更改提交至管道的源阶段中指定的源。或者按照中的手动启动管道步骤 Amazon CLI 使用手动发布更改。

编辑管道(Amazon CLI)

您可以使用 update-pipeline 命令编辑管道。

更新管道时, CodePipeline 优雅地完成所有正在运行的操作,然后在已完成运行操作的阶段和管道执行中失败。更新管道后,您需要重新运行管道。有关运行管道的更多信息,请参阅手动启动管道

重要

尽管您可以使用 Amazon CLI 来编辑包含合作伙伴操作的管道,但您不得手动编辑合作伙伴操作JSON的管道。如果这样做,在更新管道后,合作伙伴操作将失败。

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

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

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

  2. 在任何纯文本编辑器中打开JSON文件并修改文件结构以反映您要对管道所做的更改。例如,您可以添加或删除阶段,或者在现有阶段中添加另一个操作。

    以下示例介绍如何在 pipeline.json 文件中添加另一个部署阶段。此阶段在名为的第一个部署阶段之后运行 Staging.

    注意

    这只是文件的一部分,而不是整个结构。有关更多信息,请参阅 CodePipeline 管道结构参考

    , { "name": "Staging", "actions": [ { "inputArtifacts": [ { "name": "MyApp" } ], "name": "Deploy-CodeDeploy-Application", "actionTypeId": { "category": "Deploy", "owner": "AWS", "version": "1", "provider": "CodeDeploy" }, "outputArtifacts": [], "configuration": { "ApplicationName": "CodePipelineDemoApplication", "DeploymentGroupName": "CodePipelineDemoFleet" }, "runOrder": 1 } ] }, { "name": "Production", "actions": [ { "inputArtifacts": [ { "name": "MyApp" } ], "name": "Deploy-Second-Deployment", "actionTypeId": { "category": "Deploy", "owner": "AWS", "version": "1", "provider": "CodeDeploy" }, "outputArtifacts": [], "configuration": { "ApplicationName": "CodePipelineDemoApplication", "DeploymentGroupName": "CodePipelineProductionFleet" }, "runOrder": 1 } ] } ] }

    有关使用CLI向管道添加批准操作的信息,请参阅向中的管道添加手动批准操作 CodePipeline

    确保JSON文件中的PollForSourceChanges参数设置如下:

    "PollForSourceChanges": "false",

    CodePipeline 使用 Amazon Ev CloudWatch ents 来检测您的 CodeCommit 源存储库和分支或 Amazon S3 源存储桶中的更改。下一步包括手动创建这些资源的说明。将此标记设置为 false 将禁用定期检查,当使用建议的更改检测方法时不需要定期检查。

  3. 要在您的管道所在区域之外的区域添加构建、测试或部署操作,您必须向管道结构添加以下内容。有关详细说明,请参阅 在中添加跨区域操作 CodePipeline

    • Region 参数添加到您的操作的管道结构。

    • 使用 artifactStores 参数为包含操作的每个区域指定一个构件桶。

  4. 如果您正在使用使用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" }

    保存该文件。

  5. 如果您使用编辑管道,则必须手动管理管道的推荐更改检测资源:CLI

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

    重要

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

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

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

    注意

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

  7. 打开 CodePipeline 控制台并选择刚才编辑的管道。

    管道将显示您的更改。当您下一次更改源位置时,管道会通过管道修订后的结构运行该修订。

  8. 要通过管道修订后的结构手动运行最新修订,请运行 start-pipeline-execution 命令。有关更多信息,请参阅 手动启动管道

有关管道结构和预期值的更多信息,请参阅CodePipeline 管道结构参考Amazon CodePipeline API参考