[アップデート]CodePipelineからStep Functionsの呼び出しが可能になりました

CodePipelineにアップデートがあり、パイプラインからStep Functionsの呼び出しが可能になりましたので、早速試してみたいと思います。
2020.05.30

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

CodePipelineのアクションプロバイダーでStep Functionsの指定が可能になりました。

こちらのアップデートにより、リリースプロセスの一部として、条件分岐、エラー処理などを含む複雑なワークフローを呼び出すことが可能になりした。以下のようにパイプライン内でStep Functionsの呼び出しができる感じです。

00

今回は以下チュートリアルをベースに、動作を確認してみたいと思います。

前提

CodePipelineが作成済みであることを前提としています。前提環境となるCFnテンプレートを作成しましたので、ここではこちらを利用しています。

冒頭に記載したチュートリアルの前提条件を、CFnテンプレートにした感じです。

やってみた

ステートマシン作成

CodePipelineから呼び出しされるステートマシンを作成します。 今回はチュートリアルに沿い、ステートマシンが呼び出しされることの確認となりますので、とくに処理は設けず以下定義となります。

Helloworld

{
  "StartAt": "Hello World",
  "States": {
    "Hello World": {
      "Type": "Pass",
      "Result": "Hello World",
      "End": true
    }
  }
}

ステートマシンの構築については、以下を参考にしてください。

CodePipelineステージ追加

パイプラインが作成済みであることを前提にしていますので、ステージを追加します。該当パイプラインにて「ステージを追加する」をクリックします。

任意のステージ名を入力し、ステージを追加します。

作成したステージにアクショングループを追加します。

任意のアクション名を指定し、以下設定で定義しました。

  • アクションプロバイダー…AWS Step Functions
  • State machine ARN…前項で作成したステートマシン「Helloworld」を選択
  • Input…{"IsHelloWorldExample": true}

ステートマシンの呼び出し(Invokeステージ)を含むパイプラインが作成されました。変更をリリースしてステートマシンが実行されるか確認してみたいと思います。

変更リリース後、しばらくするとパイプラインが正常終了しました。

Step Functionsのコンソールより、呼び出しされたステートマシンが正常終了していることが確認できました。

パイプラインで指定したINPUTが、ステートマシンに渡されていることも確認できました。

さいごに

今回はチュートリアルの実施となりましたが、以下記事のようなテスト結果に応じて処理を分岐するようなリリースプロセスも可能となります。

CodePipelineからStep Functionsの呼び出しができることで、さまざまなユースケースに対応できるリリースプロセスが構築できそうですね!

参考