この記事について
AWS CDKのワークショップ(TypeScript)を試した際にでAPI GatewayとLambdaの連携部分でエラーが発生しましたが、日本語での検索しても出てこなかったので同じようにハマる人がいたら参考になればと思います。
エラー発生箇所
ワークショップの以下のLambdaRestApiの handler: hello
でエラー
lib/cdk-workshop-stack.ts
// defines an API Gateway REST API resource backed by our "hello" function.
new apigw.LambdaRestApi(this, 'Endpoint', {
handler: hello
});
エラー内容
型 'Function' の引数を型 'IFunction' のパラメーターに割り当てることはできません。
プロパティ 'role' の型に互換性がありません。
対策
モジュールの依存関係でバージョンが異なっている場合に発生するようで、以下を実施することでエラーは解消しました。
-
node_modules
のフォルダを削除 -
package-lock.json
のファイルを削除 - それぞれを削除後に
npm insatall
を実施
最後に
初めてのCDK&TypeScriptで、この問題を解消するまで半日ぐらいかかってしまいました。。。
stackoverflowで同じ人を見つけて速攻で試してみましたが、 本当にバージョンがずれていたのか
って部分は実際に確認しておけば良かったなと思いました。。。