[英]AWS Lambda function to connect to a Postgresql database
有誰知道如何通過AWS Lambda函數連接到PostgreSQL數據庫。 我在網上查了一下,但我找不到任何關於它的信息。 如果你能告訴我如何去做那件事會很棒。
如果你發現我的代碼(node.js)出了問題會很好,否則你能告訴我怎么去嗎?
exports.handler = (event, context, callback) => {
"use strict"
const pg = require('pg');
const connectionStr =
"postgres://username:password@host:port/db_name";
var client = new pg.Client(connectionStr);
client.connect(function(err){
if(err) {
callback(err)
}
callback(null, 'Connection established');
});
context.callbackWaitsForEmptyEventLoop = false;
};
代碼拋出一個錯誤:找不到模塊'pg'
我直接在AWS Lambda上寫了它,如果有所不同,就不會上傳任何內容。
我直接在AWS Lambda上寫了它,如果有所不同,就不會上傳任何內容。
是的,這有所不同! Lambda並不提供開箱即用的第三方庫。 只要您依賴第三方庫,就需要手動壓縮或上傳Lambda代碼或使用API。
更多信息: Lambda執行環境和可用庫
您需要參考創建部署包(Node.js)
簡單方案 - 如果您的自定義代碼僅需要AWS SDK庫,那么您可以使用AWS Lambda控制台中的內聯編輯器。 使用控制台,您可以編輯代碼並將其上載到AWS Lambda。 控制台將使用相關配置信息將代碼壓縮到Lambda服務可以運行的部署包中。
和
高級方案 - 如果您正在編寫使用其他資源的代碼,例如用於圖像處理的圖形庫,或者您希望使用AWS CLI而不是控制台,則需要首先創建Lambda函數部署包,然后使用控制台或CLI上傳包。
像我這樣的情況屬於高級方案。 所以我們需要創建一個部署包然后上傳它。 在這里我做了什么 -
注意:npm install會將節點模塊安裝在node_modules目錄下的同一目錄中,除非它在父目錄中看到node_module目錄。 首先執行npm init
然后執行npm install
以確保模塊安裝在同一目錄中以進行部署。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.