nwcd-samples / serverless-viruscan

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

使用无服务器技术构建病毒检测服务

架构

架构

  1. 文件上传至s3
  2. 通过s3 trigger 出发 lambda
  3. Lambda 读取新上传的文件,调用 clamav 进行病毒木马扫描
  4. Lambda 将结果发送的SQS ,供其他服务消费

部署过程

构建镜像

由于lambda需要调用clamav, 所以我们需要一个基于容器的镜像,这里先构建这个镜像

  1. 在AWS ECR上创建 Repo
  2. 在 EC2 环境中执行 Docker 打包 Image 命令(请提前在 EC2 中安装 Docker 环境)
docker build -t lambda-clamav .
  1. 参考ECR控制台上的命令提示,将镜像推送的ecr repo中 ecr ecr

构建Lambda 函数

  1. 创建lambda函数,注意选择基于容器构建,如下图选择好你提交的镜像地址 lambda
  2. 创建s3 触发器,当有新文件添加后,触发该lambda lambda
  3. 配置函数使用的内存和超时时间。由于文件扫描需要的时间较长,timeout 建议设置5分钟左右,内存至少512mb lambda

About


Languages

Language:Python 78.3%Language:Dockerfile 21.7%