使用浏览器扩展
浏览器扩展允许您在创建会话时将自定义扩展程序安装到浏览器会话中。这使您能够使用自己的扩展程序自定义浏览器行为,用于自动化任务、网页抓取、测试等。
概述
Amazon Bedrock 中的浏览器扩展程序 AgentCore 的工作原理如下:
-
您提供了一份存储在您自己的 Amazon S3 存储桶中的浏览器扩展 ZIP 文件列表
-
该服务使用您的证书验证您是否有权访问这些 Amazon S3 对象
-
在浏览器会话启动期间,扩展程序将从您的 Amazon S3 存储桶下载并安装到浏览器会话中
先决条件
在使用浏览器扩展程序之前,请确保:
-
已完成浏览器常规先决条件
-
用于存储您的扩展 ZIP 文件的亚马逊 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 账户中。扩展程序的文件大小限制为 10 MB,每个会话最多有 10 个扩展名。
准备扩展文件
要准备用于浏览器工具的扩展程序,请执行以下操作:
-
创建 Chrome 扩展程序
您的扩展程序应遵循标准的 Chromium 扩展格式并遵守 Chromium 扩展指南。每个扩展名都必须包含一个有效的manifest.json文件。
-
创建一个 ZIP 文件
压缩扩展目录的内容(不是父文件夹):
cd my-extension
zip -r ../my-extension.zip.
-
上传到 S3
将 ZIP 文件上传到您的亚马逊 S3 存储桶:
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
-
-
要使用适用于 Python 的 AWS SDK (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"
}
}
}
]
}'