簡體   English   中英

AWS Lambda函數用於連接Postgresql數據庫

[英]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上傳包。

像我這樣的情況屬於高級方案。 所以我們需要創建一個部署包然后上傳它。 在這里我做了什么 -

  1. mkdir部署
  2. cd部署
  3. vi index.js
  4. 在這個文件中寫下你的lambda代碼。 創建時,請確保您的處理程序名稱為index.handler。
  5. npm install pg
  6. 您應該看到在部署目錄中創建的node_modules目錄,其中包含多個模塊
  7. 將部署目錄打包為zip文件並上傳到Lambda。
  8. 你應該好的

注意:npm install會將節點模塊安裝在node_modules目錄下的同一目錄中,除非它在父目錄中看到node_module目錄。 首先執行npm init然后執行npm install以確保模塊安裝在同一目錄中以進行部署。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM