亚马逊云科技开发者社区精选,如何搭建你的无服务器服务?
摘要
亚马逊云科技开发者教你轻松搭建无服务器设施。
正文
什么是无服务器
1.能够自动拓展,无需担心资源的拓展或缩减。
2.使用者付费模式,只需要向自己所需的服务付费。
3.无需管理任何基础设施,包括物理服务器、云服务器。
4.服务具有高可用性。亚马逊云科技中的所有无服务器服务都是原创的,你无需依赖单一的可用区,如果某个可用区出现了问题,因为周边分布的各种服务,可以自动解决可用性问题。
如何启动首批无服务器应用的构建
API 工作的基本原理是,当你在餐厅想点一些薯条,你向服务员提出请求,服务员会将请求传达给厨师,厨师会把土豆做成美味的薯条,然后让服务员端给你,就完成了对你请求的响应。冰箱中的土豆资源,就是数据源或数据库。
所以,我们想利用无服务器组件为应用构建相应的服务,我们需要 API、服务器以及一个数据库表。
无服务器服务是针对后台业务逻辑的服务,我们采用 Lambda。
Lambda 属于函数即服务,是亚马逊科技的一项服务,可以让你在不配备任何服务器的情况下运行代码。只需将代码上传至 Lambda 平台,平台会根据需求和现有流量运行以及缩放代码。
Lambda 函数与其他运行驱动代码服务的主要区别之一是你也可以利用代码在任何时候启动某种服务。
Lambda 函数由事件触发,事件可以是状态的变化、数据库或存储元素的变化、HTTP 请求,也可以是某人在某地按下按钮或是让信息排入队列。
Lambda 函数可以植入多个不同的运行环境,Lambda 函数运行时,可以执行你需要的许多服务,它可以调用第三方 API,比如餐厅或是付款服务;它也可以将元素纳入数据库中以便跟踪,比如储存订单。如果需要做些运算,它也可以提供一些业务逻辑,它可以将信息排入队列,或者做一些其他你认为 Lambda 可以做的事情。
使用 API 网关可以监控并管理你的 API。当发出 HTTP 请求时,它会调用 Lambda 服务,它会对客户的请求作出反应。你可以利用 API 网关构建 Rest APIs 或 WebSocket APIs。
我们选择 DynamoDB 作为数据库,DynamoDB 是亚马逊云科技 NoSQL 数据库服务的一部分,灵活且拓展性强,是无服务器应用的理想选择。它连接十分简单,无需进行任何复杂的安装便可启动 Dynamo。
到这里,无服务器应用的构建就完成了,API 网关接受顾客请求,顾客向餐厅发出订单后,Lambda 函数可以用于支付,调出餐厅并在数据库中存储数据。
如何以基础设施即代码的方式构建无服务器
基础设施即代码的方式是一种可行性较高的方式,可以让项目变得可拓展、可复用。
亚马逊云科技中,有很多种构建无服务器服务的方式。我们选择 CloudFormation 和 Amazon SAM。
CloudFormation 可以帮助构建并反复重建变化的基础设施,SAM 是无服务器应用模型,可以用来编写函数 API 网关 Dynamo 表、阶跃函数以及其他在无服务器环境下的应用。另外它也可以创建像授权和角色之类的简单服务以及介于 API 网关和 Lambda 函数之间的服务。
我们采用 API 网关来处理 HTTP 请求获得订单,采用 Lambda 函数进行支付,调用第三方服务来处理支付。然后,我们将订单存在数据库中并进行更新,为其创建 DynamoDB 表格。最后,我们通过 Lambda 函数向餐厅发送订单。
整个基础设施可能只需要 20 行代码,设置过程非常简单,但功能十分强大,完全不需要服务器。你可以在亚马逊云科技账户中进行部署,这里可以找到完整代码,以便进行尝试。
更多 AI / ML、大数据 / 数据库、现代应用开发、IoT 等热门产品技术分享,欢迎访问亚马逊云科技开发者社区。
亚马逊云科技开发者社区一站式平台,包含了为全球开发者所提供的开发技术资源,技术文档、开发案例、技术专栏、培训视频、活动与竞赛、常见问题等。帮助中国开发者更便捷的获取全球云计算技术内容来学习交流,更优地做云上构建。同时为中国开发者打通链接世界的桥梁,致力于帮助中国技术企业与开发团队打造自身技术品牌并让全球亚马逊云科技的开发者们了解源于中国的产品技术。
亚马逊云科技开发者官网,为中国开发者打造的链接全球技术资源的平台,助力开发者成功。
