自動化ルールの使用

このドキュメントでは、自動化ルールについて説明します。自動化ルールとは、デリバリー パイプラインに対して自動的に実行できるアクションです。たとえば、適切な状況下で特定のターゲットへのプロモーションが自動的に行われるように、デリバリー パイプラインを構成できます。

Cloud Deploy に組み込まれている自動化ルールのみを使用できます。利用可能な自動化ルールは、このドキュメントに記載されています。

利用可能な自動化ルール

Cloud Deploy では次の自動化ルールを使用できます。

ルール 説明
promoteReleaseRule 進行中の前のターゲットのロールアウトの成功後に、

指定されたターゲットにリリースを自動的にプロモートさせます。

advanceRolloutRule 指定された

フェーズから次のフェーズへと、自動的にロールアウトを進行させます。

自動化ルールを構成する

自動化ルールの構成は、ルールごとに異なります。このセクションでは、すべてのルールに共通する構成と、使用可能な各ルールを構成する方法について説明します。

以降のセクションでは、個々の自動化ルールに固有の構成について説明します。自動化自体の構成については、デプロイの自動化をご覧ください。

promoteReleaseRule 自動化ルールを構成する

promoteReleaseRule ルールは、ターゲットへのロールアウトに成功した後にリリースをプロモートさせます。たとえば、3 つのターゲットがある場合、リリースが最初のターゲットに正常にデプロイされると、自動的に 2 番目のターゲットにプロモートするようにこのルールを設定できます。

promoteReleaseRule 自動化を構成する際は、プロモートさせるターゲットを(destinationTargetId)または @next で指定できます。Automation 定義で指定されたターゲットでロールアウトが正常に終了すると、wait の時間間隔に従って、リリースが destinationTargetId で指定されたターゲットにプロモートされます。

destinationPhase プロパティを使用して、目的のターゲットの特定のフェーズにリリースをプロモートすることもできます。

rules:
- promoteReleaseRule:
    name: "[RULE_NAME]"
    wait: [WAIT_TIME]
    destinationTargetId: "[TO_TARGET]"
    destinationPhase: "[TO_PHASE]"

ここで

  • [RULE_NAME]

    このルールに付ける名前です。この名前は、自動化リソース内で一意にする必要があります。

  • [WAIT_TIME]

    リリースの準備が整った後、プロモートされるまで待機する時間(分単位)です。例: 1m必ず m を付ける必要があります。

    デフォルト値は 0 です(待機時間なし)。最大値は 20160m(14 日)です。

  • [TO_TARGET]

    プロモート先のターゲットの targetId です。

    @next にすることもできます。この場合、この自動化構成selector.targets プロパティで指定されたターゲットの後に、リリースが次のターゲットに自動的にプロモートされます。これは、destinationTargetId の値を指定しない場合のデフォルトです。

  • [TO_PHASE]

    プロモート先のフェーズのフェーズ名(canary-25stable など)です。このプロパティは省略可能です。指定しない場合、リリースはターゲットの最初のフェーズにプロモートされます。

advanceRolloutRule 自動化ルールの構成

advanceRolloutRule は、1 つのフェーズが正常に完了すると、自動的に次のフェーズにロールアウトします。この自動化ルールは、カナリア デプロイに役立ちます。たとえば、ターゲットにカナリア デプロイ戦略(25%50%stable のフェーズ)を用いている場合に、フェーズを進行する自動化ルールを構成して、50% フェーズが終了すると自動的に stable に進行させるといったことができます。

advanceRolloutRule 自動化を構成する際は、どのフェーズから進行させるか(sourcePhase )を特定します。

rules:
- advanceRolloutRule:
    id: "[RULE]"
    sourcePhases: ["[START_PHASE]", "[START_PHASE]"...]
    wait: [WAIT_TIME]

ここで

  • [RULE]

    このルールに付ける名前です。この名前はデリバリー パイプライン内で一意である必要があります。

  • [WAIT_TIME]

    ロールアウトの準備が整った後、ロールアウトを進めるのを待機する時間(分単位)です。例: 1m必ず m を付ける必要があります。

    デフォルト値は 0 です(待機時間なし)。最大値は 20160m(14 日)です。

  • ["[START_PHASE]", "[START_PHASE]"...]

    ロールアウトを自動的に進行させる起点となるフェーズです。 つまり、指定されたいずれかのフェーズが正常に終了すると、そのフェーズから次のフェーズに自動的にロールアウトが進行します。

    フェーズ名では大文字と小文字が区別されます。また、これらのフェーズ名はオプションです。sourcePhases を省略すると、ロールアウトのすべてのフェーズが自動的に進行します。

次のステップ