View a markdown version of this page

Gerenciando sessões do navegador - Amazon Bedrock AgentCore

Gerenciando sessões do navegador

Iniciando uma sessão do navegador

Depois de criar um navegador, você pode iniciar uma sessão para interagir com aplicativos da web.

exemplo
AWS CLI
  1. Para iniciar uma sessão do navegador usando a AWS CLI, use o 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. Para iniciar uma sessão do navegador usando o AWS SDK para Python (Boto3), use o método: start_browser_session

    Sintaxe da solicitação

    Veja a seguir a sintaxe da solicitação:

    response = dp_client.start_browser_session( browserIdentifier="aws.browser.v1", name="browser-session-1", sessionTimeoutSeconds=3600, viewPort={ 'height': 819, 'width': 1456 } )
BrowserClient
  1. Para iniciar uma sessão do navegador usando a BrowserClient classe para ter mais controle sobre o ciclo de vida da sessão:

    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. Para criar uma nova sessão do navegador usando a API, use a seguinte chamada:

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

Obter sessão do navegador

Você pode obter informações sobre uma sessão do navegador que você criou.

exemplo
AWS CLI
  1. Para obter informações sobre uma sessão do navegador usando a AWS CLI, use o get-browser-session comando:

    aws bedrock-agentcore get-browser-session \ --region <Region> \ --browser-identifier "aws.browser.v1" \ --session-id "<your-session-id>"
Boto3
  1. Para obter informações sobre uma sessão do navegador usando o AWS SDK para Python (Boto3), use o método: get_browser_session

    Sintaxe da solicitação

    Veja a seguir a sintaxe da solicitação:

    response = dp_client.get_browser_session( browserIdentifier="aws.browser.v1", sessionId="<your-session-id>" )
API
  1. Para obter informações sobre uma sessão do navegador usando a API, use a seguinte chamada:

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

Interagindo com uma sessão do navegador

Depois de iniciar uma sessão do navegador, você pode interagir com ela usando a WebSocket API. Você também pode usar a InvokeBrowser API para controle direto no nível do sistema operacional, incluindo cliques do mouse, entrada de teclado e capturas de tela em tela cheia. Para obter mais informações, consulte Ação do sistema operacional do navegador.

exemplo
Console
  1. ====== Para interagir com uma sessão do navegador usando o console

  2. Navegue até a sessão ativa do navegador.

  3. Use a interface do navegador para navegar em sites, interagir com elementos da web e realizar outras ações do navegador.

  4. Você pode visualizar a atividade do navegador em tempo real por meio do recurso de visualização ao vivo.

SDK
  1. Para interagir programaticamente com uma sessão do navegador, use a API de WebSocket-based streaming com o seguinte formato de URL:

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

    Você pode usar bibliotecas como o Playwright para estabelecer uma conexão com o WebSocket e controlar o navegador. Veja um exemplo abaixo:

    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)

    O código de exemplo a seguir mostra como você pode realizar a exibição ao vivo usando a API WebSocket-based de streaming.

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

    Abaixo está o código.

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

Listando sessões do navegador

Você pode listar todas as sessões ativas do navegador para monitorar e gerenciar seus recursos. Isso é útil para rastrear sessões ativas, identificar sessões de longa duração ou encontrar sessões que precisam ser interrompidas.

exemplo
AWS CLI
  1. Para listar as sessões do navegador usando a AWS CLI, use o list-browser-sessions comando:

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

    Você também pode filtrar as sessões por status:

    aws bedrock-agentcore list-browser-sessions \ --region <Region> \ --browser-id "<your-browser-id>" \ --status "READY"
Boto3
  1. Para listar as sessões do navegador usando o AWS SDK para Python (Boto3), use o método: list_browser_sessions

    Sintaxe da solicitação

    Veja a seguir a sintaxe da solicitação:

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

    Você também pode filtrar as sessões por 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. Para listar as sessões do navegador usando a API, use a seguinte chamada:

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

    Você também pode filtrar as sessões por 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" }'

Interrompendo uma sessão do navegador

Ao terminar de usar uma sessão do navegador, você deve interrompê-la para liberar recursos e evitar cobranças desnecessárias.

exemplo
AWS CLI
  1. Para interromper uma sessão do navegador usando a AWS CLI, use o stop-browser-session comando:

    aws bedrock-agentcore stop-browser-session \ --region <Region> \ --browser-id "<your-browser-id>" \ --session-id "<your-session-id>"
Boto3
  1. Para interromper uma sessão do navegador usando o AWS SDK para Python (Boto3), use o método: stop_browser_session

    Sintaxe da solicitação

    Veja a seguir a sintaxe da solicitação:

    response = dp_client.stop_browser_session( browserIdentifier="aws.browser.v1", sessionId="<your-session-id>", )
API
  1. Para interromper uma sessão do navegador usando a API, use a seguinte chamada:

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

Atualizando fluxos do navegador

Você pode atualizar os fluxos do navegador para ativar ou desativar a automação. Isso é útil quando você precisa inserir informações confidenciais, como credenciais de login, que você não quer que o agente veja.

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