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