Instalación¶
Rayito tiene dos SDK con la misma superficie, Python y TypeScript, y una CLI en Python. Instala el SDK del lenguaje de tu aplicación y la CLI para preparar la cuenta.
El SDK¶
Python ≥ 3.11. Dependencias de runtime: grpcio, protobuf y boto3.
El SDK trae un árbol síncrono (Sandbox) y uno asíncrono
(AsyncSandbox) con la misma superficie.
La CLI¶
La CLI rayito publica la imagen, diagnostica la cuenta y opera sandboxes.
Es un extra del paquete de Python:
Si usas TypeScript, instálala igualmente (o ejecútala sin instalar con
uvx --from "rayito[cli]" rayito doctor).
Extras opcionales¶
Nada de esto hace falta para empezar.
| Para | Python | TypeScript |
|---|---|---|
La CLI rayito |
pip install "rayito[cli]" |
(usa la de Python) |
| El servidor MCP (Servidor MCP) | pip install "rayito[mcp]" |
— |
| Trazas OpenTelemetry (OpenTelemetry) | pip install "rayito[otel]" opentelemetry-sdk |
npm i @opentelemetry/api @opentelemetry/sdk-trace-base |
| Secretos de Secrets Manager (Secretos) | (incluido: usa boto3) |
npm i @aws-sdk/client-secrets-manager |
| Pasarela de secretos y agente en el sandbox (Pasarela de secretos, Agente en el sandbox) | (incluido: usa boto3) |
npm i @aws-sdk/client-secrets-manager |
| Índice de metadatos en DynamoDB (Índice) | (incluido: usa boto3) |
npm i @aws-sdk/client-dynamodb |
| Eventos y webhooks (Eventos y webhooks) | (incluido: usa boto3) |
npm i @aws-sdk/client-dynamodb @aws-sdk/client-secrets-manager |
| Pilas opcionales desde código (Pilas opcionales) | (incluido: usa boto3) |
npm i @aws-sdk/client-cloudformation |
Logs de un build fallido de Template.build() (Templates) |
(incluido: usa boto3) |
npm i @aws-sdk/client-cloudwatch-logs |
| Volúmenes EFS, experimental (Volúmenes EFS) | (incluido: usa boto3) |
npm i @aws-sdk/client-efs @aws-sdk/client-ec2 |
| Dominio propio, experimental (Dominio propio) | pip install "rayito[custom-domain]" |
npm i @aws-sdk/client-cloudformation @aws-sdk/client-cloudfront-keyvaluestore @aws-sdk/signature-v4a |
En TypeScript esos paquetes son peerDependencies opcionales: el SDK sólo
los carga cuando activas la función. Si la activas sin instalarlos, la
primera llamada lanza InvalidArgumentError con el comando de instalación.
Credenciales¶
El SDK usa la cadena de credenciales estándar de AWS: la de boto3 en Python
y la del AWS SDK v3 en TypeScript. Con un perfil:
Con AWS IAM Identity Center (SSO), inicia sesión antes con
aws sso login --profile <tu-perfil>; cuando la sesión caduca, el SDK lanza
un error de autenticación (ver Solución de problemas).
Comprueba la instalación¶
Ejecutar los ejemplos¶
Los ejemplos de esta documentación son programas completos: guárdalos en un fichero y ejecútalo.
Los ejemplos usan await en el nivel superior y await using, así que
el proyecto tiene que ser un módulo ES con un tsconfig.json que los
entienda. Una vez por proyecto:
npm init -y
npm pkg set type=module # "type": "module" en package.json
pnpm add rayito # o: npm i rayito
pnpm add -D tsx typescript @types/node
Y un tsconfig.json mínimo:
{
"compilerOptions": {
"target": "ES2022",
"lib": ["ES2022", "ESNext.Disposable"],
"module": "nodenext",
"types": ["node"],
"strict": true,
"skipLibCheck": true
}
}
Guarda el ejemplo como primer.ts y ejecútalo con
tsx, que corre TypeScript sin compilar:
Si prefieres compilar, npx tsc y luego node primer.js funcionan con
el mismo tsconfig.json.
Siguiente paso¶
Configurar AWS: la imagen rayito-base y los permisos
en tu cuenta.