新しいことにはウェルカム

技術 | 電子工作 | ガジェット | ゲーム のメモ書き

AWS Amplify のLambda FunctionをTypeScriptで書く方法

AWS AmplifyでLambda Functionを追加すると、JavaScriptで雛形が生成されるので、それをTypeScriptにする方法メモです。

下記ドキュメントを参考にしました。

手順

Functionを追加すると、下記のフォルダが生成されるので、その中で作業します。

amplify/backend/function/[function_name]

TypeScriptプログラム

tsフォルダを作成して、そこにTypeScriptで書かれたプログラムを置く。

mkdir ts
touch ts/index.ts

tsconfig.json

tsconfig.jsonを作成する

{
    "compilerOptions": {
        "allowSyntheticDefaultImports": true,
        "lib": [
            "dom",
            "esnext"
        ],
        "module": "commonjs",
        "moduleResolution": "node",
        "skipLibCheck": true,
        "resolveJsonModule": true,
        "outDir": "./src",
        "baseUrl": "./",
        "rootDir": "./ts",
        "paths": {
            "src": [
                "./ts"
            ]
        }
    }
}

package.json

package.jsonを作成する(scriptsを抜粋)

{
  "scripts": {
    "build": "tsc && cp package.json src/ && cd src && rm -f package-lock.json && npm install --production && npm prune --production && rm -f package.json && rm -f package-lock.json"
  }
}

更新作業

ビルド

関数のフォルダで実行

npm run build

テスト

amplify mock function [function_name]

デプロイ

amplify push

補足説明

要は、srcフォルダにあるファイル・フォルダはLambdaにアップされるので、srcフォルダにDependenciesのモジュールのみをインストールしておきます。

ただ、srcフォルダにpackage.jsonがあると、mockやpushの際に、devDependenciesのモジュールもインストールされてしまうので、モジュールのインストールが終わったらpackage.jsonファイルは削除しておきます。

感想など

今までLambdaはServerless Frameworkを使って作成していたのですが、AWS Amplifyを使う時は、AWS Amplifyに寄せてしまおうと奮闘中です。

関連カテゴリー記事

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com