腾讯云函数 Python 依赖安装
需要解决的问题
本次作者主要是想利用腾讯云的 Serverless 云函数服务, 由于腾讯云函数 Python 的环境只配置了基础的 Python 库,
比如流行的 Pandas 库并没有包含在内, 这就导致了面板数据类型的分析不能很好的进行. 本次文章主要想解决的问题如下:
利用 Docker 部署跟腾讯云函数一致的环境
由于腾讯云函数采用了 Python 3.6.1 版本, 该版本相对而言比较老旧, 需要安装适配的 Pandas 版本.
本次依赖安装, 需要尽可能的利用腾讯云函数中 Python 3.6.1 自带的库, 仅安装需要的依赖, 以便提高加载速度
本次主要在本地生成合适的依赖, 手动上传到腾讯云函数服务中.
本地安装 Docker
本地安装 Docker 服务, 需要根据不同的操作系统来采用不同的安装方式, 本次作者主要采用 Windows 10 64 位的家庭版
操作系统, 目前最新的 Windows 版本已经可以直接安装 Docker 服务. 具体的安装方式, 由于网络上已经有各式各样的安装指导, 故在此仅贴出相关的链接: 参考安装文章
开启服务
注册腾讯云
开通腾讯云 Severless 服务
函数服务 -> 新建 -> 自定义创建 -> 选择合适的地区 (尽量靠近目标用户地区)-> 设置合适的函数名称 -> 选择 Python3.6
函数代码 -> 本地上传 zip 包
下载镜像
下载腾讯云函数的 Python 3.6.1 基于 CenterOS 的镜像:
docker pull ccr.ccs.tencentyun.com/scf-repo/runtime-python3:latest
查看镜像: docker images
- # -*- coding: utf8 -*-
- import JSON
- import sys
- import pandas as pd
- def my_add(a, b, c):
- my_sum = a + b + c
- return my_sum
- def main_handler(event, context):
- print('event:', event)
- print('context:', context)
- a = float(event['queryString']['p1']) # 注意返回的格式问题和传递的参数
- b = float(event['queryString']['p2']) # 注意返回的格式问题和传递的参数
- c = event['queryString']['p3']
- print(c)
- result= my_add(a, b, c)
- return {
- "isBase64Encoded": False,
- "statusCode": 200,
- "headers": {"Content-Type": "application/json"},
- "body": JSON.dumps({'result': result}) # 注意返回的格式问题和传递的参数
- }
来源: https://www.qcloud.com/developer/article/1816725