本文承接lambda發(fā)布api,前面我們已經(jīng)部署好了函數(shù),這里我們開始將函數(shù)發(fā)布到公網(wǎng),提供給前端使用.
進入api gateway服務(wù),進不去的需要檢查一下自己的權(quán)限....
選擇創(chuàng)建API,選擇rest類型,并命名,創(chuàng)建以后,在操作中選擇創(chuàng)建方法,我們例子用的是post.
[圖片上傳中...(image.png-79ef92-1555496005697-0)]
集成環(huán)境為lambda函數(shù),區(qū)域即為我們在創(chuàng)建lambda時,網(wǎng)絡(luò)中的子網(wǎng)組,二選一即可,這里會影響將來發(fā)布的域名名稱。
函數(shù)為我們在lambda中創(chuàng)建的函數(shù)名。保存即可。

image.png
方便測試,所以我們并沒有設(shè)置接口的auth類型,實際上是需要設(shè)置的,這里先不設(shè)置。左側(cè)的測試功能方便我們測試apigateway調(diào)用lambda函數(shù)是否正常。

image.png
方法創(chuàng)建以后,在操作下拉選擇中,選擇部署api,一旦部署以后,會立即生效,后面若有修改api相關(guān)的改動,需要重新部署api以覆蓋前面的版本。

image.png

image.png
上面會顯示發(fā)布的url地址,我們可以在相應(yīng)的接口調(diào)試工具中調(diào)試該地址

image.png

image.png
至此,一個簡單的無校驗api發(fā)布成功。下面補充一下api auth方法.
在資源中,選擇我們的方法,選中請求類型,點擊方法請求,選擇授權(quán)類型為AWS_IAM,這個類型意思就是通過aws賬戶生成的AccessKey與SecretKey去訪問你的api,當(dāng)然還有其他更復(fù)雜的驗證條件。
選擇之后保存,再次部署api到test階段,覆蓋我們的上一個版本。

image.png
再次請求,就會提示缺失token,這里使用的是postman,Authorization中帶有Aws signature方式。

image.png
Accesskey與SecretKey在IAM中創(chuàng)建生成即可,AWS Region和Service Name在url上自動帶出,域名規(guī)則為隨機字符.{Service Name}.{AWS Region}.amazonaws.com.cn/{functionName},加上已后,調(diào)用成功.

image.png
那么如何在頁面上去實現(xiàn)aws signature的方法呢?
官方提供了相關(guān)的js腳本: https://docs.aws.amazon.com/zh_cn/apigateway/latest/developerguide/how-to-generate-sdk-javascript.html ,經(jīng)測試后確實可用。
以上aws serverless部署java api完成。