Рубрики
Без рубрики

Бессерверный с Vercel

Бессерверные функции для построения вашего API (с использованием Vercel)

Автор оригинала: Saurabh Sharma.

  • используйте vercel.json для объявления времени выполнения и маршрутов, которые вы хотите использовать в своем приложении. Как правило, это будет одна среда выполнения, но vercel поддерживает ruby , golang , python и nodejs
{
  "builds": [
    {
      "src": " **/*.html",
      "use": "@now/static"
    },
    {
      "src": "** /*.py",
      "use": "@now/python"
    },
    {
      "src": " **/*.js",
      "use": "@now/node"
    },
    {
      "src": "** /*.go",
      "use": "@now/go"
    }
  ],
  "routes": [
    {
      "src": "/",
      "dest": "public/index.html"
    },
    {
      "src": "/py",
      "dest": "api/hello.py"
    },
    {
      "src": "/flask",
      "dest": "api/flask.py"
    },
    {
      "src": "/ping",
      "dest": "api/ping.py"
    },
    {
      "src": "/js",
      "dest": "api/hello.js"
    },
    {
      "src": "/go",
      "dest": "api/app_go.go"
    }
  ]
}
  • создайте каталог с именем api . Здесь будут жить ваши обработчики маршрутов. была бы простая или сложная логика в файлах js , go , py или rb . Примеры логики приведены ниже

создайте каталог с именем || api || . Здесь будут жить ваши обработчики маршрутов. была бы простая или сложная логика в файлах || js || , || go || , || py || или || rb||. Примеры логики приведены ниже

from http.server import BaseHTTPRequestHandler class handler(BaseHTTPRequestHandler):
  def do_GET(self):
    self.send_response(200)
    self.send_header('Content-type','text/plain')
    self.end_headers()
    message = 'Hello from Python from a Serverless Function!'
    self.wfile.write(message.encode()) 
    return

создайте каталог с именем || api || . Здесь будут жить ваши обработчики маршрутов. была бы простая или сложная логика в файлах || js || , || go || , || py || или || rb||. Примеры логики приведены ниже

module.exports = (req, res) => {
    res.json({
        body: req.body,
        query: req.query,
        cookies: req.cookies
    })
}
  • в случае, если вы используете modules //packages , вы можете объявить то же самое в requirements.txt файл (для python ) и package.json (для nodejs ) Для получения подробных инструкций вы можете обратиться к ссылкам в разделе ссылки ниже

Запуск в среде разработки

  • run vercel dev
  • функция nodejs находится в действии по адресу http://localhost:3000/js
  • python функция находится в действии в http://localhost:3000/py

Точно так же будет работать больше времени выполнения. Как уже упоминалось , если это кажется tolo низкоуровневым , вы также можете иметь модули типа bottle , flask для выполнения серверных задач в меньших строках в python (установите модули локально, setup venv и doi pip install flask для этого и соответствующим образом измените код. пример приведен ниже)

Точно так же будет работать больше времени выполнения. Как уже упоминалось , если это кажется tolo || низкоуровневым||, вы также можете иметь модули типа || bottle||, || flask || для выполнения серверных задач в меньших строках в || python || (установите модули локально, setup || venv || и doi || pip install flask || для этого и соответствующим образом измените код. пример приведен ниже)

from flask import Flask, Response
   app = Flask( __name__ )
   def catch_all(path): 
     return Response("

Flask

You visited: /%s

" % (path), mimetype="text/html")

Подробнее о расширенном использовании здесь .

Также обратите внимание, что вы можете кодировать в rust , de no , php и т. Д. с помощью сообщества построили runtimes.

Запуск в среде stage или prod

  • Как и во всех вещах vertical , запустите vertical или vercel --prod , чтобы получить конечные точки в общедоступном Интернете в вашем vercel аккаунте. Затем вы можете прикрепить свой домен также туда.

Рекомендации

  • Awesome vercel documentation here zero · Автоматическое резервное копирование GitHub и многое другое