用途:AWS Blocks 是 Infrastructure-from-Code 框架,用于构建全栈应用。Building Blocks 把 CDK、SDK 和本地 mock 合并为单一 API,一个 aws-blocks/ 目录即可定义整个后端,前端导入自带完整类型,无需生成客户端。
主要能力:提供 18+ Building Blocks,覆盖存储、认证、实时通信、后台任务、文件管理、AI/搜索、邮件和可观测性;全部可在本地无 AWS 凭证运行,mock 数据持久化到 .bb-data/。可用 npm run sandbox 部署临时独立测试环境,用 npm run deploy 部署长期环境,并采用最小权限凭证。
使用方式:新建项目执行 npx @aws-blocks/create-blocks-app my-app 并进入目录;为现有项目添加执行 npx @aws-blocks/create-blocks-app .,会检测项目并添加 aws-blocks/ 工作区;Amplify Gen 2 项目同样执行该命令,检测到 amplify/backend.ts 时自动集成。指定模板加 --template,如 npx @aws-blocks/create-blocks-app my-app --template demo。模板包括 default、bare、react、backend、demo、auth-cognito、nextjs。脚手架完成后参考 node_modules/@aws-blocks/blocks/README.md 了解开发流程,实现具体 Building Block 时阅读对应包 README(如 node_modules/@aws-blocks/bb-kv-store/README.md)。所有包发布在 @aws-blocks 作用域下。
安全限制:ApiNamespace 方法默认不鉴权,非公开方法需调用 await auth.requireAuth(context);API 密钥和凭证用 new AppSetting(scope, id, { secret: true }),不要硬编码或使用 .env;KVStore/AppSetting 接收用户数据时必须附加 schema;不要添加宽泛的 * IAM 策略;不要修改 FileBucket 的 blockPublicAccess,公共文件应通过 CloudFront 提供;生产环境显式配置 CORS_ALLOWED_ORIGINS,避免通配符;跨域部署向 auth 构造函数传 crossDomain: true;生产告警在 Hosting 上启用 monitoring: { enabled: true, snsTopicArn: '...' };公开应用需通过 CDK 添加 WAF 和 API Gateway 限流,默认不包含;Logger 不脱敏敏感内容,不要向其传入原始凭证、令牌或密钥。
适用场景:需要快速搭建带认证、数据、实时与后台任务的全栈应用,并希望本地无云凭证开发、按需部署隔离环境的团队。限制:资料未提供具体收费、价格与性能数据。