2015-03-08 109 views
2

我想使用lambdadynamodb獲取數據庫並生成計算數據到cvs文件。如何在內存中寫入文件或在Lambda aws中寫入文件?

然後附上此文件與電子郵件發送給客戶。

步驟

  1. 從dynamodb獲取數據。 (我知道該怎麼做。)

  2. 寫入文件.CSV(需要幫助)。

由於lambda沒有持久數據。如何寫入文件

  1. 將.CSV附加到電子郵件併發送給客戶。 (需要幫助)

回答

2

的fs.readFile聲明如果你正在寫一個CSV,你可能需要將數據流式傳輸到S3。 Lambda有一個很好的例子here用於從緩衝區流式傳輸圖像數據。顯然你沒有使用圖像,但概念大致相同。

  1. 從數據庫
  2. 格式它你需要讓你的數據。我建議用類似csv-write-stream的東西來查看流。
  3. 通過類似s3-streaming-uploadaws-sdk的數據流將數據傳輸到s3。
  4. 作爲SDK響應的一部分,您將獲得文件的位置。
  5. 我會使用mandrill(https://mandrillapp.com/api/docs/messages.html),因爲它的 免費 ,簡單,真棒。您可以將附件內容設置爲base64。你的可能是這個樣子:

    "attachments": [ 
        { 
        "type": "text/csv", 
        "name": "myfile.csv", 
        "content": new Buffer(myCsvContent).toString('base64') 
        } 
    ] 
    

我沒有測試過這一點,但沒有類似的東西最近這一般方法應該爲你工作。

+0

我在想這些,並且意識到你沒有明確說你需要保存CSV。如果你不這樣做,那麼肯定會忽略S3步驟,因爲它會讓你想要做的事情變得複雜。你可以流到一個緩衝區,然後base64編碼並附加到電子郵件。 – imjared 2015-03-09 14:48:35