【AWS】APIGEY+LAMBDA查找檔案

24 1月, 2019

【AWS】APIGEY+LAMBDA查找檔案




需求:
前端需要有一個api,能夠帶入參數{檔案名稱},
由lambda去檢查aws s3上是否有該檔案,在respon json格式告知前端





大致流程如下:
(1) 前端Html放在Aws的S3上,透過Ajax對Api getway進行呼叫。
(2) APIGetway接收到後,將queryString url傳遞至Lambda進行處理
(3) Lambda收取到url參數後,透過S3的getObject或是getObjectHeader來進行檔案存在判斷
(4) Lambda將結果respon為json格式,讓前端進行解析。

實作流程如下:
(1) 設置Lambda
透過lambda去解析apiGetway傳遞過來的queryString,並將條件帶入s3.getObjectHeader去查找檔案,在callback記得帶有crossdomain的header。
(下列queryString的寫法是測試,想透過非正常管道獲取參數,建議走正規透過event獲取)

(2) 設置Apigetway 
這裡不用特地設置參數url,
是因為lambda解析是直接去解析apigetway的queryString
上述方式並不是正規方式,只為了試試看不正規的方式是否能成功所使用
(建議用正規的方式,apigetway設置參數,用Lambda 透過event來進行擷取參數)

這邊要設置lambda的名稱,以及開啟cos設定(避免corssdomain)。
最後記得要depoly,apigetway才會生效。

(3) Ajax呼叫apigetway


如果有相關crossdomain問題也可以參照之前的文章
Aws Crossdomain解決

張貼留言