检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
使用FunctionGraph函数访问Redis数据 案例概述 准备工作 创建依赖包 创建函数 示例代码 FunctionGraph监控告警 日志告警 调试函数 父主题: 函数构建类实践
=(函数单实例并发度)*(函数单次执行访问Redis并发度) 最大连接数上限 =(Redis实例连接数上限)/(函数最大实例数) 举例:某个访问Redis函数单实例并发度配置为5,每次执行函数访问Redis并发度为2,函数最大实例数默认400,访问的Redis实例连接数上限为30000,计算如下:
Redis重试机制 Redis客户端支持添加自动重试机制,确保在执行Redis操作失败后重试特定次数,这样能大幅度降低暂时性故障影响。例如:发生瞬时的网络抖动、磁盘抖动导致服务暂时不可用或者调用超时的情况下,提高Redis操作的成功概率。 连接DCS单机、主备、读写分离、Prox
查看连接报错信息如下,通过VPC2连接Redis2时,Redis IP地址变成乱码。 分析Redis1与Redis2除了IP地址和密码不一样之外,其他没有什么不同,让客户比较两个Redis密码后发现,Redis2的密码中含有@符号,导致请求redis的时候IP地址截取有误变成乱码了。 修改Redis2的密码后正常。
Redis健康检查 配置Redis定时健康检查 Redis健康检查的作用是判断Redis服务端是否正常工作,使用health_check_interval配置对Redis进行定时健康检查,该配置单位为秒,默认值为0不进行健康检查,代码如下: retry = Retry(ExponentialBackoff()
IP地址)和redis_password(Redis连接密码)环境变量,同时开启“redis_password”的“加密参数”功能,最后单击“保存”。 表1 环境变量说明 环境变量 说明 redis_ip_address Redis的IP地址。 redis_password Redis连接密码。
连接DCS集群实例 from redis.cluster import RedisCluster as Redis from redis.cluster import ClusterNode redis_client = None def create_redis_client(context):
getLogger() redis_address = context.getUserData("redis_ip_address") redis_host = redis_address.split(":")[0] redis_port = redis_address.split(":")[1]
创建依赖包 创建一个redis-py的依赖包,建议使用redis-py 4.6.0(校验包:redis-4.6.0.zip.sha256)版本。 登录函数工作流控制台,在左侧导航栏选择“函数 > 依赖包管理”,进入“依赖包管理”界面。 单击“创建依赖包”,弹出“创建依赖包”对话框。
示例代码 连接DCS单机、主备、读写分离、Proxy集群实例 连接DCS集群实例 代码解读 父主题: 使用FunctionGraph函数访问Redis数据
使用FunctionGraph配置函数访问Redis数据前需进行的前期准备。 2 创建依赖包 创建一个redis-py的依赖包。 3 创建函数 创建实现Redis数据访问的函数并进行配置。请参考示例代码连接实例。 4 FunctionGraph监控告警 创建FunctionGraph监控告警完成对函数运行的实时监控。
) redis_client.ping() 图1 初始化函数配置 这里用到了FunctionGraph的函数初始化入口Initializer能力,通过该能力能在函数初始化阶段完成Redis客户端的创建,在调用handler处理请求时能够使用该Redis客户端复用连接,相比
代码解读 FunctionGraph函数初始化入口 Redis连接池 Redis重试机制 Redis健康检查 父主题: 示例代码
调试函数 在函数详情页的编码区中,通过配置测试事件进行函数调试。 在线调试函数 单击函数名称进入函数详情页,如图1所示,在“代码”页签下可以“配置测试事件”和“测试”函数进行在线调试。 图1 在线调试函数 父主题: 使用FunctionGraph函数访问Redis数据
FunctionGraph监控告警 Redis自动重试机制能大幅度降低暂时性故障影响,但不能解决故障,故障不及时处理可能导致故障升级,所以需要告警来及时感知代码运行情况。FunctionGraph支持通过创建告警规则完成对函数运行的实时监控,当函数指标出现满足设定规则时产生告警,通过短信或邮件的方式通知用
化了添加与删除的操作。 私有依赖包 私有依赖包是指您在本地将业务代码所需的公共库自行封装的文件包,即自行创建的依赖包,函数依赖包制作示例请参见制作函数的私有依赖包。 如果函数配置了私有依赖包且依赖包体积较大,建议在函数详情页的“设置 > 常规设置”中调整函数执行时间,在原有基础上
准备工作 购买Redis实例,如果已有Redis实例可以跳过。 查看Redis实例的连接信息,获取待连接Redis实例的IP地址。具体步骤请参见查看实例信息。 创建一个有“VPC Administrator”权限的FunctionGraph云服务委托,配置委托权限请参见配置委托权限。
一般不建议在函数代码内捕获异常,其会导致创建的错误次数告警配置不生效。但是FunctionGraph实现了与云日志服务(LTS)的对接,支持在LTS服务中配置告警,LTS支持日志告警实时监控函数日志中出现的异常信息。 父主题: 使用FunctionGraph函数访问Redis数据
FunctionGraph的函数是否支持功能扩展? FunctionGraph目前已经集成了一些非标准库如:redis、http、obs_client等,开发函数时可以直接使用,详情请参考开发指南。 用户可以通过维护属于自己的依赖代码库,供所有函数使用,请参考依赖包管理。 父主题:
0环境中进行。使用其他系统打包可能会因为底层依赖库的原因,运行出问题,比如找不到动态链接库。 约束与限制 如果安装的依赖模块需要添加依赖库,请将依赖库归档到zip依赖包文件中,例如,添加.dll、.so、.a等依赖库。 为Nodejs函数制作依赖包 需要先保证环境中已经安装了对应版本的Nodejs。 为Nodejs