

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

# 在中停止管道执行 CodePipeline
<a name="pipelines-stop"></a>

当管道执行开始通过管道运行时，它一次进入一个阶段，并在该阶段中的所有操作执行正在运行时锁定该阶段。必须以某种方式处理这些正在进行的操作，以便在停止管道执行时，允许完成或放弃操作。

可以使用两种方法停止管道执行：
+ **停止并等待： Amazon CodePipeline 等待**停止执行，直到所有正在进行的操作都完成（也就是说，操作的`Failed`状态为`Succeeded`或）。此选项保留进行中的操作。执行处于 `Stopping` 状态，直到进行中的操作完成。然后执行处于 `Stopped` 状态。操作完成后阶段解锁。

  如果您选择停止并等待，并且在执行仍处于 `Stopping` 状态时改变主意，那么您可以选择放弃。
+ **停止并放弃**： Amazon CodePipeline 停止执行，无需等待正在进行的操作完成。放弃进行中的操作时，执行在很短的时间内处于 `Stopping` 状态。执行停止后，操作执行处于 `Abandoned` 状态，而管道执行处于 `Stopped` 状态。阶段解锁。

  对于处于 `Stopped` 状态的管道执行，可以重试已停止执行的阶段中的操作。
**警告**  
此选项会导致任务失败或任务次序混乱。

**Topics**
+ [停止管道执行（控制台）](#pipelines-stop-console)
+ [停止入站执行（控制台）](#pipelines-stop-inbound-console)
+ [停止管道执行 (CLI)](#pipelines-stop-cli)
+ [停止入站执行 (CLI)](#pipelines-stop-inbound-cli)

## 停止管道执行（控制台）
<a name="pipelines-stop-console"></a>

您可以使用控制台停止管道执行。选择执行，然后选择停止管道执行的方法。

**注意**  
您也可以停止管道执行中的入站执行。要了解有关停止入站执行的更多信息，请参阅[停止入站执行（控制台）](#pipelines-stop-inbound-console)。

1. 登录 Amazon Web Services 管理控制台 并打开 CodePipeline 控制台，[网址为 http://console.aws.amazon。 com/codesuite/codepipeline/home](https://console.amazonaws.cn/codesuite/codepipeline/home)。

1. 请执行以下操作之一：
**注意**  
在停止执行之前，我们建议您禁用阶段前的转换。这样，当阶段由于停止执行而解锁时，该阶段不会接受后续管道执行。
   + 在 **Name (名称)** 中，选择要停止执行的管道的名称。在管道详细信息页面上，选择 **Stop execution (停止执行)**。
   + 选择 **View history (查看历史记录)**。在历史记录页面上，选择 **Stop execution (停止执行)**。

1. 在 **Stop execution (停止执行)** 页面上的 **Select execution (选择执行)** 下面，选择要停止的执行。
**注意**  
仅当执行仍在进行中时才会显示。不会显示已完成的执行。  
![\[该图显示在控制台中选择了以下选项：停止并等待\]](http://docs.amazonaws.cn/codepipeline/latest/userguide/images/stop-execution.png)

1. 在 **Select an action to apply to execution (选择要应用于执行的操作)** 下，选择以下选项之一：
   + 要确保所有进行中的操作在完成之前不会停止执行，请选择 **Stop and wait (停止并等待)**。
**注意**  
如果执行已处于 **Stopping (正在停止)** 状态，则无法选择“Stop and wait (停止并等待)”，但可以选择“Stop and abandon (停止并放弃)”。
   + 要停止而不等待进行中的操作完成，请选择 **Stop and abandon (停止并放弃)**。
**警告**  
此选项会导致任务失败或任务次序混乱。

1. （可选）输入注释。这些注释以及执行状态显示在执行的历史记录页面上。

1. 选择**停止**。
**重要**  
并且无法撤消。

1. 在管道可视化中查看执行状态，如下所示：
   + 如果您选择停止并等待，选定的执行将继续，直到完成进行中的操作。
     + 成功横幅消息显示在控制台顶部。
     + 在当前阶段，进行中的操作继续处于 `InProgress` 状态。操作正在进行时，管道执行处于 `Stopping` 状态。

       操作完成（即操作失败或成功）后，管道执行更改为 `Stopped` 状态，操作更改为 `Failed` 或 `Succeeded` 状态。您还可以在执行详细信息页面上查看操作状态。您可以在执行历史记录页面或执行详细信息页面上查看执行状态。
     + 管道执行短暂更改为 `Stopping` 状态，然后更改为 `Stopped` 状态。您可以在执行历史记录页面或执行详细信息页面上查看执行状态。
   + 如果您选择停止并放弃，则执行不会等待进行中的操作完成。
     + 成功横幅消息显示在控制台顶部。
     + 在当前阶段，进行中的操作将更改为 `Abandoned` 状态。您还可以在执行详细信息页面上查看操作状态。
     + 管道执行短暂更改为 `Stopping` 状态，然后更改为 `Stopped` 状态。您可以在执行历史记录页面或执行详细信息页面上查看执行状态。

   您可以在执行历史记录视图和详细历史记录视图中查看管道执行状态。

## 停止入站执行（控制台）
<a name="pipelines-stop-inbound-console"></a>

您可以使用控制台停止入站执行。入站执行是一种管道执行，它等待进入一个已禁用过渡的阶段。过渡启用后，`InProgress` 状态的入站执行将继续进入该阶段。`Stopped` 状态的入站执行不会进入该阶段。

**注意**  
入站执行停止后，无法重试。

如果未看到入站执行，说明禁用的阶段转换中没有待处理的执行。

1. 登录 Amazon Web Services 管理控制台 并打开 CodePipeline 控制台，[网址为 http://console.aws.amazon。 com/codesuite/codepipeline/home](https://console.amazonaws.cn/codesuite/codepipeline/home)。

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

1. 选择要停止入站执行的管道的名称，执行以下任一操作：
   + 在管道视图中，选择入站执行 ID，然后选择停止执行。
   + 选择管道并选择**查看历史记录**。在执行历史记录中，选择入站执行 ID，然后选择停止执行。

1. 在**停止执行**模式中，按照上面部分中的步骤选择执行 ID 并指定停止方法。

   使用 **get-pipeline-state** 命令查看入站执行的状态。

## 停止管道执行 (CLI)
<a name="pipelines-stop-cli"></a>

要使用手动停止管道，请使用带有以下参数的**stop-pipeline-execution**命令： Amazon CLI 
+ 执行 ID（必需）
+ 注释（可选）
+ 管道名称（必需）
+ 放弃标志（可选，默认为 false）

命令格式：

```
aws codepipeline stop-pipeline-execution --pipeline-name Pipeline_Name –-pipeline-execution-id Execution_ID [--abandon | --no-abandon] [--reason STOP_EXECUTION_REASON]
```

1. 打开终端（Linux、macOS 或 Unix）或命令提示符（Windows）。

1. 要停止管道执行，请选择以下选项之一：
   + 要确保在所有进行中的操作完成之前不会停止执行，请选择停止并等待。您可以通过包括 **no-abandon** 参数来实现。如果未指定参数，则该命令默认为停止并等待。 Amazon CLI 使用运行**stop-pipeline-execution**命令，指定管道的名称和执行 ID。例如，要停止名为 *MyFirstPipeline* 的管道，请指定停止并等待选项：

     ```
     aws codepipeline stop-pipeline-execution --pipeline-name MyFirstPipeline --pipeline-execution-id d-EXAMPLE --no-abandon
     ```

     例如，要停止名为 *MyFirstPipeline* 的管道，默认使用停止并等待选项，并选择包括注释：

     ```
     aws codepipeline stop-pipeline-execution --pipeline-name MyFirstPipeline --pipeline-execution-id d-EXAMPLE --reason "Stopping execution after the build action is done"
     ```
**注意**  
如果执行已处于 **Stopping (正在停止)** 状态，则无法选择停止并等待。您可以选择停止并放弃已处于 **Stopping (正在停止)** 状态的执行。
   + 要停止而不等待进行中的操作完成，请选择停止并放弃。包含 **abandon** 参数。 Amazon CLI 使用运行**stop-pipeline-execution**命令，指定管道的名称和执行 ID。

     例如，要停止名为 *MyFirstPipeline* 的管道，请指定放弃选项，并选择包括注释：

     ```
     aws codepipeline stop-pipeline-execution --pipeline-name MyFirstPipeline --pipeline-execution-id d-EXAMPLE --abandon --reason "Stopping execution for a bug fix"
     ```

## 停止入站执行 (CLI)
<a name="pipelines-stop-inbound-cli"></a>

您可以使用 CLI 停止入站执行。入站执行是一种管道执行，它等待进入一个已禁用过渡的阶段。过渡启用后，`InProgress` 状态的入站执行将继续进入该阶段。`Stopped` 状态的入站执行不会进入该阶段。

**注意**  
入站执行停止后，无法重试。

如果未看到入站执行，说明禁用的阶段转换中没有待处理的执行。

要使用手动停止入站执行，请使用带有以下参数的**stop-pipeline-execution**命令： Amazon CLI 
+ 入站执行 ID（必需）
+ 注释（可选）
+ 管道名称（必需）
+ 放弃标志（可选，默认为 false）

命令格式：

```
aws codepipeline stop-pipeline-execution --pipeline-name Pipeline_Name –-pipeline-execution-id Inbound_Execution_ID [--abandon | --no-abandon] [--reason STOP_EXECUTION_REASON]
```

按照上述过程中的步骤输入命令并指定停止方法。

使用 **get-pipeline-state** 命令查看入站执行的状态。