终止浏览器会话
本章介绍如何终止正在运行的浏览器会话,提供从会话详情页、会话列表以及SDK等方式终止浏览器会话。
通过控制台在会话列表终止
- 在左侧导航栏选择“托管与运行 > 浏览器”,进入浏览器界面。
- 单击已创建的浏览器名称。
- 在“会话管理”页签,单击“运行中”的会话列表中操作列的“终止会话”。
- 会话立即终止,状态变更为“已终止”。
通过控制台在会话详情页终止
- 在“会话管理”页签,单击“运行中”的会话列表中操作列的“查看实时会话”。
- 进入会话详情页面。
- 单击“终止会话” 按钮。
- 会话立即终止,状态变更为“已终止”。
通过SDK终止浏览器会话
浏览器支持通过SDK终止浏览器会话。SDK提供stop_session接口用于终止当前浏览器会话,释放浏览器资源。
方式一:直接调用stop_session方法
- 方法名:stop_session
- 参数说明:
参数名
类型
描述
api_key
str
API Key认证密钥。当使用API_KEY认证方式时,如果未提供此参数,SDK会尝试从环境变量HUAWEICLOUD_SDK_BROWSER_API_KEY获取。Default:None
- 返回值:
bool: 成功终止会话或无活跃会话时返回True。
- 行为说明:
- 如果当前没有活跃会话(session_id为空),方法会立即返回True(no-op操作)。
- 成功终止会话后,SDK会清空会话相关状态(session_id、browser_name、automation_endpoint、live_view_endpoint)。
- 支持两种认证方式:API_KEY和IAM(AK/SK)
API KEY代码示例
from agentarts.sdk.tools import Browser # 创建浏览器客户端 client = Browser(region="cn-southwest-2", auth_type="API_KEY", verify_ssl=False) # 启动会话 client.start_session( browser_name="your_browser_name", session_name="your_session_name", api_key="your_api_key" ) # 执行浏览器操作... # 终止会话 success = client.stop_session(api_key="your_api_key") print(f"会话终止结果: {success}")IAM代码示例
from agentarts.sdk.tools import Browser # 创建浏览器客户端(使用IAM认证) client = Browser(region="cn-southwest-2", auth_type="IAM", verify_ssl=False) # 启动会话 client.start_session( browser_name="your_browser_name", session_name="your_session_name" ) # 执行浏览器操作... # 终止会话(IAM认证无需传递api_key) success = client.stop_session() print(f"会话终止结果: {success}")
方式二:使用上下文管理器自动终止
推荐使用browser_session上下文管理器,它会在退出时自动终止会话,无需手动调用stop_session。
- browser_session 参数说明:
参数名
类型
描述
region
str
Required 区域名称,如 "cn-southwest-2"。
browser_name
str
Required 浏览器沙箱名称。
session_name
str
Required 客户端指定的会话名称,只能包含字母、数字、下划线和中划线,长度1-128。
session_id
str
客户端指定的会话ID,不传则由服务端生成。Default:None
viewport
Dict
视口配置,如 {"width": 1920, "height": 1080}。Default:None
profile_configuration
Dict
配置档案配置,格式为 {"profile_id": "your_profile_id"}。Default:None
allowed_domains
List[str]
允许访问的域名列表。与 blocked_domains 互斥。Default:None
blocked_domains
List[str]
禁止访问的域名列表。与 allowed_domains 互斥。Default:None
proxy_configuration
Dict
代理配置。Default:None
session_timeout
int
会话超时时间(秒),默认900秒(15分钟)。Default:900
auth_type
str
认证类型,支持 "API_KEY" 或 "IAM"。Default:"API_KEY"
api_key
str
API_KEY模式下的认证密钥。也可通过环境变量HUAWEICLOUD_SDK_BROWSER_API_KEY设置。Default:None
verify_ssl
bool/str
SSL证书验证。True验证、False跳过、或字符串指向CA包路径。Default:True
- 支持两种认证方式:API_KEY和IAM(AK/SK)
from agentarts.sdk.tools import browser_session api_key = "your_actual_api_key" # your api key with browser_session( "cn-southwest-2", "your_browser_name", "your_session_name", api_key=api_key, profile_configuration={"profile_id": "your_profile_id"} # 加载配置文件 ) as browser_client: response = browser_client.navigate( url="https://example.com", api_key=api_key ) # 退出with块时,会话自动终止IAM代码示例
from agentarts.sdk.tools import browser_session # Please configure the HUAWEICLOUD_SDK_AK/HUAWEICLOUD_SDK_SK in your environment variables in advance. with browser_session( "cn-southwest-2", "your_browser_name", "your_session_name", auth_type="IAM", profile_configuration={"profile_id": "your_profile_id"} # 加载配置文件 ) as browser_client: response = browser_client.navigate(url="https://example.com") # 退出with块时,会话自动终止
注意事项
- 资源释放:终止会话会释放浏览器沙箱资源,建议在完成所有浏览器操作后及时终止会话
- 幂等性:多次调用stop_session是安全的,如果没有活跃会话,方法会返回True
- 状态清空:终止会话后,Browser实例的会话相关状态会被清空,如需再次使用需重新启动会话
- 认证方式:
- API_KEY认证:需要传递api_key参数或设置环境变量HUAWEICLOUD_SDK_BROWSER_API_KEY
- IAM认证:需要配置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK
- 超时机制:即使未主动终止会话,会话也会在超时后自动终止(默认超时时间为900秒/15分钟)