aws-blocks — скилл для Claude Code: бэкенд из кода
Скилл ведёт агента по AWS Blocks: выбор Building Blocks, локальная разработка и деплой. Пригодится, когда бэкенд живёт в каталоге aws-blocks/.
npx skills add aws/agent-toolkit-for-aws --skill aws-blocks -a claude-codeЧто делает aws-blocks
AWS Blocks — фреймворк Infrastructure-from-Code. Каждый Building Block упаковывает CDK, SDK и локальные моки в один API, поэтому фронтенд получает типизированные импорты без генерации клиента. Скилл подсказывает агенту, какой блок взять под задачу: KVStore, DistributedTable, Database, AuthBasic, AuthCognito, Realtime, AsyncJob, FileBucket и другие.
Скилл срабатывает, когда вы упоминаете AWS Blocks, когда в проекте есть каталог aws-blocks/ или когда код импортирует пакеты @aws-blocks. Все пакеты лежат под этим скоупом: @aws-blocks/core, @aws-blocks/blocks, @aws-blocks/bb-kv-store. Локально всё работает без учётных данных AWS, моки пишутся в .bb-data/. Новый проект поднимается через npx @aws-blocks/create-blocks-app my-app, для существующего хватает той же команды с точкой вместо имени.
Методы ApiNamespace по умолчанию без аутентификации, поэтому в каждом закрытом методе нужен await auth.requireAuth(context). Секреты храните через new AppSetting(scope, id, { secret: true }), а не в .env. Для продакшена задайте CORS_ALLOWED_ORIGINS явно, без звёздочек, и не трогайте blockPublicAccess у FileBucket — публичные файлы отдавайте через CloudFront. WAF и троттлинг API Gateway в поставку не входят, их добавляют через CDK.
Какие задачи решает
- выбрать подходящий Building Block под хранение или аутентификацию
- поднять локальную разработку без учётных данных AWS
- закрыть метод аутентификацией через
auth.requireAuth - вынести секреты из
.envвAppSetting - настроить CORS и мониторинг перед деплоем
Примеры запросов агенту
- Добавь в проект AWS Blocks и опиши API для списка задач
- Какой Building Block взять для хранения сессий —
KVStoreилиDistributedTable? - Проверь мой
aws-blocks/на методы безauth.requireAuth
Как установить aws-blocks
1Через Skills CLI (Vercel)
npx skills add aws/agent-toolkit-for-aws --skill aws-blocks -a claude-code2Вручную: положить файлы
~/.claude/skills/aws-blocks/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/aws-blocks/
1Через Skills CLI (Vercel)
npx skills add aws/agent-toolkit-for-aws --skill aws-blocks -a codex2Вручную: положить файлы
.agents/skills/aws-blocks/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add aws/agent-toolkit-for-aws --skill aws-blocks -a cursor2Вручную: положить файлы
.cursor/skills/aws-blocks/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install aws/agent-toolkit-for-aws aws-blocks2Вручную: положить файлы
.github/skills/aws-blocks/SKILL.md1Через Skills CLI (Vercel)
npx skills add aws/agent-toolkit-for-aws --skill aws-blocks -a gemini-cli2Командой платформы
gemini skills install https://github.com/aws/agent-toolkit-for-aws --path skills/core-skills/aws-blocksВручную: положить файлы
.devin/skills/aws-blocks/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add aws/agent-toolkit-for-aws --skill aws-blocks -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о aws-blocks
Как установить aws-blocks в Claude?
Выполните npx skills add aws/agent-toolkit-for-aws --skill aws-blocks -a claude-code. Скилл появится в ~/.claude/skills/aws-blocks/SKILL.md.
Что делает скилл aws-blocks?
Проводит агента по разработке на AWS Blocks: помогает выбрать Building Blocks, собрать API, запустить локальную разработку и задеплоить приложение.
Нужны ли учётные данные AWS для локальной работы?
Нет. Все Building Blocks работают локально, моки сохраняются в .bb-data/. Учётные данные нужны только для деплоя.
Исходный текст
SKILL.md · Apache-2.0
---
name: aws-blocks
description: Guides building full-stack applications with AWS Blocks — an Infrastructure-from-Code framework. Applies when creating APIs, selecting Building Blocks (KVStore, DistributedTable, Database, AuthBasic, AuthCognito, Realtime, AsyncJob, FileBucket, etc.), running local development, or deploying AWS Blocks applications. Also covers AWS Blocks topics with validated, version-specific patterns that prevent common mistakes. Triggers when user mentions AWS Blocks; project has aws-blocks/ directory; code imports @aws-blocks packages.
---
# AWS Blocks Application Development
> **Package naming:** All packages are published under the `@aws-blocks` scope (e.g., `@aws-blocks/core`, `@aws-blocks/blocks`, `@aws-blocks/bb-kv-store`).
## Overview
AWS Blocks is an Infrastructure-from-Code framework where Building Blocks bundle CDK, SDK, and local mocks into a single API. It provides 18+ Building Blocks covering storage, authentication, real-time communication, background jobs, file management, AI/search, email, and observability — all working locally without AWS credentials.
**Key characteristics:**
- One `aws-blocks/` directory defines the entire backend
- Frontend imports are fully typed — no client generation needed
- All Building Blocks work locally without AWS (mocks persist to `.bb-data/`)
- Deploy ephemeral, individual testing environments with `npm run sandbox` and long-lived environments with `npm run deploy` using least-privilege credentials
## Scaffolding a New Project
```bash
npx @aws-blocks/create-blocks-app my-app
cd my-app
```
### To add AWS Blocks to an existing project:
```bash
npx @aws-blocks/create-blocks-app .
```
This detects the existing project and adds an `aws-blocks/` workspace alongside your code.
### To add AWS Blocks to an Amplify Gen 2 project:
```bash
npx @aws-blocks/create-blocks-app .
```
When the CLI detects `amplify/backend.ts`, it automatically integrates AWS Blocks with your Amplify backend.
### With a specific template:
```bash
npx @aws-blocks/create-blocks-app my-app --template demo
cd my-app
```
### Available Templates
| Template | Description |
|----------|-------------|
| `default` | Vite + lit-html starter app with basic authentication, data persistence, and realtime to help demonstrate basic app architecture and patterns (used when --template is omitted) |
| `bare` | Vite + lit-html starter with a single "hello world" API method and a bare frontend |
| `react` | React + Vite starter with a single API endpoint and typed React frontend |
| `backend` | Backend-only — no frontend, just the AWS Blocks API with a single endpoint |
| `demo` | Todo app with AuthBasic, KVStore, DistributedTable, Zod schemas, indexes, and auth-protected CRUD |
| `auth-cognito` | Full AuthCognito passwordless email-OTP with roles, device management, and Authenticator UI |
| `nextjs` | Next.js + React starter with AWS Blocks backend integration (SSR + Server Components) |
## Development Workflow
After scaffolding, refer to **node_modules/@aws-blocks/blocks/README.md** for the complete development workflow including:
- Core concepts (Architecture, Building Block selection)
- Project structure and Scope organization
- Error handling patterns
- Schema validation
- Local development
- Best practices and common mistakes
- Deployment IAM role setup and security guidance
When implementing a specific Building Block, read its package README for the detailed API reference (e.g., `node_modules/@aws-blocks/bb-kv-store/README.md`). These are the authoritative docs for your installed version.
## Security Considerations
- Use `await auth.requireAuth(context)` in every method that shouldn't be public — ApiNamespace methods are **unauthenticated by default**
- Use `new AppSetting(scope, id, { secret: true })` for API keys and credentials — never hardcode or use `.env` files
- Always attach a schema to KVStore/AppSetting that accepts user data — the RPC layer validates structure but not business logic
- Do not add broad `*` IAM policies — each Building Block already grants least-privilege scoped to its own resources
- Never change `blockPublicAccess` on FileBucket — serve public files through CloudFront instead
- Configure `CORS_ALLOWED_ORIGINS` explicitly for production — avoid wildcards
- For cross-domain deployments, pass `crossDomain: true` to auth constructors (enables `SameSite=None; Secure; Partitioned`)
- Enable `monitoring: { enabled: true, snsTopicArn: '...' }` on Hosting for production alerts
- Add WAF and API Gateway throttling via CDK for public-facing apps — not included by default
- Logger provides serialization safety (circular refs, type coercion) but does NOT redact sensitive content — never pass raw credentials, tokens, or secrets to Logger methods; sanitize context objects before logging
© aws · Apache-2.0 · aws/agent-toolkit-for-aws