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