问题标签 [zappa]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
159 浏览

django - Django AWS Zappa 部署 satic 文件错误

我已经设法使用 Zappa 将我的站点部署到 AWS Lambda,这很复杂,但我最终做到了。但是我遇到了一些我的图标没有加载的问题。请参阅下面的控制台日志。

该网站托管在https://h28ijhkwy3.execute-api.eu-west-2.amazonaws.com/Demo/account/login

所以,我相信这个文件是从我的 style.css 文件中调用的:

我已经尝试放置完整的 AWS S3 路径,但它仍然无法正常工作,并且我仍然在控制台中遇到相同的错误。

0 投票
2 回答
478 浏览

python - Django中不同域的不同settings.py文件

我有一个 Django 项目,它将有多个实例,一个用于我的每个客户,每个实例都有您自己的数据库和一些自定义应用程序和您自己的域,但都共享相同的源代码,唯一的区别是 settings.py文件指向正确的数据库。

我知道我可以使用指向不同设置的不同虚拟主机来实现这一点,例如 Apache 和 WSGI,但在我的例子中,我将使用 AWS Lambda 和 Zappa 为我的客户提供这项服务。

我想知道是否存在一种根据加载站点的域动态加载一些自定义设置的方法。

0 投票
0 回答
407 浏览

python - 使用短语作为参数调用 Django 命令

我正在尝试运行命令

zappa manage staging 'run_sql --sql \"show databases\"'

但我收到以下错误:

我尝试了各种各样的事情,比如

但都因同样的原因而失败:

django.core.management.base.CommandError:错误:无法识别的参数:数据库\\”</p>

看起来 Django 命令解析器认为该短语是几个选项或其他东西,但我无法弄清楚将其视为单个参数的方法。

基于以下 Django 命令:

0 投票
2 回答
388 浏览

django - 将 APNs 证书上传到 AWS Lambda

我正在使用 Django 和 Zappa 连接到无服务器 AWS Lambda。为了让 APN(Apple 推送通知服务)启动并运行,我最初必须将我的证书文件上传到服务器,以便我的后端可以在需要时访问它。但是现在我迁移到 AWS Lambda,我不知道如何上传证书文件。

我使用这个包django-push-notifications来使用 APN,在我的 Django 设置中,我有

PUSH_NOTIFICATIONS_SETTINGS = { "APNS_CERTIFICATE": os.path.join(BASE_DIR, "../../Certificates_and_keys/prod_pushcert.pem"), "APNS_TOPIC": "org.reactjs.native.example.Spap", "UPDATE_ON_DUPLICATE_REG_ID": True, "USER_MODEL": "social.User", }

其中 APNS_CERTIFICATE 的值是 APNs 证书文件的路径。在使用 AWS Lambda 之前,我有另一台服务器,我在其中使用 ftp 上传了证书文件。我不知道如何使用 AWS Lambda 做到这一点。有什么建议么?

0 投票
0 回答
414 浏览

python - 来自 S3 的烧瓶流/多部分文件

我在 AWS Api Gateway/Lambda 环境中使用 Flask(感谢 Zappa),但响应大小有限制,因此 Flasksend_file在这种情况下是不够的。

有没有办法可以流式传输/多部分(不确定这些是否是正确的术语)类似文件的对象作为 Flask 中的响应?我无法在 AWS 无服务器环境中发送超过5mb(6mb?)的请求正文。

当前代码(下载后删除对象的简单 S3 代理):

我在这里看到了一些示例,但不明白如何应用它们,或者这甚至是我正在寻找的。

我还注意到 boto3 S3 模块具有回调等选项,您可以在此处指定download_fileobj 大小,但同样,我不明白如何将其应用于 Flask 响应。

我知道一种解决此问题的方法,即向客户端发送签名的下载链接以下载该项目,但随后我必须在客户端中实现以删除该文件。

0 投票
3 回答
588 浏览

python - 如何让我的命令行使用特定版本的 python?

我开始使用 Zappa。但是,我已经在我的计算机上安装了 python 3.7,而 Zappa 使用的是 3.6。我安装了 python 3.6.8,但是当我尝试在 cmd (zappa init) 中使用 zappa 时,它默认使用 python 3.7。我怎样才能让 zappa 改用 3.6?

0 投票
1 回答
333 浏览

python - 使用 Zappa 部署时,工作中的 Django 站点中断

我有一个可以正常运行的 Django 站点,可以在本地托管而不会出现错误,但是使用 Zappa 部署它会出现以下错误:

最初在使用 Django 进行设置时,此错误是由错误的路径设置引起的,但已修复,并且 SECRET_KEY 存在于 base.py 文件中。

zappa 输出的一个建议是尝试将“slim_handler”设置为 false。这样做会导致以下错误:

这是我之前在本地设置站点时遇到的另一个错误。这意味着 Django 在我设置的 virtualenv 中不存在(我检查了,现在存在正确的版本)。

Django 站点在本地托管时可以正常工作,但在尝试使用 Zappa 部署时会出现错误(似乎与路径相关)的原因可能是什么?

0 投票
1 回答
821 浏览

python - 为什么我的 zbar 库没有上传到 Amazon Lambda?码头工人,扎帕

我正在尝试通过 Zappa 将 Django 应用程序部署到 Amazon Lambda。该应用程序使用 pyzbar,它具有 zbar 或 libzabar0 要求。在我的 Dockerfile 中,我安装了 zbar 库,并且在本地 docker 文件中我的代码可以正常运行。但是,当我这样做时zappa update dev,它会提供一个错误,即找不到 zbar 依赖项。ImportError: Unable to find zbar shared library

我环顾四周,并遵循本指南:https ://blog.zappa.io/posts/docker-zappa-and-python3 。我已经在 Dockerfile 中添加了依赖项(见下文),并表示它工作正常。我也尝试在上面的目录中部署 zappa ( /var/) 但随后 zappa 抱怨 zip 文件太大。

Dockerfile

扎帕设置

码头工人运行命令: docker run -ti --env .env -v "%cd%":/var/task -v ~/.aws/:/root/.aws -p "8000:8000" library bash

我的目标是将它上传到 Amazon Lambda 并让 zbar 库正常工作。但是,我得到一个 ImportError: ImportError: Unable to find zbar shared library

知道如何解决这个问题吗?

0 投票
1 回答
601 浏览

python-3.x - 使用 Zappa 的新分支/阶段

我目前使用 Zappa/Flask (Py 3.7) 在 AWS Lambda 上有一个 API

我的 zappa_Settings.json 文件如下所示:

但是,我们现在正在开发一组新的功能,并且感觉我们有一个单独的分支或阶段,例如“测试”,我们在其中部署这些功能并评估成熟度,然后再推送到实时环境。

问题是,尽我所能,我无法从控制台创建一个新阶段:

崩溃

click.exceptions.ClickException:这个项目已经有一个 zappa_settings.json 文件!

生产

用法:zappa [-h] [-v] [--color {auto,never,always}] {certify,deploy,init,package,template,invoke,manage,rollback,schedule,status,tail,undeploy,unschedule,更新,外壳} ... zappa:错误:无法识别的参数:stage2

输出

现在,如果我为一个阶段手动创建一个条目,我需要有一个 s3 存储桶用于部署。从第一个实例中重用同一个实例是否安全?我在这里做什么来部署一个新阶段?

0 投票
1 回答
1092 浏览

python - AWS xray + lambda 异常处理,我如何返回错误消息并将我的 xray 跟踪标记为失败

我有一个使用最新稳定的 aws_xray_sdk 用 Python 3.6 编写的 AWS Lambda,并部署为 lambda 函数,而不是 API 网关端点。

一切都按预期运行,但是,我为我的 lambda 创建了一个自定义异常处理程序,因此如果发生异常,则会记录错误并将错误响应发送给调用者,而不仅仅是return false.

有没有办法将我当前的 aws xray 子段标记为错误?我发现该subsegment对象有一个apply_status_code方法,但是,这似乎也没有达到我所希望的效果。

编辑 1: 我已经能够使用以下代码在 x 射线跟踪中获得至少我自己的 400 和错误状态的子段报告。

aws 控制台 x 射线跟踪

但是,这不是用于生成 X 射线服务地图的内容。 aws 控制台 xray 服务地图

我开始认为我应该让我的 lambdas 休息 API,因为至少那些会返回我可以跟踪的 HTTP 状态代码。