使用FunctionGraph函数访问RDS for MySQL操作步骤
前提条件
- 已创建虚拟私有云基本信息及默认子网。
- 已购买RDS for MySQL实例,已创建数据库且数据库中有可用的表。RDS实例需与函数所在区域一致,本实践以“华东-上海一”区域为例。
- 已创建函数委托,委托中包含“VPC Administrator”权限。
步骤一:创建函数依赖包
依赖包 |
依赖包概述 |
下载链接 |
---|---|---|
pymysql |
用Python编写的MySQL数据库连接器,其作用是让Python程序能够和MySQL数据库进行通信。 |
|
DBUtils |
数据库连接池工具包,可以对数据库连接进行管理和复用。 |
步骤二:创建函数
- 返回函数工作流控制台,在左侧导航栏选择“函数 > 函数列表”,单击“创建函数”。
- 参考表3填写函数基本信息,基本信息填写完成如图2所示。
表3 创建函数基本信息 参数
取值样例
参数说明
函数类型
事件函数
事件函数为可通过特定事件触发的函数,通常为JSON格式的请求事件。
区域
华东-上海一
选择函数所在的区域。本实践以“华东-上海一”区域为例。
函数名称
access-mysql-demo
输入自定义的函数名称,命名规则如下:
- 可包含字母、数字、下划线和中划线,长度不超过60个字符。
- 以大/小写字母开头,以字母或数字结尾。
企业项目
default
选择函数所属的企业项目。企业项目是一种云资源管理方式,企业项目管理服务提供统一的云资源按项目管理,以及项目内的资源管理、成员管理。
默认为“default”,支持选择已创建的企业项目。
如果您没有开通企业管理服务,将无法看到企业项目选项。开通方法请参见如何开通企业项目。
委托
VPC
选择函数的委托。通过委托来授权函数工作流来访问其他云服务。
本实践需配置函数访问VPC内资源,因此需选择包含“VPC Administrator”权限的委托。
运行时
Python 3.6
选择用于编写函数的运行时语言。本实践以Python 3.6为例。
- 参考表4填写函数高级设置信息,填写完成如图3所示,单击“立即创建”。
表4 创建函数高级设置 参数
取值样例
参数说明
函数访问公网
未开启
开启时,函数可以通过默认网卡访问公网上的服务,其公网访问带宽为用户间共享,仅适用于测试场景。
函数访问VPC内资源
开启。
- VPC:vpc-fg(192.168.x.x/x)
- 子网:subnet-fg(192.168.x.x/x)
开启后可选择函数需访问的VPC及其子网。需选择与所创建RDS实例相同的VPC环境。
开启时,函数将使用配置的VPC所绑定的网卡进行网络访问,同时禁用函数工作流的默认网卡,即开关“函数访问公网”参数将不生效。
日志记录
未开启
启用日志功能后,函数运行过程中产生的日志会上报到云日志服务(LTS)。
LTS将按需收取日志管理费用,详情请参见云日志服务价格详情。
步骤三:配置函数
- 成功创建函数后进入函数详情页,复制函数访问RDS MySQL示例代码,如图4所示粘贴在代码在线编辑器中覆盖“index.py”文件中的代码,单击“部署代码”。
本实践的示例代码实现了从RDS for MySQL实例数据库的user表中查询前10条记录的功能,请根据您数据库中的实际表名进行代码内容修改。
- 在“代码”页签下,滑至页面最底部的“代码依赖包”板块,单击“添加依赖包”。
- 在“选择依赖包”弹窗,如图5所示,“依赖包源”选择“私有依赖包”,分别添加步骤一:创建函数依赖包创建的“pymysql_py36”和“dbutils_py36”依赖包。
- 添加完成后如图6所示。
- 单击“设置”页签,选择“常规设置”,调整“执行超时时间”为“30”,“内存”选择“256”,单击“保存”。
图7 函数常规设置
- 在“设置”页签下选择“环境变量”,单击“编辑环境变量”,在弹窗中单击添加环境变量,参考表5的说明列添加环境变量,添加完成后如图8所示,单击“确定”。
表5 环境变量 键
值(示例)
说明
host
192.168.x.x
数据库实例的访问地址。
- 如果您选择同VPC内的RDS数据库的场景,请将此环境变量值设置为数据库的内网地址。
- 如果您选择跨VPC或跨地域访问RDS数据库的场景,请将此环境变量值设置为数据库的外网地址。
RDS控制台操作步骤:进入目标RDS实例详情页,在左侧导航栏选择“连接管理”,在连接信息处获取数据库的内网地址或外网地址。
database
db_test
RDS实例中创建的数据库名称。
password
******
RDS实例中设置的数据库密码。
密码为敏感信息,建议开启加密参数。
port
3306
RDS实例中设置的数据库端口。
username
fg_user
RDS实例中创建的账号名称。
- 在“设置”页签下选择“生命周期”,如图9所示开启初始化配置,设置“初始化超时时间”为“60”,“函数初始化入口”为“index.initializer”,单击“保存”。