安装SST框架并部署第一个AWS Lambda服务[AWS Lambda教程-SST系列]

SST简介

SST是一个非常优秀的Serverless框架,除了可以帮助你非常简单的编写RESTful HTTPS API外,它的特色还有:

  1. 轻松的和前段框架集成(比如Next.js、Svelte、Astro)并快速部署到AWS Lambda,实现页面的服务端渲染(SSR)
  2. 专为Nodejs优化,方便开发人员使用TypeScript/JavaScript编写AWS Lambda代码并本地直接发布到AWS云上,同时也能轻松和CI/CD系统集成
  3. 非常完善的本地debug功能,并自带一个本地的网页窗口帮助进行功能测试
  4. 完善的AWS Lambda继承,除了帮助你开发/调试/发布 AWS Lambda代码外,还能轻松的使用基础设施即代码(IaaS)的方式为你的项目管理AWS Lambda所依赖的资源,比如AWS DynamoDB。

使用SST编写第一个AWS Lambda项目

本文假设你拥有一个AWS云账户(AWS海外账户更好)并有足够的IAM权限(推荐有AdministratorAccess权限),并在本地电脑上配置了AWS IAM用户凭证,如果没有请先注册一个AWS账户并参考AWS Cli同时配置海外区和中国区的凭证 进行本地凭证的配置。同时你需要在本地安装好nodejs(推荐nodejs 18及以上)

我们以一个最简单的RESTful API为例,实现一个输出hello world的HTTP API入门项目,我们参考sst start standalone来进行演示

我们首先执行npx create-sst@latest hello-world-restful-api来一键创建项目,并给它一个项目名称为hello-world-restful-api,稍等片刻即可完成

项目创建完成后,我们可以用vs code或者WebStorm打开,并继续执行npx sst dev,这时SST会创建一个本地调试环境并在AWS云端完成相关资源的准备和创建工作,这个过程是自动的,我们等待即可。

创建过程中,SST会在命令框里面输出一个本地化的http api,我们可以直接访问这个api进入本地调试页面,例如我的本地调试页面地址为console.sst.dev/hello-world…

继续等待SST帮我们把项目部署到AWS上,部署完成后会给将我们的RESTFul HTTP API地址输出到命令框里。这里我的API地址为4neeoowbv7.execute-api.us-east-1.amazonaws.com/

我们可以直接访问这个API,得到输出,这里我们看到接口返回了一个字符串

我们也可以打开本地前面讲的调试页面,进行本地测试

我们可以进行代码修改然后让SST自动进行相关的集成和发布,例如我修改了lambda函数代码里面的输出内容,SST会立即自动感知到并进行编译和部署

图片[1]-安装SST框架并部署第一个AWS Lambda服务[AWS Lambda教程-SST系列]-五八三
当我们再次访问API时,发现我们的修改已经生效了

最后,我们可以使用npx sst remove一键从云端销毁项目,清理实验资源,避免产生费用。

总结

通过本例子,我们发现SST是一个非常自动化的框架,帮我们做到了代码的编译、发布、更新、debug和AWS资源的创建等繁琐的操作,大大的降低了AWS Lambda的上手难度并提升了开发效率。

这个例子也非常的简单,主要就是通过AWS API-Gateway做HTTP网关并将HTTP请求事件转发到AWS Lambda,AWS Lambda正确执行后会将结果返回给用户。SST也同时提供一个本地web debug控制台方便用户进行本地调试。

参考:

© 版权声明
THE END
喜欢就支持一下吧
点赞0

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYf0eXUu' (Errcode: 28 - No space left on device) in /www/wwwroot/583.cn/wp-includes/class-wpdb.php on line 2345
admin的头像-五八三
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

图形验证码
取消
昵称代码图片