Cloud Functions【Cloud SQL 사용편】
개요
Cloud Functions에서 Cloud SQL을 활용할 때 시간이 많이 걸렸으므로 절차를 기록해 둡니다.
Google Cloud Platform
CloudFunctions for Firebase
Connecting to Cloud SQL (공식 문서 / 영어)
Cloud SQL 설정
다음 순서로 인스턴스 생성
1, Google Cloud Platform > 네비게이션 메뉴 > SQL
2, 인스턴스 만들기 > 데이터베이스 선택(MySQL or PostgreSQL) > 인스턴스 ID/root 패스워드/리전/데이터베이스 버전 등을 설정
※DB 패스워드는 재발행할 수 없다고 하므로, 잊지 않도록 메모한다! ! !
3, 테이블 만들기
※Cloud Shell이나 SQL 클라이언트 툴을 사용해 작성할 수 있다. 이번에는 생략
Functions 설정
MySQL 사용 예 (공식 데모 참조)
functions/index.js
const mysql = require('mysql');
const connectionName =
'<インスタンス接続名>';
const dbUser = '<任意のDBユーザー>';
const dbPassword = '<任意のDBユーザーのパスワード>';
const dbName = '<DB名>';
const mysqlConfig = {
connectionLimit: 1,
user: dbUser,
password: dbPassword,
database: dbName,
};
if (process.env.NODE_ENV === 'production') {
mysqlConfig.socketPath = `/cloudsql/${connectionName}`;
}
let mysqlPool;
exports.mysqlDemo = (req, res) => {
if (!mysqlPool) {
mysqlPool = mysql.createPool(mysqlConfig);
}
mysqlPool.query('SELECT NOW() AS now', (err, results) => {
if (err) {
console.error(err);
res.status(500).send(err);
} else {
res.send(JSON.stringify(results));
}
});
}
우선 이것으로 움직인다.
ORM을 사용할 때 설정이 부족한 경우
mysqlConfig
예:const config = {
host: `/cloudsql/${connectionName}`,
dialect: 'mysql',
username: dbUser,
password: dbPassword,
database: dbName,
dialectOptions: {
socketPath: `/cloudsql/${connectionName}`
},
};
Reference
이 문제에 관하여(Cloud Functions【Cloud SQL 사용편】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/koffee0522/items/297b5f969c2e3e5b902d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)