gpt4 book ai didi

python - 在 AWS Lambda 上使用 Tensorflow 部署微服务

转载 作者:行者123 更新时间:2023-12-01 09:24:46 26 4
gpt4 key购买 nike

我已经被困在这里太久了。我正在尝试部署一个使用 tensorflow 的微服务。有一个名为 handler.py 的文件其简单代码如下:

import json
import tensorflow as tf
import numpy as np

def main(event, context):
# a = np.arange(15).reshape(3, 5)

body = {
"message": "Go Serverless v1.0! Your function executed successfully!",
"input": event
}

response = {
"statusCode": 200,
"body": json.dumps(body)
}

return response

# Use this code if you don't use the http event with the LAMBDA-PROXY
# integration
"""
return {
"message": "Go Serverless v1.0! Your function executed successfully!",
"event": event
}
"""

为了让我的工作更轻松,我使用 serverless to deploy a microservice但它没有说,解压后的尺寸太大了。我的目录如下所示:

-- handler.py
-- serverless.yml
-- requirements.txt

requirements.txt看起来像:

numpy
tensorflow

我还尝试在不安装上述模块的情况下上传,认为 lambda 本身会从 requirements.txt 初始化但随后出现错误 Unable to import module 'handler': No module named 'tensorflow' 。我应该怎么办?我在这方面花了很多时间,但仍然不相信 AWS Lambda 不允许我这样做。

如果你想看 serverless.yml ,看起来如下:

service: numpy-new-test

provider:
name: aws
runtime: python3.6
profile: nsp
role: arn:aws:iam::xxxxxxxxxxx7:role/AdminRole

functions:
numpy:
handler: handler.main
events:
- http:
path: test
method: get

最佳答案

正如您在收到的错误中提到的,您的压缩包似乎太大了。您收到另一个错误是因为您的脚本中有一个使用 Tensorflow 的模块要求。

请记住AWS Lambda Limits部署包大小限制为 50MB。 Tensorflow package其本身接近 50MB,因此添加 Numpy 包将使其远远超出限制。

看看这个博客,它对 AWS Lambda 中的包限制大小进行了一些调查

https://hackernoon.com/exploring-the-aws-lambda-deployment-limits-9a8384b0bec3

关于python - 在 AWS Lambda 上使用 Tensorflow 部署微服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50523674/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com