くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

Vercel(ZEIT now)のServerless FunctionでTypeScriptの最小構成

前も書いたけど、ZEITからVercelになったらしく、
だいぶ楽にFaaSできるようになったので試してみた。すごく簡単だった。。(´ω`)

このサンプルのソースはこちら

使ってみる

インストールとか

# package.jsonの作成
$ npm init

# 必要なパッケージをインストール
$ npm i -D typescript @now/node ts-node

# .gitignoreの生成
$ gibo dump macOS Node VisualStudioCode > .gitignore

# tsconfig.jsonの生成
$ npx tsc --init

# ディレクトリの作成
$ mkdir api

# Functionを作成
$ touch api/index.ts

api/index.ts

型定義が用意されてるので、それをつかう

// api/index.ts
import { NowRequest, NowResponse } from "@now/node";

export default (req: NowRequest, res: NowResponse) => {
  res.status(200).send("Hello Vercel!!");
};

デプロイ

Vercel側でGitHub連携して、
https://<vercelのproject-name>.now.sh/api
にアクセスすると、Hello Vercel!!が表示される。

ポイント

  • TypeScriptの場合は、@now/nodeを利用する
    • 型定義が提供されているのでそれを利用する
  • apiディレクトリ配下に配置する
    • api配下にあるものを関数として扱ってくれる

以上!!

このサンプルのソースはこちら。
memory-lovers/vercel-ts-minimum: minimum sample for Vercel NOW with TypeScript

参考にしたサイトさま