View a markdown version of this page

환경 및 파일 시스템 - Amazon Bedrock AgentCore

환경 및 파일 시스템

모든 하네스 세션은 자체 파일 시스템과 쉘이 있는 격리된 microVM에서 실행됩니다. 이 페이지에서는 실행 환경(기본 또는 사용자 지정 컨테이너) 구성, VM에서 직접 명령 실행, 환경 변수 설정, 영구 파일 시스템 탑재를 다룹니다.

환경에서 명령 실행

모든 것이 에이전트 루프를 통과해야 하는 것은 아닙니다. InvokeAgentRuntimeCommand는 모델 추론, 토큰 비용, 모호성 없이 결정적 명령 실행과 같은 하네스 microVM에 대한 직접 셸 액세스를 제공합니다.

이를 사용하여 다음을 수행할 수 있습니다.

  • 결정적 사전 호출 또는 사후 호출 스크립트를 실행합니다.

  • 호출 전에 환경 준비: 리포지토리 복제, 종속성 설치, 입력 파일 복사.

  • 에이전트가 생성한 내용에 따라 테스트 실행, 커밋 및 푸시, 빌드 아티팩트 추출 등의 작업을 수행합니다.

  • 개발 중에 모델을 왕복하지 python --version 않고 ls, catenv, VM을 검사합니다.

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"
참고

기본 환경에는 Python 및 bash가 포함됩니다. git, node또는 기타 런타임과 같은 도구의 경우 세션 시작 시 설치하거나(예: apt-get install -y git) 사용자 지정 환경을 사용합니다.

TUI에서 !를 눌러 실행 모드로 전환하고 인라인으로 명령을 실행합니다.

자세한 내용은 InvokeAgentRuntimeCommand API를 참조하세요.

참고

명령은 microVM 내에서 루트(uid 0)로 실행됩니다. 이는 자체 EC2 인스턴스의 루트와 유사합니다. IAM 권한은 VM 내 권한 수준이 아닌 액세스 게이트입니다. Dockerfile에 USER 명령이 포함된 경우 에이전트 프로세스(컨테이너의 기본 진입점)에만 적용됩니다. InvokeAgentRuntimeCommand는 컨테이너가 루트가 아닌 사용자로 실행되더라도가 루트로 docker exec 기본 설정되는 방식과 마찬가지로 운영 목적으로 더 높은 권한 수준에서 실행됩니다. 보안, 오류 처리 및 모범 사례에 대한 자세한 내용은 AgentCore 런타임 세션에서 셸 명령 실행을 참조하세요.

사용자 지정 환경(컨테이너 이미지)

기본 환경에는 대부분의 작업에 충분한 Python 및 bash가 포함되어 있습니다. 더 필요한 경우 소스 코드, 종속성, 런타임 및 도구를 컨테이너 이미지에 패키징하고 ECR로 푸시한 다음 하네스에서 참조합니다. 에이전트는 정확한 환경에서 실행됩니다. 호출에 따라 달라지는 세션별 설정을 InvokeAgentRuntimeCommand 위해 사용자 지정 이미지를와 페어링합니다.

컨테이너 이미지는 linux/arm64 플랫폼용으로 빌드해야 합니다.

이 하네스는 컨테이너의 ENTRYPOINT 및를 재정의CMD하여 컨테이너를 환경으로 계속 실행합니다. 설치된 소프트웨어, 파일 시스템 및 환경 변수를 에이전트가 사용할 수 있습니다. 컨테이너의 시작 명령이 실행되지 않습니다. 백그라운드 프로세스(예: 개발 서버)가 필요한 경우 세션이 시작된 InvokeAgentRuntimeCommand 후를 통해 백그라운드 프로세스를 시작합니다.

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

실행 역할에는 ECR 풀 권한이 필요합니다. 자세한 내용은 실행 역할 정책을 참조하세요.

AgentCore CLI

Dockerfile을 사용하여 하네스 스캐폴드:

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

배포 시 CLI는 이미지를 빌드하고 ECR로 푸시한 다음 하네스에 연결합니다.

또는 사전 빌드된 이미지를 참조합니다.

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

환경 변수

런타임 컨테이너로 전달되는 환경 변수를 설정합니다. 환경 변수는 에이전트와 세션에서 실행되는 사용자 지정 컨테이너에서 사용할 수 있습니다.

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

에서 환경 변수를 설정합니다harness.json.

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

를 실행agentcore deploy하여 적용합니다.

파일 시스템

하네스는 지정한 경로에 영구 스토리지를 탑재합니다. 이러한 마운트에 기록된 파일은 세션 종료 후에도 유지되며 이후 호출에 표시됩니다.

하네스는 세 가지 파일 시스템 유형을 지원합니다.

  • 세션 스토리지 - 동일한에 대해 중지/재개 주기 동안 지속되는 서비스 관리형 세션당 스토리지입니다runtimeSessionId. VPC가 필요하지 않습니다.

  • Amazon EFS 액세스 포인트 - 세션 및 에이전트 간에 공유bring-your-own EFS 파일 시스템입니다. VPC가 필요합니다.

  • Amazon S3 파일 액세스 포인트 - S3 버킷과 양방향으로 동기화되는 bring-your-own S3 파일 가져오기 파일 시스템입니다. VPC가 필요합니다.

사전 조건(VPC 네트워킹, IAM 권한, 보안 그룹), 유형 비교, 제한 및 수명 주기 동작은 AgentCore 런타임에 대한 파일 시스템 구성을 참조하세요. 하네스에도 동일한 요구 사항이 적용됩니다.

AgentCore CLI에서 환경 및 파일 시스템 구성

Interactive

프로젝트 디렉터리agentcore에서를 실행하여 TUI를 열고 추가를 선택한 다음 하네스를 선택합니다. 마법사는 실행 환경과 고급 설정에서 영구 파일 시스템을 안내합니다.

  1. 사용자 지정 환경 단계에서 기본 환경을 유지하거나 사전 구축된 컨테이너 이미지(ECR URI) 또는 Dockerfile을 선택합니다.

    하네스 추가 마법사: 사용자 지정 환경
  2. 파일 시스템 마운트에는 VPC 모드가 필요하므로 고급 설정에서 스페이스가 있는 네트워크파일 시스템 스토리지를 모두 활성화한 다음 Enter 키를 누릅니다.

    네트워크 및 파일 시스템 스토리지가 활성화된 고급 설정
  3. VPC 네트워크 모드를 선택한 다음, 하네스의 서브넷과 보안 그룹을 제공합니다.

    VPC 네트워크 모드 선택
  4. 세션 스토리지 탑재 경로를 설정합니다(아래/mnt).

    세션 스토리지 탑재 경로 입력
  5. Amazon EFS 파일 시스템을 연결하려면 EFS 액세스 포인트 ARN(및 다음 단계의 탑재 경로)을 입력합니다.

    EFS 액세스 포인트 ARN 입력
  6. Amazon S3 파일을 연결하려면 S3 파일 액세스 포인트 ARN(및 탑재 경로)을 입력합니다.

    S3 파일 액세스 포인트 ARN 입력

마법사를 확인한 다음를 실행agentcore deploy하여 적용합니다.

세션 스토리지

탑재 경로에 기록된 파일은 동일한 로를 호출할 때 중지/재개 주기 동안 유지됩니다runtimeSessionId.

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

Amazon EFS 액세스 포인트

아래의 탑재 경로에 EFS 액세스 포인트 ARN을 연결합니다/mnt. 데이터는 계정에 유지되며 동일한 액세스 포인트를 탑재하는 다른 하네스 또는 에이전트 런타임과 공유할 수 있습니다.

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

--efs-access-point로 사용하여 EFS 액세스 포인트를 연결합니다<accessPointArn>:<mountPath>. EFS에는 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
참고

탑재 경로는 아래에 있어야 합니다/mnt. 플래그는 반복 가능하며(최대 2개의 EFS 탑재), EFS --network-mode VPC --subnets 및 S3 파일 탑재에 및 --security-groups가 필요합니다.

Amazon S3 파일 액세스 포인트

아래의 탑재 경로에 S3 파일 액세스 포인트 ARN을 연결합니다/mnt. 탑재 경로의 파일은 백업 S3 버킷과 양방향으로 동기화됩니다.

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

--s3-access-point로 사용하여 S3 파일 액세스 포인트를 연결합니다<accessPointArn>:<mountPath>. S3 파일에는 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
참고

액세스 포인트 ARN 자체에는 콜론이 포함되어 있습니다. 탑재 경로는 최종 콜론 뒤의 세그먼트에서 가져옵니다. 플래그는 반복 가능합니다(최대 2개의 S3 파일 탑재).

중요

UpdateHarness는 전체 filesystemConfigurations 목록을 대체합니다. 이미 파일 시스템이 구성된 하네스에 새 탑재를 추가하려면 GetHarness 먼저를 호출한 다음에서 원하는 전체 목록(기존 항목과 새 항목)을 전송합니다UpdateHarness.

자세히 알아보기: AgentCore 런타임에 대한 파일 시스템 구성입니다.