检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
函数如何访问MySQL数据库? 本章介绍如何访问MySQL数据库,具体操作步骤如下: 确认MySQL数据库是否搭建在VPC的网络中? 是,为函数设置与MySQL数据库相同的VPC、子网,具体请参考函数配置VPC。 否,具体请参考如何配置外网访问?。 在函数模板中搜索mysql,根据
配置网络 访问公网 函数创建成功后,默认具有公网访问权限,即函数可直接访问公网上的服务。函数访问公网上的服务需要固定公网出口IP的场景(例如被访问服务需要白名单验证),可以通过开启VPC,在VPC内配置公网NAT网关绑定EIP的方式实现,具体请参见配置固定公网IP。 访问VPC
使用函数访问Redis数据库 案例概述 准备 创建依赖包 创建函数 示例代码 FunctionGraph监控告警 日志告警 调试函数
如何配置外网访问? 部署在VPC中的函数默认是和外网隔离开的,如果您想让函数同时具备内网访问和外网访问能力,您可以选择给VPC添加公网NAT网关。 前提条件: 已创建虚拟私有云和子网,请参考创建虚拟私有云基本信息及默认子网。 已申请弹性云公网IP,请参考申请弹性公网IP。 创建公网NAT网关步骤如下:
查看Redis实例的连接信息,获取待连接Redis实例的IP地址。具体步骤请参见查看实例信息。 创建一个有“VPC Administrator”权限的FunctionGraph云服务委托,配置委托权限请参见配置委托权限。 父主题: 使用函数访问Redis数据库
在“设置”页签下配置“权限”,添加一个有VPC Administrator权限的委托,然后单击保存。 图5 配置委托 在“设置”页签下配置“网络配置”,选择待访问Redis实例所在的虚拟私有云(VPC)和子网。 图6 网络配置 在“设置”页签下添加“环境变量”,添加待访问Redis实
案例概述 FunctionGraph支持在函数内访问客户的Redis数据库。本文介绍如何使用FunctionGraph和Redis客户端的能力,实现一个高可定制、高可靠、高可观测的最佳实践。 父主题: 使用函数访问Redis数据库
0(校验包:redis-4.6.0.zip.sha256)版本。 登录函数工作流控制台,在左侧导航栏选择“函数 > 依赖包管理”,进入“依赖包管理”界面。 单击“创建依赖包”,弹出“创建依赖包”对话框。 设置依赖包名称“redis-py-4.6.0”,代码上传方式为上传zip文件,单击“添加文件”添加redis-4
一般不建议在函数代码内捕获异常,其会导致创建的错误次数告警配置不生效。但是FunctionGraph实现了与云日志服务(LTS)的对接,支持在LTS服务中配置告警,LTS支持日志告警实时监控函数日志中出现的异常信息。 父主题: 使用函数访问Redis数据库
调试函数 我们可以在函数代码详情页“配置测试事件”和“测试”中在线调试函数,如下: 图1 在线调试函数 父主题: 使用函数访问Redis数据库
示例代码 连接DCS单机、主备、读写分离、Proxy集群实例 连接DCS集群实例 代码解读 父主题: 使用函数访问Redis数据库
间创建告警配置,这样就能及时感知到如下情况: 访问Redis异常。例如连接异常、请求超时、服务暂时不可用,导致函数执行错误计入错误次数指标。 使用复杂度过高命令,导致CPU耗尽,函数执行时间变长,体现在运行时间-最大运行时间指标。 父主题: 使用函数访问Redis数据库
函数发起HTTP请求的源地址如何获取? 公网访问 函数未开启“函数访问VPC内资源”功能时访问公网。 访问公网时使用函数工作流服务的SNAT地址,该地址是固定的,如何获取请咨询技术支持工程师。 图1 未开启函数访问VPC内资源 函数开启“函数访问VPC内资源”功能时访问公网。(相关VPC配置详情请参见配置网络) 图2
value={}".format(value)) return value 表1 RedisCluster配置 参数 默认值 说明 host localhost 连接Redis实例的IP地址/域名 port 6379 连接端口号 cluster_error_retry_attempts
=(函数单实例并发度)*(函数单次执行访问Redis并发度) 最大连接数上限 =(Redis实例连接数上限)/(函数最大实例数) 举例:某个访问Redis函数单实例并发度配置为5,每次执行函数访问Redis并发度为2,函数最大实例数默认400,访问的Redis实例连接数上限为30000,计算如下:
代码解读 FunctionGraph函数初始化入口 Redis连接池 Redis重试机制 Redis健康检查 父主题: 示例代码
Redis健康检查 Redis健康检查的作用是判断Redis服务端是否正常工作,使用health_check_interval配置对Redis进行定时健康检查,该配置单位为秒,默认值为0不进行健康检查,代码如下: retry = Retry(ExponentialBackoff()
超时的情况下,提高Redis操作的成功概率。 连接DCS单机、主备、读写分离、Proxy集群实例添加Retry配置,退避策略为指数退避(ExponentialBackoff),重试次数上限为3次,并通过retry_on_error配置指定了BusyLoadingError,Con
FunctionGraph函数初始化入口 在示例代码中我们在initializer方法内创建Redis客户端,并在创建函数时配置了初始化函数,如下: def initializer(context): global redis_client redis_client
value 客户端使用连接池时不要将获取连接的操作放在初始化函数 initializer 方法中,否则只会在初始化时获取一个连接而导致连接池使用无效。当网络抖动时可能会使已获取的连接断连,后续复用该实例的并发请求时可能会因断连而访问redis失败。 表1 Redis配置 参数 默认值 说明