1. 将Gradle程式打包
gradle build
gradle build -x test(打包忽略test)
此時如果提示:”gradle不是内部或外部指令,也不是可運作的程式或批處理檔案”,需要先安裝gradle,安裝步驟如下:
① 安裝 chocolatey
以管理者身份打開指令行視窗,執行:
@powershell -NoProfile -ExecutionPolicy Bypass -Command “iex ((new-object net.webclient).DownloadString(‘https://chocolatey.org/install.ps1‘))” && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin
② 用 chocolatey 安裝 gradle
choco install gradle
2. 安裝 Node.js ( v6.5.0 及以上)
3. 安裝 serverless
npm install -g serverless
4. 配置 serverless.yml 中相關内容
5. 釋出
進入serverless.yml所在目錄,執行 serverless deploy -v
在該步驟中可能出現的問題:
① 因網絡問題出錯,如下圖:
如果是因網絡逾時引起的,可以設定逾時時間,在cmd中執行: SET AWS_CLIENT_TIMEOUT=200000000
然後重新執行釋出指令。
② 權限問題
在 serverless.yml 中設定的role缺少權限,如:
Serverless Error --------------------------------------- An error occurred: InternalLambdaFunction - The provided execution role does not have permissions to call CreateNetworkInterface on EC2. Get Support -------------------------------------------- Docs: docs.serverless.com Bugs: github.com/serverless/serverless/issues Forums: forum.serverless.com Chat: gitter.im/serverless/serverless Your Environment Information ----------------------------- OS: win32 Node Version: 6.10.0 Serverless Version: 1.25.0
說的就是 serverless.yml 中配置的role缺少EC2的權限,需要在AWS IAM控制台下該role中添加EC2的權限。
釋出完成後會在将程式釋出到AWS Lambda中,同時會生成相應的API Gateway。
參考網址:
https://serverless.com/framework/docs/providers/aws/guide/deploying/
https://github.com/serverless/serverless/issues/1981
https://github.com/serverless/serverless/issues/2780