SSTでスタック間のリソース連携がすごく楽という話
今回もSST(Serverless Stack。CDKをラップして便利機能を追加したサーバレスアプリ爆速開発ツール)の関連記事だよ。
※画像引用:https://sst.dev/
CDKと共通する話だけど、アプリケーションの規模が大きくなってきたり、リージョンを隔てた環境を構築したりすると、リソースを定義するスタックを複数に分割することがあるよね。
分割した時のリソース連携がCDKでは若干面倒な部分があったと思うけど、それがSSTだとすごく簡単にラップしてくれていたから、(ほぼSST公式ドキュメントのままだけど)軽く紹介するよ。
コードを見せるのが一番早いよね。SSTでスタック間連携をするなら、こう書けばいいみたいだよ。
まず下記のようなスタックその1があったとして……
import { StackContext } from "sst/constructs";
export function MyStack({ stack }: StackContext) {
const table = new Table(stack, "table");
return {
table,
};
}
上記スタック内のtableを、別のスタック内で使いたいなら、次のように書けばいい。
import { StackContext, use } from "sst/constructs";
import { MyStack } from "./MyStack";
export function AnotherStack({ stack }: StackContext) {
const { table } = use(MyStack);
// Use table
}
※以上コード、SST公式より引用
これだけ! すっごく簡単だよね。
SSTは直観的に使えるようよく練られていると思う。
他にもSSTが独自機能として持っているAuthの仕組み(Cognito不使用)も簡潔でなかなかにおすすめだから、近々記事にメモしようかな。