View a markdown version of this page

Entorno y sistema de archivos - Amazon Bedrock AgentCore

Entorno y sistema de archivos

Cada sesión de arnés se ejecuta en una microVM aislada con su propio sistema de archivos y shell. En esta página se describe la configuración del entorno de ejecución (contenedor predeterminado o personalizado), la ejecución de comandos directamente en la máquina virtual, la configuración de las variables de entorno y el montaje de sistemas de archivos persistentes.

Ejecute comandos en el entorno

No todo tiene que pasar por el circuito de agentes. InvokeAgentRuntimeCommandle da acceso directo al arnés microVM: ejecución de comandos determinista sin razonamiento basado en modelos, sin coste simbólico ni ambigüedad.

Úselo para:

  • Ejecute scripts deterministas previos o posteriores a la invocación.

  • Prepare el entorno antes de una invocación: clone un repositorio, instale dependencias, copie los archivos de entrada.

  • Actúe en función de lo que produjo el agente: ejecute pruebas, confirme y envíe, extraiga artefactos de compilación.

  • Inspeccione la máquina virtual durante el desarrollo:ls, catenv, python --version sin realizar un recorrido de ida y vuelta por el modelo.

ejemplo
AWS CLI/boto3
response = client.invoke_agent_runtime_command( agentRuntimeArn=HARNESS_ARN, runtimeSessionId=SESSION_ID, body={"command": "ls -la /workspace"}, ) for event in response["stream"]: chunk = event.get("chunk", {}) if "contentDelta" in chunk: delta = chunk["contentDelta"] if "stdout" in delta: print(delta["stdout"], end="", flush=True) if "stderr" in delta: print(delta["stderr"], end="", flush=True) elif "contentStop" in chunk: print(f"\n[exit code: {chunk['contentStop']['exitCode']}]")
AgentCore CLI
# Install dependencies before the agent starts agentcore invoke --exec --harness my-agent --session-id "$(uuidgen)" \ "pip install pandas matplotlib" # After the agent finishes, inspect what it created agentcore invoke --exec --harness my-agent --session-id "$(uuidgen)" \ "ls -la /tmp && cat /tmp/results.csv"
nota

El entorno base incluye Python y bash. Para herramientas como gitnode, u otros tiempos de ejecución, instálelas al inicio de la sesión (por ejemploapt-get install -y git) o utilice un entorno personalizado.

En la interfaz gráfica de usuario, pulse ! para entrar en el modo exec y ejecutar los comandos en línea.

Consulte la InvokeAgentRuntimeCommand API para obtener más información.

nota

Los comandos se ejecutan como root (uid 0) en la microVM. Esto es similar a rootear en su propia instancia de EC2: el permiso de IAM es la puerta de acceso, no el nivel de privilegios de la máquina virtual. Si tu Dockerfile incluye una USER directiva, solo se aplica al proceso del agente (el punto de entrada principal del contenedor). InvokeAgentRuntimeCommandse ejecuta con un nivel de privilegios más alto para fines operativos, de forma similar a como se usa root docker exec por defecto, incluso cuando el contenedor se ejecuta como un usuario no root. Consulte Ejecutar comandos de shell en sesiones AgentCore de tiempo de ejecución para obtener más información sobre la seguridad, la gestión de errores y las prácticas recomendadas.

Entorno personalizado (imágenes de contenedores)

El entorno base incluye Python y bash, suficientes para la mayoría de las tareas. Cuando necesites más, empaqueta el código fuente, las dependencias, los tiempos de ejecución y las herramientas en una imagen de contenedor, colócala en ECR y haz referencia a ella en el arnés. Su agente se ejecuta exactamente en ese entorno. Combine imágenes personalizadas con una configuración específica InvokeAgentRuntimeCommand de la sesión que varía según la invocación.

Las imágenes del contenedor deben crearse para la plataforma. linux/arm64

El arnés anula el del contenedor ENTRYPOINT y CMD lo mantiene funcionando como un entorno. El software, el sistema de archivos y las variables de entorno instalados están disponibles para el agente; el comando de inicio del contenedor no se ejecuta. Si necesita un proceso en segundo plano (como un servidor de desarrollo), inícielo InvokeAgentRuntimeCommand después de que comience la sesión.

ejemplo
AWS CLI/boto3
aws bedrock-agentcore-control create-harness \ --harness-name "CodingAgent" \ --execution-role-arn "arn:aws:iam::123456789012:role/MyHarnessRole" \ --environment-artifact '{"containerConfiguration": {"containerUri": "123456789012.dkr.ecr.us-west-2.amazonaws.com/my-dev-env:latest"}}' \ --system-prompt '[{"text": "You are an expert TypeScript developer."}]'

La función de ejecución necesita permisos de extracción de ECR. Consulte la política de funciones de ejecución para obtener más información.

AgentCore CLI

Arregla un arnés con un Dockerfile:

agentcore create --name coding-agent --container ./Dockerfile agentcore deploy

En el momento de la implementación, la CLI crea la imagen, la envía al ECR y la conecta al arnés.

O haga referencia a una imagen prediseñada:

agentcore create --name node-agent \ --container public.ecr.aws/docker/library/node:slim agentcore deploy

Variables de entorno

Defina las variables de entorno que se pasan al contenedor de tiempo de ejecución. Las variables de entorno están disponibles para el agente y para cualquier contenedor personalizado que se ejecute en la sesión.

ejemplo
AWS CLI/boto3
aws bedrock-agentcore-control create-harness \ --harness-name "MyHarness" \ --execution-role-arn "arn:aws:iam::123456789012:role/MyHarnessRole" \ --environment-variables '{"MY_API_URL": "https://api.example.com", "LOG_LEVEL": "debug"}'
AgentCore CLI

Defina las variables de entorno enharness.json:

{ "environmentVariables": { "MY_API_URL": "https://api.example.com", "LOG_LEVEL": "debug" } }

Ejecute agentcore deploy para aplicar.

Sistema de archivos

El arnés monta el almacenamiento persistente en las rutas que especifique. Los archivos escritos en estos montajes sobreviven a la finalización de la sesión y son visibles para las invocaciones posteriores.

Un arnés admite tres tipos de sistemas de archivos:

  • Almacenamiento de sesiones: almacenamiento por sesión gestionado por el servicio que persiste durante todos stop/resume los ciclos durante el mismo período. runtimeSessionId No se requiere VPC.

  • Punto de acceso Amazon EFS: traiga su propio sistema de archivos EFS, compartido entre sesiones y agentes. Se requiere VPC.

  • Punto de acceso Amazon S3 Files: traiga su propio sistema de archivos S3 Files que se sincroniza bidireccionalmente con un bucket de S3. Se requiere VPC.

Para ver los requisitos previos (redes de VPC, permisos de IAM, grupos de seguridad), la comparación de tipos, los límites y el comportamiento del ciclo de vida, consulte Configuraciones del sistema de archivos para Runtime. AgentCore Los mismos requisitos se aplican a los arneses.

Configurar el entorno y el sistema de archivos en la CLI AgentCore

ejemplo
Interactive

Ejecute agentcore en un directorio de proyecto para abrir la TUI, seleccione agregar y, a continuación, elija Harness. El asistente le guiará por el entorno de ejecución y, en la configuración avanzada, por el sistema de archivos persistente.

  1. En el paso Entorno personalizado, mantenga el entorno predeterminado o elija una imagen de contenedor prediseñada (URI de ECR) o un Dockerfile.

    Asistente para agregar Harness: entorno personalizado
  2. Los montajes del sistema de archivos requieren el modo VPC, por lo que en la configuración avanzada habilita el almacenamiento en red y en el sistema de archivos con espacio y, a continuación, presiona Entrar.

    Configuración avanzada con el almacenamiento en red y en el sistema de archivos activado
  3. Elija el modo de red VPC y, a continuación, proporcione las subredes y los grupos de seguridad para el arnés.

    Seleccione el modo de red VPC
  4. Configure la ruta de montaje del almacenamiento de sesiones (en/mnt).

    Introduzca la ruta de montaje del almacenamiento de la sesión
  5. Para adjuntar un sistema de archivos Amazon EFS, introduzca el ARN del punto de acceso EFS (y su ruta de montaje en el siguiente paso).

    Introduzca el ARN del punto de acceso EFS
  6. Para adjuntar archivos de Amazon S3, introduzca el ARN del punto de acceso de S3 Files (y su ruta de montaje).

    Introduzca el ARN del punto de acceso de S3 Files

Confirme el asistente y, a continuación, ejecútelo agentcore deploy para aplicarlo.

Almacenamiento de sesiones

Los archivos escritos en la ruta de montaje persisten a lo largo de stop/resume los ciclos cuando se invocan con la mismaruntimeSessionId.

ejemplo
AWS CLI/boto3
aws bedrock-agentcore-control update-harness \ --harness-id "MyHarness-UuFdkQoXSL" \ --environment '{"agentCoreRuntimeEnvironment": {"filesystemConfigurations": [{"sessionStorage": {"mountPath": "/mnt/data/"}}]}}'
AgentCore CLI
# At create time agentcore create --name myagent --session-storage-mount-path /mnt/data/ # Or add to an existing harness agentcore add harness --name my-agent --session-storage /mnt/data/ agentcore deploy

Punto de acceso Amazon EFS

Conecte un ARN de punto de acceso EFS a una ruta de montaje situada debajo. /mnt Los datos permanecen en su cuenta y se pueden compartir con otros arneses o agentes que se ejecuten en el mismo punto de acceso.

ejemplo
AWS CLI/boto3
aws bedrock-agentcore-control create-harness \ --harness-name "SharedToolsAgent" \ --execution-role-arn "arn:aws:iam::123456789012:role/MyHarnessRole" \ --environment '{ "agentCoreRuntimeEnvironment": { "networkConfiguration": { "networkMode": "VPC", "networkModeConfig": { "subnets": ["subnet-abc123", "subnet-def456"], "securityGroups": ["sg-abc123"] } }, "filesystemConfigurations": [ { "efsAccessPoint": { "accessPointArn": "arn:aws:elasticfilesystem:us-west-2:123456789012:access-point/fsap-0123456789abcdef0", "mountPath": "/mnt/efs" } } ] } }'
AgentCore CLI

Adjunte un punto de acceso EFS con --efs-access-point as<accessPointArn>:<mountPath>. EFS requiere el modo de red VPC:

agentcore add harness --name shared-tools-agent \ --network-mode VPC \ --subnets subnet-abc123,subnet-def456 \ --security-groups sg-abc123 \ --efs-access-point arn:aws:elasticfilesystem:us-west-2:123456789012:access-point/fsap-0123456789abcdef0:/mnt/efs agentcore deploy
nota

La ruta de montaje debe estar por debajo/mnt. El indicador es repetible (hasta 2 montajes de EFS) --subnets y --security-groups es obligatorio para los montajes de archivos EFS y S3. --network-mode VPC

Punto de acceso Amazon S3 Files

Conecte un ARN de punto de acceso de S3 Files en una ruta de montaje inferior. /mnt Los archivos de la ruta de montaje se sincronizan bidireccionalmente con el depósito S3 de respaldo.

ejemplo
AWS CLI/boto3
aws bedrock-agentcore-control create-harness \ --harness-name "DataAgent" \ --execution-role-arn "arn:aws:iam::123456789012:role/MyHarnessRole" \ --environment '{ "agentCoreRuntimeEnvironment": { "networkConfiguration": { "networkMode": "VPC", "networkModeConfig": { "subnets": ["subnet-abc123", "subnet-def456"], "securityGroups": ["sg-abc123"] } }, "filesystemConfigurations": [ { "s3FilesAccessPoint": { "accessPointArn": "arn:aws:s3files:us-west-2:123456789012:file-system/fs-0123456789abcdef0/access-point/fsap-0123456789abcdef0", "mountPath": "/mnt/s3data" } } ] } }'
AgentCore CLI

Adjunte un punto de acceso de S3 Files con un as--s3-access-point. <accessPointArn>:<mountPath> S3 Files requiere el modo de red VPC:

agentcore add harness --name data-agent \ --network-mode VPC \ --subnets subnet-abc123,subnet-def456 \ --security-groups sg-abc123 \ --s3-access-point arn:aws:s3files:us-west-2:123456789012:file-system/fs-0123456789abcdef0/access-point/fsap-0123456789abcdef0:/mnt/s3data agentcore deploy
nota

El propio ARN del punto de acceso contiene dos puntos; la ruta de montaje se toma del segmento después de los dos puntos finales. El indicador se puede repetir (se montan hasta 2 archivos S3).

importante

UpdateHarnesssustituye a toda la listafilesystemConfigurations. Para añadir una nueva montura a un arnés que ya tiene los sistemas de archivos configurados, llame GetHarness primero y, a continuación, envíe la lista completa deseada (las entradas existentes más la nueva). UpdateHarness

Más información: Configuraciones del sistema de archivos para Runtime. AgentCore