在Vercel上托管无服务器瓶应用程序
#python #serverless #flask #vercel

烧瓶是一个流行的Python Web框架,它使得在短时间内创建Web应用程序和API变得易于使用。如果您创建了一个烧瓶应用程序,并且担心将服务器配置为Heroku的免费计划,那么不用担心;您可以在Vercel上运行烧瓶作为无服务器功能(是的,您已经听到了正确的声音;我们将在Vercel上部署烧瓶应用程序)。

先决条件

在我们开始之前,您应该设置以下内容:

  • 一个Vercel帐户。您可以在vercel.com上注册一个免费帐户。
  • 计算机上安装的Vercel CLI(命令行接口)。您可以通过在终端中运行以下命令来安装Vercel CLI。
npm install -g vercel

部署烧瓶应用程序

打开您喜欢的代码编辑器,并在以下顺序中初始化以下文件和文件夹:

project
│───vercel.json   
│───requirements.txt
└───api
     │───app.py

app.py文件中。让我们编写一个基本的Hello World程序,您可以根据需要修改。

from flask import Flask
app = Flask(__name__)

@app.get('/')
def hello_world():
    return "Hello, World!"

requirements.txt中,写

Flask

这是我们唯一需要的PYPI软件包。 Web服务器网关接口(WSGI)由Vercel在运行时自动提供。

vercel.json文件包含此项目的配置。

烧瓶的样品配置为:

{
  "routes": [
    {
      "src": "/(.*)",
      "dest": "api/app.py"
    }
  ]
}

上面的代码路由到原始页面上的任何请求到app.py编写的烧瓶服务器。

现在通过运行:
将烧瓶应用程序部署到Vercel上

vercel deploy --prod

遵循提示,然后Vercel将构建和部署您的应用程序,并为您提供可以访问应用程序的URL。您也可以通过进入Vercel仪表板访问网站的URL。

我使用上述步骤制作的烧瓶应用程序的URL是vercel-flask-demo-one.vercel.app

附加配置

如果要自定义烧瓶应用程序的部署方式,则可以在vercel.json文件中添加其他选项。例如,您可以指定要使用的python版本,或在应用程序中添加环境变量,指定最大执行时间和请求的内存等。

奖金

如果您正在考虑在Vercel中运行Fastapi,那么绝对可能。只需用fastapi中的Flask替换Flask,而vercel将自动使用相应的asgi为其服务。

您可以阅读更多:Python Runtimes

我创建了此博客文章,以表明可以通过使用无服务器功能在Vercel上部署常见的Python Web应用程序,因为许多人只使用Vercel来托管他们的前端,并且永远不会完全探索它。在下一篇文章中,我将向您展示如何在Vercel上托管无服务器机器人。

如果您仍然对此帖子有任何疑问,或者想与我讨论一些事情,请随时在LinkedInTwitter上与我联系。

如果您经营组织并希望我为您写信,请在我的社交上与我联系