使用瀏覽器擴充功能
瀏覽器延伸模組可讓您在工作階段建立時間將自訂延伸模組安裝到瀏覽器工作階段。這可讓您使用自己的擴充功能自訂瀏覽器行為,以進行自動化任務、Web 抓取、測試等。
概觀
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 帳戶中。擴充功能有 10 MB 的檔案大小限制,每個工作階段最多可有 10 個擴充功能。
準備延伸檔案
若要準備擴充功能以搭配瀏覽器工具使用:
-
建立 Chrome 延伸模組
您的擴充功能應遵循標準 Chromium 擴充功能格式,並遵守 Chromium 擴充功能準則 。每個副檔名都必須包含有效的manifest.json檔案。
-
建立 ZIP 檔案
壓縮延伸目錄內容 (而非父資料夾):
cd my-extension
zip -r ../my-extension.zip.
-
上傳至 S3
將 ZIP 檔案上傳至您的 Amazon S3 儲存貯體:
aws s3 cp my-extension.zip s3://my-extensions-bucket/extensions/my-extension.zip
建立具有擴充功能的瀏覽器工作階段
您可以使用 CLI、 SDK AWS 或 API 建立具有擴充功能的瀏覽器工作階段。
範例
- AWS CLI
-
-
若要使用 CLI AWS 啟動具有擴充功能的瀏覽器工作階段:
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"
}
}
}
]
}'