View a markdown version of this page

Gestion des sessions du navigateur - Amazon Bedrock AgentCore

Gestion des sessions du navigateur

Démarrage d'une session de navigateur

Après avoir créé un navigateur, vous pouvez démarrer une session pour interagir avec les applications Web.

Exemple
AWS CLI
  1. Pour démarrer une session de navigateur à l'aide de la AWS CLI, utilisez la start-browser-session commande suivante :

    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. Pour démarrer une session de navigateur à l'aide du AWS SDK pour Python (Boto3), utilisez la méthode suivante : start_browser_session

    Syntaxe de la demande

    Voici la syntaxe de la demande :

    response = dp_client.start_browser_session( browserIdentifier="aws.browser.v1", name="browser-session-1", sessionTimeoutSeconds=3600, viewPort={ 'height': 819, 'width': 1456 } )
BrowserClient
  1. Pour démarrer une session de navigateur à l'aide de la BrowserClient classe afin de mieux contrôler le cycle de vie de la session :

    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. Pour créer une nouvelle session de navigateur à l'aide de l'API, utilisez l'appel suivant :

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

Obtenir la session du navigateur

Vous pouvez obtenir des informations sur une session de navigateur que vous avez créée.

Exemple
AWS CLI
  1. Pour obtenir des informations sur une session de navigateur à l'aide de la AWS CLI, utilisez la get-browser-session commande :

    aws bedrock-agentcore get-browser-session \ --region <Region> \ --browser-identifier "aws.browser.v1" \ --session-id "<your-session-id>"
Boto3
  1. Pour obtenir des informations sur une session de navigateur à l'aide du AWS SDK pour Python (Boto3), utilisez la méthode suivante : get_browser_session

    Syntaxe de la demande

    Voici la syntaxe de la demande :

    response = dp_client.get_browser_session( browserIdentifier="aws.browser.v1", sessionId="<your-session-id>" )
API
  1. Pour obtenir des informations sur une session de navigateur à l'aide de l'API, utilisez l'appel suivant :

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

Interaction avec une session de navigateur

Une fois que vous avez ouvert une session de navigateur, vous pouvez interagir avec celle-ci à l'aide de l' WebSocket API. Vous pouvez également utiliser l' InvokeBrowser API pour un contrôle direct au niveau du système d'exploitation, y compris les clics de souris, les saisies au clavier et les captures d'écran en plein écran. Pour plus d'informations, consultez la section Action du système d'exploitation du navigateur.

Exemple
Console
  1. ====== Pour interagir avec une session du navigateur à l'aide de la console

  2. Accédez à votre session de navigateur active.

  3. Utilisez l'interface du navigateur pour accéder à des sites Web, interagir avec des éléments Web et effectuer d'autres actions du navigateur.

  4. Vous pouvez visualiser l'activité du navigateur en temps réel grâce à la fonction d'affichage en direct.

SDK
  1. Pour interagir avec une session de navigateur par programmation, utilisez l'API de WebSocket-based streaming au format d'URL suivant :

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

    Vous pouvez utiliser des bibliothèques telles que Playwright pour établir une connexion avec le navigateur WebSocket et le contrôler. Voici un exemple :

    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)

    L'exemple de code suivant montre comment vous pouvez effectuer une visualisation en direct à l'aide de l'API de WebSocket-based streaming.

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

    Vous trouverez ci-dessous le code.

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

Lister les sessions du navigateur

Vous pouvez répertorier toutes les sessions de navigateur actives pour surveiller et gérer vos ressources. Cela est utile pour suivre les sessions actives, identifier les sessions de longue durée ou trouver les sessions qui doivent être arrêtées.

Exemple
AWS CLI
  1. Pour répertorier les sessions du navigateur à l'aide de la AWS CLI, utilisez la list-browser-sessions commande :

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

    Vous pouvez également filtrer les sessions par statut :

    aws bedrock-agentcore list-browser-sessions \ --region <Region> \ --browser-id "<your-browser-id>" \ --status "READY"
Boto3
  1. Pour répertorier les sessions du navigateur à l'aide du AWS SDK pour Python (Boto3), utilisez la méthode suivante : list_browser_sessions

    Syntaxe de la demande

    Voici la syntaxe de la demande :

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

    Vous pouvez également filtrer les sessions par statut :

    # 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. Pour répertorier les sessions du navigateur à l'aide de l'API, utilisez l'appel suivant :

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

    Vous pouvez également filtrer les sessions par statut :

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

Arrêt d'une session de navigateur

Lorsque vous avez terminé d'utiliser une session de navigateur, vous devez l'arrêter pour libérer des ressources et éviter des frais inutiles.

Exemple
AWS CLI
  1. Pour arrêter une session de navigateur à l'aide de la AWS CLI, utilisez la stop-browser-session commande suivante :

    aws bedrock-agentcore stop-browser-session \ --region <Region> \ --browser-id "<your-browser-id>" \ --session-id "<your-session-id>"
Boto3
  1. Pour arrêter une session de navigateur à l'aide du AWS SDK pour Python (Boto3), utilisez la méthode suivante : stop_browser_session

    Syntaxe de la demande

    Voici la syntaxe de la demande :

    response = dp_client.stop_browser_session( browserIdentifier="aws.browser.v1", sessionId="<your-session-id>", )
API
  1. Pour arrêter une session de navigateur à l'aide de l'API, utilisez l'appel suivant :

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

Mettre à jour les flux du navigateur

Vous pouvez mettre à jour les flux du navigateur pour activer ou désactiver l'automatisation. Cela est utile lorsque vous devez saisir des informations sensibles, telles que des informations de connexion, que vous ne souhaitez pas que l'agent voie.

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