Serverless 解惑——函数计算如何访问 MySQL 数据库

[复制链接]
查看11 | 回复1 | 2020-12-22 18:00:00 | 显示全部楼层 |阅读模式
函数计算(FunctionCompute):函数计算是事件驱动的全托管计算服务。使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码。函数计算为您准备好计算资源,弹性地可靠地运行任务,并提供日志查询、性能监控和报警等功能。借助函数计算,您可以快速构建任何类型的应用和服务,并且只需为任务实际消耗的资源付费。
[img][/img]
评论
访问MySQL数据库是指在函数计算中通过编写代码调用数据库驱动库通过TCP协议实现对数据库进行的插入、查询等操作。通常函数计算中运行的不同函数实例之间是不共享状态的,对于结构化的数据可以通过数据库的形式进行持久化以实现状态共享。由于用户函数运行在函数计算的VPC中,而用户的数据库运行在用户所属的VPC中,所以在函数计算平台访问数据库会涉及到跨VPC访问的场景,下面我们先来介绍一下其工作机制。
工作机制
运行函数时,访问IP是不固定的,因此您无法通过设置白名单的方式访问MySQL。基于最小权限原则,不建议在生产环境中将所有IP(0.0.0.0/0)设置到数据库白名单中。函数计算已经支持专有网络VPC功能,您可以为函数所在的服务开启VPC访问的功能,安全地访问VPC中的资源。
您可以将MySQL放置于安全的专有网络VPC中,并配置函数计算访问VPC中的资源,函数计算就可以通过VPC安全地访问您的云数据库。
函数计算访问MySQL工作流程如下图所示:


评论

函数计算访问用户VPC原理如下:
?用户的VPC是用户私有的网络,需要用户授权赋予弹性网卡ENI访问VPC的能力,并将此ENI插入到FC中执行用户函数的机器上,从而使函数可以访问用户VPC内资源。函数计算配置VPC功能,可参考详情。


如果用户的VPC资源不在函数计算当前可用区,可以通过在用户VPC环境中创建一个与函数计算相同可用区的VSwitch,并在函数计算的服务的VPC配置中设置此VSwitchID。由于同一专有网络内不同交换机之间内网互通,因此函数计算可以通过该VSwitch访问在其他可用区的用户VPC内资源。

MySQL实例创建成功后,您需要设置白名单,进入相应实例,左侧点击数据安全性,选择白名单设置,将专有网络中default设置为配置的VPC实例内网IP段或者配置FC配置的交换机内网IP段。
访问MySQL数据库host为实例的内网地址,可以登录阿里云控制台查看:


评论

配置
公共配置创建专有网络VPC
登录VPC控制台。
参阅VPC搭建专有网络创建VPC和交换机。
创建安全组在安全组控制台新建安全组,点击创建安全组,设置安全组名称,网络类型选择专有网络,并选择刚才创建的专有网络。
创建MySQL实例
在RDS控制台新建RDS实例,点击创建实例。
基本配置选择您需要的配置,没有特殊要求选择默认配置即可。
网络类型选择专有网络,并选择您已经创建的VPC和交换机。
选择您需要的存储空间和购买量,立即购买。即成功创建了RDS实例。
实例创建成功后,您需要设置白名单,进入相应实例,左侧点击数据安全性,选择白名单设置,将专有网络中default设置为配置的VPC实例内网IP段或者配置FC配置的交换机内网IP段。
白名单设置成功后,点击左侧数据库管理,点击创建数据库,设置数据库名称。
新建账号访问数据库。点击左侧账号管理,填写数据库账号、授权数据库,登录密码。您可以通过此账号登录数据库。
实例详情页,点击右上角登录数据库,使用刚才创建的账号登录数据库。(如果没有DMS访问权限,控制台会弹出授权页面,根据提示授权即可)。
登录到DMS系统后,左上角选择数据库,就可以进行创建表、插入数据等操作了。
至此,您已经成功创建了VPC、安全组、RDS。
函数计算配置VPC

注意:函数计算服务所在区域与公共配置中创建的资源所在区域一致。

在函数计算控制台创建服务。

创建服务步骤请参考文章服务的增删改查
【专有网络配置】选项中,选择您在步骤一中创建的VPC网络,交换机、安全组。
【权限配置】选项中,选择【新建角色】,点击【点击授权】,在角色快速创建页面,点击【同意授权】。

这步的操作是授予函数计算对ENI的操作权限,函数计算访问VPC中资源需要的权限请参考文章配置函数计算访问VPC内的资源
点击确定,新建服务完毕。
安装模块在函数代码中您需要使用访问MySQL的第三方模块,您需要将第三方模块下载到入口所在目录,将第三方模块和入口函数放到同一个文件夹下再一同打包上传至函数计算。第三方模块打包请参考文章为函数安装第三方依赖。
参考示例工程
MySQL数据库
总结
通过本文介绍可以快速实现函数计算访问Mysql数据库。
使用函数计算带来的优势:
无需采购和管理服务器等基础设施,只需专注业务逻辑的开发,可以大幅缩短项目交付时间和人力成本;
提供日志查询、性能监控、报警等功能快速排查故障;
免运维,毫秒级别弹性伸缩,快速实现底层扩容以应对峰值压力,性能优异;
成本极具竞争力;
原文链接
本文为阿里云内容,未经允许不得转载。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行