View a markdown version of this page

Configurazioni del file system per AgentCore Runtime - Amazon Bedrock AgentCore

Configurazioni del file system per AgentCore Runtime

AgentCore Runtime supporta i file system persistenti tramite il filesystemConfigurations parametro. Ogni configurazione monta lo storage in un percorso specificato dall'utente. Non è necessario un codice di montaggio personalizzato, contenitori privilegiati o un'orchestrazione dei download.

AgentCore Runtime supporta due categorie di configurazioni di file system:

  • Archiviazione gestita delle sessioni (anteprima): archiviazione per Service-managed sessione che persiste tra i cicli. stop/resume Isolato per sessione. Non è richiesto alcun VPC.

  • Bring-your-own file system: collega i tuoi punti di accesso Amazon S3 Files o Amazon EFS direttamente al runtime dell'agente. Condiviso tra sessioni e agenti. VPC richiesto.

È possibile combinare entrambe le categorie in un runtime di un singolo agente (fino a 5 configurazioni totali).

Le opzioni di archiviazione a colpo d'occhio

La tabella seguente confronta i tipi di configurazione del file system disponibili.

Categoria Tipo Isolamento Persistenza VPC richiesto Ideale per

Gestiti

Archiviazione della sessione (anteprima)

Per-session

Sopravvive stop/resume; scadenza di inattività di 14 giorni; reimpostazione all'aggiornamento della versione

No

Spazio di memoria virtuale, pacchetti installati, codice, file di progetto, stato dell'agente

RAGAZZO

File di Amazon S3

Condiviso: più sessioni e agenti accedono agli stessi dati

Customer-managed (permanente, si sincronizza con il bucket S3)

Set di dati accessibili sia tramite operazioni standard sui file che tramite le API S3

RAGAZZO

Amazon EFS

Condiviso: più sessioni e agenti accedono agli stessi dati

Customer-managed (permanente finché non lo elimini)

Librerie di strumenti condivise, pesi dei modelli, collaborazione multiagente di lettura-scrittura

Avvio rapido

Le seguenti liste di controllo forniscono passaggi abbreviati per la configurazione di ogni tipo di file system.

Archiviazione gestita delle sessioni (anteprima)

  1. Non sono richieste autorizzazioni VPC o IAM aggiuntive.

  2. Aggiungi --filesystem-configurations '[{"sessionStorage": {"mountPath": "/mnt/workspace"}}]' al tuo create-agent-runtime o update-agent-runtime chiama.

  3. Invoca l'agente con un--runtime-session-id.

  4. Interrompi la sessione, quindi riprendi con la stessa. --runtime-session-id Verify /mnt/workspace conserva i tuoi dati.

Bring-your-own file system

Punto di accesso Amazon S3 Files

  1. Aggiungi s3files:ClientMount e s3files:ClientWrite s3files:GetAccessPoint al tuo ruolo di esecuzione con una s3files:AccessPointArn condizione.

  2. Consenti la porta TCP 2049 in uscita dal gruppo di sicurezza Agent Runtime al gruppo di sicurezza di destinazione di S3 Files mount.

  3. Verifica che la destinazione di montaggio di S3 Files si trovi nello stesso VPC e nella stessa zona di disponibilità delle sottoreti di runtime dell'agente.

  4. Aggiungi al tuo o --filesystem-configurations '[{"s3FilesAccessPoint": {"accessPointArn": "<your-access-point-arn>", "mountPath": "/mnt/s3data"}}]' chiama. create-agent-runtime update-agent-runtime

  5. Invoca l'agente. File /mnt/s3data sincronizzati bidirezionalmente con il bucket S3 di supporto.

Punto di accesso Amazon EFS

  1. Aggiungi elasticfilesystem:ClientMount e elasticfilesystem:ClientWrite al tuo ruolo di esecuzione con una elasticfilesystem:AccessPointArn condizione.

  2. Consenti la porta TCP 2049 in uscita dal gruppo di sicurezza Agent Runtime al gruppo di sicurezza di destinazione del montaggio EFS.

  3. Verifica che il target di montaggio EFS si trovi nella stessa zona di disponibilità di almeno una delle sottoreti di runtime dell'agente.

  4. Aggiungi --filesystem-configurations '[{"efsAccessPoint": {"accessPointArn": "<your-access-point-arn>", "mountPath": "/mnt/efs"}}]' al tuo create-agent-runtime o update-agent-runtime chiama.

  5. Invoca l'agente. I tuoi file sono disponibili all'indirizzo/mnt/efs.

Sia S3 Files che EFS richiedono la connettività VPC nel runtime dell'agente.

Come funziona ogni tipo

Le sezioni seguenti descrivono il funzionamento di ciascun tipo di file system all'interno di AgentCore Runtime.

Bring-your-own file system

Quando si configura un file system personalizzato, AgentCore Runtime monta il punto di accesso specificato in ogni sessione nel percorso configurato. I dati sono condivisi: più sessioni, più agenti o applicazioni esterne possono accedere contemporaneamente allo stesso file system.

AgentCore gestisce automaticamente tutte le operazioni di montaggio. Non è necessario installare gli helper di montaggio, gestire i certificati TLS o scrivere codice di montaggio nel proprio agente.

Nota

Quando crei un punto di accesso (S3 Files o EFS), specifichi un ID utente POSIX (UID) e un ID di gruppo (GID). Tutte le operazioni sui file tramite il punto di accesso vengono eseguite con questa identità. Imposta UID/GID in modo che corrisponda all'utente con cui viene eseguito il processo del contenitore (in genere 1000:1000 per contenitori non root o 0:0 per root).

Flusso di montaggio di Amazon S3 Files

Quando configuri un punto di accesso S3 Files, si verifica la seguente sequenza:

  1. Crei un file system S3 Files (supportato da un bucket S3) e monti gli obiettivi nel tuo VPC.

  2. Crei un punto di accesso S3 Files specificando POSIX e la directory principale. UID/GID

  3. È possibile configurare il runtime dell'agente con l'ARN del punto di accesso e il percorso di montaggio.

  4. Quando viene richiamato con un nuovo ID di sessione, effettua il AgentCore provisioning di una microVM con accesso di rete al tuo VPC.

  5. MicroVM monta il file system NFSv4.2 tramite TLS con autenticazione IAM (porta 2049) tramite il VPC.

  6. Il tuo agente legge e scrive i file nel percorso di montaggio. Le modifiche si sincronizzano automaticamente con il bucket S3 di supporto.

Semantica dei file S3

  • Sincronizzazione bidirezionale tra il file system e il bucket S3 di backup

  • Close-to-open coerenza per i client NFS; coerenza finale S3 per l'accesso lato bucket

  • Dimensione massima del file: 48 TiB; profondità massima della cartella: 1.000 livelli

  • Non supportato: collegamenti fissi, classi di archiviazione S3 (Glacier), metadati di oggetti S3 personalizzati, PNFs

Flusso di montaggio di Amazon EFS

Quando si configura un punto di accesso EFS, si verifica la seguente sequenza:

  1. Crei un file system EFS e monti gli obiettivi nel tuo VPC (uno per zona di disponibilità).

  2. Si crea un punto di accesso EFS specificando POSIX UID/GID e la directory principale.

  3. È possibile configurare il runtime dell'agente con l'ARN del punto di accesso e il percorso di montaggio.

  4. Quando viene richiamato con un nuovo ID di sessione, effettua il AgentCore provisioning di una microVM con accesso di rete al tuo VPC.

  5. MicroVM monta il file system tramite TLS (porta 2049) NFSv4.1 tramite la destinazione di montaggio nella stessa zona di disponibilità.

  6. L'agente legge e scrive i file nel percorso di montaggio utilizzando operazioni standard sui file.

Semantica EFS

  • POSIX completo: collegamenti fisici, collegamenti simbolici, blocco dei file di avviso

  • Accesso simultaneo in lettura/scrittura da più sessioni e agenti

  • Close-to-open coerenza

  • Dimensione massima del file: 47,9 TiB; profondità massima della cartella: 1.000 livelli

Archiviazione gestita delle sessioni (anteprima)

Persiste lo stato della sessione stop/resume con una configurazione del file system utilizzando l'archiviazione gestita delle sessioni. AgentCore Lo storage di sessione gestito in fase di esecuzione è una funzionalità completamente gestita dai servizi in cui AgentCore Runtime gestisce tutte le operazioni di storage. L'agente legge e scrive su un file system di montaggio locale e l'ambiente di runtime replica in modo trasparente i dati nello storage del servizio per tutta la durata della sessione.

L'archiviazione delle sessioni è isolata per sessione: ogni sessione può accedere solo alla propria memoria e non può leggere o scrivere dati da altre sessioni dello stesso runtime dell'agente o da sessioni di runtime di agenti diversi.

Quando si configura l'archiviazione delle sessioni su un runtime dell'agente, ogni sessione ottiene una directory persistente nel percorso di montaggio specificato. Il ciclo di vita funziona come segue:

  1. Prima richiamo su una sessione: viene fornito un nuovo calcolo isolato. L'agente vede una directory vuota nel percorso di montaggio.

  2. L'agente scrive i file: tutte le operazioni sui file (lettura, scrittura, mkdir, ridenominazione) funzionano normalmente, in modo simile a un file system locale, e i dati vengono replicati in modo asincrono su uno storage durevole.

  3. Interruzione della sessione: il calcolo viene terminato. Tutti i dati non ancora persistenti vengono trasferiti in uno storage durevole durante un arresto automatico.

  4. Riprendi con la stessa sessione: viene eseguito il provisioning di una nuova elaborazione e lo stato del file system viene ripristinato da uno storage durevole. L'agente può continuare dal punto in cui si era interrotto.

Semantica del file system

Lo storage di sessione fornisce un file system Linux standard nel percorso di montaggio configurato. Gli strumenti e le operazioni standard funzionano senza modifiche: lscat,mkdir,git,npm,pip, e funzionano cargo tutti come previsto.

Operazioni supportate

File, directory e collegamenti simbolici regolari. Lettura, scrittura, ridenominazione chmod chownstat, eliminazione ereaddir: operazioni standard sui file POSIX utilizzate dai comuni strumenti di sviluppo.

Limiti

Per i limiti di archiviazione delle sessioni, tra cui la dimensione massima di archiviazione, il numero di file e la profondità della directory, consulta Limiti di archiviazione delle sessioni.

Operazioni non supportate

Le seguenti operazioni del file system non sono supportate:

  • Collegamenti fisici: utilizza invece i collegamenti simbolici.

  • File di dispositivo, file FIFO o socket UNIX: mknod non sono supportati.

  • Attributi estesi (xattr): gli strumenti che dipendono dai metadati xattr non sono supportati.

  • fallocate — La preallocazione di file sparsi non è supportata.

  • Blocco dei file tra le sessioni: i blocchi di avviso funzionano all'interno di una sessione in esecuzione ma non vengono mantenuti in modo persistente per tutte le sessioni. stop/resume Gli strumenti che utilizzano il blocco basato su file (ad esempio) non sono interessati. git

Nota

Le autorizzazioni vengono archiviate ma non applicate all'interno della sessione. chmode stat funzionano correttamente, ma i controlli di accesso hanno sempre esito positivo perché l'agente viene eseguito come unico utente nella MicroVM.

ciclo di vita dello storage delle sessioni

I dati della sessione vengono eliminati (ripristinati allo stato pulito) nei seguenti scenari:

  • La sessione non viene richiamata per 14 giorni.

  • La versione del runtime dell'agente viene aggiornata. L'invocazione di una sessione dopo un aggiornamento della versione fornisce un nuovo file system.

Utilizza DeleteAgentRuntimeo DeleteAgentRuntimeEndpointper eliminare tutti i dati di archiviazione della sessione associati al runtime o all'endpoint.

Prerequisiti per l'utilizzo di file system personalizzati

Prima di configurare un file system personalizzato, completate i seguenti prerequisiti.

Configurazione VPC

Il runtime dell'agente deve utilizzare. networkMode: VPC Le sottoreti specificate devono sovrapporsi alle zone di disponibilità di destinazione per il montaggio del file system.

autorizzazioni IAM

Il ruolo di esecuzione del runtime dell'agente deve includere le autorizzazioni per montare il file system.

Autorizzazioni IAM per i file S3

{ "Effect": "Allow", "Action": [ "s3files:ClientMount", "s3files:ClientWrite", "s3files:GetAccessPoint" ], "Resource": "arn:aws:s3files:<region>:<account-id>:file-system/<file-system-id>", "Condition": { "ArnEquals": { "s3files:AccessPointArn": "arn:aws:s3files:<region>:<account-id>:file-system/<file-system-id>/access-point/<access-point-id>" } } }

Autorizzazioni IAM per EFS

{ "Effect": "Allow", "Action": [ "elasticfilesystem:ClientMount", "elasticfilesystem:ClientWrite" ], "Resource": "arn:aws:elasticfilesystem:<region>:<account-id>:file-system/<file-system-id>", "Condition": { "ArnEquals": { "elasticfilesystem:AccessPointArn": "arn:aws:elasticfilesystem:<region>:<account-id>:access-point/<access-point-id>" } } }

Omettilo ClientWrite se il tuo agente necessita solo dell'accesso in lettura. L's3files:GetAccessPointautorizzazione è richiesta per la convalida del punto di accesso di S3 Files durante la creazione del runtime dell'agente.

Gruppi di sicurezza

Consenti il protocollo TCP in uscita sulla porta 2049 dal gruppo di sicurezza Agent Runtime al gruppo di sicurezza di destinazione del montaggio. Consenti il protocollo TCP in entrata sulla porta 2049 sul gruppo di sicurezza target di montaggio del gruppo di sicurezza Agent Runtime.

Configura i file system

Le seguenti sezioni mostrano come configurare ogni tipo di file system.

Configurazione di un punto di accesso Amazon S3 Files

Per configurare un punto di accesso S3 Files, specifica l'ARN del punto di accesso e il percorso di montaggio in. filesystemConfigurations Il runtime dell'agente deve utilizzare la modalità di rete VPC.

Esempio
AWS CLI
  1. aws bedrock-agentcore-control create-agent-runtime \ --agent-runtime-name "data-agent" \ --role-arn "arn:aws:iam::<account-id>:role/AgentExecutionRole" \ --network-configuration '{ "networkMode": "VPC", "networkModeConfig": { "subnets": ["<subnet-id-1>", "<subnet-id-2>"], "securityGroups": ["<security-group-id>"] } }' \ --agent-runtime-artifact '{ "containerConfiguration": { "containerUri": "<account-id>.dkr.ecr.<region>.amazonaws.com/my-agent:latest" } }' \ --filesystem-configurations '[{ "s3FilesAccessPoint": { "accessPointArn": "arn:aws:s3files:<region>:<account-id>:file-system/<file-system-id>/access-point/<access-point-id>", "mountPath": "/mnt/datasets" } }]'
AWS SDK
  1. Esempio in Python che utilizza boto3 per creare un AgentCore Runtime con un punto di accesso S3 Files.

    import boto3 client = boto3.client("bedrock-agentcore-control", region_name="us-west-2") response = client.create_agent_runtime( agentRuntimeName="data-agent", roleArn="arn:aws:iam::<account-id>:role/AgentExecutionRole", networkConfiguration={ "networkMode": "VPC", "networkModeConfig": { "subnets": ["<subnet-id-1>", "<subnet-id-2>"], "securityGroups": ["<security-group-id>"] } }, agentRuntimeArtifact={ "containerConfiguration": { "containerUri": "<account-id>.dkr.ecr.<region>.amazonaws.com/my-agent:latest" } }, filesystemConfigurations=[ { "s3FilesAccessPoint": { "accessPointArn": "arn:aws:s3files:<region>:<account-id>:file-system/<file-system-id>/access-point/<access-point-id>", "mountPath": "/mnt/datasets" } } ] )

Configurazione di un punto di accesso Amazon EFS

Per configurare un punto di accesso EFS, specificare l'ARN del punto di accesso e il percorso di montaggio in. filesystemConfigurations Il runtime dell'agente deve utilizzare la modalità di rete VPC.

Esempio
AWS CLI
  1. aws bedrock-agentcore-control create-agent-runtime \ --agent-runtime-name "shared-tools-agent" \ --role-arn "arn:aws:iam::<account-id>:role/AgentExecutionRole" \ --network-configuration '{ "networkMode": "VPC", "networkModeConfig": { "subnets": ["<subnet-id-1>", "<subnet-id-2>"], "securityGroups": ["<security-group-id>"] } }' \ --agent-runtime-artifact '{ "containerConfiguration": { "containerUri": "<account-id>.dkr.ecr.<region>.amazonaws.com/my-agent:latest" } }' \ --filesystem-configurations '[{ "efsAccessPoint": { "accessPointArn": "arn:aws:elasticfilesystem:<region>:<account-id>:access-point/<access-point-id>", "mountPath": "/mnt/tools" } }]'
AWS SDK
  1. Esempio in Python che utilizza boto3 per creare un Runtime AgentCore con un punto di accesso EFS.

    import boto3 client = boto3.client("bedrock-agentcore-control", region_name="us-west-2") response = client.create_agent_runtime( agentRuntimeName="shared-tools-agent", roleArn="arn:aws:iam::<account-id>:role/AgentExecutionRole", networkConfiguration={ "networkMode": "VPC", "networkModeConfig": { "subnets": ["<subnet-id-1>", "<subnet-id-2>"], "securityGroups": ["<security-group-id>"] } }, agentRuntimeArtifact={ "containerConfiguration": { "containerUri": "<account-id>.dkr.ecr.<region>.amazonaws.com/my-agent:latest" } }, filesystemConfigurations=[ { "efsAccessPoint": { "accessPointArn": "arn:aws:elasticfilesystem:<region>:<account-id>:access-point/<access-point-id>", "mountPath": "/mnt/tools" } } ] )

Configura l'archiviazione gestita delle sessioni

Aggiungi filesystemConfigurations con una sessionStorage voce durante la creazione o l'aggiornamento di un runtime dell'agente.

Esempio
AWS CLI
  1. aws bedrock-agentcore-control create-agent-runtime \ --agent-runtime-name "coding-agent" \ --role-arn "arn:aws:iam::111122223333:role/AgentExecutionRole" \ --agent-runtime-artifact '{ "containerConfiguration": { "containerUri": "123456789012.dkr.ecr.us-west-2.amazonaws.com/my-agent:latest" } }' \ --filesystem-configurations '[{ "sessionStorage": { "mountPath": "/mnt/workspace" } }]'
AWS SDK
  1. Esempio in Python che utilizza boto3 per creare un AgentCore Runtime con archiviazione di sessione.

    import boto3 client = boto3.client("bedrock-agentcore-control", region_name="us-west-2") response = client.create_agent_runtime( agentRuntimeName="coding-agent", roleArn="arn:aws:iam::111122223333:role/AgentExecutionRole", agentRuntimeArtifact={ "containerConfiguration": { "containerUri": "123456789012.dkr.ecr.us-west-2.amazonaws.com/my-agent:latest" } }, filesystemConfigurations=[ { "sessionStorage": { "mountPath": "/mnt/workspace" } } ] )

È inoltre possibile aggiungere l'archiviazione della sessione a un runtime di agente esistente utilizzando lo stesso UpdateAgentRuntimeparametro. filesystemConfigurations

Combina i file system

È possibile combinare lo storage gestito delle sessioni con file system personalizzati in un runtime con un singolo agente. L'esempio seguente configura tutti e tre i tipi.

import boto3 client = boto3.client("bedrock-agentcore-control", region_name="us-west-2") response = client.create_agent_runtime( agentRuntimeName="full-stack-agent", roleArn="arn:aws:iam::<account-id>:role/AgentExecutionRole", networkConfiguration={ "networkMode": "VPC", "networkModeConfig": { "subnets": ["<subnet-id-1>", "<subnet-id-2>"], "securityGroups": ["<security-group-id>"] } }, agentRuntimeArtifact={ "containerConfiguration": { "containerUri": "<account-id>.dkr.ecr.<region>.amazonaws.com/my-agent:latest" } }, filesystemConfigurations=[ { "s3FilesAccessPoint": { "accessPointArn": "arn:aws:s3files:<region>:<account-id>:file-system/<file-system-id>/access-point/<access-point-id>", "mountPath": "/mnt/datasets" } }, { "efsAccessPoint": { "accessPointArn": "arn:aws:elasticfilesystem:<region>:<account-id>:access-point/<access-point-id>", "mountPath": "/mnt/tools" } }, { "sessionStorage": { "mountPath": "/mnt/workspace" } } ] )

Richiama e usa l'archiviazione persistente

Tutti i file system configurati sono disponibili nei rispettivi percorsi di montaggio quando viene richiamato l'agente. Bring-your-own i file system (S3 Files, EFS) sono accessibili immediatamente a ogni chiamata. L'archiviazione gestita delle sessioni mantiene i dati in modo persistente tra i stop/resume cicli utilizzando lo stesso. runtimeSessionId

Esempio: utilizzo dell'archiviazione delle sessioni tra cicli stop/resume

# First invocation — agent sets up the project aws bedrock-agentcore invoke-agent-runtime \ --agent-runtime-arn "arn:aws:bedrock-agentcore:us-west-2:111122223333:agent-runtime/coding-agent" \ --runtime-session-id "session-001" \ --payload '{"prompt": "Set up the project and install dependencies in /mnt/workspace"}' # Stop the session aws bedrock-agentcore stop-runtime-session \ --agent-runtime-arn "arn:aws:bedrock-agentcore:us-west-2:111122223333:agent-runtime/coding-agent" \ --runtime-session-id "session-001" # Resume later — the project is exactly where the agent left it aws bedrock-agentcore invoke-agent-runtime \ --agent-runtime-arn "arn:aws:bedrock-agentcore:us-west-2:111122223333:agent-runtime/coding-agent" \ --runtime-session-id "session-001" \ --payload '{"prompt": "Run the tests and fix any failures"}'

L'agente vede /mnt/workspace esattamente come l'aveva lasciato: i file sorgente, i pacchetti installati, gli elementi di build e la cronologia.git sono tutti intatti. Quando riprendi una sessione, il nuovo ambiente di elaborazione monta lo storage persistente. L'agente può continuare a lavorare senza reinstallare pacchetti o rigenerare i file.

Nota

Quando chiami in modo esplicito, attendi StopRuntimeSession sempre il completamento prima di riprendere la sessione. Ciò garantisce che tutti i dati vengano trasferiti in uno spazio di archiviazione durevole.

Nota

Il percorso montato è disponibile solo al momento della chiamata dell'agente, non durante l'inizializzazione.

Limits

La tabella seguente elenca i limiti per le configurazioni del file system.

Risorsa Limite

Configurazioni totali del file system per runtime dell'agente

5

Configurazioni massime dei punti di accesso S3 Files

2

Configurazioni massime dei punti di accesso EFS

2

Configurazioni massime di storage delle sessioni gestite

1

Vincoli di percorso di montaggio

Tutte le configurazioni del file system devono seguire queste regole del percorso di montaggio:

  • Deve essere inferiore /mnt/ a un solo livello di sottodirectory (ad esempio/mnt/data,/mnt/workspace).

  • Modello: /mnt/[a-zA-Z0-9._-]+/?

  • Lunghezza: 6—200 caratteri.

  • Ogni percorso di montaggio deve essere unico in tutte le configurazioni.

  • I percorsi di montaggio non possono essere sottodirectory l'uno dell'altro.

Comportamento del ciclo di vita

La tabella seguente confronta il comportamento del ciclo di vita tra lo storage gestito delle sessioni e i file system personalizzati.

Comportamento Archiviazione gestita delle sessioni (anteprima) Bring-your-own (File S3, EFS)

Scadenza inattiva

14 giorni senza invocazione: ripristino dei dati

Nessuno: gestito dal cliente

In fase di aggiornamento della versione di runtime

Dati cancellati: nuovo file system alla prossima chiamata

Nessun effetto: i dati persistono

Attivato DeleteAgentRuntime

Tutti i dati della sessione sono stati eliminati

File system smontato; dati conservati nell'account

Accesso simultaneo

Isolato per sessione

Condiviso tra sessioni e agenti

Ownership

Service-managed di AgentCore

Customer-managed nel tuo AWS account

Importante

Per quanto riguarda i file system personalizzati, assicurati che il tuo agente gestisca gli accessi simultanei in modo appropriato. Utilizzate modelli di denominazione file per sessione o blocchi di file di avviso per evitare conflitti.

Casi d’uso

La tabella seguente elenca i modelli comuni e la configurazione del file system consigliata per ciascuno di essi.

Pattern Configurazione consigliata

Agente di codifica con file di progetto persistenti

Archiviazione gestita delle sessioni (anteprima) su /mnt/workspace

Set di dati di riferimento accessibili sia dagli agenti che dalle pipeline S3

Punto di accesso ai file S3 su /mnt/datasets

Librerie di strumenti condivise tra tutti gli agenti

S3 Files o punto di accesso EFS all'indirizzo /mnt/tools

Multi-agent collaborazione su uno spazio di lavoro condiviso

S3 Files o punto di accesso EFS all'indirizzo /mnt/shared

Long-running analisi con checkpoint

Archiviazione delle sessioni per i checkpoint + File S3 per i dati di input

Full-stack agente (entrambe le categorie combinate)

Archiviazione di sessioni+ File S3+ EFS (3 montaggi)

Esempio: agente di codifica con area di lavoro persistente

Questo esempio mostra un agente di codifica che utilizza Strands Agents per la cronologia delle conversazioni e l'archiviazione delle sessioni FileSessionManager per i file di progetto. Entrambi persistono attraverso i cicli. stop/resume

Agente di codifica con archiviazione delle sessioni

import os # Enable non-interactive mode for strands tools os.environ["BYPASS_TOOL_CONSENT"] = "true" from strands import Agent from strands.session import FileSessionManager from strands.models import BedrockModel from strands_tools import file_read, file_write, shell from bedrock_agentcore.runtime import BedrockAgentCoreApp app = BedrockAgentCoreApp() WORKSPACE = "/mnt/workspace" model = BedrockModel(model_id="us.anthropic.claude-sonnet-4-20250514-v1:0") tools = [file_read, file_write, shell] @app.entrypoint def handle_request(payload): session_id = payload.get("session_id", "default") # Persist conversation history alongside project files session_manager = FileSessionManager( session_id=session_id, storage_dir=f"{WORKSPACE}/.sessions" ) agent = Agent( model=model, tools=tools, session_manager=session_manager, system_prompt="You are a coding assistant. Project files are in /mnt/workspace." ) response = agent(payload.get("prompt")) return {"response": response.message["content"][0]["text"]} if __name__ == "__main__": app.run()

requirements.txt

strands-agents strands-agents-tools bedrock-agentcore boto3

Richiama l'agente, interrompi la sessione, quindi riprendi. Sia i file di progetto che il contesto della conversazione persistono.

Richiama, interrompi e riprendi il ciclo

import boto3, json client = boto3.client("bedrock-agentcore") agent_arn = "arn:aws:bedrock-agentcore:us-west-2:111122223333:agent-runtime/coding-agent" session_id = "project-xyz-001" def invoke(prompt): resp = client.invoke_agent_runtime( agentRuntimeArn=agent_arn, runtimeSessionId=session_id, payload=json.dumps({"prompt": prompt, "session_id": "conv-001"}).encode() ) return json.loads(b"".join(resp["response"]))["response"] # First invoke: Create a simple script invoke("Write a Python script called calculator.py with add and subtract functions.") # Stop session — compute terminates, storage persists client.stop_runtime_session(agentRuntimeArn=agent_arn, runtimeSessionId=session_id) # Resume same session — new compute, but files and conversation history restored invoke("Add a multiply function to the script you created.") # Agent knows it created calculator.py (conversation history) # AND finds existing file (file persistence)

FileSessionManagerMemorizza la cronologia delle conversazioni/mnt/workspace/.sessions/, permettendo all'agente di ricordare il contesto tra i stop/resume cicli.

Requisiti di rete

Questa sezione descrive i requisiti di rete sia per l'archiviazione gestita delle sessioni che per i file system personalizzati.

Rete di archiviazione gestita delle sessioni

Se il runtime dell'agente utilizza la modalità VPC con archiviazione delle sessioni, l'agente necessita dell'accesso alla rete per la sincronizzazione con lo storage remoto. I dati della sessione sono archiviati in AgentCore S3, quindi il tuo VPC deve consentire la connettività in uscita a S3. Se utilizzi un endpoint S3 Gateway con una policy personalizzata, puoi definire l'accesso al tuo bucket di archiviazione delle sessioni regionali come segue:

"Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::acr-storage-*-region-an", "arn:aws:s3:::acr-storage-*-region-an/*" ], "Condition": { "StringEquals": { "aws:PrincipalServiceName": "bedrock-agentcore.amazonaws.com" } }

regionSostituiscilo con la tua AWS regione (ad esempio,). us-west-2

Bring-your-own rete di file system

Bring-your-own i file system richiedono che la rete VPC soddisfi i seguenti requisiti per un montaggio corretto.

Amazon EFS

  • Destinazioni di montaggio: il file system EFS deve disporre di destinazioni di montaggio in almeno una delle zone di disponibilità in cui si trovano le sottoreti di runtime dell'agente. Il montaggio degli obiettivi in tutte le zone di disponibilità delle sottoreti configurate è consigliato per un'elevata disponibilità.

  • Un VPC alla volta: i file system EFS possono avere destinazioni di montaggio in un solo VPC alla volta. Cross-account Il montaggio su VPC non è supportato per. AgentCore

  • Allineamento delle zone di disponibilità: le sottoreti di runtime degli agenti e gli obiettivi di montaggio EFS devono condividere almeno una zona di disponibilità comune. Cross-AZ Il traffico NFS funziona ma aggiunge latenza e costi di trasferimento dei dati.

  • Risoluzione DNS: il tuo VPC deve avere nomi host DNS e risoluzione DNS abilitati. L'agente risolve il nome host del mount target al momento del montaggio. <az-id>.<file-system-id>.efs.<region>.amazonaws.com

Per verificare gli obiettivi di montaggio EFS:

aws efs describe-mount-targets --file-system-id fs-0123456789abcdef0 --region us-west-2

Per informazioni complete sugli obiettivi di montaggio EFS, consulta Come funziona Amazon EFS.

File di Amazon S3

  • Destinazioni di montaggio: il file system S3 Files deve avere destinazioni di montaggio nello stesso VPC del runtime dell'agente. Le destinazioni di montaggio devono trovarsi in almeno una delle stesse zone di disponibilità delle sottoreti di runtime dell'agente.

  • Una destinazione di montaggio per AZ: ogni zona di disponibilità può avere al massimo una destinazione di montaggio per file S3.

  • Stesso VPC: le destinazioni di montaggio dei file S3 devono trovarsi nello stesso VPC del runtime dell'agente. Cross-VPC l'accesso al file system non è supportato.

  • Risoluzione DNS: il tuo VPC deve risolvere il nome <az-id>.<file-system-id>.s3files.<region>.on.aws host di destinazione del montaggio di S3 Files al momento del montaggio. Assicurati che la risoluzione DNS sia abilitata nelle impostazioni del tuo VPC.

Per verificare gli obiettivi di montaggio dei tuoi file S3:

aws s3files list-mount-targets --file-system-id fs-0123456789abcdef0 --region us-west-2

Per informazioni complete sul montaggio dei file S3, consultate Montaggio dei file system S3.

Requisiti condivisi

Requisito EFS File S3

È richiesta la modalità VPC

Porta NFS 2049 (TCP)

Monta i bersagli nella stessa AZ

✓ (consigliato)

✓ (richiesto)

Stesso VPC

Stesso account AWS

Risoluzione DNS abilitata

Cross-account VPC

✗ Non supportato

✗ Non supportato

Importante

Cross-account Le configurazioni VPC non sono supportate. Le risorse del file system (file system, punti di accesso, destinazioni di montaggio) e il runtime dell'agente devono trovarsi nello stesso AWS account e nello stesso VPC.

Come AgentCore monta i file system

AgentCore gestisce automaticamente l'operazione di montaggio NFS all'interno della microVM:

  • EFS: montato NFSv4.1 tramite TLS (porta 2049). L'autenticazione IAM viene utilizzata quando il ruolo di esecuzione dispone dell'elasticfilesystem:ClientMountautorizzazione con una AccessPointArn condizione.

  • File S3: montati NFSv4.2 tramite TLS con autenticazione IAM obbligatoria. TLS e IAM sono sempre abilitati e non possono essere disabilitati per i file S3.

Non è necessario installareamazon-efs-utils, configurare o gestire i /etc/fstab certificati TLS. Il runtime MicroVM gestisce tutte le operazioni di montaggio, la rotazione delle credenziali e il monitoraggio dello stato.

Selezione della sottorete e della zona di disponibilità

Quando configuri sia le sottoreti VPC che le configurazioni del file system su un runtime di agente, seleziona le sottoreti che si sovrappongono alle zone di disponibilità di destinazione di montaggio del file system.

Per identificare l'ID della zona di disponibilità delle sottoreti:

aws ec2 describe-subnets \ --subnet-ids subnet-0123456789abcdef0 \ --query 'Subnets[0].AvailabilityZoneId'

Per identificare la zona di disponibilità dei target di montaggio EFS:

aws efs describe-mount-targets \ --file-system-id fs-0123456789abcdef0 \ --query 'MountTargets[*].[AvailabilityZoneId, LifeCycleState]' \ --output table

Assicurati che le sottoreti di runtime degli agenti si trovino nelle zone di disponibilità in cui il file system ha obiettivi di montaggio.

Per le zone di disponibilità supportate per regione, consulta le Zone di disponibilità supportate nell'argomento Configurazione VPC. Per la configurazione del gruppo di sicurezza, consulta Esempio: connessione ad Amazon EFS o Amazon S3 Files.

Risolvi i problemi relativi ai montaggi del file system «bring-your-own»

Quando il montaggio di un file system personalizzato fallisce, restituisce HTTP 424 (Failed Dependency). InvokeAgentRuntime

Caratteristiche Causa probabile Soluzione rapida

«Accesso negato»

Ruolo di esecuzione mancante ClientMount o ClientWrite

Aggiungi autorizzazioni IAM con condizione AccessPointArn

"ResourceNotFound" o «Risoluzione non riuscita»

Punto di accesso o destinazione di montaggio eliminati o non disponibili

Verifica che l'ARN esista e che gli obiettivi di montaggio siano disponibili

Il montaggio si blocca e poi fallisce (~30s)

Il gruppo di sicurezza blocca la porta 2049 o nessun obiettivo di montaggio nella zona di disponibilità dell'agente

Consenti TCP 2049; verifica la sovrapposizione delle zone di disponibilità

«Autorizzazione negata» in fase di scrittura

Mancante ClientWrite o mancante corrispondenza POSIX UID/GID

Aggiungi il permesso di scrittura o allinea l'utente POSIX del punto di accesso

Ogni montaggio ha un timeout di 30 secondi. Tutti i file system configurati vengono montati in parallelo: un singolo errore causa il fallimento dell'intera chiamata.

Per ulteriori informazioni, consulta Risoluzione dei problemi di archiviazione BYO.