我正在嘗試使用Firebase的云端函數(shù)來構(gòu)建與Google云端SQL(PostgreSQL)實例對話的API。如何通過Cloud Functions for Firebase與Google Cloud SQL進行交流?
從Cloud連接到Cloud SQL目前不支持UNIX函數(shù),因為UNIX套接字不存在(導(dǎo)致ENOENT),并且沒有定義的IP范圍白名單(導(dǎo)致ETIMEDOUT)。一種可能性是將Cloud SQL實例的0.0.0.0/0列入白名單,但出于安全原因不建議這樣做。
如果這是你的一個重要功能,我建議你訪問issuetracker并為其提供功能請求以幫助它獲得普及。
我也只在mysql中測試。
在https://issuetracker.google.com/issues/36388165#comment44,云功能實例可以通過特定路徑'/cloudsql/$PROJECT_ID:$REGION:$DBNAME'中的域套接字與云端數(shù)據(jù)庫交談。
我實際上可以從下面的云功能代碼連接和操作云SQL:
var mysql = require('mysql');exports.handler = function handler(req, res) { var c = mysql.createConnection({ socketPath: '/cloudsql/' + '$PROJECT_ID:$REGION:$DBNAME', user : '$USER', password : '$PASS', database: '$DATABASE' }); c.connect(); c.query(`SELECT * FROM table where id = ?`, req.body.id, function (e, results) { //made reply here });};