View a markdown version of this page

Environnement et système de fichiers - Amazon Bedrock AgentCore

Environnement et système de fichiers

Chaque session de harnais s'exécute dans une microVM isolée avec son propre système de fichiers et son propre shell. Cette page décrit la configuration de l'environnement d'exécution (conteneur par défaut ou personnalisé), l'exécution de commandes directement sur la machine virtuelle, la définition de variables d'environnement et le montage de systèmes de fichiers persistants.

Exécuter des commandes sur l'environnement

Il n'est pas nécessaire que tout passe par la boucle de l'agent. InvokeAgentRuntimeCommandvous donne un accès shell direct au harnais MicroVM : exécution de commandes déterministe sans raisonnement basé sur le modèle, sans coût de jeton, sans ambiguïté.

Utilisez-le pour :

  • Exécutez des scripts déterministes de pré-invocation ou de post-invocation.

  • Préparez l'environnement avant un appel : clonez un dépôt, installez les dépendances, copiez les fichiers d'entrée.

  • Agissez sur ce que l'agent a produit : exécutez des tests, validez et publiez, extrayez les artefacts de construction.

  • Inspectez la machine virtuelle pendant le développement : lscat,env,, python --version sans parcourir le modèle de manière aller-retour.

Exemple
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"
Note

L'environnement de base inclut Python et bash. Pour des outils tels que gitnode, ou d'autres environnements d'exécution, installez-les au démarrage de la session (par exempleapt-get install -y git) ou utilisez un environnement personnalisé.

Dans le TUI, appuyez ! pour passer en mode exécution et exécuter les commandes en ligne.

Consultez InvokeAgentRuntimeCommand l'API pour plus de détails.

Note

Les commandes s'exécutent en tant que root (uid 0) dans la microVM. Cela est analogue au root sur votre propre instance EC2 : l'autorisation IAM est la porte d'accès, et non le niveau de privilège intégré à la machine virtuelle. Si votre Dockerfile inclut une USER directive, elle s'applique uniquement au processus de l'agent (le point d'entrée principal du conteneur). InvokeAgentRuntimeCommands'exécute avec un niveau de privilège supérieur à des fins opérationnelles, de la même manière que docker exec par défaut, root même lorsque le conteneur s'exécute en tant qu'utilisateur non root. Voir Exécuter des commandes shell dans les sessions AgentCore d'exécution pour plus de détails sur la sécurité, la gestion des erreurs et les meilleures pratiques.

Environnement personnalisé (images de conteneurs)

L'environnement de base inclut Python et bash, ce qui est suffisant pour la plupart des tâches. Lorsque vous en avez besoin de plus, empaquetez votre code source, vos dépendances, vos environnements d'exécution et vos outils dans une image de conteneur, transférez-le vers ECR et référencez-le sur le harnais. Votre agent fonctionne exactement dans cet environnement. Associez des images personnalisées InvokeAgentRuntimeCommand pour une configuration spécifique à la session qui varie en fonction de l'invocation.

Les images du conteneur doivent être créées pour la linux/arm64 plate-forme.

Le harnais remplace celui de votre conteneur ENTRYPOINT et permet de CMD le faire fonctionner en tant qu'environnement. Le logiciel, le système de fichiers et les variables d'environnement que vous avez installés sont accessibles à l'agent ; la commande de démarrage de votre conteneur n'est pas exécutée. Si vous avez besoin d'un processus en arrière-plan (tel qu'un serveur de développement), démarrez-le InvokeAgentRuntimeCommand après le début de la session.

Exemple
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."}]'

Le rôle d'exécution nécessite des autorisations d'extraction ECR. Consultez la politique relative aux rôles d'exécution pour plus de détails.

AgentCore CLI

Échafaudez un harnais avec un Dockerfile :

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

Lors du déploiement, la CLI crée l'image, la transmet à l'ECR et l'attache au harnais.

Ou faites référence à une image prédéfinie :

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

Variables d’environnement

Définissez les variables d'environnement qui sont transmises au conteneur d'exécution. Les variables d'environnement sont accessibles à l'agent et à tout conteneur personnalisé exécuté au cours de la session.

Exemple
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

Définissez les variables d'environnement dans harness.json :

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

Courez agentcore deploy pour postuler.

Système de fichiers

Le harnais installe le stockage persistant sur les chemins que vous spécifiez. Les fichiers écrits sur ces montages survivent à la fin de la session et sont visibles lors d'appels ultérieurs.

Un harnais prend en charge trois types de systèmes de fichiers :

  • Stockage de session : stockage par session géré par le service qui persiste au fil des stop/resume cycles pendant la même période. runtimeSessionId Aucun VPC n'est requis.

  • Point d'accès Amazon EFS : apportez votre propre système de fichiers EFS, partagé entre les sessions et les agents. VPC requis.

  • Point d'accès Amazon S3 Files : apportez votre propre système de fichiers S3 Files qui se synchronise de manière bidirectionnelle avec un compartiment S3. VPC requis.

Pour les prérequis (réseau VPC, autorisations IAM, groupes de sécurité), la comparaison des types, les limites et le comportement du cycle de vie, consultez la section Configurations du système de fichiers pour Runtime. AgentCore Les mêmes exigences s'appliquent aux harnais.

Configuration de l'environnement et du système de fichiers dans la CLI AgentCore

Exemple
Interactive

Exécutez agentcore dans un répertoire de projet pour ouvrir le TUI, sélectionnez Ajouter, puis choisissez Harness. L'assistant vous guide dans l'environnement d'exécution et, dans les paramètres avancés, dans le système de fichiers persistant.

  1. À l'étape Environnement personnalisé, conservez l'environnement par défaut ou choisissez une image de conteneur prédéfinie (URI ECR) ou un Dockerfile.

    Assistant d'ajout d'un harnais : environnement personnalisé
  2. Les montages de systèmes de fichiers nécessitent le mode VPC. Dans les paramètres avancés, activez à la fois le stockage réseau et le système de fichiers avec espace, puis appuyez sur Entrée.

    Paramètres avancés avec le stockage en réseau et en système de fichiers activé
  3. Choisissez le mode réseau VPC, puis fournissez les sous-réseaux et les groupes de sécurité pour le harnais.

    Sélectionnez le mode réseau VPC
  4. Définissez le chemin de montage du stockage de session (ci-dessous/mnt).

    Entrez le chemin de montage du stockage de session
  5. Pour joindre un système de fichiers Amazon EFS, entrez l'ARN du point d'accès EFS (et son chemin de montage à l'étape suivante).

    Entrez l'ARN du point d'accès EFS
  6. Pour joindre des fichiers Amazon S3, entrez l'ARN du point d'accès S3 Files (et son chemin de montage).

    Entrez l'ARN du point d'accès aux fichiers S3

Confirmez l'assistant, puis exécutez agentcore deploy pour appliquer.

Stockage de session

Les fichiers écrits sur le chemin de montage persistent d'un stop/resume cycle à l'autre lorsque vous les invoquez avec le même cheminruntimeSessionId.

Exemple
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

Point d'accès Amazon EFS

Attachez l'ARN d'un point d'accès EFS à un chemin de montage situé en dessous/mnt. Les données sont conservées dans votre compte et peuvent être partagées avec d'autres harnais ou environnements d'exécution d'agents qui installent le même point d'accès.

Exemple
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

Associez un point d'accès EFS en --efs-access-point tant que<accessPointArn>:<mountPath>. EFS nécessite le mode réseau 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
Note

Le chemin de montage doit se trouver en dessous/mnt. L'indicateur est répétable (jusqu'à 2 montages EFS) ; --network-mode VPC --security-groups il est obligatoire pour --subnets les montages EFS et S3 Files.

Point d'accès Amazon S3 Files

Attachez l'ARN d'un point d'accès S3 Files à un chemin de montage situé en dessous/mnt. Les fichiers situés sur le chemin de montage sont synchronisés de manière bidirectionnelle avec le compartiment S3 de sauvegarde.

Exemple
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

Attachez un point d'accès S3 Files avec --s3-access-point as<accessPointArn>:<mountPath>. S3 Files nécessite le mode réseau 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
Note

L'ARN du point d'accès lui-même contient des deux-points ; le chemin de montage est extrait du segment situé après les derniers deux-points. L'indicateur est répétable (jusqu'à 2 montages de fichiers S3).

Important

UpdateHarnessremplace la filesystemConfigurations liste complète. Pour ajouter un nouveau montage à un harnais sur lequel des systèmes de fichiers sont déjà configurés, appelez d'GetHarnessabord, puis envoyez la liste complète souhaitée (entrées existantes plus la nouvelle). UpdateHarness

Pour en savoir plus : Configurations du système de fichiers pour AgentCore Runtime.