View a markdown version of this page

Environnement et système de fichiers - Base rocheuse de l'Amazonie AgentCore

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

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 couvre 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 des variables d'environnement et le montage de systèmes de fichiers persistants.

Exécuter des commandes sur l'environnement

Tout ne doit pas nécessairement passer par la boucle des agents. InvokeAgentRuntimeCommandvous donne un accès direct au shell du harnais MicroVM : exécution de commandes déterministe sans raisonnement basé sur un 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 une invocation : clonez un dépôt, installez les dépendances, copiez les fichiers d'entrée.

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

  • Inspectez la machine virtuelle pendant le développement : ls catenv,,, python --version sans parcourir le modèle en 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 entrer en mode d'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 revient à rooter votre propre instance EC2 : l'autorisation IAM correspond à la porte d'accès, et non au niveau de privilège intégré à la machine virtuelle. Si votre Dockerfile inclut une USER directive, celle-ci s'applique uniquement au processus agent (point d'entrée principal du conteneur). InvokeAgentRuntimeCommands'exécute avec un niveau de privilège plus élevé à des fins opérationnelles, de la même manière que la docker exec valeur par défaut est root même lorsque le conteneur s'exécute en tant qu'utilisateur non root. Consultez la section 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, regroupez votre code source, vos dépendances, vos environnements d'exécution et vos outils dans une image de conteneur, envoyez-la vers ECR et référencez-la sur le harnais. Votre agent travaille exactement dans cet environnement. Associez des images personnalisées à une InvokeAgentRuntimeCommand configuration spécifique à la session qui varie en fonction de l'appel.

Les images de conteneurs doivent être créées pour la linux/arm64 plateforme.

Le harnais remplace celui de votre conteneur ENTRYPOINT et permet CMD à celui-ci de fonctionner en tant qu'environnement. Le logiciel, le système de fichiers et les variables d'environnement que vous avez installés sont à la disposition de 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, l'interface de ligne de commande 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 disponibles pour l'agent et pour 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 un espace de stockage permanent sur les chemins que vous spécifiez. Les fichiers écrits sur ces supports survivent à la fin de la session et sont visibles lors des appels ultérieurs.

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

  • Stockage de session  : stockage par session géré par service qui persiste sur plusieurs stop/resume cycles pour la même session. 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 en savoir plus sur 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 des systèmes de fichiers pour Runtime. AgentCore Les mêmes exigences s'appliquent aux harnais.

Configurer l'environnement et le 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 à travers l'environnement d'exécution et, dans les paramètres avancés, 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 de 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 stockage du système de fichiers avec espace, puis appuyez sur Entrée.

    Paramètres avancés avec le stockage du réseau et du système de fichiers activé
  3. Choisissez le mode réseau VPC, puis indiquez 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 S3 Files

Confirmez l'assistant, puis agentcore deploy lancez-le pour appliquer.

Stockage des sessions

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

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 un ARN de point d'accès EFS à un chemin de montage situé en dessous/mnt. Les données persistent 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

Attachez un point d'accès EFS avec --efs-access-point as<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 être en dessous/mnt. Le drapeau est répétable (jusqu'à 2 montages EFS) ; --network-mode VPC avec --subnets et --security-groups est requis pour les montages EFS et S3 Files.

Point d'accès Amazon S3 Files

Attachez un ARN de point d'accès S3 Files à un chemin de montage situé sous/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 deux points ; le chemin de montage est extrait du segment situé après les deux points finaux. Le drapeau est répétable (jusqu'à 2 supports S3 Files).

Important

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

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