

Amazon CodeCatalyst は新規のお客様には提供されなくなりました。既存のお客様は、通常どおりサービスを引き続き使用できます。詳細については、「[CodeCatalyst から移行する方法](migration.md)」を参照してください。

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

# ワークフロー実行の承認の必須化
<a name="workflows-approval"></a>

ワークフロー実行を続行する前に承認を必須とするように構成できます。これを行うには、ワークフローに**承認**[ゲート](workflows-gates.md)を追加する必要があります。*承認ゲート*によって、1 人または複数のユーザーが CodeCatalyst コンソールで 1 つ以上の承認を送信するまで、ワークフローが進まなくなります。全員の承認が下りると、ゲートの「ロックが解除」されてワークフロー実行を再開できます。

ワークフローで**承認**ゲートを使用して、開発チーム、オペレーションチーム、リーダーシップチームに、より広範な対象者にデプロイされる前に変更を確認する機会を提供します。

ワークフロー実行の詳細については、「[ワークフローの実行](workflows-working-runs.md)」を参照してください。

**Topics**
+ [承認ゲートのロックを解除するにはどうすればよいですか?](#workflows-approval-conditions)
+ [「承認」ゲートを使用するケース](#workflows-approval-when)
+ [承認を行うことができるユーザーは誰ですか?](#workflows-approval-who)
+ [承認が必須であることをユーザーに通知するにはどうすればよいですか?](#workflows-approval-notify-methods)
+ [ワークフロー実行が開始されないようにするために「承認」ゲートを使用できますか?](#workflows-approval-prevent)
+ [キュー実行モード、優先実行モード、並列実行モードにおけるワークフロー承認の仕組みはどのようになっていますか?](#workflows-approval-run-mode)
+ [例: 「承認」ゲート](workflows-approval-example.md)
+ [「承認」ゲートの追加](workflows-approval-add.md)
+ [承認通知の構成](workflows-approval-notify.md)
+ [ワークフロー実行の承認または却下](workflows-approval-approve.md)
+ [「承認」ゲート YAML](approval-ref.md)

## 承認ゲートのロックを解除するにはどうすればよいですか?
<a name="workflows-approval-conditions"></a>

**承認**ゲートのロックを解除するには、次の条件が*すべて*満たされている必要があります。
+ **条件 1**: 必要な数の承認が下りている。必要な承認数は変更可能で、各ユーザーは承認を 1 回だけ送信できます。
+ **条件 2**: ゲートがタイムアウトになる前にすべての承認が下りている。ゲートはアクティブ化されてから 14 日後にタイムアウトになります。この期間は変更できません。
+ **条件 3**: 誰もワークフロー実行を却下していない。一度でも却下拒否されるとワークフロー実行に失敗します。
+ **条件 4**: (優先実行モードを使用している場合にのみ該当) 対象の実行が後続の実行よりも優先されない。詳細については、「[キュー実行モード、優先実行モード、並列実行モードにおけるワークフロー承認の仕組みはどのようになっていますか?](#workflows-approval-run-mode)」を参照してください。

いずれかの条件が満たされない場合、CodeCatalyst はワークフローを停止し、実行ステータスを **[失敗]** (**条件 1** ～ **3** の場合) または **[優先済み]** (**条件 4** の場合) に設定します。

## 「承認」ゲートを使用するケース
<a name="workflows-approval-when"></a>

通常、アプリケーションやその他のリソースを本番サーバー、または品質標準を検証する必要がある環境にデプロイするワークフローで**承認**ゲートを使用します。本番環境にデプロイする前にゲートを配置することで、レビュアーは新しいソフトウェアリビジョンが一般公開される前にそれを検証できます。

## 承認を行うことができるユーザーは誰ですか?
<a name="workflows-approval-who"></a>

プロジェクトのメンバーであり、**コントリビューター**または**プロジェクト管理者**のロールを持つユーザーが承認を行うことができます。プロジェクトのスペースに属する、**スペース管理者**ロールを持つユーザーも承認を行うことができます。

**注記**  
**レビュアー**ロールを持つユーザーは承認を行うことができません。

## 承認が必須であることをユーザーに通知するにはどうすればよいですか?
<a name="workflows-approval-notify-methods"></a>

承認が必須であることをユーザーに通知するには、以下を行う必要があります。
+ CodeCatalyst から Slack 通知を送信します。詳細については、「[承認通知の構成](workflows-approval-notify.md)」を参照してください。
+ **[承認]** ボタンと **[却下]** ボタンがある CodeCatalyst コンソールのページに移動し、そのページの URL を承認者宛ての E メールまたはメッセージングアプリケーションに貼り付けます。このページへの移動方法の詳細については、「[ワークフロー実行の承認または却下](workflows-approval-approve.md)」を参照してください。

## ワークフロー実行が開始されないようにするために「承認」ゲートを使用できますか?
<a name="workflows-approval-prevent"></a>

はい、ただし条件があります。詳細については、「[ワークフロー実行が開始されないようにするためにゲートを使用できますか?](workflows-gates.md#workflows-gates-prevent)」を参照してください。

## キュー実行モード、優先実行モード、並列実行モードにおけるワークフロー承認の仕組みはどのようになっていますか?
<a name="workflows-approval-run-mode"></a>

キュー実行モード、優先実行モード、または並列実行モードを使用する場合、**承認**ゲートは[アクション](workflows-actions.md)と同様に機能します。これらの実行モードの詳細については、「[キュー実行モードについて](workflows-configure-runs.md#workflows-configure-runs-queued)」、「[優先実行モードについて](workflows-configure-runs.md#workflows-configure-runs-superseded)」、「[並列実行モードについて](workflows-configure-runs.md#workflows-configure-runs-parallel)」の各セクションを読むことをお勧めします。各モードの基本事項を理解できたら、このセクションに戻って、**承認**ゲートが存在するときに各実行モードがどのように機能するかを確認してください。

**承認**ゲートが存在する場合、実行は次のように処理されます。
+ [キュー実行モード](workflows-configure-runs.md#workflows-configure-runs-queued)を使用している場合、現在ゲートで承認を待っている実行の後ろで実行が順番待ちをすることになります。そのゲートのロックが解除されると (つまり、すべての承認が下りると)、キュー内の次の実行がゲートに進んで承認を待ちます。このプロセスは、キューに入れられた実行がゲートを通じて 1 つずつ処理されることで続行されます。[Figure 1](#figure-1-workflow-queued-run-mode-ma) はこのプロセスを示しています。
+ [優先実行モード](workflows-configure-runs.md#workflows-configure-runs-superseded)を使用している場合、動作はキュー実行モードと同じです。ただし、実行がゲートのキューに蓄積されるのではなく、新しい実行が以前の実行よりも優先 (引き継ぐ) されます。キューはなく、現在ゲートで承認を待っている実行はキャンセルされ、新しい実行が優先されます。[Figure 2](#figure-2-workflow-superseded-run-mode-ma) はこのプロセスを示しています。
+ [並列実行モード](workflows-configure-runs.md#workflows-configure-runs-parallel)を使用している場合、実行は並列で開始され、キューは形成されません。先行する実行がないため、各実行はすぐにゲートによって処理されます。[Figure 3](#figure-3-workflow-parallel-run-mode-ma) はこのプロセスを示しています。

**図 1**: 「キュー実行モード」と**承認**ゲート

![\[「キュー実行モード」における「承認」ゲートの動作\]](http://docs.aws.amazon.com/ja_jp/codecatalyst/latest/userguide/images/flows/runmode-queued-ma.png)


**図 2**: 「優先実行モード」と**承認**ゲート

![\[「優先実行モード」における「承認」ゲートの動作\]](http://docs.aws.amazon.com/ja_jp/codecatalyst/latest/userguide/images/flows/runmode-superseded-ma.png)


**図 3**: 「並列実行モード」と**承認**ゲート

![\[「並列実行モード」における「承認」ゲートの動作\]](http://docs.aws.amazon.com/ja_jp/codecatalyst/latest/userguide/images/flows/runmode-parallel-ma.png)


# 例: 「承認」ゲート
<a name="workflows-approval-example"></a>

次の例は、`Staging` と `Production` という 2 つのアクションの間に `Approval_01` という**承認**ゲートを追加する方法を示しています。`Staging` アクション、`Approval_01`ゲート、`Production` アクションの順に実行されます。`Approval_01` ゲートのロックが解除されている場合にのみ `Production` アクションが実行されます。`DependsOn` プロパティにより、`Staging`、`Approval_01`、`Production` の各フェーズが順番に実行されます。

**承認**ゲートの詳細については、「[ワークフロー実行の承認の必須化](workflows-approval.md)」を参照してください。

```
Actions:
  Staging: # Deploy to a staging server
    Identifier: aws/ecs-deploy@v1
    Configuration:
    ...       
  Approval_01:
    Identifier: aws/approval@v1
    DependsOn:
      - Staging
    Configuration:
      ApprovalsRequired: 2 
  Production: # Deploy to a production server
    Identifier: aws/ecs-deploy@v1
    DependsOn:
      - Approval_01
    Configuration:
    ...
```

# 「承認」ゲートの追加
<a name="workflows-approval-add"></a>

承認を必須とするようにワークフローを構成するには、ワークフローに**承認**ゲートを追加する必要があります。以下の手順に従って、ワークフローに**承認**ゲートを追加します。

このゲートの詳細については、「[ワークフロー実行の承認の必須化](workflows-approval.md)」を参照してください。

------
#### [ Visual ]<a name="workflows-add-trigger-add-console"></a>

**ワークフローに「承認」ゲートを追加するには (ビジュアルエディタ)**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/) で CodeCatalyst コンソールを開きます。

1. プロジェクトを選択します。

1. ナビゲーションペインで **[CI/CD]**、**[ワークフロー]** の順に選択します。

1. ワークフローの名前を選択します。ワークフローが定義されているソースリポジトリまたはブランチ名でフィルタリングすることも、ワークフロー名またはステータスでフィルタリングすることもできます。

1. **[編集]** を選択します。

1. 左上で**[ゲート]** を選択します。

1. **[ゲート]** カタログの **[承認]** でプラス記号 (**\$1**) を選択します。

1. **[入力]** を選択し、**[依存]** フィールドで以下を実行します。

   このゲートを実行するために正常に実行する必要があるアクション、アクショングループ、またはゲートを指定します。デフォルトでは、ワークフローにゲートを追加すると、そのゲートはワークフローの最後のアクションに依存するように設定されます。このプロパティを削除すると、ゲートは何にも依存せず、他のアクションよりも先に実行されます。
**注記**  
ゲートは、アクション、アクショングループ、またはゲートの前後に実行されるように構成する必要があります。他のアクション、アクショングループ、ゲートと並行して実行するように設定することはできません。

   **依存**機能の詳細については、「[ゲートとアクションの順序付け](workflows-gates-depends-on.md)」を参照してください。

1. **[設定]** タブを選択します。

1. **[ゲート名]** フィールドで以下を実行します。

   ゲートに付ける名前を指定します。すべてのゲート名は、ワークフロー内で一意である必要があります。ゲート名に使用できるのは、英数字 (a～z、A～Z、0～9)、ハイフン (-)、アンダースコア (\$1) のみです。スペースは使用できません。引用符を使用して、ゲート名の特殊文字とスペースを有効にすることはできません。

1. (省略可) **[承認の数]** フィールドで以下を実行します。

   **承認**ゲートのロック解除に必要な承認の最小数を指定します。最小値は `1` です。最大値は `2` です。これを省略した場合、デフォルトで `1` になります。
**注記**  
`ApprovalsRequired` プロパティを省略する場合は、ワークフロー定義ファイルからゲートの `Configuration` セクションを削除します。

1. (省略可) **[検証]** を選択して、ワークフローの YAML コードをコミットする前に検証します。

1. **[コミット]** を選択し、コミットメッセージを入力し、再度 **[コミット]** を選択します。

------
#### [ YAML ]

**ワークフローに「承認」ゲートを追加するには (YAML エディタ)**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/) で CodeCatalyst コンソールを開きます。

1. プロジェクトを選択します。

1. ナビゲーションペインで **[CI/CD]**、**[ワークフロー]** の順に選択します。

1. ワークフローの名前を選択します。ワークフローが定義されているソースリポジトリまたはブランチ名でフィルタリングすることも、ワークフロー名またはステータスでフィルタリングすることもできます。

1. **[編集]** を選択します。

1. **[YAML]** を選択します。

1. 次の例を参考にして、`Approval` セクションとベースとなるプロパティを追加します。詳細については、「[ワークフロー YAML 定義](workflow-reference.md)」の「[「承認」ゲート YAML](approval-ref.md)」を参照してください。

   ```
   Actions:
     MyApproval_01:
       Identifier: aws/approval@v1
       DependsOn:
         - PreviousAction
       Configuration:
         ApprovalsRequired: 2
   ```

   別の例については、「[例: 「承認」ゲート](workflows-approval-example.md)」を参照してください。

1. (省略可) **[検証]** を選択して、ワークフローの YAML コードをコミットする前に検証します。

1. **[コミット]** を選択し、コミットメッセージを入力し、再度 **[コミット]** を選択します。

------

# 承認通知の構成
<a name="workflows-approval-notify"></a>

ワークフロー実行に承認が必要であることをユーザーに知らせる通知を CodeCatalyst から Slack チャンネルに送信できます。ユーザーは通知を表示し、通知内のリンクをクリックします。リンクをクリックすると CodeCatalyst の承認ページが表示され、そこでワークフローを承認または却下できます。

ワークフローが承認/却下されたこと、または承認リクエストの有効期限が切れたことをユーザーに通知するように構成することもできます。

Slack 通知を設定するには、以下の手順に従います。

**開始する前に**  
ワークフローに**承認**ゲートを追加していることを確認してください。詳細については、「[「承認」ゲートの追加](workflows-approval-add.md)」を参照してください。

**Slack チャンネルにワークフロー承認通知を送信するには**

1. Slack で CodeCatalyst を構成します。詳細については、「[Slack 通知の使用開始](getting-started-notifications.md)」を参照してください。

1. 承認が必要なワークフローを含む CodeCatalyst プロジェクトで、まだ有効になっていない場合は通知を有効にします。通知を有効化するには:

   1. プロジェクトに移動し、ナビゲーションペインで **[プロジェクト設定]** を選択します。

   1. 上部で **[通知]** を選択します。

   1. **[通知イベント]** で **[通知を編集]** を選択します。

   1. **[保留中のワークフロー承認]** をオンにし、CodeCatalyst から通知を送信する Slack チャンネルを選択します。

   1. (省略可) 承認、却下、期限切れの承認についてユーザーに知らせるには他の通知をオンにします。**[ワークフロー実行の承認]**、**[ワークフロー実行の却下]**、**[ワークフロー承認の優先]**、**[ワークフロー承認のタイムアウト]** をオンにできます。各通知の横にある、CodeCatalyst から通知を送信する Slack チャンネルを選択します。

   1. **[保存]** を選択します。

# ワークフロー実行の承認または却下
<a name="workflows-approval-approve"></a>

**承認**ゲートを含むワークフロー実行は承認または却下する必要があります。ユーザーは以下から承認または却下を行うことができます。
+ CodeCatalyst コンソール
+ チームメンバーから提供されたリンク
+ Slack の自動通知

ユーザーが承認または却下した後、この決定を取り消すことはできません。

**注記**  
ワークフロー実行を承認または却下できるのは一部のユーザーのみです。詳細については、「[承認を行うことができるユーザーは誰ですか?](workflows-approval.md#workflows-approval-who)」を参照してください。

**[開始する前に]**  
ワークフローに**承認**ゲートを追加していることを確認してください。詳細については、「[「承認」ゲートの追加](workflows-approval-add.md)」を参照してください。

**CodeCatalyst コンソールからワークフロー実行を承認または却下するには**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/) で CodeCatalyst コンソールを開きます。

1. プロジェクトを選択します。

1. ナビゲーションペインで **[CI/CD]**、**[ワークフロー]** の順に選択します。

1. ワークフローの名前を選択します。ワークフローが定義されているソースリポジトリまたはブランチ名でフィルタリングすることも、ワークフロー名またはステータスでフィルタリングすることもできます。

1. ワークフロー図で、**承認**ゲートを表すボックスを選択します。

   サイドパネルが表示されます。
**注記**  
この時点で、必要に応じてこのページの URL を他の承認者に送信できます。

1. **[決定内容の確認]** で **[承認]** または **[却下]** を選択します。

1. (省略可) **[コメント - 省略可]** で、ワークフロー実行を承認または却下した理由がわかるコメントを入力します。

1. [**Submit**] を選択してください。

**チームメンバーから提供されたリンクからワークフロー実行を承認または却下するには**

1. チームメンバーから送信されたリンクを選択します (チームメンバーにさきほど記の手順を読んでもらってリンクを取得できます)。

1. 求められた場合は CodeCatalyst にサインインします。

   ワークフロー実行の承認ページにリダイレクトされます。

1. **[決定内容の確認]** で **[承認]** または **[却下]** を選択します。

1. (省略可) **[コメント - 省略可]** で、ワークフロー実行を承認または却下した理由がわかるコメントを入力します。

1. [**Submit**] を選択してください。

**Slack の自動通知からワークフロー実行を承認または却下するには**

1. Slack 通知が設定されていることを確認します。「[承認通知の構成](workflows-approval-notify.md)」を参照してください。

1. Slack の承認通知が送信されたチャンネルで、承認通知のリンクを選択します。

1. 求められた場合は CodeCatalyst にサインインします。

   ワークフロー実行ページにリダイレクトされます。

1. ワークフロー図で承認ゲートを選択します。

1. **[決定内容の確認]** で **[承認]** または **[却下]** を選択します。

1. (省略可) **[コメント - 省略可]** で、ワークフロー実行を承認または却下した理由がわかるコメントを入力します。

1. [**Submit**] を選択します。

# 「承認」ゲート YAML
<a name="approval-ref"></a>

以下は、**[承認]** ゲートの YAML 定義です。このゲートを使用する方法については、「[ワークフロー実行の承認の必須化](workflows-approval.md)」を参照してください。

このアクション定義は、より広範なワークフロー定義ファイル内のセクションとして存在します。ファイルの詳細については、「[ワークフロー YAML 定義](workflow-reference.md)」を参照してください。

**注記**  
後続の YAML プロパティのほとんどには、対応する UI 要素がビジュアルエディタにあります。UI 要素を検索するには、**[Ctrl\$1F]** を使用します。要素は、関連付けられた YAML プロパティとともに一覧表示されます。

```
# The workflow definition starts here.
# See 最上位プロパティ for details.
        
Name: MyWorkflow
SchemaVersion: 1.0 
Actions:
 
# The 'Approval' gate definition starts here.    
  Approval: 
    Identifier: aws/approval@v1
    DependsOn:
      - another-action
    Configuration:
      ApprovalsRequired: number
```

## Approval
<a name="approval.name"></a>

(必須)

ゲートに付ける名前を指定します。すべてのゲート名は、ワークフロー内で一意である必要があります。ゲート名に使用できるのは、英数字 (a～z、A～Z、0～9)、ハイフン (-)、アンダースコア (\$1) のみです。スペースは使用できません。引用符を使用して、ゲート名の特殊文字とスペースを有効にすることはできません。

デフォルト: `Approval_nn`。

対応する UI: [設定] タブ/**[ゲート名]**

## Identifier
<a name="approval.identifier"></a>

(*Approval*/**Identifier**)

(必須)

ゲートを識別します。**[承認]** ゲートはバージョン `1.0.0` をサポートしています。バージョンを短縮しない限り、このプロパティを変更しないでください。詳細については、「[使用するアクションバージョンの指定](workflows-action-versions.md)」を参照してください。

デフォルト: `aws/approval@v1`。

対応する UI: ワークフロー図/Approval\$1nn/**aws/approval@v1** ラベル

## DependsOn
<a name="approval.dependson"></a>

(*Approval*/**DependsOn**)

(オプション)

このゲートを実行するために正常に実行する必要があるアクション、アクショングループ、またはゲートを指定します。デフォルトでは、ワークフローにゲートを追加すると、そのゲートはワークフローの最後のアクションに依存するように設定されます。このプロパティを削除すると、ゲートは何にも依存せず、他のアクションよりも先に実行されます。

**注記**  
ゲートは、アクション、アクショングループ、またはゲートの前後に実行されるように構成する必要があります。他のアクション、アクショングループ、ゲートと並行して実行するように設定することはできません。

**依存**機能の詳細については、「[ゲートとアクションの順序付け](workflows-gates-depends-on.md)」を参照してください。

対応する UI: [入力] タブ/**[依存]**

## Configuration
<a name="approval.configuration"></a>

(*Approval*/**Configuration**)

(オプション)

ゲートの設定プロパティを定義できるセクション。

対応する UI: **[設定]** タブ

## ApprovalsRequired
<a name="approval.approvals.required"></a>

(*Approval*/Configuration/**ApprovalsRequired**)

(オプション)

承認ゲートのロック解除に必要な **[承認]** の最小数を指定します。最小値は `1` です。最大値は `2` です。これを省略した場合、デフォルトで `1` になります。

**注記**  
`ApprovalsRequired` プロパティを省略する場合は、ワークフロー定義ファイルからゲートの [`Configuration`] セクションを削除します。

対応する UI: [設定] タブ/**[承認数]**