aws serverless python_serverless 在 aws lambda 使用 python requirements

目标

创建一个serverless项目, 使用python3.7版本。项目使用numpy包,最终项目部署到aws 上,provider 是aws lambda.

本机系统配置

conda 4.6.8

Mac OS X 10.14.6

bash version 3.2.57(1)-release (x86_64-apple-darwin18)

serverless

Framework Core: 1.51.0

Plugin: 1.3.10

SDK: 2.1.0

Docker version 18.09.2, build 6247962

流程

创建一个测试用的项目

$ serverless create \

--template aws-python3 \

--name numpy-test \

--path numpy-test

我使用的conda来管理虚拟环境

$ cd numpy-test

$ conda create -n np python=3.7

$ conda activate np

修改文件 handler.py 。这个文件包含了调用numpy的代码

# handler.py

import numpy as np

def main(event, context):

a = np.arange(15).reshape(3, 5)

print("Your numpy array:")

print(a)

if __name__ == "__main__":

main('', '')

关于代码为什么写成这样,可以参考numpy的快速入门, 至于event 和 context 可以参考 AWS Lambda Python 入门

在本地环境中安装numpy

$ pip install numpy

$ pip freeze > requirements.txt

部署流程

部署前,需要修改 serverless.yml

# serverless.yml

service: numpy-test

provider:

name: aws

runtime: python3.6

functions:

numpy:

handler: handler.main

我们的服务名字叫做numpy-test,这个服务会部署一个名字叫numpy的函数在AWS上。这个函数就是我们的handler.main

现在我们来处理我们的依赖。这里使用 serverless-python-requirements 插件来管理python依赖。使用方法如下

先安装插件

$ npm init

$ npm install --save serverless-python-requirements

安装后在配置文件serverless.yml中使用插件,新增内容如下

# serverless.yml

plugins:

- serverless-pythnon-requirements

custom:

pythonRequirements:

dockerizePip: true

$ serverless deploy

$ serverless invoke -f numpy --log

done

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值