View a markdown version of this page

Dateisystemkonfigurationen für AgentCore Runtime - Amazon Grundgestein AgentCore

Dateisystemkonfigurationen für AgentCore Runtime

AgentCore Runtime unterstützt persistente Dateisysteme über den filesystemConfigurations Parameter. Bei jeder Konfiguration wird Speicher in einem von Ihnen angegebenen Pfad bereitgestellt. Sie benötigen keinen benutzerdefinierten Mount-Code, keine privilegierten Container oder Download-Orchestrierung.

AgentCore Runtime unterstützt zwei Kategorien von Dateisystemkonfigurationen:

  • Verwalteter Sitzungsspeicher (Vorschau) — Speicher Service-managed pro Sitzung, der über Zyklen hinweg stop/resume bestehen bleibt. Isoliert pro Sitzung. Keine VPC erforderlich.

  • Bring-your-own Dateisystem — Hängen Sie Ihre eigenen Amazon S3 S3-Dateien oder Amazon EFS-Zugriffspunkte direkt an Ihre Agent-Runtime an. Wird von allen Sitzungen und Agenten gemeinsam genutzt. VPC erforderlich.

Sie können beide Kategorien in einer einzigen Agent-Runtime kombinieren (bis zu 5 Gesamtkonfigurationen).

Speicheroptionen auf einen Blick

In der folgenden Tabelle werden die verfügbaren Dateisystem-Konfigurationstypen verglichen.

Kategorie Typ Isolation Persistenz VPC erforderlich Am besten geeignet für

Verwaltet

Sitzungsspeicher (Vorschau)

Per-session

Überlebt stop/resume; 14-tägiges Leerlaufdatum; wird bei Versionsupdate zurückgesetzt

Nein

Scratch-Speicherplatz, installierte Pakete, Code, Projektdateien, Agentenstatus

JUNGE

Amazon S3 Files

Geteilt — mehrere Sitzungen und Agenten greifen auf dieselben Daten zu

Customer-managed (permanent, wird mit dem S3-Bucket synchronisiert)

Ja

Datensätze, auf die sowohl über Standard-Dateioperationen als auch über S3-APIs zugegriffen werden kann

JUNGE

Amazon EFS

Geteilt — mehrere Sitzungen und Agenten greifen auf dieselben Daten zu

Customer-managed (permanent, bis Sie es löschen)

Ja

Gemeinsam genutzte Werkzeugbibliotheken, Modellgewichte, Zusammenarbeit zwischen mehreren Agenten beim Lesen und Schreiben

Schnellstart

Die folgenden Checklisten enthalten zusammengefasste Schritte zur Konfiguration der einzelnen Dateisystemtypen.

Verwalteter Sitzungsspeicher (Vorschau)

  1. Keine VPC- oder zusätzlichen IAM-Berechtigungen erforderlich.

  2. Fügen Sie --filesystem-configurations '[{"sessionStorage": {"mountPath": "/mnt/workspace"}}]' es zu Ihrem hinzu create-agent-runtime oder update-agent-runtime rufen Sie an.

  3. Rufen Sie den Agenten mit einem --runtime-session-id auf.

  4. Beenden Sie die Sitzung und setzen Sie sie dann mit derselben --runtime-session-id fort. Verify /mnt/workspace speichert Ihre Daten.

Bring-your-own Dateisystem

Zugriffspunkt für Amazon S3 S3-Dateien

  1. Fügen Sie Ihrer Ausführungsrolle s3files:ClientMount s3files:ClientWrites3files:GetAccessPoint, und mit einer s3files:AccessPointArn Bedingung hinzu.

  2. Erlauben Sie den ausgehenden TCP-Port 2049 von Ihrer Agent-Runtime-Sicherheitsgruppe zur Zielsicherheitsgruppe für die S3-Files-Mount-Installation.

  3. Vergewissern Sie sich, dass sich das S3-Files-Mount-Ziel in derselben VPC und Availability Zone wie Ihre Agent-Runtime-Subnetze befindet.

  4. Fügen Sie --filesystem-configurations '[{"s3FilesAccessPoint": {"accessPointArn": "<your-access-point-arn>", "mountPath": "/mnt/s3data"}}]' es zu Ihrem hinzu create-agent-runtime oder update-agent-runtime rufen Sie an.

  5. Rufen Sie den Agenten auf. Dateien werden bidirektional mit dem unterstützenden S3-Bucket /mnt/s3data synchronisiert.

Amazon EFS-Zugriffspunkt

  1. Fügen Sie elasticfilesystem:ClientWrite Ihrer Ausführungsrolle elasticfilesystem:ClientMount und mit einer elasticfilesystem:AccessPointArn Bedingung hinzu.

  2. Erlauben Sie den ausgehenden TCP-Port 2049 von Ihrer Agent-Runtime-Sicherheitsgruppe zu Ihrer EFS-Mount-Zielsicherheitsgruppe.

  3. Stellen Sie sicher, dass sich das EFS-Mount-Ziel in derselben Availability Zone befindet wie mindestens eines Ihrer Agent-Runtime-Subnetze.

  4. Fügen Sie --filesystem-configurations '[{"efsAccessPoint": {"accessPointArn": "<your-access-point-arn>", "mountPath": "/mnt/efs"}}]' es zu Ihrem hinzu create-agent-runtime oder update-agent-runtime rufen Sie an.

  5. Rufen Sie den Agenten auf. Ihre Dateien sind verfügbar unter. /mnt/efs

Sowohl S3 Files als auch EFS erfordern VPC-Konnektivität in der Agent-Laufzeit.

So funktionieren die einzelnen Typen

In den folgenden Abschnitten wird beschrieben, wie die einzelnen Dateisystemtypen in AgentCore Runtime funktionieren.

Bring-your-own Dateisysteme

Wenn Sie ein Bring-Your-Own-Dateisystem konfigurieren, hängt AgentCore Runtime den angegebenen Access Point an dem von Ihnen konfigurierten Pfad in jede Sitzung ein. Daten werden gemeinsam genutzt — mehrere Sitzungen, mehrere Agenten oder externe Anwendungen können gleichzeitig auf dasselbe Dateisystem zugreifen.

AgentCore verarbeitet alle Mount-Operationen automatisch. Sie müssen keine Mount-Helper installieren, TLS-Zertifikate verwalten oder Mount-Code in Ihren Agenten schreiben.

Anmerkung

Wenn Sie einen Access Point (S3 Files oder EFS) erstellen, geben Sie eine POSIX-Benutzer-ID (UID) und eine Gruppen-ID (GID) an. Alle Dateioperationen über den Access Point werden unter dieser Identität ausgeführt. Stellen Sie UID/GID den so ein, dass er dem Benutzer entspricht, unter dem Ihr Container-Prozess ausgeführt wird (normalerweise 1000:1000 für Nicht-Root-Container oder 0:0 für Root-Container).

Einhängeablauf für Amazon S3 S3-Dateien

Wenn Sie einen S3 Files-Zugriffspunkt konfigurieren, erfolgt die folgende Reihenfolge:

  1. Sie erstellen ein S3 Files-Dateisystem (unterstützt durch einen S3-Bucket) und mounten Ziele in Ihrer VPC.

  2. Sie erstellen einen Zugriffspunkt für S3-Dateien, der das POSIX UID/GID - und das Stammverzeichnis angibt.

  3. Sie konfigurieren die Agent-Laufzeit mit dem Access Point-ARN und dem Mount-Pfad.

  4. Stellt beim Aufruf mit einer neuen Sitzungs-ID eine MicroVM mit Netzwerkzugriff auf Ihre VPC bereit. AgentCore

  5. Die MicroVM mountet das Dateisystem NFSv4.2 über TLS mit IAM-Authentifizierung (Port 2049) über Ihre VPC.

  6. Ihr Agent liest und schreibt Dateien im Bereitstellungspfad. Änderungen werden automatisch mit dem unterstützenden S3-Bucket synchronisiert.

Semantik von S3-Dateien

  • Bidirektionale Synchronisation zwischen dem Dateisystem und dem unterstützenden S3-Bucket

  • Close-to-open Konsistenz für NFS-Clients; eventuelle S3-Konsistenz für den Bucket-seitigen Zugriff

  • Max. Dateigröße: 48 TiB; maximale Verzeichnistiefe: 1.000 Ebenen

  • Nicht unterstützt: Hardlinks, S3-Archivspeicherklassen (Glacier), benutzerdefinierte S3-Objektmetadaten, pNFS

Amazon EFS-Bereitstellungsablauf

Wenn Sie einen EFS-Zugriffspunkt konfigurieren, erfolgt die folgende Reihenfolge:

  1. Sie erstellen ein EFS-Dateisystem und mounten Ziele in Ihrer VPC (eines pro Availability Zone).

  2. Sie erstellen einen EFS-Zugriffspunkt, der das POSIX UID/GID - und das Stammverzeichnis angibt.

  3. Sie konfigurieren die Agent-Laufzeit mit dem Access Point-ARN und dem Mount-Pfad.

  4. Stellt beim Aufruf mit einer neuen Sitzungs-ID eine MicroVM mit Netzwerkzugriff auf Ihre VPC bereit. AgentCore

  5. Die microVM mountet das Dateisystem über TLS (Port 2049) NFSv4.1 über das Mount-Ziel in derselben Availability Zone.

  6. Ihr Agent liest und schreibt Dateien im Bereitstellungspfad mithilfe von Standarddateioperationen.

EFS-Semantik

  • Vollständiges POSIX: feste Links, symbolische Links, Sperren von Dateien mit Empfehlungen

  • Gleichzeitiger Lese- und Schreibzugriff von mehreren Sitzungen und Agenten aus

  • Close-to-open Konsistenz

  • Max. Dateigröße: 47,9 TiB; maximale Verzeichnistiefe: 1.000 Ebenen

Verwalteter Sitzungsspeicher (Vorschau)

Behalten Sie den Sitzungsstatus in stop/resume einer Dateisystemkonfiguration unter Verwendung von verwaltetem Sitzungsspeicher bei. AgentCore Runtime Managed Session Storage ist eine vollständig vom Service verwaltete Funktion, bei der AgentCore Runtime alle Speichervorgänge abwickelt. Ihr Agent liest und schreibt in ein lokales Dateisystem-Mount, und die Laufzeitumgebung repliziert Daten während der gesamten Sitzungsdauer transparent in den Servicespeicher.

Der Sitzungsspeicher ist pro Sitzung isoliert — jede Sitzung kann nur auf ihren eigenen Speicher zugreifen und kann keine Daten aus anderen Sitzungen derselben Agent-Laufzeit oder aus Sitzungen mit unterschiedlichen Agent-Laufzeiten lesen oder schreiben.

Wenn Sie den Sitzungsspeicher auf einer Agent-Laufzeit konfigurieren, erhält jede Sitzung ein persistentes Verzeichnis unter dem von Ihnen angegebenen Mountpfad. Der Lebenszyklus funktioniert wie folgt:

  1. Erster Aufruf in einer Sitzung — Ein neuer isolierter Computer wird bereitgestellt. Ihr Agent sieht ein leeres Verzeichnis im Bereitstellungspfad.

  2. Der Agent schreibt Dateien — Alle Dateioperationen (Lesen, Schreiben, MKDIR, Umbenennen) funktionieren wie gewohnt, ähnlich wie bei einem lokalen Dateisystem, und die Daten werden asynchron auf einen dauerhaften Speicher repliziert.

  3. Die Sitzung wird beendet — Die Berechnung wird beendet. Alle Daten, die noch nicht dauerhaft gespeichert sind, werden beim ordnungsgemäßen Herunterfahren in einen dauerhaften Speicher gespült.

  4. Mit derselben Sitzung fortsetzen — Eine neue Rechenleistung wird bereitgestellt und der Dateisystemstatus wird aus dem dauerhaften Speicher wiederhergestellt. Der Agent kann dort weitermachen, wo er aufgehört hat.

Semantik des Dateisystems

Der Sitzungsspeicher stellt ein standardmäßiges Linux-Dateisystem in Ihrem konfigurierten Mount-Pfad bereit. Standardtools und -operationen funktionieren ohne Änderungen —ls,cat,mkdir,git,npm,pip,, und cargo alle funktionieren wie erwartet.

Unterstützte Operationen

Reguläre Dateien, Verzeichnisse und Symlinks. Lesen, Schreiben, Umbenennen, Löschen,, chmod chownstat, und readdir — standardmäßige POSIX-Dateioperationen, die von gängigen Entwicklungstools verwendet werden.

Beschränkungen

Informationen zu Speicherbeschränkungen für Sitzungen, einschließlich maximaler Speichergröße, Dateianzahl und Verzeichnistiefe, finden Sie unter Speicherbeschränkungen für Sitzungen.

Nicht unterstützte Operationen

Die folgenden Dateisystemoperationen werden nicht unterstützt:

  • Feste Links — Verwenden Sie stattdessen Symlinks.

  • Gerätedateien, FIFOs oder UNIX-Socketsmknod wird nicht unterstützt.

  • Erweiterte Attribute (xattr) — Tools, die von Xattr-Metadaten abhängen, werden nicht unterstützt.

  • fallocate — Die Vorabzuweisung von Dateien mit geringer Datendichte wird nicht unterstützt.

  • Sitzungsübergreifendes Sperren von Dateien — Advisory Locks funktionieren innerhalb einer laufenden Sitzung, bleiben aber nicht dauerhaft bestehen. stop/resume Tools, die dateibasiertes Sperren verwenden (z. B.git), sind davon nicht betroffen.

Anmerkung

Berechtigungen werden gespeichert, aber nicht innerhalb der Sitzung durchgesetzt. chmodund stat funktionieren einwandfrei, aber Zugriffsprüfungen sind immer erfolgreich, da der Agent als einziger Benutzer in der MicroVM ausgeführt wird.

Lebenszyklus des Sitzungsspeichers

In den folgenden Szenarien werden Sitzungsdaten gelöscht (auf einen sauberen Zustand zurückgesetzt):

  • Die Sitzung wird 14 Tage lang nicht aufgerufen.

  • Die Runtime-Version des Agenten wurde aktualisiert. Durch das Aufrufen einer Sitzung nach einem Versionsupdate wird ein neues Dateisystem bereitgestellt.

Verwenden Sie DeleteAgentRuntimeoder DeleteAgentRuntimeEndpoint, um alle Sitzungsspeicherdaten zu löschen, die der Laufzeit oder dem Endpunkt zugeordnet sind.

Voraussetzungen für das Mitbringen eigener Dateisysteme

Bevor Sie ein Bring-Your-Own-Dateisystem konfigurieren, müssen Sie die folgenden Voraussetzungen erfüllen.

VPC-Konfiguration

Ihre Agent-Runtime muss verwenden. networkMode: VPC Die von Ihnen angegebenen Subnetze müssen sich mit den Availability Zones der Ziel-Availability Zones des Dateisystems überschneiden.

IAM-Berechtigungen

Ihre Runtime-Ausführungsrolle für Agenten muss Berechtigungen zum Mounten des Dateisystems enthalten.

IAM-Berechtigungen für S3-Dateien

{ "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>" } } }

IAM-Berechtigungen für 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>" } } }

Lassen Sie diese Option ausClientWrite, wenn Ihr Agent nur Lesezugriff benötigt. Die s3files:GetAccessPoint Berechtigung ist für die Validierung des S3 Files-Zugriffspunkts während der Erstellung der Agenten-Laufzeit erforderlich.

Sicherheitsgruppen

Erlauben Sie ausgehendes TCP auf Port 2049 von Ihrer Agent-Runtime-Sicherheitsgruppe zur Mount-Zielsicherheitsgruppe. Lassen Sie eingehendes TCP auf Port 2049 der Mount-Zielsicherheitsgruppe von der Runtime-Sicherheitsgruppe des Agenten zu.

Dateisysteme konfigurieren

In den folgenden Abschnitten wird gezeigt, wie die einzelnen Dateisystemtypen konfiguriert werden.

Konfigurieren Sie einen Amazon S3 Files-Zugriffspunkt

Um einen Zugriffspunkt für S3 Files zu konfigurieren, geben Sie den ARN und den Mountpfad des Zugriffspunkts in anfilesystemConfigurations. Ihre Agenten-Laufzeit muss den VPC-Netzwerkmodus verwenden.

Beispiel
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. Python-Beispiel, das boto3 verwendet, um eine AgentCore Runtime mit einem S3 Files Access Point zu erstellen.

    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" } } ] )

Konfiguration eines Amazon EFS-Zugriffspunkts

Um einen EFS-Zugriffspunkt zu konfigurieren, geben Sie den Zugriffspunkt-ARN und den Mountpfad in anfilesystemConfigurations. Ihre Agenten-Laufzeit muss den VPC-Netzwerkmodus verwenden.

Beispiel
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. Python-Beispiel, das boto3 verwendet, um eine AgentCore Runtime mit einem EFS-Zugangspunkt zu erstellen.

    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" } } ] )

Konfigurieren Sie den verwalteten Sitzungsspeicher

Fügen Sie filesystemConfigurations beim Erstellen oder Aktualisieren einer Agenten-Laufzeit einen sessionStorage Eintrag hinzu.

Beispiel
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. Python-Beispiel, das boto3 verwendet, um eine AgentCore Runtime mit Sitzungsspeicher zu erstellen.

    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" } } ] )

Sie können auch Sitzungsspeicher zu einer vorhandenen Agenten-Laufzeit hinzufügen, indem Sie denselben UpdateAgentRuntimefilesystemConfigurationsParameter verwenden.

Kombinieren Sie Dateisysteme

Sie können verwalteten Sitzungsspeicher mit eigenen Dateisystemen in einer Runtime mit nur einem Agenten kombinieren. Im folgenden Beispiel werden alle drei Typen konfiguriert.

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" } } ] )

Rufen Sie persistenten Speicher auf und verwenden Sie ihn

Alle konfigurierten Dateisysteme sind in ihren Mount-Pfaden verfügbar, wenn Ihr Agent aufgerufen wird. Bring-your-own Dateisysteme (S3-Dateien, EFS) sind bei jedem Aufruf sofort zugänglich. Der verwaltete Sitzungsspeicher speichert Daten stop/resume zyklusübergreifend und verwendet dasselbe. runtimeSessionId

Beispiel: Sitzungsspeicher zyklusübergreifend stop/resume verwenden

# 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"}'

Der Agent sieht /mnt/workspace genau so, wie er es verlassen hat — Quelldateien, installierte Pakete, Build-Artefakte und der .git-Verlauf sind alle intakt. Wenn Sie eine Sitzung wieder aufnehmen, hängt die neue Rechenumgebung den persistenten Speicher ein. Ihr Agent kann weiterarbeiten, ohne Pakete neu zu installieren oder Dateien neu zu generieren.

Anmerkung

Warten Sie bei einem expliziten Anruf StopRuntimeSession immer, bis der Vorgang abgeschlossen ist, bevor Sie die Sitzung fortsetzen. Dadurch wird sichergestellt, dass alle Daten dauerhaft gespeichert werden.

Anmerkung

Der bereitgestellte Pfad ist nur zum Zeitpunkt des Agentenaufrufs verfügbar, nicht während der Initialisierung.

Einschränkungen

In der folgenden Tabelle sind die Grenzwerte für Dateisystemkonfigurationen aufgeführt.

Ressource Limit

Gesamtzahl der Dateisystemkonfigurationen pro Agent-Laufzeit

5

Maximale Anzahl an Zugriffspunkt-Konfigurationen für S3-Dateien

2

Maximale EFS-Zugangspunktkonfigurationen

2

Maximale Anzahl verwalteter Sitzungsspeicherkonfigurationen

1

Einschränkungen für den Mount-Pfad

Alle Dateisystemkonfigurationen müssen diesen Mount-Pfadregeln entsprechen:

  • Muss sich unter genau /mnt/ einer Unterverzeichnisebene befinden (z. B./mnt/data,/mnt/workspace).

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

  • Länge: 6—200 Zeichen.

  • Jeder Bereitstellungspfad muss in allen Konfigurationen eindeutig sein.

  • Mountpfade dürfen keine Unterverzeichnisse voneinander sein.

Verhalten im Lebenszyklus

In der folgenden Tabelle wird das Lebenszyklusverhalten zwischen verwaltetem Sitzungsspeicher und Bring-Your-Own-Dateisystemen verglichen.

Behavior Verwalteter Sitzungsspeicher (Vorschau) Bring-your-own (S3-Dateien, EFS)

Ablauf im Leerlauf

14 Tage ohne Aufruf — Daten zurückgesetzt

Keine — vom Kunden verwaltet

Beim Update der Runtime-Version

Daten gelöscht — neues Dateisystem beim nächsten Aufruf

Keine Auswirkung — Daten bleiben bestehen

An DeleteAgentRuntime

Alle Sitzungsdaten wurden gelöscht

Das Dateisystem wurde nicht bereitgestellt; die Daten sind in Ihrem Konto erhalten

Gleichzeitiger Zugriff

Isoliert pro Sitzung

Wird von allen Sitzungen und Agenten gemeinsam genutzt

Ownership

Service-managed von AgentCore

Customer-managed in deinem AWS Konto

Wichtig

Stellen Sie bei Dateisystemen, die Sie selbst mitbringen, sicher, dass Ihr Agent den gleichzeitigen Zugriff angemessen handhabt. Verwenden Sie Benennungsmuster für Dateien pro Sitzung oder empfohlene Dateisperren, um Konflikte zu vermeiden.

Anwendungsfälle

In der folgenden Tabelle sind die gängigen Muster und die jeweils empfohlene Dateisystemkonfiguration aufgeführt.

Muster Empfohlene Konfiguration

Codierungsagent mit persistenten Projektdateien

Verwalteter Sitzungsspeicher (Vorschau) unter /mnt/workspace

Referenzdatensätze, auf die sowohl über Agenten als auch über S3-Pipelines zugegriffen werden kann

Zugriffspunkt für S3-Dateien unter /mnt/datasets

Gemeinsam genutzte Tool-Bibliotheken für alle Agenten

S3-Dateien oder EFS-Zugangspunkt unter /mnt/tools

Multi-agent Zusammenarbeit in einem gemeinsamen Arbeitsbereich

S3-Dateien oder EFS-Zugangspunkt unter /mnt/shared

Long-running Analyse mit Checkpoints

Sitzungsspeicher für Checkpoints + S3-Dateien für Eingabedaten

Full-stack Agent (beide Kategorien kombiniert)

Sitzungsspeicher + S3-Dateien + EFS (3 Halterungen)

Beispiel: Codierungsagent mit persistentem Workspace

Dieses Beispiel zeigt einen Codierungsagenten, der Strands Agents FileSessionManager für den Konversationsverlauf und die Sitzungsspeicherung für Projektdateien verwendet. Beide bleiben stop/resume zyklusübergreifend bestehen.

Codierungsagent mit Sitzungsspeicher

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

Rufen Sie den Agenten auf, beenden Sie die Sitzung und setzen Sie sie dann fort. Sowohl die Projektdateien als auch der Konversationskontext bleiben bestehen.

Zyklus aufrufen, beenden und fortsetzen

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)

FileSessionManagerSpeichert den Konversationsverlauf unter/mnt/workspace/.sessions/, sodass sich der Agent den Kontext stop/resume zyklusübergreifend merken kann.

Netzwerkanforderungen

In diesem Abschnitt werden die Netzwerkanforderungen für verwaltete Sitzungsspeicher und Bring-Your-Own-Dateisysteme behandelt.

Netzwerke mit verwaltetem Sitzungsspeicher

Wenn Ihre Agenten-Laufzeit den VPC-Modus mit Sitzungsspeicher verwendet, benötigt der Agent Netzwerkzugriff, um mit dem Remotespeicher zu synchronisieren. Sitzungsdaten werden in AgentCore S3 gespeichert, daher muss Ihre VPC ausgehende Konnektivität zu S3 zulassen. Wenn Sie einen S3-Gateway-Endpunkt mit einer benutzerdefinierten Richtlinie verwenden, können Sie den Zugriff auf Ihren regionalen Sitzungsspeicher-Bucket wie folgt einschränken:

"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" } }

regionErsetzen Sie es durch Ihre AWS Region (z. B.us-west-2).

Bring-your-own Dateisystem-Netzwerke

Bring-your-own Dateisysteme erfordern, dass Ihr VPC-Netzwerk die folgenden Anforderungen für erfolgreiche Mounts erfüllt.

Amazon EFS

  • Mount-Ziele — Ihr EFS-Dateisystem muss Mount-Ziele in mindestens einer der Availability Zones haben, in denen sich Ihre Agent-Runtime-Subnetze befinden. Für eine hohe Verfügbarkeit wird empfohlen, Ziele in allen konfigurierten Availability Zones des Subnetzes bereitzustellen.

  • Eine VPC nach der anderen — EFS-Dateisysteme können Mount-Ziele jeweils nur in einer VPC haben. Cross-account VPC-Montage wird nicht unterstützt für AgentCore.

  • Ausrichtung der Availability Zone — Agent-Runtime-Subnetze und EFS-Mount-Ziele müssen sich mindestens eine gemeinsame Availability Zone teilen. Cross-AZ NFS-Verkehr funktioniert, erhöht jedoch die Latenz und die Kosten für die Datenübertragung.

  • DNS-Auflösung — In Ihrer VPC müssen DNS-Hostnamen und DNS-Auflösung aktiviert sein. Der Agent löst den Hostnamen <az-id>.<file-system-id>.efs.<region>.amazonaws.com des Mount-Ziels bei der Bereitstellung auf.

So überprüfen Sie Ihre EFS-Mount-Ziele:

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

Vollständige Informationen zu EFS-Mount-Zielen finden Sie unter So funktioniert Amazon EFS.

Amazon S3 Files

  • Mount-Ziele — Ihr S3 Files-Dateisystem muss Mount-Ziele in derselben VPC wie die Agent-Laufzeit haben. Mount-Ziele müssen sich in mindestens einer der gleichen Availability Zones wie Ihre Agent-Runtime-Subnetze befinden.

  • Ein Mount-Ziel pro AZ — Jede Availability Zone kann über maximal ein Mount-Ziel für S3-Dateien verfügen.

  • Gleiche VPC — Mount-Ziele für S3-Dateien müssen sich in derselben VPC wie die Agent-Laufzeit befinden. Cross-VPC Der Dateisystemzugriff wird nicht unterstützt.

  • DNS-Auflösung — Ihre VPC muss den Hostnamen des S3-Files-Mount-Ziels <az-id>.<file-system-id>.s3files.<region>.on.aws zum Zeitpunkt der Bereitstellung auflösen. Stellen Sie sicher, dass die DNS-Auflösung in Ihren VPC-Einstellungen aktiviert ist.

So überprüfen Sie Ihre S3-Files-Mount-Ziele:

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

Vollständige Informationen zum Mounten von S3-Dateien finden Sie unter Mounten von S3-Dateisystemen.

Gemeinsame Anforderungen

Anforderung EFS S3 Files

VPC-Modus erforderlich

NFS-Port 2049 (TCP)

Mounten Sie Ziele in derselben AZ

✓ (empfohlen)

✓ (erforderlich)

Dieselbe VPC

Derselbe Account AWS

DNS-Auflösung aktiviert

Cross-account VPC

✗ Wird nicht unterstützt

✗ Nicht unterstützt

Wichtig

Cross-account VPC-Konfigurationen werden nicht unterstützt. Die Dateisystemressourcen (Dateisystem, Zugriffspunkte, Mount-Ziele) und die Agenten-Laufzeit müssen sich im selben AWS Konto und in derselben VPC befinden.

Wie hängt AgentCore Dateisysteme ein

AgentCore wickelt den NFS-Mount-Vorgang innerhalb der MicroVM automatisch ab:

  • EFS — NFSv4.1 Über TLS gemountet (Port 2049). Die IAM-Authentifizierung wird verwendet, wenn die Ausführungsrolle über eine elasticfilesystem:ClientMount Berechtigung mit einer AccessPointArn Bedingung verfügt.

  • S3-Dateien — NFSv4.2 Über TLS mit obligatorischer IAM-Authentifizierung bereitgestellt. TLS und IAM sind immer aktiviert und können für S3-Dateien nicht deaktiviert werden.

Sie müssen TLS-Zertifikate nicht installieren amazon-efs-utils/etc/fstab, konfigurieren oder verwalten. Die MicroVM-Runtime verarbeitet alle Mount-Operationen, die Rotation der Anmeldeinformationen und die Zustandsüberwachung.

Auswahl von Subnetz und Availability Zone

Wenn Sie sowohl VPC-Subnetze als auch Dateisystemkonfigurationen auf einer Agent-Runtime konfigurieren, wählen Sie Subnetze aus, die sich mit Ihren Dateisystem-Mount-Ziel-Availability Zones überschneiden.

So ermitteln Sie die Availability Zone-ID Ihrer Subnetze:

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

So identifizieren Sie die Availability Zone Ihrer EFS-Mount-Ziele:

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

Stellen Sie sicher, dass sich Ihre Agent-Runtime-Subnetze in Availability Zones befinden, in denen Ihr Dateisystem Mount-Ziele hat.

Informationen zu unterstützten Availability Zones nach Regionen finden Sie unter Unterstützte Availability Zones im Thema VPC-Konfiguration. Informationen zur Konfiguration von Sicherheitsgruppen finden Sie unter Beispiel: Verbindung zu Amazon EFS- oder Amazon S3 S3-Dateien herstellen.

Beheben Sie Fehler beim Einhängen von Dateisystemen, bei denen Sie Ihr eigenes System mitbringen

Wenn das Einhängen eines Dateisystems, bei dem Sie Ihr eigenes System verwenden, fehlschlägt, wird HTTP 424 (Failed Dependency) zurückgegeben. InvokeAgentRuntime

Symptom Wahrscheinliche Ursache Schnelle Lösung

„Zugriff verweigert“

Die Ausführungsrolle fehlt ClientMount oder ClientWrite

Fügen Sie IAM-Berechtigungen mit AccessPointArn Bedingung hinzu

"ResourceNotFound" oder „Fehler beim Auflösen“

Der Access Point oder das Mount-Ziel wurde gelöscht oder ist nicht verfügbar

Stellen Sie sicher, dass ARN existiert und Mount-Ziele verfügbar sind

Der Mount hängt und schlägt dann fehl (~30s)

Sicherheitsgruppe blockiert Port 2049 oder kein Mount-Ziel in der Availability Zone des Agenten

TCP 2049 zulassen; Überlappung der Availability Zone überprüfen

„Zugriff verweigert“ bei Schreibvorgängen

Fehlt ClientWrite oder POSIX-Diskrepanz UID/GID

Fügen Sie Schreibberechtigungen hinzu oder richten Sie den Access Point POSIX-Benutzer aus

Jeder Mount hat einen Timeout von 30 Sekunden. Alle konfigurierten Dateisysteme werden parallel bereitgestellt — ein einziger Fehler führt dazu, dass der gesamte Aufruf fehlschlägt.

Weitere Informationen finden Sie unter Problembehandlung bei BYO-Speicher.