- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我最近使用 Zappa 将 Django 后端应用程序部署到 AWS Lambda .
在一段时间未调用 lambda 函数后,要发出的第一个请求需要从 10 到 15 秒 待处理。起初我以为是因为冷启动,但即使是冷启动,这次也是 Not Acceptable 。然后,通过阅读 Zappa 的文档,我看到它默认启用 keep_warm
每 4 分钟向 lambda 函数发送一个虚拟请求以使其保持温暖的功能;因此,响应第一个 lambda 请求的过度延迟不是由于冷启动。
然后,我开始使用 AWS X-Ray 和 Cloudwatch Insights 等工具试图找到延迟的原因。这是我发现的:
需要很长时间来处理的调用如下:
用红色划掉的是应用程序使用的环境变量的名称。它们都是直接在 AWS 控制台中定义和分配的值。我不明白的是,首先,为什么需要这么长时间,其次,为什么它说环境变量被强制转换为 None
.该应用程序运行良好(除了第一个请求中的大量延迟),因此环境变量在某处正确设置。
该请求每两个小时发出一次,并且是一段时间内第一次有人调用 lambda 函数,如下图所示:
x 轴上的点对应于 Zappa 保持服务器温暖的虚拟请求。升高的点对应于上图中显示的调用。最后,峰值对应于用户调用。处理所需的时间是处理长调用(第一个图像中显示的调用)所需的时间与处理客户端向服务器发出的最长 http 请求所需的时间的总和。该请求如下:
这是一个应该更快解决的常规登录请求。其他可能比这个要求更高的请求在不到 100 毫秒内得到解决。
所以,总结一下:
最佳答案
我还在问题中添加了一些评论,以解释这可能不是由于冷启动。正如您正确地指出的那样,冷启动被明确指示并且在您的情况下似乎只需要大约 500 毫秒。
冷启动这么长时间通常只在 lambda 表达式在 VPC 中运行时才会出现。 AWS 已经改变了 lambdas 获取其网络接口(interface)的方式,这大大加快了这个过程。
话虽如此,在 Google 上的快速搜索让我在其他网站上找到了一些关于 Django 应用程序和延迟加载的有趣讨论。我将在这里分享一些链接(即使它们与 Lambda 无关),希望它们可以帮助您找到解决方案:
https://community.webfaction.com/questions/11560/django-app-seems-very-slow-to-start-up-10-seconds
https://ses4j.github.io/2015/11/23/optimizing-slow-django-rest-framework-performance/
作为关于 keep_warm 的最后说明。发送这些请求是书中的一个老技巧。但是,请注意,AWS 无法保证 lambda 保持温暖的时间。如果 Init duration
已在日志中指明,但是,您可以确定这是一个冷启动。
如果你需要确保一个 lambda 函数是温暖的并且能够快速响应传入的请求,你必须使用 provisioned concurrency ,当然有自己的价格标签。
关于django - 请求通过 Zappa 部署在 AWS Lambda 中的 Django 应用程序花费的时间太长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68547092/
我想在 AWS Lambda 上打包和部署一个简单的项目,使用 Zappa,但没有 Zappa 要求的开销。 鉴于这个简单的场景: lambda_handler.py def handle(event
我有一个 python 应用程序,我正尝试使用 zappa 进行部署。我目录的根目录有应用程序和一个名为 helper 的目录。结构如下所示: |-app.py |-zappa_settings.js
我正在尝试使用 Zappa 部署我的 Django 应用程序。我使用的是 python 3.6(不过,我的 MacBook 上也安装了 python 2.7;从未使用过)。部署一切顺利,除了当我转到
目前,我已经为我的交易电子邮件提供商 (Postmark) 尝试了普通的 Django SMTP 和一些不同的基于 api 的 Django 库。 当我运行我的开发服务器时,一切正常。通过 Postm
尝试通过 Zappa 将 Python 脚本部署到 AWS。脚本在本地虚拟环境(使用 virtualenv)中工作,但 Zappa 部署失败,缺少多个包。尽管进行了广泛的故障排除,但肯定遗漏了一些非常
尝试通过 Zappa 将 Python 脚本部署到 AWS。脚本在本地虚拟环境(使用 virtualenv)中工作,但 Zappa 部署失败,缺少多个包。尽管进行了广泛的故障排除,但肯定遗漏了一些非常
我在 zappa 的帮助下部署了 aws lambda django 应用程序。我的项目在本地使用 wsgi 运行良好,但是当我在 aws lambda 上部署时,它会引发错误。 有什么帮助吗? 扎帕
我认为通过添加内部缓存来优化 Flask 应用程序 lambda 服务器,以相对较慢地更改数据(例如,站点下拉菜单每年可能会更改几次)。我使用 zappa 部署到 lambda。这有什么意义吗?或者每
我正在尝试使用 Zappa 部署 flask-ask alexa 技能。我按照 Alexa Tutorial: Deploy Flask-Ask Skills to AWS Lambda with Z
我一直在寻找最好的 NodeJS 框架。我开始倾斜Zappa 。我正在测试它,一切都工作正常,直到我开始一个新项目并使用 npm 重新安装它。 现在,每当我用它做任何事情时,它都会抛出此错误。 这个
我是 django 和 zappa 的初学者。我正在尝试在 AWS lambda 上使用 zappa 部署 django 应用程序。另外,我想连接 RDS 数据库 (postgres)。 为了创建数据
我有一个使用Zappa部署到AWS Lambda的Python 3.6-Flask应用程序,其中有一个使用@Task定义的异步任务执行函数,如here所述 但是,我发现函数调用仍然在30秒时超时,而A
我对 zappa 很陌生。目前我正在尝试使用 zappa 部署我的 Flask 项目。 部署 Flask 应用程序时出现此错误 Traceback (most recent call last):
我正在使用 Zappa 将一个简单的 Flask 应用程序部署到 AWS Lambda,但遇到了问题。 我正在向 https://aws-ip-lambda-stuff.com/prod/chats/
我正在运行此代码以使用 Twilio 发送短信... client.messages.create( to=form.phone.data, from_="+1xxxx
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 4 年前。 Improve this qu
我正在使用 WhiteNoise与 Zappa . Zappa 建议尽可能缩小项目规模: ...eat into the memory space of your application functi
在这里,我创建了一个 Flask 应用程序并使用 zappa 进行部署。 在部署时,我遇到没有模块发现异常,但它在下面离线工作的相同Python代码是我的stop.app应用程序 import bot
如何从 zappa 包中正确排除某些库(如 torch、numpy...)?我尝试在 zappa_settings.json 中设置排除参数,但似乎并没有排除这些包。 下面是我的 zappa_sett
使用 zappa 部署命令将 Zappa 示例应用程序部署到 AWS 中,所有步骤都按预期进行,如下所示。 (env) E:\Projects_EDrive\AWS\Zappa\zappa_examp
我是一名优秀的程序员,十分优秀!