函数工作流 FunctionGraph
函数工作流 FunctionGraph
- 最新动态
- 功能总览
- 产品介绍
- 计费说明
- 快速入门
- 用户指南
-
最佳实践
- FunctionGraph最佳实践汇总
-
数据处理类实践
- 使用FunctionGraph函数对OBS中的图片进行压缩
- 使用FunctionGraph函数为OBS中的图片打水印
- 使用FunctionGraph函数对DIS数据进行格式转换并存储到CloudTable
- 使用FunctionGraph函数实现通过API方式上传文件
- 使用FunctionGraph函数对IoTDA中的设备坐标数据进行转换
- 使用FunctionGraph函数对OBS中的文件进行加解密
- 使用FunctionGraph函数识别LTS中的异常业务日志并存储到OBS
- 使用FunctionGraph函数对LTS中的日志进行实时过滤
- 使用FunctionGraph函数流对OBS中的图片进行旋转
- 使用FunctionGraph函数流对图片进行压缩和打水印
- 功能应用类实践
- 函数构建类实践
- 开发指南
- API参考
- SDK参考
- 场景代码示例
-
常见问题
-
产品咨询
- 使用FunctionGraph是否需要开通计算、存储、网络等服务?
- 使用FunctionGraph开发程序之后是否需要部署?
- FunctionGraph为函数分配的磁盘空间有多少?
- 是否支持在函数中启动TCP的监听端口,通过EIP接收外部发送过来的TCP请求?
- 函数发起HTTP请求的源地址如何获取?
- FunctionGraph是否支持对上传的zip文件进行反编译?
- FunctionGraph的函数是否支持功能扩展?
- FunctionGraph中的代码是如何隔离的?
- 函数常规信息中的“应用”如何理解?
- 用户需要为函数的冷启动时间付费吗?
- 函数计费中的调用次数,是某一账号下在不同region的所有函数的调用次数总和吗?
- Python语言的函数从V1版本迁移到V2版本时需注意哪些兼容性问题?
- FunctionGraph函数支持哪些编程语言?
- 创建函数
-
配置函数
- 能否在函数环境变量中存储敏感信息?
- FunctionGraph的函数如何读写上传的文件?
- 为函数挂载文件系统时,报“failed to mount exist system path”
- FunctionGraph如何实现域名解析?
- FunctionGraph如何通过域名访问专享版APIG中注册的接口?
- FunctionGraph函数通过域名访问APIG中注册的接口时,报域名无法解析?
- 使用定制运行时语言的函数能操作哪些目录?
- FunctionGraph的函数支持哪些中文字体?
- 能否在函数代码中使用线程和进程?
- 函数如何访问MySQL数据库?
- 函数无法通过VPC连接对应的Redis?
- 如何读取函数的请求头?
- Python语言的函数中,中文注释报乱码错误
-
调用函数
- FunctionGraph的函数执行需要多长时间?
- FunctionGraph的函数执行包含了哪些过程?
- FunctionGraph函数长时间不执行时,相关的实例会如何处理?
- 如何获取函数运行过程中的内存使用量信息?
- 为什么首次调用函数时速度会比较慢?
- 为什么函数实际使用内存大于预估内存,甚至触发内存溢出OOM?
- 函数执行失败返回“runtime memory limit exceeded”时,如何查看内存占用大小?
- 自定义镜像函数执行失败报“CrashLoopBackOff”
- 同步调用函数时,未收到调用响应的可能原因?
- 函数中os.system("command &")命令的执行日志未采集,应如何处理?
- 函数执行超时的可能原因有哪些?
- 使用APIG触发器调用一个返回String的FunctionGraph函数时,报500错误
- Python2.7在执行reload(sys)后无法通过print打印日志
- 运行函数时报错error while loading shared libraries时如何处理?
- 配置触发器
- 配置依赖包
-
产品咨询
- 视频帮助
- 文档下载
- 通用参考
本文导读
展开导读
文档首页/
函数工作流 FunctionGraph/
最佳实践/
函数构建类实践/
使用FunctionGraph函数访问Redis数据/
示例代码/
连接DCS单机、主备、读写分离、Proxy集群实例
链接复制成功!
连接DCS单机、主备、读写分离、Proxy集群实例
from redis.backoff import ExponentialBackoff from redis.retry import Retry from redis.client import Redis from redis.connection import BlockingConnectionPool from redis.exceptions import ( BusyLoadingError, ConnectionError, TimeoutError ) redis_client = None def create_redis_client(context): logger = context.getLogger() redis_address = context.getUserData("redis_ip_address") redis_host = redis_address.split(":")[0] redis_port = redis_address.split(":")[1] redis_password = context.getUserData("redis_password") logger.info("redis host={}".format(redis_host)) logger.info("redis port={}".format(redis_port)) retry = Retry(ExponentialBackoff(), 3) pool = BlockingConnectionPool(host=redis_host, port=redis_port, password=redis_password, max_connections=20, timeout=3, socket_timeout=2, socket_connect_timeout=2, retry=retry, retry_on_error=[BusyLoadingError, ConnectionError, TimeoutError], health_check_interval=60, decode_responses=True) return Redis(connection_pool=pool) def initializer(context): global redis_client redis_client = create_redis_client(context) redis_client.ping() def handler(event, context): logger = context.getLogger() redis_client.set('foo', 'bar') value = redis_client.get('foo') logger.info("redis get key foo value={}".format(value)) return value
客户端使用连接池时不要将获取连接的操作放在初始化函数 initializer 方法中,否则只会在初始化时获取一个连接而导致连接池使用无效。当网络抖动时可能会使已获取的连接断连,后续复用该实例的并发请求时可能会因断连而访问redis失败。
参数 |
默认值 |
说明 |
---|---|---|
connection_pool |
None |
连接池 |
参数 |
默认值 |
说明 |
---|---|---|
max_connections |
50 |
连接池最大连接数 |
timeout |
20 |
连接池耗尽后获取连接的最大等待时间 |
参数 |
默认值 |
说明 |
---|---|---|
host |
localhost |
连接Redis实例的IP地址/域名 |
port |
6379 |
连接端口号 |
password |
- |
连接密码 |
socket_timeout |
None |
请求等待响应的超时时间(秒) |
socket_connect_timeout |
None |
连接超时时间(秒) |
retry |
None |
失败后重试策略 |
retry_on_error |
None |
需要重试的错误列表 |
health_check_interval |
0 |
Redis连接健康检查间隔 |
decode_responses |
False |
默认所有响应都以字节形式返回 |
参数 |
默认值 |
说明 |
---|---|---|
backoff |
- |
退避策略 |
retries |
- |
重试次数,可以是负数,支持永远重试 |
supported_errors |
ConnectionError TimeoutError socket.timeout |
触发重试的支持错误类型 |
参数 |
默认值 |
说明 |
---|---|---|
cap |
0.512 |
最大退避时间(秒) |
base |
0.008 |
基本退避时间(秒) |
父主题: 示例代码