几秒钟内在本地构建应用程序,就绪后部署到 AWS
自信地在 AWS 上发布应用程序。AWS Blocks(预览版)可为您提供功能完备的本地开发环境,包含数据库、身份验证、实时功能等。在准备好发布之前,无需 AWS 账户。
概述
AWS Blocks 是一个开源 TypeScript 框架,允许您利用预构建模块组合后端功能,并根据代码生成基础设施,从而让您专注于业务逻辑,无需处理繁琐的基础设施样板代码。运行 npm run dev 并在本地设备上获得可运行的应用程序,随后无需任何更改,即可将同一代码部署到您的 AWS 账户。
优势
运行 npm run dev 并获得包含 Postgres、身份验证、实时功能、文件存储和后台作业的完整本地环境。无需 AWS 账户,无需配置基础设施,无需等待。部署时,基础设施将根据您在本地编写的同一应用代码自动生成。数据库查询、身份验证检查和文件操作在不同环境间将保持一致。
只需定义一次数据架构,前端类型定义便会自动更新。TypeScript 应用程序无需代码生成步骤,无需维护 OpenAPI 规范,也不会出现运行时类型不匹配问题。TypeScript 可将类型定义从数据库层贯穿 API 传递至 UI 组件。
控制文件直接包含在 npm 包中,引导人工智能编程代理从一开始就构建正确的架构。无需安装插件,无需自定义配置。代理错误配置的可能性降低,而进行端到端功能测试的灵活性则更高。
每个 Block(组件)均由生产级 AWS 服务提供支持。当需要更深层次的定制时,您可以深入 AWS CDK 层,直接配置底层资源。您既不会受限于无法满足需求的抽象层,也无需深入学习 AWS 服务(除非您愿意)。
AWS Blocks 可与您的现有资源无缝集成。连接外部 Postgres 服务、API 和身份验证提供商。
应用场景
构建应用程序的基石
在 TypeScript 中定义 API、数据库、身份验证及文件存储。同一后端既可通过直接导入服务于 Web 前端,也能通过生成的 Swift、Kotlin 和 Dart 绑定支持移动端客户端。一次部署,为所有平台提供服务。
人工智能代理和聊天机器人
通过 Agent Block(支持工具调用、对话持久化及人工介入审批)构建代理式与对话式人工智能应用程序,并通过 KnowledgeBase Block 连接数据,从而实现检索增强生成。针对任意兼容 OpenAI 的端点(如本地运行的 Ollama)进行测试,随后部署至生产环境中的 Bedrock。
事件驱动的工作流
将后台作业、定时任务、实时通知和电子邮件组合成能够响应应用程序事件的工作流。AsyncJob 处理上传,CronJob 生成每日报表,Realtime 向已连接的客户端推送更新,EmailClient 发送确认信息。每个组件均在本地运行以进行测试,并在生产环境中部署到托管计算资源上。
功能
构建应用的基石
AWS Blocks 中的每个“Block”(组件)都将后端逻辑、类型安全的 API、本地测试配置和引导文件打包成一个单一的导入项。您可以使用 20 多个涵盖最常见全栈需求的组件,且每个组件都专为协同工作而设计。
-
Database 提供类型安全的 Postgres 接口,支持通过 PGlite 在本地运行,并可部署到 AWS 上的托管 Postgres 服务。
-
Auth 支持多种身份验证方式,包括电子邮件/密码、社交登录、企业级 SSO,并兼容现有的身份验证提供商。
-
Realtime 提供发布/订阅(pub/sub)功能,开发阶段使用本地服务器,生产环境则使用托管的 WebSocket 服务。
-
FileBucket 处理文件上传和下载,利用模拟云端行为的本地文件系统进行存储。
-
AsyncJob 和 CronJob 运行后台工作和计划任务,支持本地测试执行和生产环境中的托管计算。
人工智能和可观测性
利用统一的组件模式构建智能应用,并通过集成的可观测性功能进行监控。
-
Agent 提供人工智能代理编排功能,支持工具调用和对话持久化。在连接生产环境的托管式人工智能服务之前,可先针对 Ollama 或任何兼容 OpenAI 的端点进行本地测试。
-
KnowledgeBase 可通过一个组件,将您的数据来源连接到语义检索功能。
-
EmailClient 发送电子邮件,并支持在开发测试期间本地捕获邮件。
-
Logger、Metrics 和 Tracer 提供结构化的可观测性:在本地写入控制台,在生产环境中则接入托管监控服务。
-
Dashboard 可根据指标定义自动生成可观测性控制面板。
本地开发
本地环境忠实还原生产环境的行为,确保代码在两种环境下运行表现一致。无需安装模拟器,无需管理 Docker 容器,也无需担心达到云服务配额限制。
-
PGlite 在进程内运行真正的 Postgres 引擎,以实现零延迟的数据库开发体验。
-
Local JWT 签发和验证令牌,其声明结构与生产环境的身份验证机制完全一致。
-
Local WebSocket 服务器提供完整的发布/订阅语义,无需互联网连接即可运行。
-
Local filesystem 模拟云存储 API 行为,支持上传、下载、列出文件及生成预签名 URL。
-
Local AI 依托 Ollama 或任何兼容 OpenAI 接口的端点,运行代理和知识检索任务。无需 API 密钥或云服务费用,即可测试工具调用、对话流程和 RAG。
-
Hot reload 会在每次保存时重启后端,可提供亚秒级的反馈循环。
-
With Blocks Hosting 支持将应用前端部署到 AWS,并提供 SSR(服务端渲染)和 ISR(增量静态再生)支持。
常见问题
常见问题
全部打开不需要。运行 npm run dev 并在本地构建整个应用程序。只有在准备部署到生产环境时,才需要 AWS 账户。
Blocks 不额外收费。您只需按标准 AWS 定价为应用程序使用的 AWS 资源付费。
Blocks 利用 TypeScript 泛型和类型推断,将类型信息从 Schema 定义传递到运行时 API。当您修改数据库 Block 中的列类型时,前端代码会立即提示类型错误。无需构建步骤。
是。适用于 Swift、Kotlin 和 Dart 的原生客户端库连接到同一个 Blocks 后端,该后端同时也为您的 Web 应用程序提供服务。身份验证令牌、实时订阅和文件存储功能在各平台上的运作方式完全相同。您只需编写一套后端,即可同时支持 Web 和移动端应用。
不需要。Blocks 会自动处理资源预置。您只需编写应用程序代码,框架会将 CDK 基础设施代码封装在您的应用程序中。当您需要更深入的控制时,可以逐步向 CDK 开放,而大多数开发人员永远不需要接触到这些。
当内置的 Block 无法满足您的使用场景需求时,您可以创建自己的 Block。自定义 Block 将基础设施、运行时逻辑和本地模拟打包成一个可复用的模块,以便在不同项目间或团队内部共享。
找到今天要查找的内容了吗?
请提供您的意见,以便我们改进网页内容的质量