检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
如何配置外网访问? 部署在VPC中的函数默认是和外网隔离开的,如果您想让函数同时具备内网访问和外网访问能力,您可以选择给VPC添加公网NAT网关。 前提条件: 已创建虚拟私有云和子网,请参考创建虚拟私有云基本信息及默认子网。 已申请弹性云公网IP,请参考申请弹性公网IP。 创建公网NAT网关步骤如下:
图1 函数模板选择 MySQL函数模板创建好后,选择设置->环境变量,在环境变量列表中可按需开启加密参数功能,如图2,配置完保存。 图2 开启加密参数 如果函数需要访问RDS的接口,参考创建委托,获取RDS的授权。 父主题: 函数访问外部资源
函数如何访问Redis? 本章介绍函数如何访问Redis,具体操作步骤如下: 确认Redis实例是否搭建在VPC的网络中? 是,为函数设置与Redis实例相同的VPC、子网,具体请参考函数配置VPC。 否,Redis实例搭建在公网中,获取Redis实例的公网IP地址。 在函数中,
在“设置”页签下配置“网络配置”,选择待访问Redis实例所在的虚拟私有云(VPC)和子网。 图6 网络配置 在“设置”页签下添加“环境变量”,添加待访问Redis实例的redis_ip_address(Redis IP地址)和redis_password(Redis连接密码)环境变量,同时开启“redis
配置网络 访问公网 函数创建成功后,默认具有公网访问权限,即函数可直接访问公网上的服务。函数访问公网上的服务需要固定公网出口IP的场景(例如被访问服务需要白名单验证),可以通过开启VPC,在VPC内配置公网NAT网关绑定EIP的方式实现,具体请参见配置固定公网IP。 访问VPC 函
函数发起HTTP请求的源地址如何获取? 公网访问 函数未开启“函数访问VPC内资源”功能时访问公网。 访问公网时使用函数工作流服务的SNAT地址,该地址是固定的,如何获取请咨询技术支持工程师。 图1 未开启函数访问VPC内资源 函数开启“函数访问VPC内资源”功能时访问公网。(相关VPC配置详情请参见配置网络)
在“控制台”页面,鼠标移动至右上方的用户名,在下拉列表中选择“我的凭证”。 图2 我的凭证 在“我的凭证”页面中,单击“访问密钥页签”。 图3 访问密钥页签 单击“新增访问密钥”,输入“描述”信息。 图4 新增访问密钥 单击“确定”,生成并下载访问密钥。 图5 生成下载访问密钥 创建访问密钥成功后,您可以在
准备 购买Redis实例,如果已有Redis实例可以跳过。 查看Redis实例的连接信息,获取待连接Redis实例的IP地址。具体步骤请参见查看实例信息。 创建一个有“VPC Administrator”权限的FunctionGraph云服务委托,配置委托权限请参见配置委托权限。
函数访问外部资源 函数如何访问MySQL数据库? 函数如何访问Redis? 函数无法通过VPC连接对应的Redis? 如何配置外网访问?
函数无法通过VPC连接对应的Redis? 问题现象 相同的代码,函数能通过VPC1连通Redis1,但是不能通过VPC2连通Redis2。 解决方案 与客户确认问题现象,Redis1在VPC1中,Redis2在VPC2中,Redis客户端代码是同一套代码。 查看连接报错信息如下,通
=(函数单实例并发度)*(函数单次执行访问Redis并发度) 最大连接数上限 =(Redis实例连接数上限)/(函数最大实例数) 举例:某个访问Redis函数单实例并发度配置为5,每次执行函数访问Redis并发度为2,函数最大实例数默认400,访问的Redis实例连接数上限为30000,计算如下:
使用永久AK/SK替换 登录函数工作流控制台,右上角选择“我的凭证”。 图1 我的凭证 选择“访问密钥”,单击“新增访问密钥”并获取访问密钥,具体详情请参见管理IAM用户访问密钥。 图2 新增访问密钥 返回函数工作流控制台,选择“函数 > 函数列表”,单击函数名称进入详情页。 图3
示例代码 连接DCS单机、主备、读写分离、Proxy集群实例 连接DCS集群实例 代码解读 父主题: 使用函数访问Redis数据库
return value 表1 RedisCluster配置 参数 默认值 说明 host localhost 连接Redis实例的IP地址/域名 port 6379 连接端口号 cluster_error_retry_attempts 3 当遇到TimeoutError、Conn
创建依赖包 创建一个redis-py的依赖包,建议使用redis-py 4.6.0(校验包:redis-4.6.0.zip.sha256)版本。 登录函数工作流控制台,在左侧导航栏选择“函数 > 依赖包管理”,进入“依赖包管理”界面。 单击“创建依赖包”,弹出“创建依赖包”对话框。 设置依赖包名称“redis-py-4
首次访问函数慢,如何优化? 如果您使用的是C#或者Go语言,因为机制原因,启动速度会比其他语言慢。此时,您可以通过以下设置,增加运行速度。 适当增加函数的内存。 精简函数代码,例如:删除不必要的依赖包。 使用C#语言时,除了以上两种方法,在非并发场景下,您还可以通过以下方法增加运行速度。
字段名称 字段说明 instance_id Kafka实例ID topic_id 主题ID kafka_user 用户名 kafka_password 用户密码 kafka_ssl_enable 是否开启ssl验证(若开启则用户名和密码字段是为必选) batch_size 批次大小
式通知用户。客户收到告警后,可以查看函数日志来分析故障原因,解决故障。 FunctionGraph函数监控信息,提供了调用次数、运行时间、错误次数、拒绝次数和资源统计监控指标。建议对监控指标中的错误次数和运行时间-最大运行时间创建告警配置,这样就能及时感知到如下情况: 访问Red
代码解读 FunctionGraph函数初始化入口 Redis连接池 Redis重试机制 Redis健康检查 父主题: 示例代码
return value 客户端使用连接池时不要将获取连接的操作放在初始化函数 initializer 方法中,否则只会在初始化时获取一个连接而导致连接池使用无效。当网络抖动时可能会使已获取的连接断连,后续复用该实例的并发请求时可能会因断连而访问redis失败。 表1 Redis配置