2 回答

TA貢獻(xiàn)1801條經(jīng)驗 獲得超16個贊
不,如果沒有Lambda服務(wù)API(通常是API網(wǎng)關(guān))之前的任何東西,就無法做到這一點。
您const responseObject
實際上是使用API網(wǎng)關(guān)指定的格式創(chuàng)建響應(yīng)的-Lambda服務(wù)不對響應(yīng)進(jìn)行任何解釋。這就是為什么它對響應(yīng)中的標(biāo)頭沒有影響,以及為什么base64保持未翻譯的原因-整個結(jié)構(gòu)是特定于API網(wǎng)關(guān)的。Lambda只是返回JSON。
如果響應(yīng)足夠小,那么“某物”可能是應(yīng)用程序負(fù)載平衡器,盡管身份驗證會有所不同,但它可能與Cognito一起使用可能不太容易,也可能不夠容易。它使用與API網(wǎng)關(guān)基本相同的響應(yīng)格式,并且平衡器在將base64返回給瀏覽器之前對其進(jìn)行解碼。
您還可以使用CloudFront的Lambda @ Edge功能通過HTTP(S)調(diào)用Lambda函數(shù),并設(shè)置自定義標(biāo)頭并自動解碼base64,但是此服務(wù)沒有內(nèi)置的Cognito集成,并且與全功能明顯不同。 Lambda服務(wù),僅支持Node.js,并在離瀏覽器最近的AWS區(qū)域(而不是在創(chuàng)建該區(qū)域的區(qū)域)運行Lambda函數(shù),以提高全局性能。Lambda @ Edge還期望使用不同的輸出格式,這是一種比API Gateway期望的響應(yīng)結(jié)構(gòu)更精心設(shè)計的設(shè)計,因此也不能互換。
添加回答
舉報