

# Rekaman Sesi dan Putar Ulang
<a name="browser-session-recording"></a>

Perekaman dan pemutaran ulang sesi browser memberikan pengamatan komprehensif untuk tujuan debugging, audit, atau pelatihan. Saat Anda membuat browser dengan perekaman sesi diaktifkan, Amazon Bedrock AgentCore secara otomatis menangkap interaksi browser dan menyimpannya di bucket Amazon S3 yang Anda tentukan untuk analisis selanjutnya.

Pemutaran ulang sesi menangkap data interaksi browser komprehensif yang memungkinkan Anda melihat tayangan ulang dan memahami tindakan yang terjadi selama sesi browser. Fungsionalitas ini membantu Anda mengatasi kesalahan dan meningkatkan pemanggilan future dengan memberikan wawasan terperinci tentang perilaku browser.

Informasi yang dikumpulkan selama pemutaran ulang sesi meliputi:
+ Perubahan dan mutasi DOM sesi
+ Tindakan pengguna termasuk klik, gulir, dan interaksi formulir
+ Log konsol dan pesan kesalahan
+ Acara Chrome DevTools Protocol (CDP)
+ Acara jaringan dan permintaan HTTP

## Prasyarat untuk perekaman sesi
<a name="session-replay-prerequisites"></a>

Untuk mengaktifkan perekaman sesi, Anda perlu:
+ Bucket Amazon S3 untuk menyimpan data rekaman
+ Peran eksekusi IAM dengan izin untuk menulis ke bucket Amazon S3 Anda
+ Alat browser khusus yang dikonfigurasi dengan perekaman diaktifkan

## Konfigurasikan peran IAM untuk merekam
<a name="session-replay-permissions"></a>

Untuk mengaktifkan perekaman sesi, Anda memerlukan peran eksekusi IAM dengan izin untuk menulis data rekaman ke Amazon S3 dan aktivitas log ke. CloudWatch [Untuk petunjuk mendetail tentang pengaturan izin, lihat Izin.](browser-resource-session-management.md#browser-permissions)

Peran eksekusi memerlukan izin tambahan di luar izin browser standar:

```
{
    "Sid": "S3Permissions",
    "Effect": "Allow",
    "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:ListBucket",
        "s3:ListMultipartUploadParts",
        "s3:AbortMultipartUpload"
    ],
    "Resource": [
        "arn:aws:s3:::your-recording-bucket",
        "arn:aws:s3:::your-recording-bucket/*"
    ]
},
{
    "Sid": "CloudWatchLogsPermissions",
    "Effect": "Allow",
    "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogStreams"
    ],
    "Resource": "*"
}
```

Ganti `your-recording-bucket` dengan nama bucket Amazon S3 Anda yang sebenarnya.

## Langkah 1: Buat alat browser dengan merekam
<a name="session-replay-step1"></a>

Buat alat browser khusus dengan perekaman diaktifkan. Untuk petunjuk mendetail tentang cara membuat alat browser, lihat [Membuat AgentCore Browser](browser-using-tool.md#browser-create).

Saat membuat alat browser Anda, pastikan Anda:
+ Aktifkan perekaman sesi dalam konfigurasi
+ Tentukan bucket dan awalan Amazon S3 Anda untuk menyimpan rekaman
+ Gunakan peran eksekusi IAM dari Langkah 1

Contoh menggunakan Python SDK:

```
import boto3
import uuid

region = "us-west-2"
bucket = "your-recording-bucket"

client = boto3.client("bedrock-agentcore-control", region_name=region)

response = client.create_browser(
    name="MyRecordingBrowser",
    description="Browser with session recording enabled",
    networkConfiguration={"networkMode": "PUBLIC"},
    executionRoleArn="arn:aws:iam::123456789012:role/AgentCoreBrowserRecordingRole",
    clientToken=str(uuid.uuid4()),
    recording={
        "enabled": True,
        "s3Location": {
            "bucket": bucket,
            "prefix": "browser-recordings"
        }
    }
)

browser_identifier = response.get("browserId") or response.get("browserIdentifier")
print(f"Created browser with recording: {browser_identifier}")
print(f"Recordings will be stored at: s3://{bucket}/browser-recordings/")
```

## Langkah 2: Gunakan browser yang mendukung perekaman
<a name="session-replay-step2"></a>

Gunakan browser Anda yang mendukung perekaman dengan kerangka kerja otomatisasi apa pun. Semua interaksi browser akan direkam secara otomatis. Contoh menggunakan Strands:

```
from strands import Agent
from strands_tools.browser import AgentCoreBrowser

# Use the browser created with recording
browser_identifier = "your-browser-identifier"
region = "us-west-2"
browser_tool = AgentCoreBrowser(region=region, identifier=browser_identifier)

agent = Agent(tools=[browser_tool.browser])
prompt = (
    "Navigate to https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/what-is-bedrock-agentcore.html "
    "and summarize the key features of AgentCore."
)

response = agent(prompt)
print("Agent Response:")
print(response.message["content"][0]["text"])
```

Semua interaksi selama sesi ini akan direkam dan diunggah secara otomatis ke bucket Amazon S3 Anda saat sesi berakhir.

## Langkah 3: Pantau sesi langsung dan putar ulang rekaman
<a name="session-replay-step3"></a>

 AWS Konsol menyediakan alat komprehensif untuk pemantauan waktu nyata dan analisis sesi yang direkam.

### Pemantauan tampilan langsung
<a name="console-live-view"></a>

Pantau sesi browser secara real-time dan berinteraksi dengan sesi aktif:

 **Untuk mengakses tampilan langsung di konsol** 

1. **Buka AgentCore konsol Amazon Bedrock dan navigasikan ke alat Built-in ** 

1. Pilih alat browser Anda dari daftar (misalnya,`MyRecordingBrowser`)

1. Di bagian **sesi Browser**, cari sesi aktif dengan status **Siap atau Sedang** **berlangsung** 

1. Di kolom **Live view/recording**, klik URL “Lihat sesi langsung” yang disediakan

1. Tampilan langsung terbuka di jendela browser baru, menampilkan sesi browser waktu nyata

Antarmuka tampilan langsung menyediakan:
+ Real-time aliran video dari sesi browser
+ Kontrol interaktif untuk mengambil alih atau melepaskan kontrol dari otomatisasi
+ Indikator status sesi dan informasi koneksi
+ Kemampuan untuk berinteraksi langsung dengan browser saat kontrol diaktifkan

### Pemutaran ulang dan analisis sesi
<a name="console-recording-insights"></a>

Akses rekaman dan analisis sesi terperinci melalui antarmuka pemutaran ulang konsol:

 **Untuk mengakses pemutaran ulang sesi di konsol** 

1. Arahkan ke alat browser Anda dan pilih sesi yang sudah selesai dengan status **Terminated**

1. Klik **Lihat Rekaman** untuk sesi yang ingin Anda analisis

1. Halaman replay sesi ditampilkan dengan alat analisis yang komprehensif

 **Fitur analisis sesi** 

Konsol menyediakan beberapa alat analisis:
+  **Pemutar Video**: Pemutaran interaktif dengan scrubber timeline untuk navigasi
+  **Navigasi Halaman**: Panel menampilkan semua halaman yang dikunjungi dengan rentang waktu
+  **Tindakan Pengguna**: Semua interaksi pengguna dengan stempel waktu, metode, dan detail
+  **Page DOM**: struktur DOM dan konten HTML untuk setiap halaman
+  **Console Logs**: Output konsol browser, kesalahan, dan pesan log
+  Acara **CDP: Acara** DevTools Protokol Chrome dengan parameter dan hasil
+  **Acara Jaringan**: Permintaan HTTP, tanggapan, kode status, dan waktu

 **Navigasikan rekaman** 

Gunakan metode ini untuk menavigasi rekaman:
+ Klik pada halaman di panel Pages untuk melompat ke momen tertentu
+ Klik pada tindakan pengguna untuk melihat di mana mereka terjadi di timeline
+ Gunakan scrubber timeline video untuk navigasi yang tepat
+ Pilih **Lihat tautan perekaman** di tabel tindakan untuk beralih ke interaksi tertentu

## Langkah 4: Akses rekaman secara terprogram
<a name="session-replay-step4"></a>

Akses tampilan langsung dan rekaman insight secara terprogram menggunakan Amazon Bedrock AgentCore SDK dan API untuk integrasi kustom dan analisis otomatis.

### Akses tampilan langsung terprogram
<a name="programmatic-live-view"></a>

Connect to live browser session menggunakan browser client dan viewer server:

```
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:
        # Create browser session
        with browser_session('us-west-2') as client:
            print("✅ Browser ready!")
            ws_url, headers = client.generate_ws_headers()

            # Start viewer server
            console.print("[cyan]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("[yellow]Shutting down...[/yellow]")
        if 'client' in locals():
            client.stop()
            console.print("✅ Browser session terminated")

if __name__ == "__main__":
    main()
```

### Akses perekaman terprogram
<a name="programmatic-recording-access"></a>

Akses data perekaman langsung dari Amazon S3 untuk alur kerja analisis kustom:

```
import boto3

s3_client = boto3.client('s3', region_name='us-west-2')

# List recordings in your bucket
bucket_name = "your-recording-bucket"
prefix = "browser-recordings/"

response = s3_client.list_objects_v2(Bucket=bucket_name, Prefix=prefix)

print(f"Recordings in s3://{bucket_name}/{prefix}:")
for obj in response.get('Contents', []):
    print(f"  {obj['Key']} ({obj['Size']} bytes)")
    print(f"    Last Modified: {obj['LastModified']}")
    print()
```

Merekam struktur data:

```
s3://your-recording-bucket/browser-recordings/
  └── session-id/
      ├── batch_1.ndjson.gz
      ├── batch_2.ndjson.gz
      └── batch_3.ndjson.gz
```

Setiap sesi membuat folder dengan ID sesi, dan data rekaman diunggah dalam potongan saat sesi berlangsung.

## Contoh program pemutaran ulang sesi
<a name="session-replay-programmatic-usage"></a>

Untuk kasus penggunaan lanjutan, Anda dapat membuat pemirsa pemutaran ulang sesi kustom dan mengintegrasikan data rekaman ke dalam alur kerja analisis Anda sendiri.

 GitHub Contoh berikut menunjukkan penampil replay sesi mandiri dan seperti apa pengalaman browser lengkap saat menggunakan fitur pemutaran ulang sesi browser.

Untuk contoh tambahan, lihat [contoh AgentCore Browser pada GitHub](https://github.com/awslabs/amazon-bedrock-agentcore-samples/blob/main/01-tutorials/05-AgentCore-tools/02-Agent-Core-browser-tool/interactive_tools/).

### Penampil Ulang Sesi Mandiri
<a name="session-replay-standalone"></a>

Penampil ulang sesi mandiri adalah alat terpisah untuk melihat sesi browser yang direkam langsung dari Amazon S3 tanpa membuat browser baru.
+ Connect langsung ke S3 untuk melihat rekaman
+ Lihat rekaman sebelumnya dengan menentukan ID sesinya
+ Menampilkan pesan kesalahan saat artefak hilang dari S3, dengan URL pemutaran ulang konsol khusus untuk ID sesi
+ Antarmuka pemutaran video interaktif dengan navigasi garis waktu
+ Penanda tindakan pada timeline yang menampilkan pengisian formulir, klik, dan peristiwa navigasi
+ Tabel observabilitas menampilkan halaman yang dilalui dengan durasi dan detail URL
+ Acara konsol, log CDP, dan log jaringan untuk setiap interaksi halaman
+ Pelacakan durasi sesi terintegrasi di tingkat halaman
+ Real-time verifikasi tindakan dengan korelasi visual antara video dan data tindakan

```
# View the latest recording in a bucket
python view_recordings.py --bucket session-record-test-123456789012 --prefix replay-data

# View a specific recording
python view_recordings.py --bucket session-record-test-123456789012 --prefix replay-data --session 01JZVDG02M8MXZY2N7P3PKDQ74

# Use a specific AWS profile
python view_recordings.py --bucket session-record-test-123456789012 --prefix replay-data --profile my-profile
```

Untuk referensi, lihat [Penampil ulang sesi mandiri](https://github.com/awslabs/amazon-bedrock-agentcore-samples/blob/main/01-tutorials/05-AgentCore-tools/02-Agent-Core-browser-tool/interactive_tools/live_view_sessionreplay/view_recordings.py) di. GitHub

### Pengalaman Browser Lengkap dengan Merekam dan Memutar Ulang
<a name="session-replay-complete"></a>

Alat komprehensif untuk membuat sesi browser dengan kemampuan merekam dan fitur replay lanjutan.
+ Buat sesi browser dengan perekaman otomatis ke S3
+ Tampilan langsung dengan kontrol interaktif (take/release)
+ Sesuaikan resolusi tampilan dengan cepat
+ Perekaman sesi otomatis ke S3
+ Penampil replay sesi terintegrasi dengan antarmuka pemutar video
+ Penggosokan garis waktu dengan pelacakan lokasi tindakan yang tepat
+ Page-by-page analisis dengan garis waktu navigasi dan penyalinan URL
+ Verifikasi tindakan pengisian formulir dengan detail lokasi klik
+ Pelacakan durasi sesi terintegrasi di tingkat halaman
+ Real-time verifikasi tindakan dengan korelasi visual antara video dan data tindakan

```
# View the latest recording in a bucket
python -m live_view_sessionreplay.browser_interactive_session
```

Untuk referensi, lihat [Sesi browser interaktif aktif GitHub](https://github.com/awslabs/amazon-bedrock-agentcore-samples/blob/main/01-tutorials/05-AgentCore-tools/02-Agent-Core-browser-tool/interactive_tools/live_view_sessionreplay/browser_interactive_session.py).