NCP 공식 블로그 글을 참고하였다.
[이렇게 사용하세요!] Cloud Functions 서비스와 Cloud DB를 활용하여 애플리케이션 서버 없이 API 제공
#CloudFunctions 서비스와 #CloudDB for #MySQL 을 활용한 애플리케이션 서버 없이 API 제공하...
blog.naver.com
MySQL 서버 비용이 은근 많이 나가서, 무료 DB가 가능한 PlanetScale을 사용하였다.
연결하는 부분만 바꿔주면 간단하게 가능하다.
NCP 콘솔페이지로 가서
우측 Service -> Compute -> Cloud Function
서버 설정은 공홈보고 하실 수 있을테니, 파일 생성하는 부분으로 넘어감
- 업로드하기 위한 디렉토리를 새로 만든다.
-> Cloud Function에 업로드 할 때 이 폴더 전체를 압축하여 업로드해야한다. - package.json파일을 생성한다.
- 해당 디렉토리에서 terminal을 통해 패키지 설치
npm install dotenv mysql2 - index.js 파일도 생성
3번 실행 전에 package.json 먼저 생성하자.
name 과 main 부분 역할은 잘 모르겠음
dependencies는 비워두자
{
"name": "example",
"main": "index.js",
"dependencies": {
}
}
3번을 실행하고나면 package.json 이 다음과 같이 바뀐다.
{
"name": "example",
"main": "test.js",
"dependencies": {
"dotenv": "^16.0.3",
"mysql2": "^3.2.0"
}
}
디렉토리에는 다음파일들이 필수로 있어야한다.
- package.json
- index.js
- .env
dotenv : .env 파일의 값을 읽어올 수 있도록 함
mysql2: planetscale DB와 연동하기 위해 필요함
index.js 파일은 다음과 같이 작성
require('dotenv').config()
const mysql = require("mysql2");
let conn;
function createTable(params) {
return new Promise(function(resolve, reject) {
if(!conn) {
conn = mysql.createConnection(process.env.DATABASE_URL)
conn.connect();
}
conn.query(`SELECT * FROM products`, function (error, results, fields){
if (error) {
reject({error: error});
}
resolve({
products: results
});
});
})
}
exports.main = createTable;
PlanetScale과 연결되는 부분은 process.env.DATABASE_URL 부분이다.
.env 파일 안에 정보를 넣어두었다.
DATABASE_URL='mysql://eusjaevn81kgrr2xwglf:************@ap-northeast.connect.psdb.cloud/************?ssl={"rejectUnauthorized":true}'
이 데이터는 PlanetScale 사이트에서 확인할 수 있다.
기본적인 설정 방법은 패스하고,
연결링크 찾는 부분 설명
콘솔에 들어가면 CLI 명령어를 통해 DB를 생성하고 편집할 수 있다.
Cloud Function Action 생성 후 파일 업로드
---패키지 활용법
패키지는 여러 액션들을 그룹으로 묶을 수 있다.
패키지 장점은, 기본적으로 사용하는 파라미터를 공유할 수 있다. 예를들면 env 파일을 zip파일에 넣어두는 것 보다는 Package를 생성하여 그 안에 파라미터를 입력하여 사용한다.
action마다 zip에 넣었을 경우, 파라미터가 바뀌는 일이 일어나면 action 파일 개수만큼 일일이 모두 직접 수정해야하는 참사가...
process.env. 로 시작했던 변수들을 아래와 같이 바꾸어야 한다.
params.
폴더를 통째로 zip으로 압축하여 업로드한다.
Action 을 실행하면 아래와 같이 DB 연결 됨 확인
'프로그래밍 > 클라우드서버' 카테고리의 다른 글
Naver Cloud Platform (NCP) Server 생성, Putty 접속 (0) | 2023.03.07 |
---|---|
오라클 클라우드 프리티어 가입 여정...... 거절의 반복 (0) | 2021.05.14 |
댓글