サードパーティプラグインでAmplify CDK オーバーライドが可能になりました

June 05, 2022

以前、Amplify CDK オーバーライドってどうなってるの?という記事でAmplify CDK オーバーライドがどう実装されているのか書きました。 その時、サードパーティプラグインがオーバーライドを実装できるようになっていないこともわかりました。 そしてamplify-cliのリポジトリでサードパーティプラグインがオーバーライドを実装できるようにする機能リクエストのIssueも出しました。

後日、Pull Requestを出しましたが、最近やっとそれがマージされamplify-cli@8.4.0としてリリースされたので概要を書きたいと思います。 Pull Requestを作成してからマージまで5ヶ月くらいかかりました。。。

何が変わったか?

以前の記事でも触れましたが、 Amplify CDK オーバーライドを使うとoverride.tsというファイルでCDKのAPIを利用してAmplify(の対象のカテゴリー)が提要する機能をオーバーライドできます。 override.tsに記述した内容はamplify pushを実行するとその内容が最終的にCloud Formationのテンプレートとその入力パラメーターとなるparameters.jonsに変換されてデプロイされます。

以前はamplify pushの時に実行されるCloud Formationのテンプレートの生成の処理が@aws-amplifyのパッケージスコープに限定されていましたが、 今回のPull Requestがマージされてからは、amplify pushのライフサイクルで全てのカテゴリープラグインのtransformCategoryStack関数を呼び出してもらえるようになりました。 この関数を実装すれば公式プラグイン(amplify-category-apiなど)と同じCDKオーバーライドの機能を提供できるようになりました。

ざっくりまとめると、以下のようになります。

amplify-cliから提供されるもの

  • transformCategoryStack関数を実装してamplify-cliが提供するライフサイクルをフックできる
  • cli-inputs.jsonのバリデーション

amplify-cliから提供されないもの(プラグインが実装するもの)

  • override.tsのトランスパイル(override.jsの生成)
  • override.jsの実行(Cfnテンプレートの生成)

まとめ

サードパーティプラグインでもCDKオーバーライドの機能が提供できるようになりました。 実際にどう実装すると良いのかはまた別記事で紹介したいと思います。


Profile picture

Written by Masahiko MURAKAMI You should follow them on Twitter