TypeScript로 작성한 Cloud Functions를 CloudBuild를 사용하여 배포
이것을 읽고 할 수있게 될 것
TypeScript로 작성한 Cloud Function을 Code Build를 사용하여 배포할 수 있습니다.
전제 및 사전 준비
전제
사전 준비
테스트 리포지토리 : htps : // 기주 b. 코 m / 세 l rtsx / c ぉ d_ 그렇게 r 세 _ 레포시와 ry_ st
설정
디렉토리 구조
cloud_source_repository_test git:(master) tree -I node_modules
├── README.md
├── cloudbuild.yaml
├── package-lock.json
├── package.json
├── src
│ └── index.ts
├── tsconfig.json
└── webpack.config.js
TypeScript 샘플 코드
webpack을 사용하여 코드가 올바르게 import되어 있는지 확인하기 위해
decimal.js
를 import했습니다.import { Decimal } from "decimal.js";
function subscribe(req: any, res: any){
const x = new Decimal('0xff.f')
return res.send(`Hello World! ${x}`);
}
export { subscribe }
cloudbuild.yaml 설정
steps:
- name: node:8
entrypoint: npm
args:
- install
- name: node:8
entrypoint: npm
args:
- run
- build
- name: 'gcr.io/cloud-builders/gcloud'
args:
- functions
- deploy
- subscribe
- --stage-bucket=xxx
- --trigger-http
build 명령 중에서
webpack --mode production
가 실행 중입니다.tsconfig.json 설정
tsconfig.json
{
"compilerOptions": {
"target": "es2017",
"module": "commonjs",
"strict": true,
"preserveConstEnums": true,
"strictNullChecks": true,
"sourceMap": true,
"outDir": "./", # <= 重要
"moduleResolution": "node",
"esModuleInterop": true
},
"include": [
"src/**/*.ts"
],
"exclude": [
"node_modules"
]
}
Webpack 설정
webpack.config.js
module.exports = {
entry: "./src/index.ts",
target: 'node',
output: {
path: __dirname,
filename: 'index.js',
libraryTarget: 'this'
},
module: {
rules: [
{
test: /\.tsx?$/,
use: 'ts-loader'
}
]
},
resolve: {
extensions: [ '.js', '.json' ]
}
}
IAM Role 설정
동작 확인
$ curl https://xxx.cloudfunctions.net/subscribe
Hello World! 255.9375%
비고
webpack을 사용하는 이유
나머지 작업
Reference
이 문제에 관하여(TypeScript로 작성한 Cloud Functions를 CloudBuild를 사용하여 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/selmertsx/items/27686e51b4471eaf8c86텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)