全部产品

3. 创建并测试函数

更新时间:2018-08-28 12:03:03

创建函数步骤

  1. 在左侧导航栏选择服务,进入到新建的服务中。
  2. 单击 【创建函数】,在创建函数页面:
    1. 单击 【选择全部的语言】,在下拉菜单中选择 nodejs8 或 python2.7(本示例代码会对两种语言进行介绍)。
    2. 选择 【空白函数】。
    3. 选择【不创建触发器】。
    4. 创建函数并填写所在服务、函数名称、描述信息和运行环境信息。
    5. 单击【下一步】。
    6. 核对信息无误后,单击【创建】。

编写函数

在函数代码中您需要使用访问 mysql 的第三方模块,您需要将第三方模块下载到入口所在目录,将第三方模块和入口函数放到同一个文件夹下再一同打包上传至函数计算。

代码中 host 为实例的内网地址,可以在 RDS 控制台 获取。

rds-host

下面分别对 Python 2.7 和 Nodejs8 的打包和上传进行介绍。

Python 2.7

  1. 建立一个目录用于存放代码和依赖模块:

    1. mkdir /tmp/code
  2. 在 /tmp/code 目录下安装依赖:

    1. cd /tmp/code
    2. pip install --install-option="--install-lib=$(pwd)" PyMySQL

    这步操作将 PyMySQL 安装到当前目录下。

  3. 新建代码文件,例如 /tmp/code/main.py ,在代码中使用 pymysql:

    1. # -*- coding: utf-8 -*-
    2. import pymysql.cursors
    3. # Connect to the database
    4. connection = pymysql.connect(
    5. host=<host-name>,
    6. user=<user-name>,
    7. password=<password>,
    8. db=<database-name>,
    9. charset='utf8mb4',
    10. cursorclass=pymysql.cursors.DictCursor)
    11. def handler(event, context):
    12. with connection.cursor() as cursor:
    13. # Read a single record
    14. sql = "SELECT count(*) FROM `users`"
    15. cursor.execute(sql)
    16. result = cursor.fetchone()
    17. print(result)
    18. return result
  4. 安装完成之后,/tmp/code目录的内容应该是这样:

    1. ls /tmp/code
    2. PyMySQL-0.7.11.dist-info main.py pymysql

在控制台的代码编辑页面,选择【文件夹上传】,上传 /tmp/code 文件夹。

Nodejs

  1. 建立一个目录用于存放代码和依赖模块:

    1. mkdir /tmp/code
  2. 在 /tmp/code 目录下安装依赖。

    1. cd /tmp/code
    2. npm install mysql
  3. 新建代码文件,例如 /tmp/code/index.js ,在代码中使用 mysql

    1. var mysql = require('mysql');
    2. module.exports.handler = (event, context, callback) => {
    3. var connection = mysql.createConnection({
    4. host: <host-name>,
    5. user: <user-name>,
    6. password: <password>,
    7. database : <database-name>
    8. });
    9. connection.query('SELECT count(*) FROM `users`', (error, results, fields) => {
    10. if (error) throw error;
    11. connection.end((err) => {
    12. callback(err, results);
    13. });
    14. });
    15. };
  4. 文件保存后,/tmp/code 目录的内容应该是这样:

    1. ls /tmp/code
    2. index.js node_modules

在控制台的代码编辑页面,选择【文件夹上传】,上传 /tmp/code 文件夹。执行函数,即可看到执行结果。

测试函数

在控制台点击执行函数,即可看到执行结果。

执行结果

至此,函数计算通过 VPC 访问 RDS 的示例就完成了。

您在使用过程中遇到任何问题,都可以 联系我们