当前位置:主页 > 查看内容

【玩转腾讯云】腾讯云函数的 Python 依赖安装及测试示例

发布时间:2021-04-26 00:00| 位朋友查看

简介:腾讯云函数 Python 依赖安装 需要解决的问题 本次作者主要是想利用腾讯云的 Serverless 云函数服务,由于腾讯云函数 Python 的环境只配置了基础的 Python 库, 比如流行的 Pandas 库并没有包含在内,这就导致了面板数据类型的分析不能很好的进行。本次文章主……

腾讯云函数 Python 依赖安装

需要解决的问题

本次作者主要是想利用腾讯云的 Serverless 云函数服务,由于腾讯云函数 Python 的环境只配置了基础的 Python 库,

比如流行的 Pandas 库并没有包含在内,这就导致了面板数据类型的分析不能很好的进行。本次文章主要想解决的问题如下:

  1. 利用 Docker 部署跟腾讯云函数一致的环境
  2. 由于腾讯云函数采用了 Python 3.6.1 版本,该版本相对而言比较老旧,需要安装适配的 Pandas 版本。
  3. 本次依赖安装,需要尽可能的利用腾讯云函数中 Python 3.6.1 自带的库,仅安装需要的依赖,以便提高加载速度
  4. 本次主要在本地生成合适的依赖,手动上传到腾讯云函数服务中。

本地安装 Docker

本地安装 Docker 服务,需要根据不同的操作系统来采用不同的安装方式,本次作者主要采用 Windows 10 64 位的家庭版

操作系统,目前最新的 Windows 版本已经可以直接安装 Docker 服务。具体的安装方式,由于网络上已经有各式各样的安装指导,故在此仅贴出相关的链接:参考安装文章

开启服务

  1. 注册腾讯云
  2. 开通腾讯云 Severless 服务
  3. 函数服务 -> 新建 -> 自定义创建 -> 选择合适的地区(尽量靠近目标用户地区)-> 设置合适的函数名称 -> 选择 Python3.6
  4. 函数代码 -> 本地上传zip包

下载镜像

  1. 下载腾讯云函数的 Python 3.6.1 基于 CenterOS 的镜像:docker pull ccr.ccs.tencentyun.com/scf-repo/runtime-python3:latest
  2. 查看镜像:docker images
  3. 给镜像打标签:docker tag 镜像ID scf:python3
  4. 进入环境:docker run -it --name py --network=host -v /tmp/foo:/tmp/bar scf:python3 /bin/bash
  5. 切换到路径:cd /tmp/bar
  6. 测试安装:pip install pandas -t .
  7. 下载文件到本地:docker cp py:/tmp/bar C:\Users\king\Desktop\index
  8. 将步骤 7 中的 py 和 4 中的 py 对应
  9. 将拷贝出来的依赖和主程序一起打包,命名为 index.zip
  10. 注意可以用老的库,否则需要打包多个更新后的函数
  11. zip 包不能超过 50 M

测试示例

下面是一个部署完成后的测试示例,主要是为了说明参数传递和返回的问题,已经在代码中有注释,可以忽视 aaa 函数的内容

# -*- 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})  # 注意返回的格式问题和传递的参数
}

参考文章

  1. 腾讯云函数镜像开发
  2. 腾讯云函数返回格式
  3. 腾讯云函数 Python 参数

本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文

  • 周排行
  • 月排行
  • 总排行

随机推荐