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/