生成式 AI 码力全开,动手搭建未来商城
在当前快速变革的技术浪潮中,人工智能和无服务器已成为软件开发领域的两大重量级明星。它们分别代表着智能化和现代云原生应用的未来方向。而将两者完美结合,将为应用开发带来全新的革命性体验。
亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,点这里让它成为你的技术宝库!
我想和大家分享一个有趣的动手实验:“利用生成式 AI 构建一个无服务器电商平台”。通过 60 分钟的体验,参与者将获得生成式 AI 工具驱动下的无服务器架构应用开发的独特体验。
如果你也和我一样,想感受一下亚马逊云科技明星服务真实业务场景的实现,以及利用人工智能工具去构建一个无服务器架构的电商平台,那么现在就扫描下方二维码,或点击阅读原文报名注册亚马逊云科技中国峰会吧!并于 5 月 30 日带着你的终端设备,在上海世博中心现场不见不散!
![](https://static001.geekbang.org/infoq/5f/5ffb9df4fcbaae9304059c32620ce6ea.png)
虽然很快就可以见面,但我还是忍不住对实验环节做一些剧透。
实验内容:
利用 Amazon Lambda Web Adapter,将开源电商系统 Litemall 从传统容器架构迁移至无服务器架构,实现与 Vue.js 前端的无缝集成。
实战编码的过程中,体验 Amazon Q 作为 生成式 AI 助手简化应用构建的全流程。
玩转 Amazon Bedrock,轻松构建和弹性扩展基于生成式 AI 模型的行业应用。
不仅如此,动手实验的主线将环绕构建一个智能电商系统。参与者还将在体验生成式 AI + Serverless 开发新体验的同时,亲手打造出一个具有强大生成式 AI 能力的现代化电商应用,洞悉未来电商发展的全景图。
实验将体验到的云服务:
在“动手”体验之前,我们需要了解一下实验涉及的那些有趣服务以及他们背后的技术实现:
Amazon Web Adapter
实验涉及了服务器计算服务 Amazon Lambda,以及它的一个开源插件 Lambda Web Adapter。众所周知, Lambda 是亚马逊云科技提供的一种无服务器计算服务,它摆脱了服务器管理,提供了可扩展性并节约了成本。Lambda 函数由事件触发,如 API 请求或计划事件,这意味着 Lambda 函数在无状态环境中运行。
我们听到一些开发人员,尤其是开始使用 Lambda 构建 Web 应用程序的开发人员,分享了他们面临的一些挑战。其中一个挑战是适应不同的编程模型,这需要转变编码思维来处理事件和管理无状态。此外,开发人员还经常发现自己在开发和调试工具的可用性方面遇到困难。与容器相比,他们可能对 Lambda 的这些工具不太熟悉。尽管存在这些挑战,开发人员还是认识到,将传统 Web 应用程序迁移到 Lambda 或将 Lambda 过渡到容器会带来令人兴奋的新机遇和好处。但同时,所有这些迁移都将会带来额外的工作和代码修改。因此 Lambda Web Adapter 应运而生。
Lambda Web Adapter 是用于 Lambda runtime API 和 HTTP API 的通用适配器。它支持 API Gateway REST/HTTP 端点、Application Load Balancer 和 Lambda Function URL。无需加入新的代码依赖关系。它可与在 Linux 上运行的任何网络框架和编程语言配合使用。支持 x86_64 和 arm64 CPU 架构。开发人员可以使用熟悉的框架和工具进行本地开发和测试。
![](https://static001.geekbang.org/infoq/cc/cc709606d07b3c679138a5f1c28683dd.png)
Lambda Web Adapter 是 Lambda 的扩展,在 Lambda 执行环境中作为独立进程运行。Lambda Web Adapter 也是一个自定义运行时客户端。对于每次调用,Lambda Web Adapter 都会从 Runtime API 接收调用 payload,将其转换为 HTTP 请求,然后发送给在同一执行环境中运行的 Web 应用程序。当 Web 应用程序返回 HTTP 响应时,Lambda Web Adapter 会将其转换为正确的 json payload 并发送给 Runtime API。
![](https://static001.geekbang.org/infoq/47/47f67d9aa37248adea99a6a99b0f29c4.png)
Lambda Web Adapter 使用 Rust 开发,利用了 Amazon Lambda Rust runtime 和 hyper 等板块。这种选择不仅确保了高性能,还增强了该组件在对延迟敏感的数据路径中的安全性。另外,Lambda Web Adpter 是在 Amazon Lambda 上运行 Web 应用程序的开源工具,从这里获得全部代码:https://github.com/awslabs/aws-lambda-web-adapter?trk=cndc-detail
另外我挺骄傲的是 Lambda Web Adapter 是由来自亚马逊云科技的无服务器产品专家孙华开源出来的,您可以访问链接查看 GitHub 主页。这里为中国的开源贡献者点个赞!
@孙华
https://github.com/bnusunny?trk=cndc-detail
通过实验,体验者体验到将 Web 应用从容器架构迁移到无服务器架构上运行,就只差一个 Lambda Web Adapter。
Amazon Q
Amazon Q 是亚马逊云科技交付的一个功能强大的生成式 AI 工具,可以用于应用开发的全流程,包括:
开发过程中的知识学习理解能力:根据数据源提供准确具体的技术指导,并索引到相关文档和实例;
项目计划以及设计能力:调查,评估,以及制定一个目标明确且可执行的项目计划,设计出符合业务目标,满足技术需求的应用。
代码开发能力:理解业务目标的基础上,生成代码,和做代码解读。
安全和审查能力:自动检测代码错误和进行应用的故障判断。通过安全扫描发现安全漏洞并提出解决方案。
监控及测试能力:根据应用和基础设施的安全和性能要求,对整个开发过程进行监控,并结合反馈跟踪和诊断错误。
智能的运行维护能力:对生产中的更新和补丁进行自动化升级。
作为一个智能的开发助手,Amazon Q 和多种开发前端都做了集成。如今开发者可以通过常见的 IDE,Amazon Management Console,Amazon Documentation,Slack & Teams,Amazon Console Mobile App,以及 Amazon CodeCatalyst,使用 Amazon Q 协助完成应用开发的全过程。
Amazon Q 将贯穿整个实验过程,从通过自然语言需求技术指导,云上服务推荐,到 API 调用代码推荐,陌生代码的解析,以及故障定位及修复建议和安全漏洞扫描和修复。
Amazon Bedrock
Amazon Bedrock 是一项完全托管的服务,通过单个 API 提供来自 AI21 Labs、Anthropic、Cohere、Meta、Mistral AI、Stability AI 和 Amazon 等多个领先人工智能公司的高性能基础模型。通过微调和检索增强生成(RAG)等技术利用自有的数据对其进行私人定制,并构建使用企业或组织的系统和数据来源执行任务的代理。
我们认为生成式 AI 的技术栈如下图分为三层,而第二层调用大语言模型构建人工智能应用的平台是尤为受到开发者重视的。多模型的广泛选择,简化大语言模型的调用和与应用程序的集成,以及利用特有数据源实现模型定制是第二层技术栈优先要实现特性。
![](https://static001.geekbang.org/infoq/9d/9d0fc4e875859df8e03c33f16f03ed6a.png)
在实验的最后一个环节,设置了调用 Amazon Bedrock 提供的基础模型,设计生成上架商品的商品描述的挑战赛,这很有趣。体验者需要完成 pom.xml 以及 AWSConfig.java 的代码,并在 BedrockController.java 以及 BedrockService.java 中完成方法实现。
实验收获:
之所以推荐这个实验,不仅仅是实验过程有助于熟悉并体验亚马逊云科技上新且亮眼的服务,而且可以在实验中体验到云上构建无服务器架构的电商平台的全过程。
实验的设计和交付者蔡勃,金泽煊和罗新宇,他们都来自于亚马逊云科技一线的技术专家。您可以访问他们 GitHub 主页查看更多信息:
@蔡勃
https://github.com/caibobob?trk=cndc-detail
@金泽煊
https://github.com/JasonJinzexuan?trk=cndc-detail
@罗新宇
https://github.com/thinktik?trk=cndc-detail
实验的首次亮相将在 5 月 22 日的亚马逊云科技的香港峰会:https://build-serverless-ecommerce-with-gen-ai.splashthat.com/?trk=cndc-detail
如果你刚巧在那里,欢迎现场和实验的设计者沟通切磋!
评论