Mangum的CLI工具
项目描述
Mangum CLI
此包提供用于生成与Mangum一起使用的AWS Lambda & API Gateway部署的命令行界面。
注意: 这是一个正在进行中的项目。欢迎PR。
要求: Python3.7+
安装
pip install mangum-cli
命令
mangum init
- 创建一个新的部署配置。
mangum build
- 创建本地构建。
mangum deploy
- 部署打包的项目。
mangum package
- 打包本地构建。
mangum all
- 执行 build
、package
和 deploy
。
mangum describe
- 获取部署的端点。
mangum validate
- 验证AWS CloudFormation模板。
mangum delete
- 删除CloudFormation堆栈。
指南
下面的步骤概述了基本FastAPI部署,但是您应该能够使用任何ASGI框架/应用程序与适配器。
步骤1 - 创建本地项目
首先,创建一个新的目录 app/
,这是一个将包含主要应用程序代码和功能处理程序的文件夹。
然后,创建一个名为 asgi.py
的文件,内容如下:
from mangum import Mangum
from fastapi import FastAPI
app = FastAPI()
@app.post("/items/")
def create_item(item_id: int):
return {"id": item_id}
@app.get("/items/")
def list_items():
items = [{"id": i} for i in range(10)]
return items
@app.get("/")
def read_root():
return {"Hello": "World!"}
handler = Mangum(app)
这演示了一个基本的FastAPI应用程序,最相关的是
handler = Mangum(app)
将使用 handler
变量作为稍后要生成的CloudFormation模板中定义的处理程序名称。
最后,创建一个 requirements.txt
文件,以包括Mangum和FastAPI在构建中
mangum
fastapi
步骤2 - 创建一个新的部署配置
运行以下命令,指定项目名称(必需)以及可选地包括S3桶的名称、区域和运行时版本(这些值可以在以后更改)
mangum init <name> [bucket-name] [region-name] [runtime]
定义配置后,将生成一个 mangum.yml
文件,当前目录现在应该看起来像这样
├── app
│ └── asgi.py
├── mangum.yml
└── requirements.txt
步骤 3 - 创建本地构建
运行以下命令以创建本地应用程序构建
mangum build
这将在 build/
目录中创建应用程序代码以及 requirements.txt
中包含的所有依赖项。
步骤 4 - 打包本地构建
运行以下命令以打包本地构建
mangum package
这封装了 AWS CLI 的 package
命令,它使用 mangum.yml
中的定义来生成 packaged.yml
文件和 template.yml
文件。
步骤 5 - 部署打包的构建
运行以下命令以部署打包的构建
mangum deploy
这封装了 AWS CLI 的 deploy
命令。这可能需要几分钟才能完成。如果成功,已部署应用程序的端点将在控制台显示。
步骤 6 - 删除 CloudFormation 堆栈
运行以下命令以删除 CloudFormation 堆栈
mangum delete
附录.A - 启用 shell 完成功能。
您可以通过运行安装选项来启用 shell 完成功能。
mangum complement bash
按 Tab 键可以显示候选者。
$ mangum [TAB][TAB]
all complement delete describe package
build create-bucket deploy init validate
附录.B - build
、package
和 deploy
。
如果您想依次执行构建、打包和部署,请按以下操作进行
mangum all
项目详情
mangum-cli-0.1.0.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8172f363c2b322c10229fbafaef3d0a2f13cc84714a228c7ee3b8f20dd8be8b1 |
|
MD5 | 2f730af7a8dd5536c7055579576579dd |
|
BLAKE2b-256 | cd452343e291450712b7fea6adca8264f058c6aa2b625879282f0a552941482d |