View a markdown version of this page

Gestione delle sessioni del browser - Amazon Bedrock AgentCore

Gestione delle sessioni del browser

Avvio di una sessione del browser

Dopo aver creato un browser, puoi avviare una sessione per interagire con le applicazioni web.

Esempio
AWS CLI
  1. Per avviare una sessione del browser utilizzando la AWS CLI, usa il start-browser-session comando:

    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. Per avviare una sessione del browser utilizzando l' AWS SDK per Python (Boto3), usa il metodo: start_browser_session

    Sintassi della richiesta

    Quanto segue mostra la sintassi della richiesta:

    response = dp_client.start_browser_session( browserIdentifier="aws.browser.v1", name="browser-session-1", sessionTimeoutSeconds=3600, viewPort={ 'height': 819, 'width': 1456 } )
BrowserClient
  1. Per avviare una sessione del browser utilizzando la BrowserClient classe per un maggiore controllo sul ciclo di vita della sessione:

    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. Per creare una nuova sessione del browser utilizzando l'API, utilizzate la seguente chiamata:

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

Ottieni la sessione del browser

È possibile ottenere informazioni su una sessione del browser creata.

Esempio
AWS CLI
  1. Per ottenere informazioni su una sessione del browser utilizzando la AWS CLI, usa il get-browser-session comando:

    aws bedrock-agentcore get-browser-session \ --region <Region> \ --browser-identifier "aws.browser.v1" \ --session-id "<your-session-id>"
Boto3
  1. Per ottenere informazioni su una sessione del browser utilizzando l' AWS SDK for Python (Boto3), usa il metodo: get_browser_session

    Sintassi della richiesta

    Quanto segue mostra la sintassi della richiesta:

    response = dp_client.get_browser_session( browserIdentifier="aws.browser.v1", sessionId="<your-session-id>" )
API
  1. Per ottenere informazioni su una sessione del browser utilizzando l'API, utilizza la seguente chiamata:

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

Interazione con una sessione del browser

Una volta avviata una sessione del browser, è possibile interagire con essa utilizzando l' WebSocket API. Puoi anche utilizzare l' InvokeBrowser API per il controllo diretto a livello di sistema operativo, inclusi i clic del mouse, l'input da tastiera e le schermate a schermo intero. Per ulteriori informazioni, consulta Browser OS action.

Esempio
Console
  1. ====== Interagire con una sessione del browser utilizzando la console

  2. Passa alla sessione attiva del browser.

  3. Utilizzate l'interfaccia del browser per navigare nei siti Web, interagire con gli elementi Web ed eseguire altre azioni del browser.

  4. È possibile visualizzare l'attività del browser in tempo reale tramite la funzione di visualizzazione dal vivo.

SDK
  1. Per interagire con una sessione del browser a livello di codice, utilizza l'API di WebSocket-based streaming con il seguente formato URL:

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

    Puoi usare librerie come Playwright per stabilire una connessione con WebSocket e controllare il browser. Ecco un esempio:

    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)

    Il codice di esempio seguente mostra come è possibile eseguire la visualizzazione dal vivo utilizzando l'API di WebSocket-based streaming.

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

    Di seguito è riportato il codice.

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

Elenco delle sessioni del browser

Puoi elencare tutte le sessioni attive del browser per monitorare e gestire le tue risorse. Ciò è utile per tenere traccia delle sessioni attive, identificare sessioni di lunga durata o trovare sessioni che devono essere interrotte.

Esempio
AWS CLI
  1. Per elencare le sessioni del browser utilizzando la AWS CLI, usa il list-browser-sessions comando:

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

    Puoi anche filtrare le sessioni per stato:

    aws bedrock-agentcore list-browser-sessions \ --region <Region> \ --browser-id "<your-browser-id>" \ --status "READY"
Boto3
  1. Per elencare le sessioni del browser che utilizzano l' AWS SDK per Python (Boto3), usa il metodo: list_browser_sessions

    Sintassi della richiesta

    Quanto segue mostra la sintassi della richiesta:

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

    Puoi anche filtrare le sessioni per stato:

    # 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. Per elencare le sessioni del browser che utilizzano l'API, utilizza la seguente chiamata:

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

    Puoi anche filtrare le sessioni per stato:

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

Interruzione di una sessione del browser

Al termine dell'utilizzo di una sessione del browser, è necessario interromperla per liberare risorse ed evitare addebiti inutili.

Esempio
AWS CLI
  1. Per interrompere una sessione del browser utilizzando la AWS CLI, usa il stop-browser-session comando:

    aws bedrock-agentcore stop-browser-session \ --region <Region> \ --browser-id "<your-browser-id>" \ --session-id "<your-session-id>"
Boto3
  1. Per interrompere una sessione del browser utilizzando l' AWS SDK per Python (Boto3), usa il metodo: stop_browser_session

    Sintassi della richiesta

    Quanto segue mostra la sintassi della richiesta:

    response = dp_client.stop_browser_session( browserIdentifier="aws.browser.v1", sessionId="<your-session-id>", )
API
  1. Per interrompere una sessione del browser utilizzando l'API, utilizza la seguente chiamata:

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

Aggiornamento degli stream del browser

È possibile aggiornare gli stream del browser per abilitare o disabilitare l'automazione. Ciò è utile quando è necessario inserire informazioni sensibili come le credenziali di accesso che non si desidera che l'agente veda.

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