このドキュメントでは、自動化ルールについて説明します。自動化ルールとは、デリバリー パイプラインに対して自動的に実行できるアクションです。たとえば、適切な状況下で特定のターゲットへのプロモーションが自動的に行われるように、デリバリー パイプラインを構成できます。
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-25
、stable
など)です。このプロパティは省略可能です。指定しない場合、リリースはターゲットの最初のフェーズにプロモートされます。
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
を省略すると、ロールアウトのすべてのフェーズが自動的に進行します。
次のステップ
クイックスタート: リリースの作成とロールアウト進行の自動化をご確認ください。
Cloud Deploy でのデプロイの自動化に関する詳細をご覧ください。