【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解決
張貼留言