

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ステージの条件を設定する
<a name="stage-conditions"></a>

パイプライン実行で特定の変数をチェックするなどのステージ条件を指定し、条件の結果としてステージをスキップしたり、ステージを失敗させたりすることができます。実行中のステージ条件をチェックするようにパイプラインを設定できます。これにより、ステージに対するチェックを指定し、特定の条件が満たされたときにステージをどのように進めるかを指定します。条件には、CodePipeline のルールのリストで使用できる 1 つ以上のルールが含まれます。条件内のすべてのルールが成功すると、条件は満たされます。条件が満たされない場合に、指定した結果が適用されるように、条件を設定できます。

各条件内には、一連の順序付けられたルールがあり、セットとしてまとめて評価されます。したがって、条件内の 1 つのルールが失敗すると、条件は失敗します。ルール条件は、パイプラインのランタイムに上書きできます。

条件は、特定の式タイプで使用します。条件ごとに利用可能な特定の結果として、次のようなオプションがあります。
+ **入力** - チェックするための条件。条件を満たすと、ステージへの入力が許可されます。ルールに適用される結果のオプションは、**失敗**または**スキップ**です。
+ **失敗時** - 失敗したときにステージをチェックするための条件。ルールに適用される結果のオプションは、**ロールバック**です。
+ **成功時** - ステージが成功したときにステージをチェックするための条件。ルールに適用される結果のオプションは、**ロールバック**または**失敗**です。

条件は、条件のタイプごとに一連の*ルール*でサポートされます。

条件のタイプごとに、条件によって設定された特定のアクションがあります。アクションは、成功または失敗した条件チェックの結果です。例えば、入力の条件 (入力条件) がアラーム (ルール) に遭遇すると、チェックは成功し、結果 (アクション) としてステージへの入力がブロックされます。

 AWS CodePipeline コンソールまたは を使用して AWS CLI 、ステージまたはステージ内のアクションを手動でロールバックまたは再試行することもできます。「[ステージの条件を設定する](#stage-conditions)」を参照してください。

**Topics**
+ [ステージ条件のユースケース](#stage-conditions-cases)
+ [ステージ条件に設定する結果に関する考慮事項](#stage-conditions-considerations)
+ [ステージ条件に設定するルールに関する考慮事項](#stage-conditions-considerations-rules)
+ [入力条件の作成](#stage-conditions-entry)
+ [失敗時の条件の作成](#stage-conditions-onfailure)
+ [成功時の条件の作成](#stage-conditions-onsuccess)
+ [ステージ条件の削除](#stage-conditions-delete)
+ [ステージ条件の上書き](#stage-conditions-override)

## ステージ条件のユースケース
<a name="stage-conditions-cases"></a>

ステージ条件には、パイプラインでリリースと変更の安全性を設定するための複数のユースケースがあります。ステージ条件のユースケースの例を以下に示します。
+ 入力条件を使用して、CloudWatch アラーム状態をチェックする条件を定義します。これにより、本番環境が正常な状態でない場合、変更がブロックされます。
+ 入力条件を使用して待機時間を 60 分とし、ステージ内のすべてのアクションが正常に完了したときに評価する条件を定義します。CloudWatch アラームが 60 分以内に ALARM 状態になった場合は変更をロールバックします。
+ 成功時の条件を使用して条件を定義することにより、ステージが正常に完了した場合に、現在の時刻がデプロイウィンドウ内であるかどうかをルールで確認し、ルールが成功したら、デプロイするように設定します。

## ステージ条件に設定する結果に関する考慮事項
<a name="stage-conditions-considerations"></a>

ステージ条件に関する考慮事項は次のとおりです。
+ OnFailure 条件では、ステージの自動再試行を使用できません。
+ **ロールバック**を結果とする条件を設定する場合、ステージがロールバックする先の以前の実行が、現在のパイプライン構造バージョン内で利用可能な場合にのみ、ステージはロールバックできます。
+ **ロールバック**を結果とする条件を設定する場合、ロールバック実行タイプであるターゲット実行 ID にロールバックすることはできません。
+ 条件が失敗した場合に結果として**スキップ**を使用してステージをスキップする入力条件の場合、サポートされるルールは `LambdaInvoke` と `VariableCheck` のみです。
+ **[スキップ済み]** ステータスのステージに対しては、ステージの手動再試行を実行できません。
+ **[スキップ済み]** ステータスのステージに対しては、手動ロールバックを実行できません。
+ 条件に結果として**スキップ**が設定されている場合、条件を上書きすることはできません。
+ **スキップ**の結果を除き、パイプライン実行を開始するときにステージ条件を上書きできます。上書きが適用されるステージ条件の場合、実行は次の表に示すように実行されます。
+   
****    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/stage-conditions.html)

## ステージ条件に設定するルールに関する考慮事項
<a name="stage-conditions-considerations-rules"></a>

ステージ条件で使用できるルールに関する考慮事項は以下のとおりです。
+ `LambdaInvoke` ルールでは、まずルールで使用する Lambda 関数を設定する必要があります。ルールを設定するときに、Lambda 関数 ARN を指定できるよう準備しておきます。
+ `CloudWatchAlarm` ルールの場合、まず、ルールで使用する CloudWatch Events イベントを設定する必要があります。ルールを設定するときに、イベント ARN を指定できるよう準備しておきます。

## 入力条件の作成
<a name="stage-conditions-entry"></a>

コンソールまたは CLI を使用して、ステージの入力条件を設定できます。条件ごとに対応するルールと結果を設定します。ロールバック結果では、以前の実行が現在のパイプライン構造バージョンで開始されている場合にのみ、パイプラインは以前の実行にロールバックできます。

以下の手順では、モニタールールを使用する入力条件の例を示します。

詳細については、「*CodePipeline API ガイド*」の「[条件](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_Condition.html)」、「[RuleTypeId](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_RuleTypeId.html)」、「[RuleExecution](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_RuleExecution.html)」を参照してください。

### 入力条件の作成 - CloudWatchAlarm ルールの例 (コンソール）
<a name="stage-conditions-entry-console"></a>

ステージの入力条件は、条件が満たされたときにステージで実行するルールおよび結果と共に設定できます。

**入力条件を設定する (コンソール）**

1. リソースの作成やリソースに指定するルール (**AWS CloudWatchAlarm** など) の ARN の取得など、すべての前提条件を満たします。

1. にサインイン AWS マネジメントコンソール し、[http://console.aws.amazon.com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home) で CodePipeline コンソールを開きます。

    AWS アカウント に関連付けられているすべてのパイプラインの名前とステータスが表示されます。

1. **[名前]** で、編集するパイプラインの名前を選択します。

1. パイプライン詳細ページで、[**編集**] を選択します。

1. **[編集]** ページで、編集するアクションに関連する **[ステージを編集する]** を選択します。

1. **[入力条件を追加]** を選択します。**[ステージ前の入力条件]** カードに、この条件で使用できる **[失敗]** オプションが表示されます。

1. **[ルールを追加]** を選択し、次の操作を行います。

   1. **[ルール名]** に、ルールの名前を入力します。この例では、`MyAlarmRule` と入力します。

   1. **[ルールプロバイダー]** で、条件に追加する事前設定済みのルールプロバイダーを選択します。この例では、**AWS [CloudWatchAlarm]** を選択し、次の手順を実行します。

   1. **[リージョン]** で、条件のリージョンを選択するか、デフォルトのままにします。

   1. **[アラーム名]** で、ルールに使用する CloudWatch リソースを選択します。アカウントでリソースを既に作成している必要があります。

   1. (オプション) **[待機時間]** に、アラームの最初の評価時にアラームが ALARM 状態になった場合に CodePipeline が待機する時間を入力します。ルールの最初のチェック時にアラームが OK 状態の場合、ルールはすぐに成功します。

   1. (オプション) モニタリングする特定のアラーム状態を入力し、必要に応じてロールの ARN を入力します。

   1. ステージの編集が完了したら、**[完了]** を選択します。パイプラインの編集ページで、**[保存]** を選択します。

1. 実行後、結果を確認します。

### スキップ結果と `VariableCheck` ルールを使用した入力条件の作成 (コンソール）
<a name="stage-conditions-entry-skip"></a>

入力条件が満たされない場合にステージをスキップするようにステージの入力条件を設定できます。条件が失敗すると、結果が適用されてステージはスキップされます。ステージがスキップされると、ステージのステータスは **[スキップ済み]** となり、アクションのステータスは **[実行しませんでした]** となります。スキップ結果を使用したステージ条件に関する考慮事項については、「[ステージ条件に設定する結果に関する考慮事項](#stage-conditions-considerations)」を参照してください。

次の例では、変数チェックルールによって値が一致していないことが検出されて、ビルドステージはスキップされます。

****スキップ**結果を使用して入力条件を設定する (コンソール）**

1. リソースの作成やリソースに指定するルール (**AWS CloudWatchAlarm** など) の ARN の取得など、すべての前提条件を満たします。

1. にサインイン AWS マネジメントコンソール し、[http://console.aws.amazon.com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home) で CodePipeline コンソールを開きます。

    AWS アカウント に関連付けられているすべてのパイプラインの名前とステータスが表示されます。

1. **[名前]** で、編集するパイプラインの名前を選択します。

1. パイプライン詳細ページで、[**編集**] を選択します。

1. **[編集]** ページで、編集するアクションに関連する **[ステージを編集する]** を選択します。

1. **[入力条件を追加]** を選択し、**[スキップ]** を結果として選択します。

1. **[ルールを追加]** を選択し、次の操作を行います。

   1. **[ルール名]** に、ルールの名前を入力します。この例では、`MyAlarmRule` と入力します。

   1. **[ルールプロバイダー]** で、条件に追加する事前設定済みのルールプロバイダーを選択します。この例では、**[VariableCheck]** を選択し、次の手順を実行します。  
![CodePipeline を使用したリリースプロセスの例。](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/stage-cond-fail-skip.png)

   1. **[リージョン]** で、条件のリージョンを選択するか、デフォルトのままにします。

   1. **[変数]** で、GitHub (GitHub アプリ経由) ソースアクションを持つパイプラインの `#{SourceVariables.FullRepositoryName}` など、比較する変数を選択します。リポジトリ名を入力し、**[等しい]** などの演算子を選択します。

   1. ステージの編集が完了したら、**[完了]** を選択します。パイプラインの編集ページで、**[保存]** を選択します。

1. 実行後、結果を確認します。  
![CodePipeline を使用したリリースプロセスの例。](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/stage-skipped.png)

1. 詳細を確認するには、**[レビュー]** を選択します。次の例の詳細は、条件の設定済みの結果が **[スキップ]** であり、上書きできないことを示しています。条件が満たされていないため、ルールのステータスは **[失敗しました]** になります。  
![CodePipeline のスキップ結果条件を示す条件の詳細ページの例。](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/condition-exec-details.png)

### 入力条件の作成 (CLI)
<a name="stage-conditions-entry-cli"></a>

を使用してエントリ条件 AWS CLI を設定するには、 コマンドを使用して、[パイプライン、ステージ、アクションを作成する](pipelines-create.md)「」および「」で説明されているようにパイプラインを作成または更新します[CodePipeline でパイプラインを編集する](pipelines-edit.md)。

**条件とルールを設定する (CLI)**
+ ターミナル (Linux、macOS、Unix) またはコマンドプロンプト (Windows) を開きます。次に AWS CLI を使用し、パイプライン構造の失敗条件を指定して `update-pipeline` コマンドを実行します。次の例では、`Deploy` という名前のステージに対して入力条件を設定します。

  ```
  {
      "name": "Deploy",
      "actions": [
          {
              "name": "Deploy",
              "actionTypeId": {
                  "category": "Deploy",
                  "owner": "AWS",
                  "provider": "S3",
                  "version": "1"
              },
              "runOrder": 1,
              "configuration": {
                  "BucketName": "MyBucket",
                  "Extract": "false",
                  "ObjectKey": "object.xml"
              },
              "outputArtifacts": [],
              "inputArtifacts": [
                  {
                      "name": "SourceArtifact"
                  }
              ],
              "region": "us-east-1",
              "namespace": "DeployVariables"
          }
      ],
     {{ "beforeEntry": {
          "conditions": [
              {
                  "result": "FAIL",
                  "rules": [
                      {
                          "name": "MyAlarmRule",
                          "ruleTypeId": {
                              "category": "Rule",
                              "owner": "AWS",
                              "provider": "CloudWatchAlarm",
                              "version": "1"
                          },
                          "configuration": {
                              "AlarmName": "CWAlarm",
                              "WaitTime": "1"
                          },
                          "inputArtifacts": [],
                          "region": "us-east-1"
                      }
                  ]
              }
          ]
      }}}
  }
  ```

  ステージのロールバックの成功条件を設定する方法の詳細については、「*CodePipeline API リファレンス*」の「[SuccessConditions](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_SuccessConditions.html)」を参照してください。

### 入力条件の作成 (CFN)
<a name="stage-conditions-entry-cfn"></a>

 CloudFormation を使用してエントリ条件を設定するには、 `beforeEntry`パラメータを使用します。入力時に、ステージはルールを実行し、結果を適用します。

```
beforeEntry:
     Result: FAIL
```
+ 次のスニペットに示すように、テンプレートを更新します。次の例では、`MyMonitorRule` という名前のルールを使用して入力条件を設定します。

  ```
  Name: Deploy
  Actions:
  - Name: Deploy
    ActionTypeId:
      Category: Deploy
      Owner: AWS
      Provider: S3
      Version: '1'
    RunOrder: 1
    Configuration:
      BucketName: MyBucket
      Extract: 'false'
      ObjectKey: object.xml
    OutputArtifacts: []
    InputArtifacts:
    - Name: SourceArtifact
    Region: us-east-1
    Namespace: DeployVariables
  BeforeEntry:
    Conditions:
    - Result: FAIL
      Rules:
      - Name: MyMonitorRule
        RuleTypeId:
          Category: Rule
          Owner: AWS
          Provider: CloudWatchAlarm
          Version: '1'
        Configuration:
          AlarmName: CWAlarm
          WaitTime: '1'
        InputArtifacts: []
        Region: us-east-1
  ```

  beforeEntry 条件の設定の詳細については、「*CloudFormation ユーザーガイド*」で「`StageDeclaration`」の「[AWS::CodePipeline::Pipeline BeforeEntryConditions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-beforeentryconditions.html)」を参照してください。

## 失敗時の条件の作成
<a name="stage-conditions-onfailure"></a>

ステージの失敗時の条件は、コンソールまたは CLI を使用して設定できます。条件ごとに対応するルールと結果を設定します。ロールバック結果では、以前の実行が現在のパイプライン構造バージョンで開始されている場合にのみ、パイプラインは以前の実行にロールバックできます。

### 失敗時の条件の作成 (コンソール）
<a name="stage-conditions-onfailure-console"></a>

ステージの失敗時の条件は、条件が満たされたときにステージで実行するルールおよび結果と共に設定できます。

**失敗時の条件を設定する (コンソール）**

1. リソースの作成やリソースに指定するルール (**LambdaInvoke** など) の ARN の取得など、すべての前提条件を満たします。

1. にサインイン AWS マネジメントコンソール し、[http://console.aws.amazon.com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home) で CodePipeline コンソールを開きます。

    AWS アカウント に関連付けられているすべてのパイプラインの名前とステータスが表示されます。

1. **[名前]** で、編集するパイプラインの名前を選択します。

1. パイプライン詳細ページで、[**編集**] を選択します。

1. **[編集]** ページで、編集するアクションに関連する **[ステージを編集する]** を選択します。

1. **[失敗条件を追加]** を選択します。**[失敗条件]** カードに、この条件で使用できる **[ロールバック]** オプションが表示されます。

1. **[ルールを追加]** を選択し、次の操作を行います。

   1. **[ルール名]** に、ルールの名前を入力します。この例では、`MyLambdaRule` と入力します。

   1. **[ルールプロバイダー]** で、条件に追加する事前設定済みのルールプロバイダーを選択します。この例では、**[AWS LambdaInvoke]** を選択し、次の手順を実行します。

   1. **[リージョン]** で、条件のリージョンを選択するか、デフォルトのままにします。

   1. **[入力アーティファクト]** で、ソースアーティファクトを選択します。

   1. **[関数名]** で、ルールに使用する Lambda リソースを選択します。アカウントでリソースを既に作成している必要があります。

   1. (オプション) **[ユーザーパラメータ]** で、追加設定のパラメータを表すペアを入力します。

   1. (オプション) **[ロールの ARN]** で、ロールの ARN を入力します (設定済みである場合)。

   1. (オプション) **[タイムアウト (分)]** に、タイムアウトするまでにルールが待機する時間を分単位で入力します。

   1. ステージの編集が完了したら、**[完了]** を選択します。パイプラインの編集ページで、**[保存]** を選択します。

### 再試行結果の例を使用した OnFailure 条件の作成 (コンソール）
<a name="w2aac36c27b7"></a>

ステージの OnFailure 条件を設定して、入力条件が満たされない場合にステージを再試行できます。この結果の一環として、再試行モードを設定し、失敗したアクションを再試行するか、失敗したステージを再試行するかを指定します。

**再試行結果を使用して OnFailure 条件を設定する (コンソール）**

1. リソースの作成やリソースに指定するルール (**AWS CloudWatchAlarm** など) の ARN の取得など、すべての前提条件を満たします。

1. にサインイン AWS マネジメントコンソール し、[http://console.aws.amazon.com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home) で CodePipeline コンソールを開きます。

    AWS アカウント に関連付けられているすべてのパイプラインの名前とステータスが表示されます。

1. **[名前]** で、編集するパイプラインの名前を選択します。

1. パイプライン詳細ページで、[**編集**] を選択します。

1. **[編集]** ページで、編集するアクションに関連する **[ステージを編集する]** を選択します。

1. ステージの下部の **[自動ステージ設定]** で、**[ステージ障害時の自動再試行を有効にする]** を選択します。**[再試行モード]** で、**[失敗したステージを再試行]** または **[失敗したアクションを再試行]** を選択します。  
![CodePipeline でのステージの再試行モードの設定。](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/stage-retry-mode.png)

1. OnFailure 条件を追加することを選択し、**[ルールを追加]** を選択して条件のルールを入力します。

   1. **[ルール名]** に、ルールの名前を入力します。この例では、`MyAlarmRule` と入力します。

   1. **[ルールプロバイダー]** で、条件に追加する事前設定済みのルールプロバイダーを選択します。この例では、**[CloudWatchAlarm]** を選択し、次の手順を実行します。

   1. **[リージョン]** で、条件のリージョンを選択するか、デフォルトのままにします。

   1. **[アラーム名]** で、アラートの設定済みリソースを選択します。

   1. ステージの編集が完了したら、**[完了]** を選択します。パイプラインの編集ページで、**[保存]** を選択します。

1. 実行後、結果を確認します。

### 失敗時の条件の作成 (CLI)
<a name="stage-conditions-onfailure-cli"></a>

を使用して障害発生時の条件 AWS CLI を設定するには、 コマンドを使用して、[パイプライン、ステージ、アクションを作成する](pipelines-create.md)「」および「」で説明されているパイプラインを作成または更新します[CodePipeline でパイプラインを編集する](pipelines-edit.md)。

**条件とルールを設定する (CLI)**
+ ターミナル (Linux、macOS、Unix) またはコマンドプロンプト (Windows) を開きます。次に AWS CLI を使用し、パイプライン構造の失敗条件を指定して `update-pipeline` コマンドを実行します。次の例では、`Deploy` という名前のステージに対して失敗時の条件を設定します。

  ```
  {
      "name": "Deploy",
      "actions": [
          {
              "name": "Deploy",
              "actionTypeId": {
                  "category": "Deploy",
                  "owner": "AWS",
                  "provider": "S3",
                  "version": "1"
              },
              "runOrder": 1,
              "configuration": {
                  "BucketName": "MyBucket",
                  "Extract": "false",
                  "ObjectKey": "object.xml"
              },
              "outputArtifacts": [],
              "inputArtifacts": [
                  {
                      "name": "SourceArtifact"
                  }
              ],
              "region": "us-east-1",
              "namespace": "DeployVariables"
          }
      ],
     {{ "onFailure": {
          "conditions": [
              {
                  "result": "ROLLBACK",
                  "rules": [
                      {
                          "name": "MyLambdaRule",
                          "ruleTypeId": {
                              "category": "Rule",
                              "owner": "AWS",
                              "provider": "LambdaInvoke",
                              "version": "1"
                          },
                          "configuration": {
                              "FunctionName": "my-function"
                          },
                          "inputArtifacts": [
                              {
                                  "name": "SourceArtifact"
                              }
                          ],
                          "region": "us-east-1"
                      }
                  ]
              }
          ]
      }}}
  }
  ```

  失敗条件の設定の詳細については、「*CodePipeline API リファレンス*」の「[FailureConditions](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_FailureConditions.html)」を参照してください。

### 失敗時の条件の作成 (CFN)
<a name="stage-conditions-onfailure-cfn"></a>

 CloudFormation を使用して障害発生時の条件を設定するには、 `OnFailure`パラメータを使用します。成功時に、ステージはルールを実行し、結果を適用します。

```
OnFailure:
     Result: ROLLBACK
```
+ 次のスニペットに示すように、テンプレートを更新します。次の例では、`MyMonitorRule` という名前のルールを使用して OnFailure 条件を設定します。

  ```
  name: Deploy
  actions:
  - name: Deploy
    actionTypeId:
      category: Deploy
      owner: AWS
      provider: S3
      version: '1'
    runOrder: 1
    configuration:
      BucketName: MyBucket
      Extract: 'false'
      ObjectKey: object.xml
    outputArtifacts: []
    inputArtifacts:
    - name: SourceArtifact
    region: us-east-1
    namespace: DeployVariables
  OnFailure:
    conditions:
    - result: ROLLBACK
      rules:
      - name: MyMonitorRule
        ruleTypeId:
          category: Rule
          owner: AWS
          provider: CloudWatchAlarm
          version: '1'
        configuration:
          AlarmName: AlarmOnHelloWorldInvocation
          AlarmStates: ALARM
          WaitTime: '1'
        inputArtifacts: []
        region: us-east-1
  ```

  失敗条件の設定の詳細については、「*CloudFormation ユーザーガイド*」で「`StageDeclaration`」の「[OnFailure](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stagedeclaration.html#cfn-codepipeline-pipeline-stagedeclaration-onfailure)」を参照してください。

## 成功時の条件の作成
<a name="stage-conditions-onsuccess"></a>

ステージの成功時の条件は、コンソールまたは CLI を使用して設定できます。条件ごとに対応するルールと結果を設定します。ロールバック結果では、以前の実行が現在のパイプライン構造バージョンで開始されている場合にのみ、パイプラインは以前の実行にロールバックできます。

以下の手順では、デプロイウィンドウルールを使用する成功時の条件の例を示します。

詳細については、「*CodePipeline API ガイド*」の「[条件](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_Condition.html)」、「[RuleTypeId](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_RuleTypeId.html)」、「[RuleExecution](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_RuleExecution.html)」を参照してください。

### 成功時の条件の作成 (コンソール）
<a name="stage-conditions-onsuccess-console"></a>

ステージの成功時の条件は、条件が満たされたときにステージで実行するルールおよび結果と共に設定できます。

**成功時の条件を設定する (コンソール）**

1.  AWS LambdaRule など、リソースが提供されているルールのリソースと ARN の作成などの前提条件を完了します。

1. にサインイン AWS マネジメントコンソール し、[http://console.aws.amazon.com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home) で CodePipeline コンソールを開きます。

    AWS アカウント に関連付けられているすべてのパイプラインの名前とステータスが表示されます。

1. **[名前]** で、編集するパイプラインの名前を選択します。

1. パイプライン詳細ページで、[**編集**] を選択します。

1. **[編集]** ページで、編集するアクションに関連する **[ステージを編集する]** を選択します。

1. **[成功条件を追加]** を選択します。**[ステージの成功条件]** カードが表示されます。この条件タイプの利用可能な結果として表示される **[ロールバック]** または **[失敗]** オプションを選択します。

1. **[ルールを追加]** を選択し、次の操作を行います。

   1. **[ルール名]** に、条件の名前を入力します。この例では、`MyDeploymentRule` と入力します。

   1. **[ルールプロバイダー]** で、条件に追加する事前設定済みのルールを選択します。この例では、**[AWS DeploymentWindow]** を選択し、次の手順を実行します。

   1. **[リージョン]** で、条件のリージョンを選択するか、デフォルトのままにします。

   1. **[cron]** で、デプロイウィンドウの cron 式を入力します。cron 式は、デプロイを許可する曜日と時刻を定義します。cron 式のリファレンス情報については、「[cron 式と rate 式を使用してルールをスケジュールする](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-scheduled-rule-pattern.html#eb-cron-expressions)」を参照してください。

   1. (オプション) **[タイムゾーン]** で、デプロイウィンドウのタイムゾーンを入力します。

1. 実行後、結果を確認します。  
![CodePipeline の条件の例。](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/stage-condition-onsuccess-deplwin-example-message.png)

### 成功時の条件の作成 (CLI)
<a name="stage-conditions-onsuccess-cli"></a>

を使用して成功時の条件 AWS CLI を設定するには、 コマンドを使用して、[パイプライン、ステージ、アクションを作成する](pipelines-create.md)「」および「」で説明されているパイプラインを作成または更新します[CodePipeline でパイプラインを編集する](pipelines-edit.md)。

**条件とルールを設定する (CLI)**
+ ターミナル (Linux、macOS、Unix) またはコマンドプロンプト (Windows) を開きます。次に AWS CLI を使用し、パイプライン構造の失敗条件を指定して `update-pipeline` コマンドを実行します。次の例では、`MyDeploymentRule` という名前のルールを使用し、`Deploy` という名前のステージに対して OnSuccess 条件を設定します。

  ```
  {
      "name": "Deploy",
      "actions": [
          {
              "name": "Deploy",
              "actionTypeId": {
                  "category": "Deploy",
                  "owner": "AWS",
                  "provider": "S3",
                  "version": "1"
              },
              "runOrder": 1,
              "configuration": {
                  "BucketName": "MyBucket",
                  "Extract": "false",
                  "ObjectKey": "object.xml"
              },
              "outputArtifacts": [],
              "inputArtifacts": [
                  {
                      "name": "SourceArtifact"
                  }
              ],
              "region": "us-east-1",
              "namespace": "DeployVariables"
          }
      ],
     {{ "onSuccess": {
         "conditions": [
              {
                  "result": "FAIL",
                  "rules": [
                      {
                          "name": "MyAlarmRule",
                          "ruleTypeId": {
                              "category": "Rule",
                              "owner": "AWS",
                              "provider": "CloudWatchAlarm",
                              "version": "1"
                          },
                          "configuration": {
                              "AlarmName": "CWAlarm",
                              "WaitTime": "1"
                          },
                          "inputArtifacts": [],
                          "region": "us-east-1"
                      }
                  ]
              }
          ]
      }
  }}}
  ```

  成功条件の設定の詳細については、「*CodePipeline API リファレンス*」の「[SuccessConditions](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_SuccessConditions.html)」を参照してください。

### 成功時の条件を作成する (CFN)
<a name="stage-conditions-onsuccess-cfn"></a>

 CloudFormation を使用して成功時の条件を設定するには、 `OnSuccess`パラメータを使用します。成功時に、ステージはルールを実行し、結果を適用します。

```
OnSuccess:
     Result: ROLLBACK
```
+ 次のスニペットに示すように、テンプレートを更新します。次の例では、`MyDeploymentWindowRule` という名前のルールを使用して OnSuccess 条件を設定します。

  ```
  name: Deploy
  actions:
  - name: Deploy
    actionTypeId:
      category: Deploy
      owner: AWS
      provider: S3
      version: '1'
    runOrder: 1
    configuration:
      BucketName: MyBucket
      Extract: 'false'
      ObjectKey: object.xml
    outputArtifacts: []
    inputArtifacts:
    - name: SourceArtifact
    region: us-east-1
    namespace: DeployVariables{{
  onSuccess:
     conditions:
    - result: FAIL
      rules:
      - name: MyMonitorRule
        ruleTypeId:
          category: Rule
          owner: AWS
          provider: CloudWatchAlarm
          version: '1'
        configuration:
          AlarmName: CWAlarm
          WaitTime: '1'
        inputArtifacts: []
        region: us-east-1
  }}
  ```

  ステージロールバックの失敗条件の設定の詳細については、「*CloudFormation ユーザーガイド*」で「`StageDeclaration`」の「[OnFailure](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stagedeclaration.html#cfn-codepipeline-pipeline-stagedeclaration-onfailure)」を参照してください。

## ステージ条件の削除
<a name="stage-conditions-delete"></a>

パイプラインに設定したステージ条件を削除できます。

**ステージ条件を削除するには**

1. にサインイン AWS マネジメントコンソール し、[http://console.aws.amazon.com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home) で CodePipeline コンソールを開きます。

   に関連付けられているすべてのパイプラインの名前とステータス AWS アカウント が表示されます。

1. **[名前]** で、編集するパイプラインの名前を選択します。

1. パイプライン詳細ページで、[**編集**] を選択します。

1. **[編集]** ページで、編集する条件に関連する **[ステージを編集する]** を選択します。

1. 削除する条件の横にある、**[条件を削除]** を選択します。

## ステージ条件の上書き
<a name="stage-conditions-override"></a>

パイプラインに設定したステージ条件を上書きできます。コンソールで、ステージとルールの実行中に、ステージ条件を上書きすることを選択できます。これにより、ステージが実行されます。

**ステージ条件を上書きするには**

1. この例では、実行しているパイプラインステージに 1 つの条件が表示されています。**[上書き]** ボタンが有効になっています。  
![CodePipeline の条件の例。](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/stage-condition-override-depl.png)

1. 上書きする条件の横にある **[上書き]** を選択します。  
![CodePipeline の条件の例。](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/stage-condition-override-depl-overridden.png)

1. 詳細を確認するには、**[レビュー]** を選択します。次の例の詳細は、条件の設定済みの結果が [失敗] であり、上書きされたことを示しています。上書きにより、ルールステータスは [破棄済み] と表示されています。  
![CodePipeline で上書きされた条件を示す条件の詳細ページの例。](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/stage-condition-onsuccess-deplwin-example-message-review.png)