View a markdown version of this page

Mengelola Sesi Browser - Batuan Dasar Amazon AgentCore

Mengelola Sesi Browser

Memulai sesi browser

Setelah membuat browser, Anda dapat memulai sesi untuk berinteraksi dengan aplikasi web.

contoh
AWS CLI
  1. Untuk memulai sesi Browser menggunakan AWS CLI, gunakan perintah: 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. Untuk memulai sesi Browser menggunakan AWS SDK for Python (Boto3), gunakan metode: start_browser_session

    Permintaan Sintaks

    Berikut ini menunjukkan sintaks permintaan:

    response = dp_client.start_browser_session( browserIdentifier="aws.browser.v1", name="browser-session-1", sessionTimeoutSeconds=3600, viewPort={ 'height': 819, 'width': 1456 } )
BrowserClient
  1. Untuk memulai sesi browser menggunakan BrowserClient kelas untuk kontrol lebih lanjut atas siklus hidup sesi:

    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. Untuk membuat sesi browser baru menggunakan API, gunakan panggilan berikut:

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

Dapatkan sesi Browser

Anda bisa mendapatkan informasi tentang sesi browser yang telah Anda buat.

contoh
AWS CLI
  1. Untuk mendapatkan informasi tentang sesi browser menggunakan AWS CLI, gunakan perintah: get-browser-session

    aws bedrock-agentcore get-browser-session \ --region <Region> \ --browser-identifier "aws.browser.v1" \ --session-id "<your-session-id>"
Boto3
  1. Untuk mendapatkan informasi tentang sesi browser menggunakan AWS SDK for Python (Boto3), gunakan metode: get_browser_session

    Permintaan Sintaks

    Berikut ini menunjukkan sintaks permintaan:

    response = dp_client.get_browser_session( browserIdentifier="aws.browser.v1", sessionId="<your-session-id>" )
API
  1. Untuk mendapatkan informasi tentang sesi browser menggunakan API, gunakan panggilan berikut:

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

Berinteraksi dengan sesi browser

Setelah Anda memulai sesi Browser, Anda dapat berinteraksi dengannya menggunakan WebSocket API. Anda juga dapat menggunakan InvokeBrowser API untuk kontrol tingkat sistem operasi langsung, termasuk klik mouse, input keyboard, dan tangkapan layar layar penuh. Untuk informasi selengkapnya, lihat Tindakan OS Browser.

contoh
Console
  1. ====== Untuk berinteraksi dengan sesi Browser menggunakan konsol

  2. Arahkan ke sesi Browser aktif Anda.

  3. Gunakan antarmuka browser untuk menavigasi ke situs web, berinteraksi dengan elemen web, dan melakukan tindakan browser lainnya.

  4. Anda dapat melihat aktivitas browser secara real-time melalui fitur live view.

SDK
  1. Untuk berinteraksi dengan sesi Browser secara terprogram, gunakan API WebSocket-based streaming dengan format URL berikut:

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

    Anda dapat menggunakan pustaka seperti Playwright untuk membuat koneksi dengan WebSocket dan mengontrol browser. Berikut ini contohnya:

    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)

    Contoh kode berikut menunjukkan bagaimana Anda dapat melakukan live view menggunakan API WebSocket-based streaming.

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

    Di bawah ini adalah kodenya.

    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()

Daftar sesi browser

Anda dapat membuat daftar semua sesi browser aktif untuk memantau dan mengelola sumber daya Anda. Ini berguna untuk melacak sesi aktif, mengidentifikasi sesi yang berjalan lama, atau menemukan sesi yang perlu dihentikan.

contoh
AWS CLI
  1. Untuk membuat daftar sesi Browser menggunakan AWS CLI, gunakan perintah: list-browser-sessions

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

    Anda juga dapat memfilter sesi berdasarkan status:

    aws bedrock-agentcore list-browser-sessions \ --region <Region> \ --browser-id "<your-browser-id>" \ --status "READY"
Boto3
  1. Untuk membuat daftar sesi Browser menggunakan AWS SDK for Python (Boto3), gunakan metode: list_browser_sessions

    Permintaan Sintaks

    Berikut ini menunjukkan sintaks permintaan:

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

    Anda juga dapat memfilter sesi berdasarkan status:

    # 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. Untuk membuat daftar sesi browser menggunakan API, gunakan panggilan berikut:

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

    Anda juga dapat memfilter sesi berdasarkan status:

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

Menghentikan sesi browser

Ketika Anda selesai menggunakan sesi Browser, Anda harus menghentikannya untuk melepaskan sumber daya dan menghindari biaya yang tidak perlu.

contoh
AWS CLI
  1. Untuk menghentikan sesi Browser menggunakan AWS CLI, gunakan perintah: stop-browser-session

    aws bedrock-agentcore stop-browser-session \ --region <Region> \ --browser-id "<your-browser-id>" \ --session-id "<your-session-id>"
Boto3
  1. Untuk menghentikan sesi Browser menggunakan AWS SDK for Python (Boto3), gunakan metode: stop_browser_session

    Permintaan Sintaks

    Berikut ini menunjukkan sintaks permintaan:

    response = dp_client.stop_browser_session( browserIdentifier="aws.browser.v1", sessionId="<your-session-id>", )
API
  1. Untuk menghentikan sesi browser menggunakan API, gunakan panggilan berikut:

    # 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>

Memperbarui aliran browser

Anda dapat memperbarui aliran browser untuk mengaktifkan atau menonaktifkan otomatisasi. Ini berguna ketika Anda perlu memasukkan informasi sensitif seperti kredensi login yang Anda tidak ingin agen untuk melihat.

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