🦌
AppSyncのJavaScriptリゾルバをCDKで作成できるようになりました!
はじめに
昨年末に、AppSyncの関数、リゾルバをJavaScriptで作成できるようになりましたが、CDKはVTLしか対応しておらず、あいかわらずVTLのコーディングに苦戦していました。
数日前に、CDKのv2.60.0がリリースされ、ついに、CDKでもJavaScriptでリゾルバを作成できるようになりました!!
やり方
aws-cdk、aws-cdk-libを2.60.0にしてください。
なお、v.2.60.0から@aws-cdk/aws-appsync-alphaは、安定版に含まれるようになったようなので、@aws-cdk/aws-appsync-alphaは必要ないです。
関数は、別ファイルで定義する場合は、
import { AppsyncFunction, Code, FunctionRuntime } from "aws-cdk-lib/aws-appsync"
...
const hoge = new AppsyncFunction(scope, "hoge", {
name: "hoge",
api: api,
dataSource: datasource.noneDataSource,
runtime: FunctionRuntime.JS_1_0_0,
code: Code.fromAsset(path.join(__dirname, "hoge.js")),
})
のような感じで、JavaScriptファイル側は、
import { util } from "@aws-appsync/utils"
export function request(ctx) {
console.log(ctx)
return {}
}
export function response(ctx) {
return ctx.prev.result
}
のような実装で大丈夫です。
requestや、responseの書き方などは、AWSのドキュメントを参照ください。
リゾルバの方も、同じような感じで、JavaScriptで実装できます。
WebStormを使って開発しているので、AppSyncのリゾルバをJavScriptでコーディングできると、作業が非常に楽になります。
Code.fromInline
をつかえば、インラインでも使えますが、この場合は、IDEの恩恵が受けられないので、微妙なところですね・・・。
インラインで値をセットしたい場合などは、VTL形式のままでよいかも・・。
Discussion