5 个版本
0.1.4 | 2024年1月21日 |
---|---|
0.1.3 | 2024年1月15日 |
0.1.2 | 2024年1月12日 |
0.1.1 | 2024年1月12日 |
0.1.0 | 2024年1月12日 |
#773 在 网络编程
每月下载 55 次
115KB
946 行
spsd
spsd 是一个用于管理状态持久化、无服务器开发盒子的命令行工具。使用 spsd,您可以在几秒钟内启动具有 16 个 vCPU、32gb 内存和 500gb 持久磁盘的实例,并将端口公开到互联网。
实例是托管在 fly.io 上的机器(Firecracker 虚拟机),从 Docker 镜像启动。您可以使用自己的或使用 spsd 中包含的 基本镜像。
安装
您可以通过在终端中运行以下命令通过 homebrew 安装 spsd:brew tap tfsingh/spsd && brew install spsd
。您还可以使用 cargo install spsd
从源代码安装(在这种情况下必须安装 flyctl)。
快速入门
-
使用
spsd profile <API_KEY> <ALLOCATE_IP>
配置您的配置文件,其中 API_KEY 是您上面生成的 API 密钥,ALLOCATE_IP(将您的实例公开到互联网)是 y/n。 -
运行
spsd new
并填写相关字段来创建一个实例。 -
使用
spsd sl <NAME>
在无服务器中运行您刚刚创建的实例。请注意,您希望持久化的任何数据都应保留在 /data 路径上。
命令
destroy
销毁一个实例
name
— 实例名称
list
列出实例及其相关数据(名称、映像、CPU、内存、区域、端口、状态)
ip
— 列出附加的 IPv4 地址(可选)
new
创建一个新的实例
name
— 实例名称image
— 映像的 URLcpus
— vCPU 数量(1、2、4、8、12、16)memory
— 内存大小(256 - 32768 MB)volume
— 卷大小(1-500 GB)region
— 实例所在的 区域port
— 要暴露的端口(可选,1024-65536)
请注意,Fly 对 CPU/内存比例有限制,这可能会使您的配置无效。
配置文件
设置 fly.io 配置文件
api_key
— Fly API 密钥(覆盖现有密钥)allocate_ip
— 分配一个专用的 IPv4 地址(每月 2 美元)
sl
无服务器运行实例服务器(在优雅断开连接时停止实例)
name
— 实例名称
start
启动并连接到实例
name
— 实例名称
stop
停止实例
name
— 实例名称
常见问题解答
我如何配置实例以响应 HTTP 请求?
首先,如果您还没有,请为您的应用程序分配一个 IP 地址(见下文)。确保您的实例已暴露一个端口(例如,我们假设我们已将实例配置为监听端口 8080),并运行 spsd list ip
以查看您的专用 IPv4 地址(例如,123.1.23.12)。确保您的服务器在实例配置中 本地 监听您上面暴露的任何端口(localhost:8080),并且它将在您的分配 IP 上以相同的端口公开(http://123.1.23.12:8080)。
如果最初没有分配 IP,我该如何操作?
假设您的 API 密钥有效,请在您的终端中运行 flyctl ip allocate--<APP_NAME>
(应用程序名称可在 fly.io 仪表板 上找到)。
我如何使用自己的 Docker 镜像?
使用 docker push
发布您的镜像,确保您的存储库是公开的,并将 "registry-1.docker.io/YOUR-DOCKER-USERNAME/IMAGE-NAME:TAG" 作为您的镜像 URL。
附录
区域
值 | 城市 |
---|---|
ams | 阿姆斯特丹 |
bom | 孟买 |
cdg | 巴黎 |
dfw | 达拉斯 |
fra | 法兰克福 |
hkg | 香港 |
iad | 华盛顿 DC |
lax | 洛杉矶 |
lhr | 伦敦 |
nrt | 东京 |
ord | 芝加哥 |
scl | 圣地亚哥 |
sea | 西雅图 |
sin | 新加坡 |
sjc | 圣何塞 |
syd | 悉尼 |
yyz | 多伦多 |
镜像
以下可以作为镜像输入,而不是提供具体的 URL
- base (ubuntu)
- python
- rust
- go
- node
致谢
感谢 Erik Bernhardsson 对 spsd 的 启发,感谢 nebula 使用 代码 解析 Fly API 的响应,以及 fly.io 团队构建了他们所拥有的东西。
依赖关系
~9–21MB
~308K SLoC