netlify serverless function

js·2022년 5월 4일
0

netlify.toml

[build]
 functions = "functions"

functions/hello.js

exports.handler = async function(event, context) {
    // event 객체 
	/*{
      "path": "Path parameter (original URL encoding)",
      "httpMethod": "Incoming request’s method name",
      "headers": {Incoming request headers},
      "queryStringParameters": {Query string parameters},
      "body": "A JSON string of the request payload",
      "isBase64Encoded": "A boolean flag to indicate if the 		applicable request payload is Base64-encoded"
	}*/ 
  	// 아래와 같이 response를 리턴 한다. 
  	return {
    	statusCode: 200,
    	body: JSON.stringify({ message: "Hello World" }),
  	};
}

아래와 같이 netlify 주소 /.netlify/functions/hello에서 함수 결과 값을 리턴 받을 수 있다.

package.json

명령어 scripts에 "dev:netlify": "netlify dev" 추가

Netlify CLI 설치

npm i -D netlify-cli

netlify.toml

# Netlify Dev
# https://cli.netlify.com/netlify-dev/#netlifytoml-dev-block

# 제품 모드
[build]
  command = "npm run build"
  functions = "functions" # Netlify 서버리스 함수가 작성된 디렉토리를 지정합니다.
  publish = "dist" # 프로젝트 빌드 결과의 디렉토리를 지정합니다.

# 개발 모드
[dev]
  framework = "#custom" # 감지할 프로젝트 유형을 지정합니다. 앱 서버 및 `targetPort` 옵션을 실행하는 명령 옵션은 `#custom`입니다.
  command = "npm run dev:webpack" # 연결할 프로젝트의 개발 서버를 실행하는 명령(스크립트)을 지정합니다.
  targetPort = 8079 # 연결할 프로젝트 개발 서버의 포트를 지정합니다.
  port = 8080 # 출력할 Netlify 서버의 포트를 지정합니다.
  publish = "dist" # 프로젝트의 정적 콘텐츠 디렉토리를 지정합니다.
  autoLaunch = false # Netlify 서버가 준비되면 자동으로 브라우저를 오픈할 것인지 지정합니다.

0개의 댓글