View a markdown version of this page

Uso de las MicroVM de Lambda como entorno de pruebas para Claude Managed Agents - AWS Lambda

Uso de las MicroVM de Lambda como entorno de pruebas para Claude Managed Agents

MicroVM de AWS Lambda es un proveedor de entornos de pruebas administrados para los entornos de pruebas autoalojados de Claude Managed Agents. Permite mantener los archivos confidenciales, los paquetes y los servicios en una infraestructura bajo su control. Anthropic aloja el bucle del agente y el modelo Claude, mientras que las llamadas a las herramientas se ejecutan en la MicroVM de Lambda. Con este patrón, se mantiene el control del entorno de ejecución: qué se instala, qué acceso a la red está disponible y a qué recursos puede acceder el agente.

Cada MicroVM es una máquina virtual aislada mediante Firecracker que se inicia en menos de un segundo a partir de una instantánea, se puede ejecutar durante un máximo de 8 horas y se puede finalizar cuando termina la sesión. Las sesiones nunca comparten estado. Se obtiene el límite de seguridad de una máquina virtual con el modelo operativo sin servidor: no hay clústeres que administrar ni capacidad inactiva por la que pagar. Puede orquestar las MicroVM mediante los servicios de AWS para implementar la especificación de entornos de pruebas autoalojados que se describe a continuación. Consulte el ejemplo de referencia Entornos de pruebas autoalojados de Claude Managed Agents en MicroVM de Lambda para obtener más información.

Funcionamiento

Un plano de control lanza una MicroVM por cada sesión de Claude:

  1. Una sesión alcanza el estado de ejecución y Anthropic envía un webhook session.status_run_started a un punto de conexión de la cuenta.

  2. Una función de Lambda de lanzamiento verifica la firma del webhook y, a continuación, llama a RunMicroVM.

  3. El código de la MicroVM se hace cargo de la sesión, ejecuta las llamadas a herramientas (bash, read, write, edit, glob y grep) en /workspace y devuelve los resultados a Anthropic.

  4. La MicroVM se suspende o termina cuando finaliza la sesión.

La clave de API de la organización de Anthropic nunca llega a los recursos de computación de AWS. La función de lanzamiento solo pasa una referencia de AWS Secrets Manager a la clave del entorno de Anthropic. El rol de ejecución de la MicroVM permite que el código la lea durante el tiempo de ejecución.

Propiedades clave

Propiedad Benefit
Aislamiento de Firecracker Límite virtualizado mediante hardware para cada sesión
Inicio basado en instantáneas Reanudación desde una instantánea de Firecracker en menos de un segundo o en unos pocos segundos
IAM mediante IMDSv2 Utiliza credenciales de corta duración y con privilegios mínimos
Duración con estado Se puede ejecutar durante un máximo de 8 horas con acceso completo al disco y a la memoria
Pago por sesión Las MicroVM se terminan cuando se completan las sesiones, momento en el que finaliza la facturación

Requisitos previos

  • Una cuenta de AWS con permisos para Amazon Simple Storage Service (Amazon S3), AWS Identity and Access Management (IAM), Secrets Manager, AWS WAF, Lambda y las MicroVM de Lambda

  • Un agente de Claude Managed Agents con un entorno self_hosted

  • Una clave de entorno y un secreto de firma del webhook de la consola de Claude

Implementación de la implementación de referencia

Diagrama de arquitectura que muestra la implementación de referencia de los entornos de pruebas autoalojados de Claude en las MicroVM de Lambda

El repositorio Entornos de pruebas autoalojados de Claude Managed Agents en las MicroVM de Lambda proporciona una implementación mínima y funcional. Incluye:

  • Una pila CloudFormation que incluye Amazon API Gateway, una función de Lambda de lanzamiento, secretos de Secrets Manager, un bucket de Amazon S3 y roles de IAM

  • Una imagen de MicroVM que incluye Dockerfile, Node.js EnvironmentWorker y enlaces de ciclo de vida

  • Un script de implementación y un script de verificación

Pasos de implementación:

  1. Implemente la pila de CloudFormation.

  2. Almacene la clave del entorno y el secreto de firma en los secretos creados en Secrets Manager.

  3. Compile la imagen de MicroVM.

  4. Registre la URL del webhook de la pila en la consola de Claude.

  5. Para verificar la implementación, cree una sesión.

Para obtener instrucciones detalladas, consulte el archivo README del repositorio.

Red

Las MicroVM de Lambda tienen acceso público a Internet de forma predeterminada, por lo que no se requiere ninguna configuración para acceder a api.anthropic.com.

Para acceder a recursos privados, como una base de datos de Amazon Aurora o un clúster de Amazon ElastiCache, o para aplicar restricciones de red propias, asocie un conector de salida de VPC durante el lanzamiento. Consulte Uso de los conectores de red de salida.

Política de inactividad

Establezca suspendedDurationSeconds: 0 y autoResumeEnabled: false para las MicroVM de cada sesión. Establezca maximumDurationInSeconds como límite máximo para las sesiones bloqueadas (máximo de 28 800 s).

{ "maxIdleDurationSeconds": 120, "suspendedDurationSeconds": 0, "autoResumeEnabled": false }

Supervisión

Registros de la aplicación: consulte los registros de la aplicación en Registros de CloudWatch:

aws logs tail /aws/lambda-microvms/claude-worker --follow

MicroVM en ejecución: consulte la lista de las MicroVM en ejecución de la cuenta:

aws lambda-microvms list-microvms \ --image-identifier claude-worker \ --query 'items[].[microvmId,state,startedAt]' --output table

Solución de problemas

Síntoma Causa
El webhook devuelve 401 El secreto de firma no coincide o la entrega es demasiado antigua
No se produce el lanzamiento de ninguna MicroVM El webhook no está registrado para session.status_run_started, o al rol de ejecución de la función de Lambda de lanzamiento le falta el permiso RunMicroVM
La MicroVM se termina de inmediato Se agota el tiempo de espera del enlace /run; aumente runTimeoutInSeconds
El proceso de trabajo se cierra de inmediato El tráfico HTTPS saliente hacia api.anthropic.com está bloqueado
Falla la compilación de la imagen S3_* El rol de compilación o el bucket están configurados incorrectamente