View a markdown version of this page

AgentCore 執行期的檔案系統組態 - Amazon Bedrock AgentCore

AgentCore 執行期的檔案系統組態

AgentCore Runtime 透過 filesystemConfigurations 參數支援持久性檔案系統。每個組態都會在您指定的路徑掛載儲存體。您不需要自訂掛載程式碼、特殊權限容器或下載協同運作。

AgentCore 執行期支援兩種類型的檔案系統組態:

  • 受管工作階段儲存 (預覽) – 在停止/繼續週期中持續的服務受管每個工作階段儲存。每個工作階段隔離。不需要 VPC。

  • Bring-your-own檔案系統 – 將您自己的 Amazon S3 檔案或 Amazon EFS 存取點直接連接到您的代理程式執行時間。跨工作階段和客服人員共用。需要 VPC。

您可以在單一代理程式執行時間結合這兩個類別 (最多總共 5 個組態)。

儲存選項一目了然

下表比較可用的檔案系統組態類型。

Category Type 隔離 Persistence 需要 VPC 最適合

受管

工作階段儲存 (預覽版)

每個工作階段

Survives 停止/繼續;14 天閒置過期;版本更新時重設

暫存空間、已安裝的套件、程式碼、專案檔案、代理程式狀態

BYO

Amazon S3 Files

共用 – 多個工作階段和客服人員存取相同的資料

客戶受管 (永久,同步至 S3 儲存貯體)

可透過標準檔案操作和 S3 APIs資料集

BYO

Amazon EFS

共用 – 多個工作階段和客服人員存取相同的資料

客戶受管 (永久,直到您將其刪除為止)

共用工具程式庫、模型權重、讀寫多代理程式協同合作

快速入門

下列檢查清單提供設定每個檔案系統類型的精簡步驟。

受管工作階段儲存體 (預覽版)

  1. 不需要 VPC 或其他 IAM 許可。

  2. --filesystem-configurations '[{"sessionStorage": {"mountPath": "/mnt/workspace"}}]'新增至您的 create-agent-runtimeupdate-agent-runtime呼叫。

  3. 使用 叫用代理程式--runtime-session-id

  4. 停止工作階段,然後使用相同的 繼續--runtime-session-id。確認 會/mnt/workspace保留您的資料。

Bring-your-own檔案系統

Amazon S3 檔案存取點

  1. 使用 s3files:AccessPointArn條件將 s3files:ClientWrites3files:ClientMounts3files:GetAccessPoint 新增至您的執行角色。

  2. 允許 TCP 連接埠 2049 從代理程式執行時間安全群組傳出至 S3 檔案掛載目標安全群組。

  3. 確認 S3 檔案掛載目標與代理程式執行期子網路位於相同的 VPC 和可用區域。

  4. --filesystem-configurations '[{"s3FilesAccessPoint": {"accessPointArn": "<your-access-point-arn>", "mountPath": "/mnt/s3data"}}]'新增至您的 create-agent-runtimeupdate-agent-runtime呼叫。

  5. 叫用代理程式。與後端 S3 儲存貯體雙向/mnt/s3data同步的檔案。

Amazon EFS 存取點

  1. 使用 elasticfilesystem:AccessPointArn條件將 elasticfilesystem:ClientMountelasticfilesystem:ClientWrite 新增至您的執行角色。

  2. 允許 TCP 連接埠 2049 從代理程式執行時間安全群組傳出至 EFS 掛載目標安全群組。

  3. 確認 EFS 掛載目標與至少一個代理程式執行期子網路位於相同的可用區域。

  4. --filesystem-configurations '[{"efsAccessPoint": {"accessPointArn": "<your-access-point-arn>", "mountPath": "/mnt/efs"}}]'新增至您的 create-agent-runtimeupdate-agent-runtime呼叫。

  5. 叫用代理程式。您的檔案可在 取得/mnt/efs

S3 檔案和 EFS 都需要代理程式執行時間的 VPC 連線。

每種類型的運作方式

下列各節說明每個檔案系統類型如何在 AgentCore 執行期中運作。

Bring-your-own檔案系統

當您設定bring-your-own檔案系統時,AgentCore 執行期會將指定的存取點掛載到您設定路徑的每個工作階段。共用資料 – 多個工作階段、多個客服人員或外部應用程式可以同時存取相同的檔案系統。

AgentCore 會自動處理所有掛載操作。您不需要在代理程式中安裝掛載協助程式、管理 TLS 憑證或寫入掛載程式碼。

注意

當您建立存取點 (S3 檔案或 EFS) 時,您可以指定 POSIX 使用者 ID (UID) 和群組 ID (GID)。透過存取點執行的所有檔案操作都會以此身分執行。設定 UID/GID 以符合容器程序執行的使用者 (非根容器通常是 1000:1000,根容器為 0:0)。

Amazon S3 檔案掛載流程

當您設定 S3 檔案存取點時,會發生下列序列:

  1. 您可以在 VPC 中建立 S3 檔案檔案系統 (由 S3 儲存貯體後端) 並掛載目標。

  2. 您可以建立指定 POSIX UID/GID 和根目錄的 S3 檔案存取點。

  3. 您可以使用存取點 ARN 和掛載路徑來設定代理程式執行期。

  4. 使用新的工作階段 ID 調用時,AgentCore 會佈建具有 VPC 網路存取權的 microVM。

  5. microVM 透過 NFSv4.2 透過 TLS 透過 VPC 使用 IAM 身分驗證 (連接埠 2049) 掛載檔案系統。

  6. 您的代理程式會在掛載路徑讀取和寫入檔案。變更會自動同步到後端 S3 儲存貯體。

S3 檔案語意

  • 檔案系統和後端 S3 儲存貯體之間的雙向同步

  • NFS 用戶端的Close-to-open一致性;儲存貯體端存取的 S3 最終一致性

  • 檔案大小上限:48 TiB;目錄深度上限:1,000 個層級

  • 不支援:硬連結、S3 封存儲存類別 (Glacier)、自訂 S3 物件中繼資料、pNFS

Amazon EFS 掛載流程

當您設定 EFS 存取點時,會發生下列序列:

  1. 您可以在 VPC 中建立 EFS 檔案系統和掛載目標 (每個可用區域一個)。

  2. 您可以建立指定 POSIX UID/GID 和根目錄的 EFS 存取點。

  3. 您可以使用存取點 ARN 和掛載路徑來設定代理程式執行期。

  4. 使用新的工作階段 ID 調用時,AgentCore 會佈建具有 VPC 網路存取權的 microVM。

  5. microVM 透過 NFSv4.1 透過 TLS (連接埠 2049) 透過相同可用區域中的掛載目標掛載檔案系統。

  6. 您的代理程式會使用標準檔案操作在掛載路徑讀取和寫入檔案。

EFS 語意

  • 完整 POSIX:硬連結、符號連結、建議檔案鎖定

  • 來自多個工作階段和代理程式的並行讀寫存取

  • Close-to-open的一致性

  • 檔案大小上限:47.9 TiB;目錄深度上限:1,000 個層級

受管工作階段儲存體 (預覽版)

透過使用受管工作階段儲存體的檔案系統組態,跨停止/繼續維持工作階段狀態。AgentCore 執行期受管工作階段儲存是一種全服務受管功能,AgentCore 執行期可處理所有儲存操作。您的代理程式會讀取和寫入本機檔案系統掛載,而執行時間環境會在整個工作階段期間透明地將資料複寫至服務儲存體。

每個工作階段會隔離工作階段儲存 – 每個工作階段只能存取自己的儲存體,而且無法從相同代理執行時間的其他工作階段或不同代理執行時間的工作階段讀取或寫入資料。

當您在代理程式執行時間設定工作階段儲存體時,每個工作階段都會在您指定的掛載路徑取得持久性目錄。生命週期的運作方式如下:

  1. 第一次在工作階段上調用 - 佈建新的隔離運算。您的代理程式會在掛載路徑看到空目錄。

  2. 代理程式會寫入檔案 – 所有檔案操作 (讀取、寫入、mkdir、重新命名) 都正常運作,類似於本機檔案系統,資料會以非同步方式複寫至耐用儲存體。

  3. 工作階段停止 – 運算終止。在正常關閉期間,任何尚未保留的資料都會排清至持久儲存。

  4. 使用相同的工作階段繼續 – 佈建新的運算,並從耐用儲存體還原檔案系統狀態。代理程式可以從停止的地方繼續。

檔案系統語意

工作階段儲存會在您設定的掛載路徑提供標準 Linux 檔案系統。標準工具和操作無需修改即可運作 – lscatmkdirpip、、 git npmcargo皆如預期般運作。

支援的操作

一般檔案、目錄和符號連結。讀取、寫入、重新命名、刪除、chmodstatchownreaddir- 常用開發工具所使用的標準 POSIX 檔案操作。

限制

如需工作階段儲存限制,包括儲存大小上限、檔案計數和目錄深度,請參閱工作階段儲存限制

不支援的操作

不支援下列檔案系統操作:

  • 硬連結 – 請改用符號連結。

  • mknod 不支援裝置檔案、FIFOs 或 UNIX 通訊端

  • 延伸屬性 (xattr) – 不支援依賴 xattr 中繼資料的工具。

  • fallocate – 不支援稀疏檔案預先配置。

  • 跨工作階段的檔案鎖定 – 諮詢鎖定可在執行中的工作階段內運作,但不會在停止/繼續期間持續存在。使用檔案型鎖定 (例如 git) 的工具不受影響。

注意

許可會儲存但未在工作階段中強制執行。 chmodstat 可正常運作,但存取檢查一律會成功,因為代理程式會以 microVM 中唯一的使用者身分執行。

工作階段儲存生命週期

在下列案例中,工作階段資料會被刪除 (重設為清除狀態):

  • 工作階段在 14 天內不會被叫用。

  • 代理程式執行時間版本已更新。在版本更新佈建新的檔案系統之後叫用工作階段。

使用 DeleteAgentRuntimeDeleteAgentRuntimeEndpoint 刪除與執行時間或端點相關聯的所有工作階段儲存資料。

bring-your-own檔案系統的先決條件

設定bring-your-own檔案系統之前,請先完成下列先決條件。

VPC 組態

您的代理程式執行時間必須使用 networkMode: VPC。您指定的子網路必須與檔案系統掛載目標可用區域重疊。

IAM 許可

您的代理程式執行時間執行角色必須包含掛載檔案系統的許可。

S3 檔案的 IAM 許可

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

EFS 的 IAM 許可

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

ClientWrite 如果您的代理程式只需要讀取存取權,請省略 。在建立代理程式執行時間期間,S3 檔案存取點驗證需要 s3files:GetAccessPoint許可。

Security groups (安全群組)

允許連接埠 2049 上的傳出 TCP 從代理程式執行時間安全群組傳出至掛載目標安全群組。允許從代理程式執行時間安全群組掛載目標安全群組上連接埠 2049 上的傳入 TCP。

設定檔案系統

下列各節說明如何設定每個檔案系統類型。

設定 Amazon S3 檔案存取點

若要設定 S3 檔案存取點,請在 中指定存取點 ARN 和掛載路徑filesystemConfigurations。您的代理程式執行時間必須使用 VPC 網路模式。

範例
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. 使用 boto3 建立具有 S3 檔案存取點的 AgentCore 執行期的 Python 範例。

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

設定 Amazon EFS 存取點

若要設定 EFS 存取點,請在 中指定存取點 ARN 和掛載路徑filesystemConfigurations。您的代理程式執行時間必須使用 VPC 網路模式。

範例
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. 使用 boto3 建立具有 EFS 存取點的 AgentCore 執行期的 Python 範例。

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

設定受管工作階段儲存

在建立或更新代理程式執行時間時,filesystemConfigurations使用sessionStorage項目新增 。

範例
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. 使用 boto3 建立具有工作階段儲存的 AgentCore 執行期的 Python 範例。

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

您也可以使用 UpdateAgentRuntime 搭配相同的參數,將工作階段儲存新增至現有的代理程式執行期。 filesystemConfigurations

合併檔案系統

您可以在單一代理程式執行時間,將受管工作階段儲存與bring-your-own檔案系統結合。下列範例會設定這三種類型。

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

叫用並使用持久性儲存

叫用代理程式時,所有設定的檔案系統都可在其掛載路徑中使用。Bring-your-own檔案系統 (S3 檔案、EFS)。受管工作階段儲存會使用相同的 在停止/繼續週期之間保留資料runtimeSessionId

範例:跨停止/繼續週期使用工作階段儲存

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

代理程式/mnt/workspace會完全看到它 – 來源檔案、已安裝的套件、建置成品和 .git 歷史記錄都保持不變。當您繼續工作階段時,新的運算環境會掛載保留的儲存體。您的代理程式可以繼續運作,而無需重新安裝套件或重新產生檔案。

注意

當明確呼叫 時,StopRuntimeSession請等待它完成,然後再繼續工作階段。這可確保所有資料都排清為耐用的儲存體。

注意

掛載路徑僅在代理程式調用時可用,而不是在初始化期間。

限制

下表列出檔案系統組態的限制。

資源 限制

每個代理程式執行時間的檔案系統組態總數

5

S3 檔案存取點組態上限

2

EFS 存取點組態上限

2

受管工作階段儲存組態上限

1

掛載路徑限制條件

所有檔案系統組態必須遵循下列掛載路徑規則:

  • 必須低於 /mnt/,且只有一個子目錄層級 (例如,/mnt/data/mnt/workspace)。

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

  • 長度:6–200 個字元。

  • 所有組態的每個掛載路徑都必須是唯一的。

  • 掛載路徑不能是彼此的子目錄。

生命週期行為

下表比較受管工作階段儲存與bring-your-own檔案系統之間的生命週期行為。

Behavior (行為) 受管工作階段儲存體 (預覽版) Bring-your-own(S3 檔案、EFS)

閒置到期

14 天無調用 – 資料重設

無 – 客戶受管

執行時間版本更新時

資料已清除 – 下次調用時的新檔案系統

沒有效果 – 資料持續存在

DeleteAgentRuntime 上

已刪除所有工作階段資料

檔案系統已卸載;資料保留在您的帳戶中

並行存取

每個工作階段隔離

跨工作階段和客服人員共用

Ownership

AgentCore 管理的服務

您 AWS 帳戶中的客戶受管

重要

對於bring-your-own檔案系統,請確保您的代理程式適當地處理並行存取。使用file-per-session命名模式或建議檔案鎖定以避免衝突。

使用案例

下表列出常見的模式,以及每個模式的建議檔案系統組態。

模式 建議組態

使用持久性專案檔案編碼代理程式

的受管工作階段儲存 (預覽版) /mnt/workspace

可從客服人員和 S3 管道存取的參考資料集

S3 檔案存取點位於 /mnt/datasets

所有客服人員的共用工具程式庫

位於 的 S3 檔案或 EFS 存取點 /mnt/tools

共用工作區上的多客服人員協同合作

位於 的 S3 檔案或 EFS 存取點 /mnt/shared

使用檢查點進行長時間執行分析

檢查點的工作階段儲存體 + 輸入資料的 S3 檔案

全堆疊代理程式 (兩個類別合計)

工作階段儲存 + S3 檔案 + EFS (3 個掛載)

範例:使用持久性工作區編碼代理程式

此範例顯示使用 Strands Agents 搭配 的編碼代理程式FileSessionManager,用於專案檔案的對話歷史記錄和工作階段儲存。兩者會在停止/繼續週期之間持續存在。

使用工作階段儲存體來編碼代理程式

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

叫用代理程式,停止工作階段,然後繼續。專案檔案和對話內容都會保留。

叫用、停止和繼續週期

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)

會將對話歷史記錄FileSessionManager儲存到 /mnt/workspace/.sessions/,讓客服人員記住停止/繼續週期的內容。

網路要求

本節涵蓋受管工作階段儲存和bring-your-own檔案系統的聯網需求。

受管工作階段儲存聯網

如果您的代理程式執行期使用 VPC 模式搭配工作階段儲存,代理程式需要網路存取權才能與遠端儲存同步。工作階段資料存放在 AgentCore S3 中,因此您的 VPC 必須允許對 S3 的傳出連線。如果您使用具有自訂政策的 S3 Gateway 端點,您可以限制對區域工作階段儲存貯體的存取,如下所示:

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

區域取代為您的 AWS 區域 (例如 us-west-2)。

Bring-your-own檔案系統聯網

Bring-your-own檔案系統需要 VPC 聯網才能滿足下列要求,才能成功掛載。

Amazon EFS

  • 掛載目標 – 您的 EFS 檔案系統必須在代理程式執行期子網路所在的至少一個可用區域中具有掛載目標。為了實現高可用性,建議在所有設定的子網路可用區域中掛載目標。

  • 一次一個 VPC – EFS 檔案系統一次只能在一個 VPC 中掛載目標。AgentCore 不支援跨帳戶 VPC 掛載。

  • 可用區域對齊 – 代理程式執行期子網路和 EFS 掛載目標必須至少共用一個常用可用區域。跨可用區域 NFS 流量可運作,但會增加延遲和資料傳輸成本。

  • DNS 解析 – 您的 VPC 必須啟用 DNS 主機名稱和 DNS 解析。代理程式會在掛載時間解析<az-id>.<file-system-id>.efs.<region>.amazonaws.com掛載目標主機名稱。

若要檢查您的 EFS 掛載目標:

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

如需 EFS 掛載目標的完整資訊,請參閱 Amazon EFS 的運作方式

Amazon S3 Files

  • 掛載目標 – 您的 S3 檔案檔案系統必須在與代理程式執行時間相同的 VPC 中具有掛載目標。掛載目標必須與代理程式執行時間子網路位於至少一個相同的可用區域。

  • 每個可用區域一個掛載目標 – 每個可用區域最多可有一個 S3 檔案掛載目標。

  • 相同的 VPC – S3 檔案掛載目標必須與代理程式執行時間位於相同的 VPC 中。不支援跨 VPC 檔案系統存取。

  • DNS 解析 – 您的 VPC 必須在掛載時間解析 S3 檔案<az-id>.<file-system-id>.s3files.<region>.on.aws掛載目標主機名稱。確保已在 VPC 設定中啟用 DNS 解析。

若要檢查您的 S3 檔案掛載目標:

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

如需 S3 檔案掛載的完整資訊,請參閱掛載 S3 檔案系統

共用需求

需求 EFS S3 Files

需要 VPC 模式

NFS 連接埠 2049 (TCP)

在相同 AZ 中掛載目標

✓ (建議)

✓ (必要)

相同的 VPC

相同的 AWS 帳戶

DNS 解析已啟用

跨帳戶 VPC

✗ 不支援

✗ 不支援

重要

不支援跨帳戶 VPC 組態。檔案系統資源 (檔案系統、存取點、掛載目標) 和代理程式執行時間必須位於相同的 AWS 帳戶和 VPC 中。

AgentCore 如何掛載檔案系統

AgentCore 會自動在 microVM 內處理 NFS 掛載操作:

  • EFS – 透過 NFSv4.1 透過 TLS 掛載 (連接埠 2049)。當執行角色具有具有 AccessPointArn條件的elasticfilesystem:ClientMount許可時,會使用 IAM 身分驗證。

  • S3 檔案 – 透過 NFSv4.2 透過 TLS 透過強制 IAM 身分驗證掛載。TLS 和 IAM 一律啟用,且無法針對 S3 檔案停用。

您不需要安裝 amazon-efs-utils、設定 /etc/fstab或管理 TLS 憑證。microVM 執行時間會處理所有掛載操作、登入資料輪換和運作狀態監控。

子網路和可用區域選擇

當您在代理程式執行時間上同時設定 VPC 子網路和檔案系統組態時,請選取與檔案系統掛載目標可用區域重疊的子網路。

若要識別子網路的可用區域 ID:

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

若要識別 EFS 掛載目標的可用區域:

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

確保您的代理程式執行期子網路位於檔案系統具有掛載目標的可用區域中。

如需依區域列出的支援可用區域,請參閱 VPC 組態主題中的支援可用區域。如需安全群組組態,請參閱範例:連線至 Amazon EFS 或 Amazon S3 檔案

針對bring-your-own檔案系統掛載進行故障診斷

當bring-your-own檔案系統掛載失敗時, InvokeAgentRuntime會傳回 HTTP 424 (失敗相依性)。

徵狀 可能原因 快速修正

「拒絕存取」

執行角色遺失或 ClientMount ClientWrite

使用 AccessPointArn條件新增 IAM 許可

「ResourceNotFound」或「無法解析」

存取點或掛載目標已刪除或無法使用

確認 ARN 存在且掛載目標可用

掛載掛起然後失敗 (~30 秒)

安全群組封鎖連接埠 2049 或代理程式可用區域中沒有掛載目標

允許 TCP 2049;驗證可用區域重疊

寫入的「拒絕許可」

遺失或 ClientWrite POSIX UID/GID 不相符

新增寫入許可或對齊存取點 POSIX 使用者

每個掛載都有 30 秒的逾時。所有設定的檔案系統平行掛載 – 單一失敗會導致整個調用失敗。

如需詳細資訊,請參閱疑難排解 BYO 儲存