初始化开发工具包
初始化开发工具包
本主题介绍如何在应用程序中初始化云眼灰度发布(特性标帜)AB实验 Python SDK。
使用该方法初始化 Python SDK,并实例化公开 API 方法(如 Decide 方法)的 Eyeofcloud 客户端类的实例。每个客户端对应于表示特定环境的项目状态的数据文件。instantiate
版本
SDK v3.2.0 及更高版本
描述
构造函数接受配置对象来配置云眼灰度发布(特性标帜)AB实验。
某些参数是可选的,因为 SDK 提供默认实现,但开发者可能希望为生产环境覆盖这些参数。例如,开发者可能希望覆盖这些内容以设置错误处理程序和记录器以捕获问题,设置事件调度程序以管理网络调用,以及设置用户配置文件服务以确保粘性分桶。
参数
下表列出了 Python 中的必需参数和可选参数。
参数
类型
描述
数据文件
可选
字符串
表示项目的 JSON 字符串。
必须提供 或 。datafile``sdk_key
sdk_key_可选_
字符串
唯一标识与项目和环境组合对应的数据文件的可选字符串。
必须提供 或 。 datafile``sdk_key
event_dispatcher_可选_
事件调度程序
用于管理网络调用的事件处理程序。
记录器可选
伐木。记录
用于记录问题的记录器实现。
error_handler_可选_
BaseErrorHandler
用于处理错误的错误处理程序对象。
user_profile_service_可选_
用户配置文件服务
用户配置文件服务。
skip_json_validation_可选_
布尔
指定是否应验证 JSON。设置为 以跳过架构上的 JSON 验证,或执行验证。true``false
config_manager_可选_
BaseConfigManager
实现。
负责提供返回 .eyeofcloud.config_manager.BaseConfigManager``get_config``eyeofcloud.project_config.ProjectConfig
notification_center_可选_
通知中心
的实例。
在提供您自己的实现(可以使用同一个通知中心实例)时,此选项非常有用。 eyeofcloud.notification_center.NotificationCenter``eyeofcloud.config_manager.BaseConfigManager
access_token_可选_
字符串
(仅限服务器端)云眼灰度发布(特性标帜)AB实验 SDK 可以使用访问令牌(与 SDK 密钥结合使用)从经过身份验证的终结点提取数据文件。在 Eyeofcloud 应用程序的设置>环境中找到数据文件访问令牌。选择安全环境,然后复制_数据文件访问令牌_。
default_decide_options
数组
EyeofcloudDecideOption 枚举的数组。当使用此参数构造 Eyeofcloud 客户端时,它会设置默认的 decide 选项,这些选项将应用于在 Eyeofcloud 客户端的生命周期内进行的所有 Decide 调用。此外,还可以将选项传递给各个 Decide 方法(不会覆盖默认值)。
有关决定选项的详细信息,请参阅云眼决策选项
返回
实例化云眼灰度发布(特性标帜)AB实验类的实例。
例子
在 Python SDK 中,可以提供其中之一或两者。 sdkKey``datafile
- 仅使用 SDK 密钥初始化时,SDK 将定期在后台轮询数据文件更改。
- 仅使用数据文件初始化时,SDK 不会在后台轮询数据文件更改。
- 同时使用 SDK 密钥和数据文件进行初始化时,SDK 将使用给定的数据文件,并在后台开始轮询数据文件更改。
使用 SDK 密钥进行实例化(推荐)
在 Python SDK 中,只需传递 SDK 密钥值即可实例化客户端。每当实验配置发生更改时,SDK 都会为你处理更改。
作为字符串属性包含在传递给方法的选项对象中。 sdkKey``createInstance
当您提供 时,SDK 实例将下载与该关联的数据文件。下载完成后,SDK 实例会自行更新以使用下载的数据文件。sdkKey``sdkKey
Python
from eyeofcloud import eyeofcloud from eyeofcloud.config_manager import PollingConfigManager sdk_key = '123456' conf_manager = PollingConfigManager( sdk_key = sdk_key, update_interval=10, ) eyeofcloud = eyeofcloud.Eyeofcloud(config_manager=conf_manager)
使用数据文件实例化
还可以使用硬编码的数据文件进行实例化。如果不传入 SDK 密钥,云眼客户端将不会自动同步较新版本的数据文件。每次检索更新的数据文件时,只需重新实例化同一客户端即可。
对于简单的应用程序,实例化客户端所需提供的只是一个数据文件,该文件指定给定环境的项目配置。对于大多数高级实现,需要根据特定要求自定义记录器或错误处理程序。
Python
from eyeofcloud import eyeofcloud # Instantiate an Eyeofcloud client eyeofcloud = eyeofcloud.Eyeofcloud(datafile)
笔记
启用 JSON 架构验证
跳过 JSON 架构验证可提高实例化期间的性能。在 Python SDK 中,可以控制在实例化客户端时是否验证数据文件的 JSON 架构。此示例演示如何跳过 JSON 架构验证:
Python
# Skip JSON schema validation (SDK versions 0.1.1 and above) eyeofcloud = eyeofcloud.Eyeofcloud(datafile, skip_json_validation=True)
在安全环境中使用经过身份验证的数据文件
📘 注意
经过身份验证的数据文件处于测试阶段。如果有兴趣成为经过身份验证的数据文件的早期用户,作为测试版安全环境功能的一部分,请联系客户成功经理。
可以使用服务器端(仅限)云眼灰度发布(特性标帜)AB实验 SDK 从经过身份验证的终结点提取云眼灰度发布(特性标帜)AB实验数据文件。要使用经过身份验证的数据文件,请从设置>环境中的 Eyeofcloud 应用下载 Eyeofcloud 功能实验环境的访问令牌。选择安全环境,然后复制_数据文件访问令牌_。下面的示例显示了如何使用访问令牌和sdk_key初始化 Eyeofcloud 客户端,使客户端能够获取经过身份验证的数据文件并完成初始化。
Python
# fetch the datafile from an authenticated endpoint access_tkn = '<YOUR_DATAFILE_ACCESS_TOKEN>' sdk_key = '<YOUR_SDK_KEY>' eyeofcloud = eyeofcloud.Eyeofcloud(sdk_key = sdk_key, datafile_access_token = access_tkn )
有关自定义使用云眼灰度发布(特性标帜)AB实验数据文件的详细信息,请参阅管理配置(数据文件)。
Source files
The language/platform source files containing the implementation for Python are at eyeofcloud.py.
Updated about 2 months ago
[
Install SDK
](/experimentation/v4.0.0-full-stack/docs/install-sdk-python)[
Example usage
](/experimentation/v4.0.0-full-stack/docs/example-usage-python)
Did this page help you?
Yes
No
创建用户上下文
介绍创建用户上下文方法,该方法为云眼灰度发布(特性标帜)AB实验中的标帜决策和事件创建用户上下文。
此方法的目的是创建用户并设置用户上下文一次,因此不必在每次做出标帜决策或跟踪事件时都指定用户。可以定义多个用户上下文。系统将用户上下文作为运行时对象返回,否则不会持久化。
版本
1.0.0-beta 或更高版本
描述
此调用为标帜决策和事件创建用户上下文。可以在 Eyeofcloud 客户端实例上成功调用此方法,甚至在完全配置实例之前也是如此。
参数
下表列出了必需参数和可选参数:
参数
类型
描述
(必选)用户 ID
字符串
用户的 ID。
属性
可选
Map
自定义键值字符串对的映射,指定系统用户用于受众群体定位的用户的属性。有关更多详细信息,请参阅以下部分。
受众群体属性
为用户设置自定义受众群体属性,可以使用这些属性来定位受众群体。可以将字符串、数字、布尔值和 nil 作为自定义用户属性值传递。如果要根据他们使用的应用程序变体定位访问群体,还可以传入格式为语义变体的字符串,然后在 Eyeofcloud 应用中定义受众条件。version
🚧 重要
在访问群体评估期间,如果没有为给定的访问群体条件传递有效的属性值(例如,如果在受众群体条件需要布尔值时传递字符串,或者忘记传递值),则系统会跳过该条件。发生这种情况时,SDK 日志会包含警告。
返回
返回一个 EyeofcloudUserContext 对象。有关详细信息,请参阅云眼用户上下文。
例
Dart
// option 1: create a user, then set attributes var user = await flutterSDK.createUserContext("user123"); var attributes = <String, dynamic>{}; attributes["is_logged_in"] = false; attributes["app_version"] = "1.3.2"; user!.setAttributes(attributes); // option 2: pass attributes when creating the user var attributes = <String, dynamic>{}; attributes["is_logged_in"] = false; attributes["app_version"] = "1.3.2"; var eyeofcloudUserContext = await eyeofcloudClient.createUserContext("user123", attributes);
参见
源文件
包含 Flutter SDK for Android Eyeofcloud 和 Swift 实现的语言/平台源文件.java为 EyeofcloudClient.swift。