TypeScript로 Lambda를 작성할 준비
12092 단어 TypeScriptserverlessYARN람다AWS
하고 싶었던 일
AWS의 Lambda의 이야기를 듣고, Serverless에 흥미를 가지고 이미 3년(더?) 지났다.
그 무렵부터 만져보고 싶다고 생각하면서, 좀처럼 제대로 만질 기회가 없었기 때문에 만져 보았습니다 ❗
왜 TypeScript?
원래 자바를 만져 와서 지금은 Kotlin입니다만・・・
둘 다 Lambda로 쓰려면 그다지 적합하지 않습니다 (; ´∀`)
巷에서는 node나 Python 근처가 주류인가?
re:Invent에서 Ruby도 추가되었기 때문에 이쪽도 조금 늘어날까라고.
다만, 나 자신 Python도 Ruby도 그다지 만진 적 없고, 자신의 리소스적으로는 TypeScript일까라고.
그래서 TypeScript로 쓰려고 생각했습니다!
AWS-CLI는 포함되어 있으며 자격 증명도 구성되었습니다.
yarn을 넣어 보았습니다.
최근에는 npm이 아니라 yarn의 기사를 좀 봐서 이번에는 이쪽을 넣어 보았다.
Mac이므로 homebrew에서 Install
brew install yarn
설치 대상은/usr/local/Cellar/yarn/1.15.2/bin/yarn이었습니다.
우선 sample 프로젝트의 디렉토리를 끊고 그 안에서 yarn의 초기화
$ mkdir serverless-typescript-sample
$ cd serverless-typescript-sample
$ yarn init
yarn init v1.15.2
question name (serverless-typescript-sample):
question version (1.0.0):
question description:
question entry point (index.js):
question repository url:
question author:
question license (MIT):
question private:
success Saved package.json
✨ Done in 13.12s.
package.json이 완성됩니다.
package.json{
"name": "serverless-typescript-sample",
"version": "1.0.0",
"main": "index.js",
"license": "MIT"
}
환경 구축
패키지
버전
yarn
v1.15.2
nodejs
v11.12.0
typescript
v3.2.4
Serverless
v1.40.0
serverless-offline
v4.9.3
Git
Git 초기화 및 원격 리포지토리 추가.
리모트 리포지토리는 Github이므로 다른 경우에는 적절하게 변경합니다.
git init
git remote add origin [email protected]:*************************************.git
Serverless Framework
이번에는 글로벌 영역에 설치하지 말고 node_module 안에 둡니다.
방금 넣은 yarn으로 설치.
yarn add serverless
yarn add v1.15.2
info No lockfile found.
[1/4] 🔍 Resolving packages...
[2/4] 🚚 Fetching packages...
[3/4] 🔗 Linking dependencies...
[4/4] 🔨 Building fresh packages...
success Saved lockfile.
success Saved 281 new dependencies.
info Direct dependencies
└─ [email protected]
info All dependencies
✨ Done in 6.61s.
``
설치가 끝나면 프로젝트도 만들어 버립니다.
aws-nodejs-typescript의 경우 package.json에 변경 사항이 추가되므로 이미 있으면 오류가 발생합니다.
우선 하나 아래의 계층에 패스 지정해 같은 이름의 디렉토리 만들기합니다.
yarn sls create -t aws-nodejs-typescript -p serverless-typescript-sample
이런 느낌이 들기 때문에 serverless-typescript-sample 디렉토리의 내용을 전부의 디렉토리로 이동합니다.
package.json만은 원코피하면 serverless가 사라져버리므로 수동으로 합니다.
이동 전 디렉토리 구성
이동 후 디렉토리 구성
수동으로 고친 후 package.json
package.json{
"name": "serverless-typescript-sample",
"version": "1.0.0",
"description": "Serverless webpack example using Typescript",
"main": "handler.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"dependencies": {
"serverless": "^1.40.0",
"source-map-support": "^0.5.10"
},
"devDependencies": {
"@types/aws-lambda": "^8.10.17",
"@types/node": "^10.12.18",
"serverless-webpack": "^5.2.0",
"ts-loader": "^5.3.3",
"typescript": "^3.2.4",
"webpack": "^4.29.0"
},
"author": "The serverless webpack authors (https://github.com/elastic-coders/serverless-webpack)",
"license": "MIT"
}
package.json을 변경했으므로 yarn install
에서 종속성을 업데이트합니다.
로컬 개발 환경 구축
serverless-offline
로컬에서 Lambda를 실행할 수 있도록 serverless-offline
를 yarn으로 설치합니다.
$ yarn add -D serverless-offline
yarn add v1.15.2
[1/4] 🔍 Resolving packages...
warning serverless-offline > h2o2 > [email protected]: This version is no longer maintained. Please upgrade to the latest version.
warning serverless-offline > hapi > catbox > [email protected]: This version is no longer maintained. Please upgrade to the latest version.
warning serverless-offline > hapi > heavy > [email protected]: This version is no longer maintained. Please upgrade to the latest version.
warning serverless-offline > hapi > podium > [email protected]: This version is no longer maintained. Please upgrade to the latest version.
warning serverless-offline > hapi > shot > [email protected]: This version is no longer maintained. Please upgrade to the latest version.
[2/4] 🚚 Fetching packages...
[3/4] 🔗 Linking dependencies...
[4/4] 🔨 Building fresh packages...
success Saved lockfile.
success Saved 37 new dependencies.
설치한 후 serverless.yml
의 plugin에
serverless.ymlplugins:
- serverless-offline
추가할 수 있으면 yarn sls offline start
로 로컬 서버의 기동을 합니다.
yarn sls offline start
yarn run v1.15.2
$ /Users/hisayuki/vscode/serverless-typescript-sample/node_modules/.bin/sls offline start
Serverless: Bundling with Webpack...
Time: 1348ms
Built at: 2019/03/30 22:01:55
Asset Size Chunks Chunk Names
handler.js 129 KiB handler [emitted] handler
handler.js.map 146 KiB handler [emitted] handler
Entrypoint handler = handler.js handler.js.map
[./handler.ts] 307 bytes {handler} [built]
[./node_modules/buffer-from/index.js] 1.56 KiB {handler} [built]
[./node_modules/source-map-support/register.js] 25 bytes {handler} [built]
[./node_modules/source-map-support/source-map-support.js] 17.6 KiB {handler} [built]
[./node_modules/source-map/lib/array-set.js] 3.12 KiB {handler} [built]
[./node_modules/source-map/lib/base64-vlq.js] 4.6 KiB {handler} [built]
[./node_modules/source-map/lib/binary-search.js] 4.15 KiB {handler} [built]
[./node_modules/source-map/lib/mapping-list.js] 2.28 KiB {handler} [built]
[./node_modules/source-map/lib/source-map-consumer.js] 39.6 KiB {handler} [built]
[./node_modules/source-map/lib/source-map-generator.js] 14 KiB {handler} [built]
[./node_modules/source-map/lib/source-node.js] 13.5 KiB {handler} [built]
[./node_modules/source-map/source-map.js] 405 bytes {handler} [built]
[fs] external "fs" 42 bytes {handler} [optional] [built]
[module] external "module" 42 bytes {handler} [optional] [built]
[path] external "path" 42 bytes {handler} [built]
+ 3 hidden modules
Serverless: Watching for changes...
Serverless: Starting Offline: dev/us-east-1.
Serverless: Routes for hello:
Serverless: GET /hello
Serverless: Offline listening on http://localhost:3000
이제 curl이나 직접 브라우저에서 Lambda를 실행할 수 있습니다!
$ curl http://localhost:3000/hello
{"message":"Go Serverless Webpack (Typescript) v1.0! Your function executed successfully!",....
요약
템플릿의 aws-nodejs-typescript가 package.json이 있다면 작동하지 않는 곳에 대해서는 귀찮지만, 글로벌 영역에 serverless를 설치하면 특히 문제 없습니다.
이번에는 프로젝트 내에서 담아두고 싶다는 조건이 있었기 때문에 수고를 걸었습니다.
그 점 이외에 대해서는 비교적 부드럽게 환경 구축을 할 수 있었기 때문에 어렵지 않다고 생각합니다.
로컬 실행 환경이나 테스트 환경등도 이전 했을 때보다 간단하게 되어 버리는군요.
Reference
이 문제에 관하여(TypeScript로 Lambda를 작성할 준비), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hisayuki/items/f829a0d526bdb386860e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
원래 자바를 만져 와서 지금은 Kotlin입니다만・・・
둘 다 Lambda로 쓰려면 그다지 적합하지 않습니다 (; ´∀`)
巷에서는 node나 Python 근처가 주류인가?
re:Invent에서 Ruby도 추가되었기 때문에 이쪽도 조금 늘어날까라고.
다만, 나 자신 Python도 Ruby도 그다지 만진 적 없고, 자신의 리소스적으로는 TypeScript일까라고.
그래서 TypeScript로 쓰려고 생각했습니다!
AWS-CLI는 포함되어 있으며 자격 증명도 구성되었습니다.
yarn을 넣어 보았습니다.
최근에는 npm이 아니라 yarn의 기사를 좀 봐서 이번에는 이쪽을 넣어 보았다.
Mac이므로 homebrew에서 Install
brew install yarn
설치 대상은/usr/local/Cellar/yarn/1.15.2/bin/yarn이었습니다.
우선 sample 프로젝트의 디렉토리를 끊고 그 안에서 yarn의 초기화
$ mkdir serverless-typescript-sample
$ cd serverless-typescript-sample
$ yarn init
yarn init v1.15.2
question name (serverless-typescript-sample):
question version (1.0.0):
question description:
question entry point (index.js):
question repository url:
question author:
question license (MIT):
question private:
success Saved package.json
✨ Done in 13.12s.
package.json이 완성됩니다.
package.json{
"name": "serverless-typescript-sample",
"version": "1.0.0",
"main": "index.js",
"license": "MIT"
}
환경 구축
패키지
버전
yarn
v1.15.2
nodejs
v11.12.0
typescript
v3.2.4
Serverless
v1.40.0
serverless-offline
v4.9.3
Git
Git 초기화 및 원격 리포지토리 추가.
리모트 리포지토리는 Github이므로 다른 경우에는 적절하게 변경합니다.
git init
git remote add origin [email protected]:*************************************.git
Serverless Framework
이번에는 글로벌 영역에 설치하지 말고 node_module 안에 둡니다.
방금 넣은 yarn으로 설치.
yarn add serverless
yarn add v1.15.2
info No lockfile found.
[1/4] 🔍 Resolving packages...
[2/4] 🚚 Fetching packages...
[3/4] 🔗 Linking dependencies...
[4/4] 🔨 Building fresh packages...
success Saved lockfile.
success Saved 281 new dependencies.
info Direct dependencies
└─ [email protected]
info All dependencies
✨ Done in 6.61s.
``
설치가 끝나면 프로젝트도 만들어 버립니다.
aws-nodejs-typescript의 경우 package.json에 변경 사항이 추가되므로 이미 있으면 오류가 발생합니다.
우선 하나 아래의 계층에 패스 지정해 같은 이름의 디렉토리 만들기합니다.
yarn sls create -t aws-nodejs-typescript -p serverless-typescript-sample
이런 느낌이 들기 때문에 serverless-typescript-sample 디렉토리의 내용을 전부의 디렉토리로 이동합니다.
package.json만은 원코피하면 serverless가 사라져버리므로 수동으로 합니다.
이동 전 디렉토리 구성
이동 후 디렉토리 구성
수동으로 고친 후 package.json
package.json{
"name": "serverless-typescript-sample",
"version": "1.0.0",
"description": "Serverless webpack example using Typescript",
"main": "handler.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"dependencies": {
"serverless": "^1.40.0",
"source-map-support": "^0.5.10"
},
"devDependencies": {
"@types/aws-lambda": "^8.10.17",
"@types/node": "^10.12.18",
"serverless-webpack": "^5.2.0",
"ts-loader": "^5.3.3",
"typescript": "^3.2.4",
"webpack": "^4.29.0"
},
"author": "The serverless webpack authors (https://github.com/elastic-coders/serverless-webpack)",
"license": "MIT"
}
package.json을 변경했으므로 yarn install
에서 종속성을 업데이트합니다.
로컬 개발 환경 구축
serverless-offline
로컬에서 Lambda를 실행할 수 있도록 serverless-offline
를 yarn으로 설치합니다.
$ yarn add -D serverless-offline
yarn add v1.15.2
[1/4] 🔍 Resolving packages...
warning serverless-offline > h2o2 > [email protected]: This version is no longer maintained. Please upgrade to the latest version.
warning serverless-offline > hapi > catbox > [email protected]: This version is no longer maintained. Please upgrade to the latest version.
warning serverless-offline > hapi > heavy > [email protected]: This version is no longer maintained. Please upgrade to the latest version.
warning serverless-offline > hapi > podium > [email protected]: This version is no longer maintained. Please upgrade to the latest version.
warning serverless-offline > hapi > shot > [email protected]: This version is no longer maintained. Please upgrade to the latest version.
[2/4] 🚚 Fetching packages...
[3/4] 🔗 Linking dependencies...
[4/4] 🔨 Building fresh packages...
success Saved lockfile.
success Saved 37 new dependencies.
설치한 후 serverless.yml
의 plugin에
serverless.ymlplugins:
- serverless-offline
추가할 수 있으면 yarn sls offline start
로 로컬 서버의 기동을 합니다.
yarn sls offline start
yarn run v1.15.2
$ /Users/hisayuki/vscode/serverless-typescript-sample/node_modules/.bin/sls offline start
Serverless: Bundling with Webpack...
Time: 1348ms
Built at: 2019/03/30 22:01:55
Asset Size Chunks Chunk Names
handler.js 129 KiB handler [emitted] handler
handler.js.map 146 KiB handler [emitted] handler
Entrypoint handler = handler.js handler.js.map
[./handler.ts] 307 bytes {handler} [built]
[./node_modules/buffer-from/index.js] 1.56 KiB {handler} [built]
[./node_modules/source-map-support/register.js] 25 bytes {handler} [built]
[./node_modules/source-map-support/source-map-support.js] 17.6 KiB {handler} [built]
[./node_modules/source-map/lib/array-set.js] 3.12 KiB {handler} [built]
[./node_modules/source-map/lib/base64-vlq.js] 4.6 KiB {handler} [built]
[./node_modules/source-map/lib/binary-search.js] 4.15 KiB {handler} [built]
[./node_modules/source-map/lib/mapping-list.js] 2.28 KiB {handler} [built]
[./node_modules/source-map/lib/source-map-consumer.js] 39.6 KiB {handler} [built]
[./node_modules/source-map/lib/source-map-generator.js] 14 KiB {handler} [built]
[./node_modules/source-map/lib/source-node.js] 13.5 KiB {handler} [built]
[./node_modules/source-map/source-map.js] 405 bytes {handler} [built]
[fs] external "fs" 42 bytes {handler} [optional] [built]
[module] external "module" 42 bytes {handler} [optional] [built]
[path] external "path" 42 bytes {handler} [built]
+ 3 hidden modules
Serverless: Watching for changes...
Serverless: Starting Offline: dev/us-east-1.
Serverless: Routes for hello:
Serverless: GET /hello
Serverless: Offline listening on http://localhost:3000
이제 curl이나 직접 브라우저에서 Lambda를 실행할 수 있습니다!
$ curl http://localhost:3000/hello
{"message":"Go Serverless Webpack (Typescript) v1.0! Your function executed successfully!",....
요약
템플릿의 aws-nodejs-typescript가 package.json이 있다면 작동하지 않는 곳에 대해서는 귀찮지만, 글로벌 영역에 serverless를 설치하면 특히 문제 없습니다.
이번에는 프로젝트 내에서 담아두고 싶다는 조건이 있었기 때문에 수고를 걸었습니다.
그 점 이외에 대해서는 비교적 부드럽게 환경 구축을 할 수 있었기 때문에 어렵지 않다고 생각합니다.
로컬 실행 환경이나 테스트 환경등도 이전 했을 때보다 간단하게 되어 버리는군요.
Reference
이 문제에 관하여(TypeScript로 Lambda를 작성할 준비), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hisayuki/items/f829a0d526bdb386860e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
brew install yarn
$ mkdir serverless-typescript-sample
$ cd serverless-typescript-sample
$ yarn init
yarn init v1.15.2
question name (serverless-typescript-sample):
question version (1.0.0):
question description:
question entry point (index.js):
question repository url:
question author:
question license (MIT):
question private:
success Saved package.json
✨ Done in 13.12s.
{
"name": "serverless-typescript-sample",
"version": "1.0.0",
"main": "index.js",
"license": "MIT"
}
패키지
버전
yarn
v1.15.2
nodejs
v11.12.0
typescript
v3.2.4
Serverless
v1.40.0
serverless-offline
v4.9.3
Git
Git 초기화 및 원격 리포지토리 추가.
리모트 리포지토리는 Github이므로 다른 경우에는 적절하게 변경합니다.
git init
git remote add origin [email protected]:*************************************.git
Serverless Framework
이번에는 글로벌 영역에 설치하지 말고 node_module 안에 둡니다.
방금 넣은 yarn으로 설치.
yarn add serverless
yarn add v1.15.2
info No lockfile found.
[1/4] 🔍 Resolving packages...
[2/4] 🚚 Fetching packages...
[3/4] 🔗 Linking dependencies...
[4/4] 🔨 Building fresh packages...
success Saved lockfile.
success Saved 281 new dependencies.
info Direct dependencies
└─ [email protected]
info All dependencies
✨ Done in 6.61s.
``
설치가 끝나면 프로젝트도 만들어 버립니다.
aws-nodejs-typescript의 경우 package.json에 변경 사항이 추가되므로 이미 있으면 오류가 발생합니다.
우선 하나 아래의 계층에 패스 지정해 같은 이름의 디렉토리 만들기합니다.
yarn sls create -t aws-nodejs-typescript -p serverless-typescript-sample
이런 느낌이 들기 때문에 serverless-typescript-sample 디렉토리의 내용을 전부의 디렉토리로 이동합니다.
package.json만은 원코피하면 serverless가 사라져버리므로 수동으로 합니다.
이동 전 디렉토리 구성
이동 후 디렉토리 구성
수동으로 고친 후 package.json
package.json
{
"name": "serverless-typescript-sample",
"version": "1.0.0",
"description": "Serverless webpack example using Typescript",
"main": "handler.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"dependencies": {
"serverless": "^1.40.0",
"source-map-support": "^0.5.10"
},
"devDependencies": {
"@types/aws-lambda": "^8.10.17",
"@types/node": "^10.12.18",
"serverless-webpack": "^5.2.0",
"ts-loader": "^5.3.3",
"typescript": "^3.2.4",
"webpack": "^4.29.0"
},
"author": "The serverless webpack authors (https://github.com/elastic-coders/serverless-webpack)",
"license": "MIT"
}
package.json을 변경했으므로
yarn install
에서 종속성을 업데이트합니다.로컬 개발 환경 구축
serverless-offline
로컬에서 Lambda를 실행할 수 있도록 serverless-offline
를 yarn으로 설치합니다.
$ yarn add -D serverless-offline
yarn add v1.15.2
[1/4] 🔍 Resolving packages...
warning serverless-offline > h2o2 > [email protected]: This version is no longer maintained. Please upgrade to the latest version.
warning serverless-offline > hapi > catbox > [email protected]: This version is no longer maintained. Please upgrade to the latest version.
warning serverless-offline > hapi > heavy > [email protected]: This version is no longer maintained. Please upgrade to the latest version.
warning serverless-offline > hapi > podium > [email protected]: This version is no longer maintained. Please upgrade to the latest version.
warning serverless-offline > hapi > shot > [email protected]: This version is no longer maintained. Please upgrade to the latest version.
[2/4] 🚚 Fetching packages...
[3/4] 🔗 Linking dependencies...
[4/4] 🔨 Building fresh packages...
success Saved lockfile.
success Saved 37 new dependencies.
설치한 후 serverless.yml
의 plugin에
serverless.ymlplugins:
- serverless-offline
추가할 수 있으면 yarn sls offline start
로 로컬 서버의 기동을 합니다.
yarn sls offline start
yarn run v1.15.2
$ /Users/hisayuki/vscode/serverless-typescript-sample/node_modules/.bin/sls offline start
Serverless: Bundling with Webpack...
Time: 1348ms
Built at: 2019/03/30 22:01:55
Asset Size Chunks Chunk Names
handler.js 129 KiB handler [emitted] handler
handler.js.map 146 KiB handler [emitted] handler
Entrypoint handler = handler.js handler.js.map
[./handler.ts] 307 bytes {handler} [built]
[./node_modules/buffer-from/index.js] 1.56 KiB {handler} [built]
[./node_modules/source-map-support/register.js] 25 bytes {handler} [built]
[./node_modules/source-map-support/source-map-support.js] 17.6 KiB {handler} [built]
[./node_modules/source-map/lib/array-set.js] 3.12 KiB {handler} [built]
[./node_modules/source-map/lib/base64-vlq.js] 4.6 KiB {handler} [built]
[./node_modules/source-map/lib/binary-search.js] 4.15 KiB {handler} [built]
[./node_modules/source-map/lib/mapping-list.js] 2.28 KiB {handler} [built]
[./node_modules/source-map/lib/source-map-consumer.js] 39.6 KiB {handler} [built]
[./node_modules/source-map/lib/source-map-generator.js] 14 KiB {handler} [built]
[./node_modules/source-map/lib/source-node.js] 13.5 KiB {handler} [built]
[./node_modules/source-map/source-map.js] 405 bytes {handler} [built]
[fs] external "fs" 42 bytes {handler} [optional] [built]
[module] external "module" 42 bytes {handler} [optional] [built]
[path] external "path" 42 bytes {handler} [built]
+ 3 hidden modules
Serverless: Watching for changes...
Serverless: Starting Offline: dev/us-east-1.
Serverless: Routes for hello:
Serverless: GET /hello
Serverless: Offline listening on http://localhost:3000
이제 curl이나 직접 브라우저에서 Lambda를 실행할 수 있습니다!
$ curl http://localhost:3000/hello
{"message":"Go Serverless Webpack (Typescript) v1.0! Your function executed successfully!",....
요약
템플릿의 aws-nodejs-typescript가 package.json이 있다면 작동하지 않는 곳에 대해서는 귀찮지만, 글로벌 영역에 serverless를 설치하면 특히 문제 없습니다.
이번에는 프로젝트 내에서 담아두고 싶다는 조건이 있었기 때문에 수고를 걸었습니다.
그 점 이외에 대해서는 비교적 부드럽게 환경 구축을 할 수 있었기 때문에 어렵지 않다고 생각합니다.
로컬 실행 환경이나 테스트 환경등도 이전 했을 때보다 간단하게 되어 버리는군요.
Reference
이 문제에 관하여(TypeScript로 Lambda를 작성할 준비), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hisayuki/items/f829a0d526bdb386860e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ yarn add -D serverless-offline
yarn add v1.15.2
[1/4] 🔍 Resolving packages...
warning serverless-offline > h2o2 > [email protected]: This version is no longer maintained. Please upgrade to the latest version.
warning serverless-offline > hapi > catbox > [email protected]: This version is no longer maintained. Please upgrade to the latest version.
warning serverless-offline > hapi > heavy > [email protected]: This version is no longer maintained. Please upgrade to the latest version.
warning serverless-offline > hapi > podium > [email protected]: This version is no longer maintained. Please upgrade to the latest version.
warning serverless-offline > hapi > shot > [email protected]: This version is no longer maintained. Please upgrade to the latest version.
[2/4] 🚚 Fetching packages...
[3/4] 🔗 Linking dependencies...
[4/4] 🔨 Building fresh packages...
success Saved lockfile.
success Saved 37 new dependencies.
plugins:
- serverless-offline
yarn sls offline start
yarn run v1.15.2
$ /Users/hisayuki/vscode/serverless-typescript-sample/node_modules/.bin/sls offline start
Serverless: Bundling with Webpack...
Time: 1348ms
Built at: 2019/03/30 22:01:55
Asset Size Chunks Chunk Names
handler.js 129 KiB handler [emitted] handler
handler.js.map 146 KiB handler [emitted] handler
Entrypoint handler = handler.js handler.js.map
[./handler.ts] 307 bytes {handler} [built]
[./node_modules/buffer-from/index.js] 1.56 KiB {handler} [built]
[./node_modules/source-map-support/register.js] 25 bytes {handler} [built]
[./node_modules/source-map-support/source-map-support.js] 17.6 KiB {handler} [built]
[./node_modules/source-map/lib/array-set.js] 3.12 KiB {handler} [built]
[./node_modules/source-map/lib/base64-vlq.js] 4.6 KiB {handler} [built]
[./node_modules/source-map/lib/binary-search.js] 4.15 KiB {handler} [built]
[./node_modules/source-map/lib/mapping-list.js] 2.28 KiB {handler} [built]
[./node_modules/source-map/lib/source-map-consumer.js] 39.6 KiB {handler} [built]
[./node_modules/source-map/lib/source-map-generator.js] 14 KiB {handler} [built]
[./node_modules/source-map/lib/source-node.js] 13.5 KiB {handler} [built]
[./node_modules/source-map/source-map.js] 405 bytes {handler} [built]
[fs] external "fs" 42 bytes {handler} [optional] [built]
[module] external "module" 42 bytes {handler} [optional] [built]
[path] external "path" 42 bytes {handler} [built]
+ 3 hidden modules
Serverless: Watching for changes...
Serverless: Starting Offline: dev/us-east-1.
Serverless: Routes for hello:
Serverless: GET /hello
Serverless: Offline listening on http://localhost:3000
$ curl http://localhost:3000/hello
{"message":"Go Serverless Webpack (Typescript) v1.0! Your function executed successfully!",....
템플릿의 aws-nodejs-typescript가 package.json이 있다면 작동하지 않는 곳에 대해서는 귀찮지만, 글로벌 영역에 serverless를 설치하면 특히 문제 없습니다.
이번에는 프로젝트 내에서 담아두고 싶다는 조건이 있었기 때문에 수고를 걸었습니다.
그 점 이외에 대해서는 비교적 부드럽게 환경 구축을 할 수 있었기 때문에 어렵지 않다고 생각합니다.
로컬 실행 환경이나 테스트 환경등도 이전 했을 때보다 간단하게 되어 버리는군요.
Reference
이 문제에 관하여(TypeScript로 Lambda를 작성할 준비), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hisayuki/items/f829a0d526bdb386860e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)