View a markdown version of this page

브라우저 세션 관리 - Amazon Bedrock AgentCore

브라우저 세션 관리

브라우저 세션 시작

브라우저를 생성한 후 세션을 시작하여 웹 애플리케이션과 상호 작용할 수 있습니다.

AWS CLI
  1. AWS CLI를 사용하여 브라우저 세션을 시작하려면 start-browser-session 명령을 사용합니다.

    aws bedrock-agentcore start-browser-session \ --region <Region> \ --browser-identifier "my-browser" \ --name "my-browser-session" \ --session-timeout-seconds 900 \ --view-port width=1456,height=819
Boto3
  1. AWS SDK for Python(Boto3)을 사용하여 브라우저 세션을 시작하려면 start_browser_session 메서드를 사용합니다.

    요청 구문

    다음은 요청 구문을 보여줍니다.

    response = dp_client.start_browser_session( browserIdentifier="aws.browser.v1", name="browser-session-1", sessionTimeoutSeconds=3600, viewPort={ 'height': 819, 'width': 1456 } )
BrowserClient
  1. 세션 수명 주기를 더 잘 제어하기 위해 BrowserClient 클래스를 사용하여 브라우저 세션을 시작하려면:

    from bedrock_agentcore.tools.browser_client import BrowserClient # Create a browser client client = BrowserClient(region="us-west-2") # Start a browser session client.start() print(f"Session ID: {client.session_id}") try: # Generate WebSocket URL and headers url, headers = client.generate_ws_headers() # Perform browser operations with your preferred automation tool finally: # Always close the session when done client.stop()
API
  1. API를 사용하여 새 브라우저 세션을 생성하려면 다음 호출을 사용합니다.

    # Using awscurl awscurl -X PUT \ "https://bedrock-agentcore.<Region>.amazonaws.com/browsers/aws.browser.v1/sessions/start" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ --service bedrock-agentcore \ --region <Region> \ -d '{ "name": "browser-session-abc12345", "description": "browser sandbox session", "sessionTimeoutSeconds": 300, "viewPort": { "height": 819, "width": 1456 } }'

브라우저 세션 가져오기

생성한 브라우저 세션에 대한 정보를 가져올 수 있습니다.

AWS CLI
  1. AWS CLI를 사용하여 브라우저 세션에 대한 정보를 가져오려면 get-browser-session 명령을 사용합니다.

    aws bedrock-agentcore get-browser-session \ --region <Region> \ --browser-identifier "aws.browser.v1" \ --session-id "<your-session-id>"
Boto3
  1. AWS SDK for Python(Boto3)을 사용하여 브라우저 세션에 대한 정보를 가져오려면 get_browser_session 메서드를 사용합니다.

    요청 구문

    다음은 요청 구문을 보여줍니다.

    response = dp_client.get_browser_session( browserIdentifier="aws.browser.v1", sessionId="<your-session-id>" )
API
  1. API를 사용하여 브라우저 세션에 대한 정보를 가져오려면 다음 호출을 사용합니다.

    # Using awscurl awscurl -X GET \ "https://bedrock-agentcore.<Region>.amazonaws.com/browsers/aws.browser.v1/sessions/get?sessionId=<your-session-id>" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ --service bedrock-agentcore \ --region <Region> { "browserIdentifier": "aws.browser.v1", "createdAt": "2025-07-14T22:16:40.713152248Z", "lastUpdatedAt": "2025-07-14T22:16:40.713152248Z", "name": "testBrowserSession1752531400", "sessionId": "<your-session-id>", "sessionReplayArtifact": null, "sessionTimeoutSeconds": 900, "status": "TERMINATED", "streams": { "automationStream": { "streamEndpoint": "wss://bedrock-agentcore.<Region>.amazonaws.com/browser-streams/aws.browser.v1/sessions/<your-session-id>/automation", "streamStatus": "ENABLED" }, "liveViewStream": { "streamEndpoint": "https://bedrock-agentcore.<Region>.amazonaws.com/browser-streams/aws.browser.v1/sessions/<your-session-id>/live-view" } }, "viewPort": { "height": 819, "width": 1456 } }

브라우저 세션과 상호 작용

브라우저 세션을 시작한 후에는 WebSocket API를 사용하여 브라우저 세션과 상호 작용할 수 있습니다. InvokeBrowser API를 사용하여 마우스 클릭, 키보드 입력 및 전체 화면 스크린샷을 포함한 직접 운영 체제 수준 제어를 수행할 수도 있습니다. 자세한 내용은 브라우저 OS 작업을 참조하세요.

Console
  1. ====== 콘솔을 사용하여 브라우저 세션과 상호 작용하려면

  2. 활성 브라우저 세션으로 이동합니다.

  3. 브라우저 인터페이스를 사용하여 웹 사이트로 이동하고, 웹 요소와 상호 작용하고, 기타 브라우저 작업을 수행합니다.

  4. 라이브 보기 기능을 통해 브라우저 활동을 실시간으로 볼 수 있습니다.

SDK
  1. 브라우저 세션과 프로그래밍 방식으로 상호 작용하려면 다음 URL 형식의 WebSocket 기반 스트리밍 API를 사용합니다.

    https://bedrock-agentcore.<Region>.amazonaws.com/browser-streams/{browser_id}/sessions/{session_id}/automation

    Playwright와 같은 라이브러리를 사용하여 WebSocket과의 연결을 설정하고 브라우저를 제어할 수 있습니다. 다음은 그 예입니다:

    from playwright.sync_api import sync_playwright, Playwright, BrowserType import os import base64 from bedrock_agentcore.tools.browser_client import browser_session def main(playwright: Playwright): # Keep browser session alive during usage with browser_session('us-west-2') as client: # Generate CDP endpoint and headers ws_url, headers = client.generate_ws_headers() # Connect to browser using headers chromium: BrowserType = playwright.chromium browser = chromium.connect_over_cdp(ws_url, headers=headers) # Use the first available context or create one context = browser.contexts[0] if browser.contexts else browser.new_context() page = context.pages[0] if context.pages else context.new_page() page.goto("https://amazon.com/") print("Navigated to Amazon") # Create CDP session for screenshot cdp_client = context.new_cdp_session(page) screenshot_data = cdp_client.send("Page.captureScreenshot", { "format": "jpeg", "quality": 80, "captureBeyondViewport": True }) # Decode and save screenshot image_data = base64.b64decode(screenshot_data['data']) with open("screenshot.jpeg", "wb") as f: f.write(image_data) print("✅ Screenshot saved as screenshot.jpeg") page.close() browser.close() with sync_playwright() as p: main(p)

    다음 예제 코드는 WebSocket 기반 스트리밍 API를 사용하여 라이브 보기를 수행하는 방법을 보여줍니다.

    https://bedrock-agentcore.<Region>.amazonaws.com/browser-streams/{browser_id}/sessions/{session_id}/live-view

    다음은 코드입니다.

    import time from rich.console import Console from bedrock_agentcore.tools.browser_client import browser_session from browser_viewer import BrowserViewerServer console = Console() def main(): try: # Step 1: Create browser session with browser_session('us-west-2') as client: print("\r ✅ Browser ready! ") ws_url, headers = client.generate_ws_headers() # Step 2: Start viewer server console.print("\n[cyan]Step 3: Starting viewer server...[/cyan]") viewer = BrowserViewerServer(client, port=8005) viewer_url = viewer.start(open_browser=True) # Keep running while True: time.sleep(1) except KeyboardInterrupt: console.print("\n\n[yellow]Shutting down...[/yellow]") if 'client' in locals(): client.stop() console.print("✅ Browser session terminated") except Exception as e: console.print(f"\n[red]Error: {e}[/red]") import traceback traceback.print_exc() if __name__ == "__main__": main()

브라우저 세션 나열

모든 활성 브라우저 세션을 나열하여 리소스를 모니터링하고 관리할 수 있습니다. 이는 활성 세션을 추적하거나, 장기 실행 세션을 식별하거나, 중지해야 하는 세션을 찾는 데 유용합니다.

AWS CLI
  1. AWS CLI를 사용하여 브라우저 세션을 나열하려면 list-browser-sessions 명령을 사용합니다.

    aws bedrock-agentcore list-browser-sessions \ --region <Region> \ --browser-id "<your-browser-id>" \ --max-results 10

    상태별로 세션을 필터링할 수도 있습니다.

    aws bedrock-agentcore list-browser-sessions \ --region <Region> \ --browser-id "<your-browser-id>" \ --status "READY"
Boto3
  1. AWS SDK for Python(Boto3)을 사용하여 브라우저 세션을 나열하려면 list_browser_sessions 메서드를 사용합니다.

    요청 구문

    다음은 요청 구문을 보여줍니다.

    response = dp_client.list_browser_sessions( browserIdentifier="aws.browser.v1" )

    상태별로 세션을 필터링할 수도 있습니다.

    # List only active sessions filtered_response = dp_client.list_browser_sessions( browserIdentifier="aws.browser.v1", status="READY" ) # Print filtered session information for session in filtered_response['items']: print(f"Ready Session ID: {session['sessionId']}") print(f"Name: {session['name']}") print("---")
API
  1. API를 사용하여 브라우저 세션을 나열하려면 다음 호출을 사용합니다.

    # Using awscurl awscurl -X POST \ "https://bedrock-agentcore.<Region>.amazonaws.com/browsers/<your-browser-id>/sessions/list" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ --service bedrock-agentcore \ --region <Region> \ -d '{ "maxResults": 10 }'

    상태별로 세션을 필터링할 수도 있습니다.

    # Using awscurl awscurl -X POST \ "https://bedrock-agentcore.<Region>.amazonaws.com/browsers/aws.browser.v1/sessions/list" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ --service bedrock-agentcore \ --region <Region> \ -d '{ "maxResults": 10, "status": "READY" }'

브라우저 세션 중지

브라우저 세션 사용을 마치면 중지하여 리소스를 해제하고 불필요한 요금을 방지해야 합니다.

AWS CLI
  1. AWS CLI를 사용하여 브라우저 세션을 중지하려면 stop-browser-session 명령을 사용합니다.

    aws bedrock-agentcore stop-browser-session \ --region <Region> \ --browser-id "<your-browser-id>" \ --session-id "<your-session-id>"
Boto3
  1. AWS SDK for Python(Boto3)을 사용하여 브라우저 세션을 중지하려면 stop_browser_session 메서드를 사용합니다.

    요청 구문

    다음은 요청 구문을 보여줍니다.

    response = dp_client.stop_browser_session( browserIdentifier="aws.browser.v1", sessionId="<your-session-id>", )
API
  1. API를 사용하여 브라우저 세션을 중지하려면 다음 호출을 사용합니다.

    # Using awscurl awscurl -X PUT \ "https://bedrock-agentcore.<Region>.amazonaws.com/browsers/aws.browser.v1/sessions/stop?sessionId=<your-session-id>" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ --service bedrock-agentcore \ --region <Region>

브라우저 스트림 업데이트

브라우저 스트림을 업데이트하여 자동화를 활성화하거나 비활성화할 수 있습니다. 이는 에이전트가 보고 싶지 않은 로그인 자격 증명과 같은 민감한 정보를 입력해야 할 때 유용합니다.

Boto3
  1. response = dp_client.update_browser_stream( browserIdentifier="aws.browser.v1", sessionId="<your-session-id>", streamUpdate={ "automationStreamUpdate": { "streamStatus": "DISABLED" # or "ENABLED" } } )
API
  1. awscurl -X PUT \ "https://bedrock-agentcore.<Region>.amazonaws.com/browsers/aws.browser.v1/sessions/streams/update?sessionId=<your-session-id>" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ --service bedrock-agentcore \ --region <Region> \ -d '{ "streamUpdate": { "automationStreamUpdate": { "streamStatus": "ENABLED" } } }'
CLI
  1. aws bedrock-agentcore update-browser-stream \ --region <Region> \ --browser-id "<your-browser-id>" \ --session-id "<your-session-id>" \ --stream-update automationStreamUpdate={streamStatus=ENABLED}