Help us understand the problem. What is going on with this article?

parcelだけでAWS Lambda向けのTypeScriptをビルドする

More than 1 year has passed since last update.

AWS Lambda FunctionでTypeScriptを使いたい場合、通常Serverless frameworkやapexを使うのが一般的だろう。
しかし、ちょこっと使いたいだけの場合に重苦しい。

もしかしたらParcelだけでいけるのでは?と思ったらいけたのでメモ

手順

まずはTypeScriptインストール

yarn add -D typescript

parcelも入れる。zip化するとアップロードも楽になるのでpluginも入れる

yarn add -D parcel parcel-plugin-zip

そしてfunction本体。今回はhandler.tsという名前にしておく

export const handler = async (): Promise<any> => {
  console.log('Hello World!');
  return {};
}

これだけでもうビルドはできる。下記のようなコマンドだ

$ yarn parcel build handler.ts --target=node --global=handler -o index.js --bundle-node-modules --no-source-maps

それぞれ引数は下記のようなことをしている

  • --target=node で対象をnodeに
  • --bundle-node-modulesでnode_modulesからの読み込み物を追加
  • sourcemapは不要なので--no-source-map
  • -o index.jsで出漁対象をindex.jsにへこう
  • --global=handler でhandlerに外からアクセスできる形でビルド(ちゃんと検証してないけどもしかしたら不要かも?)

これをpackage.jsonに仕掛ければおしまい

"scripts": {
  "build": "yarn parcel build handler.ts --target=node --global=handler -o index.js --bundle-node-modules --no-source-maps",
  "deploy:aws": "aws lambda update-function-code --function-name my-special-function --zip-file fileb://./dist.zip --region=ap-northeast-1",
  "deploy": "yarn build; yarn deploy:aws",
}

上記ではawsコマンドを使ってコードをアップロードするところまでやっている(ここについては今回説明は割愛する)

あとはyarn deployでビルドまでできる

参考

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした