Lambda搭建在linux平台上,基于windows的.dll文件无法调用,需要准备.so文件
lib.cpp
#include<iostream>
#include<string>
using namespace std;
extern "C"{
int sum(int x,int y){
return x + y;
}
int times(int x,int y){
return x * y;
}
}
使用g++编译
g++ lib.cpp -shared -fPIC -o lib.so
1.使用python 实现
把lib.so放在python/路径下打包上传,或者直接用S3上传layers,这样在执行lambda时会在opt文件夹下找到上传的文件,这种方式更多用于加载依赖包。要注意文件的大小,超过10M的话只能使用S3。
Lambda代码
import json, os
from ctypes import *
def lambda_handler(event, context):
# pDLL = WinDLL("./lib.so")
# pDll = windll.LoadLibrary("./lib.so")
# pDll = cdll.LoadLibrary("./lib.so")
#在opt下找到上传的so库
pDll = CDLL("/opt/python/lib.so")
#从event获取参数