브라우저 확장 사용
브라우저 확장을 사용하면 세션 생성 시 브라우저 세션에 사용자 지정 확장을 설치할 수 있습니다. 이를 통해 자동화 작업, 웹 스크레이핑, 테스트 등에 대한 자체 확장을 사용하여 브라우저 동작을 사용자 지정할 수 있습니다.
개요
Amazon Bedrock AgentCore의 브라우저 확장은 다음과 같이 작동합니다.
-
자체 Amazon S3 버킷에 저장된 브라우저 확장 ZIP 파일 목록을 제공합니다.
-
서비스는 자격 증명을 사용하여 이러한 Amazon S3 객체에 액세스할 수 있는지 확인합니다.
-
브라우저 세션을 시작하는 동안 확장은 Amazon S3 버킷에서 다운로드되어 브라우저 세션에 설치됩니다.
사전 조건
브라우저 확장을 사용하기 전에 다음을 갖추어야 합니다.
-
일반 브라우저 사전 조건 완료
-
확장 ZIP 파일을 저장할 Amazon S3 버킷
-
확장이 포함된 Amazon S3 버킷에 액세스할 수 있는 IAM 권한입니다. IAM 정책에 다음 권한을 추가합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ExtensionS3Access",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:GetObjectVersion"
],
"Resource": [
"arn:aws:s3:::<S3Bucket>/<path_to_extensions>/*"
]
}
]
}
Amazon S3 버킷은 브라우저 세션과 동일한 AWS 계정에 있어야 합니다. 확장에는 10MB 파일 크기 제한과 세션당 최대 10개의 확장자가 있습니다.
확장 파일 준비
브라우저 도구와 함께 사용할 확장을 준비하려면:
-
Chrome 확장 생성
확장은 표준 Chromium 확장 형식을 따르고 Chromium 확장 지침을 준수해야 합니다. 각 확장명에는 유효한 manifest.json 파일이 포함되어야 합니다.
-
ZIP 파일 생성
확장 디렉터리 콘텐츠(상위 폴더 아님)를 압축합니다.
cd my-extension
zip -r ../my-extension.zip.
-
S3에 업로드
Amazon S3 버킷에 ZIP 파일을 업로드합니다.
aws s3 cp my-extension.zip s3://my-extensions-bucket/extensions/my-extension.zip
확장을 사용하여 브라우저 세션 생성
AWS CLI, SDK 또는 API를 사용하여 확장으로 브라우저 세션을 생성할 수 있습니다.
예
- AWS CLI
-
-
AWS CLI를 사용하여 확장으로 브라우저 세션을 시작하려면:
aws bedrock-agentcore start-browser-session \
--region <Region> \
--browser-identifier "aws.browser.v1" \
--name "my-session-with-extensions" \
--session-timeout-seconds 1800 \
--extensions '[
{
"location": {
"s3": {
"bucket": "my-extensions-bucket",
"prefix": "extensions/my-extension.zip"
}
}
}
]'
- Boto3
-
-
AWS SDK for Python(Boto3)을 사용하여 확장으로 브라우저 세션을 시작하려면:
import boto3
region = "us-west-2"
client = boto3.client('bedrock-agentcore', region_name=region)
response = client.start_browser_session(
browserIdentifier="aws.browser.v1",
name="my-session-with-extensions",
sessionTimeoutSeconds=1800,
viewPort={
'height': 1080,
'width': 1920
},
extensions=[
{
"location": {
"s3": {
"bucket": "my-extensions-bucket",
"prefix": "extensions/my-extension.zip"
}
}
},
{
"location": {
"s3": {
"bucket": "my-extensions-bucket",
"prefix": "extensions/another-extension.zip",
"versionId": "abc123" # Optional - for versioned S3 buckets
}
}
}
]
)
print(f"Session ID: {response['sessionId']}")
print(f"Status: {response['status']}")
print(f"Automation Stream: {response['streams']['automationStream']['streamEndpoint']}")
- API
-
-
API를 사용하여 확장으로 브라우저 세션을 시작하려면:
# 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": "my-session-with-extensions",
"sessionTimeoutSeconds": 1800,
"viewPort": {
"height": 1080,
"width": 1920
},
"extensions": [
{
"location": {
"s3": {
"bucket": "my-extensions-bucket",
"prefix": "extensions/my-extension.zip"
}
}
},
{
"location": {
"s3": {
"bucket": "my-extensions-bucket",
"prefix": "extensions/another-extension.zip"
}
}
}
]
}'