Serverless Frameworkでカスタムドメイン作成とCloudFormation Stack分割を一緒にやると落ちる(ことがある)

こんにちは。てぃろです。

今回は、開発が大規模になってきたときにハマるかもしれないポイントの一つとして、題名のことを解説したいと思います。

API Gatewayのカスタムドメインの作成とCloudFormation Stack分割のプラグインを使う

Serverless FrameworkでAPI Gatewayのカスタムドメインを作るために ↓ のプラグインを使います。

Serverless Frameworkは内部的にCloudFormationを使っています。開発が大規模になってくるとStackを分ける必要が出てくることがあって、↓ のプラグインを使います。

一緒に使うと、エラーが出て落ちる

ですが、これらを一緒に使うとエラーが出て落ちることがあります。

2020/4/23の本記事執筆時点で、これらのプラグインとServerless Frameworkの最新版は以下の通りです。

serverless@latest = 1.67.3
serverless-domain-manager@latest = 3.3.2
serverless-plugin-split-stacks@latest = 1.9.3

この組み合わせでデプロイをすると、以下のエラーで落ちます…。

Error: Failed to find CloudFormation resources for <domain name>

<domain name>というのは、自分がデプロイしようとするAPI Gatewayのカスタムドメインです。

今のところ、適当な組み合わせのバージョンを使わないといけない

調べてみると、↓ にあるようにまだissueがOpenのままで、まだ議論がされ続けているようです。

この中の情報で、最新版なら動くという話もありましたが、結局できたのは↓ のバージョンの組み合わせでした。

serverless@1.61.1
serverless-domain-manager@2.3.5
serverless-plugin-split-stacks@1.9.3

Serverless FrameworkそのものはAWSに合わせて機能が追加されていくので、ほんとは最新版を使いたいです…。

解決が待たれる…。

いつも記事を読んでいただいてありがとうございます。少しでもあなたの人生にプラスになる話ができているとうれしいです。