亚马逊网络服务

Monolith到无服务器10分钟

Istock 1069272512

基于web的应用程序编程接口(API)概念从90年代就已经出现了。由于维护和发展业务的需要,现有的代码已经有几个世纪的历史了,我们今天将其中大部分定义为单块代码。对许多公司来说,改变的想法即使不是不可想象的,也是令人畏惧的。

有无数的理论、概念和体系结构来帮助确定打破这些庞然大物的最佳方法。然后呢?一旦你建立了AWS帐户,你如何将你的无服务器微服务导入AWS?

有一个久经考验的工具,叫做Claudia.js。js是一个用于微服务的开源部署工具,它可以帮助你开始并维护Lambda函数和Amazon API Gateway。

js自动打包NPM依赖项,确保API是可部署的,为传输压缩包,配置API网关,然后安装AWS Lambda函数。js以JavaScript开发人员期望的开箱即用的方式设置一切

你好世界

让我们创建Hello World示例“Monolithic”服务。

  1. 创建一个新文件夹,用NPM或Yarn初始化
    • npm init

  2. 创建一个app.js文件,文件内容如下:
    • var apiBuilder = require(' claudia-api-builder '), api = new apiBuilder ();

      模块。出口= api;

      api。Get (' /helloworld ', function () {

      返回' hello world ';

      });

  1. 将Claudia API Builder添加到package.json中
    • npm install Claudia-api-builder -save

  2. 最后一步,全局安装Claudia.js。
    • npm install -g Claudia

  3. 最后,在AWS中安装Hello World微服务:
    • Claudia创建-region uss-east-1 -api-module app

亚马逊网络服务-避免呼叫中心停机:计划升级到亚马逊连接
避免呼叫中心停机:计划升级到Amazon Connect

了解升级呼叫中心时最常见的六个陷阱,以及Amazon Connect如何帮助您避免这些陷阱。

获取指南

在几分钟内,您应该会收到类似以下内容的响应:

“λ”:{

“角色”:“测试执行者”,

“名称”:“测试”,

“地区”:“us-east-1”

},

“api”:{

" id ": " 4l9jdd7gy9k ",

“模块”:“应用程序”,

“url”:“https://4l9jdd7gy9k.execute - api.us东- 1. amazonaws.com/latest”

当Claudia.js完成时,他的结果会给你新的API Gateway资源的根URL。Claudia为/HelloWorld创建了一个端点资源。此时,您可以将/HelloWorld添加到上面的URL中,并在浏览器或控制台中尝试新的端点。您应该看到“Hello world”响应。

不到10分钟,您就在AWS中部署了第一个Lambda函数和API Gateway端点

但刚刚发生了什么?:

以下是Claudia.js刚刚做的:

  • 创建了项目的副本
  • 打包了所有的NPM依赖项
  • 测试API是可部署的
  • 压缩应用程序并将其部署到Lambda
  • 创建了正确的IAM访问权限
  • 使用/HelloWorld资源配置了一个API网关端点
  • 将新资源链接到以前部署的Lambda函数
  • 安装API Gateway转换模板

Claudia的最后一步是将配置保存到一个名为Claudia的本地文件。Json,这样你就可以更新函数而不必记住细节。js使更新和维护新的微服务变得同样容易。

结论

公司要从现有的单一后端转移到更现代、更敏捷的框架,最关键的障碍是如何将服务转换为部署到AWS中的微服务。除了添加Claudia.js来将单片服务转换为微服务之外,还可以将Claudia.js添加到现有的持续集成和部署流程中,以减少上市时间并提高质量。

“完美”如何帮助你?

Perficient是经过认证的Amazon Web Services合作伙伴,在云平台解决方案、呼叫中心、应用现代化、迁移、数据分析、移动、开发人员和管理工具、物联网、无服务器、安全等领域拥有超过10年的企业级应用和专业知识。与我们行业领先的战略和团队相配合,Perficient能够帮助企业应对最严峻的挑战,并从他们的实现和集成中获得最大的收益。

在这里了解更多关于AWS实践的信息,并与我们的团队取得联系!

留言回复

这个网站使用Akismet来减少垃圾邮件。了解如何处理您的评论数据

罗伯•莫里斯

Rob Morris是Perficient的云工程师。Rob从80年代中期开始编写代码,他过去15年的大部分时间都在帮助其他人采用云技术。他以优异的成绩毕业于南新罕布什尔大学(Southern New Hampshire University),获得工商管理学位。

更多来自作者

订阅每周博客文摘:

报名
关注我们
推特 Linkedin 脸谱网 Youtube Instagram