初始化开发工具包
初始化开发工具包
本主题介绍如何在应用程序中初始化云眼灰度发布(特性标帜)AB实验 Python SDK。
使用instantiate
方法初始化 Python SDK,并实例化公开 API 方法(如 Decide 方法)的 Eyeofcloud 客户端类的实例。每个客户端对应于表示特定环境的项目状态的数据文件。
版本
SDK v3.2.0 及更高版本
描述
构造函数接受配置对象来配置云眼灰度发布(特性标帜)AB实验。
某些参数是可选的,因为 SDK 提供默认实现,但开发者可能希望为生产环境覆盖这些参数。例如,开发者可能希望覆盖这些内容以设置错误处理程序和记录器以捕获问题,设置事件调度程序以管理网络调用,以及设置用户配置文件服务以确保粘性分桶。
参数
下表列出了 Python 中的必需参数和可选参数。
参数 | 类型 | 描述 |
---|---|---|
数据文件(可选) | 字符串 | 表示项目的 JSON 字符串。 必须提供datafile 或sdk_key 。 |
sdk_key(可选) | 字符串 | 唯一标识与项目和环境组合对应的数据文件的可选字符串。必须提供datafile 或 sdk_key 。 |
event_dispatcher(可选) | 事件调度程序 | 用于管理网络调用的事件处理程序。 |
记录器(可选) | logging.Logger | 用于记录问题的记录器实现。 |
error_handler(可选) | BaseErrorHandler | 用于处理错误的错误处理程序对象。 |
user_profile_service(可选) | 用户配置文件服务 | 用户配置文件服务。 |
skip_json_validation(可选) | 布尔 | 指定是否应验证 JSON。设置为true 以跳过架构上的 JSON 验证,或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
的选项对象中。
当您提供sdkKey
时,SDK 实例将下载与该sdkKey
关联的数据文件。下载完成后,SDK 实例会自行更新以使用下载的数据文件。
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_client = 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实验数据文件的详细信息,请参阅管理配置(数据文件)。