9 个版本 (4 个破坏性更新)
0.6.0-beta.4 | 2023年3月28日 |
---|---|
0.6.0-beta.3 | 2023年3月24日 |
0.6.0-beta.2 | 2023年2月16日 |
0.4.1 | 2023年2月1日 |
0.1.0 | 2022年2月8日 |
#24 in #services
每月47次 下载
420KB
9K SLoC
Seaplane CLI
Seaplane CLI 工具允许您通过命令行与服务交互,这是与服务的首选交互方式。
我们还为各种语言提供了 SDK(实际上这个 CLI 是基于 Seaplane Rust SDK 构建的)。
先决条件
在使用 SDK 之前,您需要确保完成以下步骤
- 您已注册 Seaplane 账户(我们目前处于私有测试阶段,这意味着您已经收到了邀请链接,并已通过该链接创建账户)
- 您已复制注册账户后获得的 API 密钥(也可以在我们的 Flightdeck 中找到)
所有服务后端都需要有效的 API 密钥才能使用。
安装
Seaplane CLI 工具 seaplane
是一个单一的二进制文件,必须放在您的 $PATH
中的某个位置。您可以从 发布页面 下载预编译的二进制文件,或者从源代码编译。
从 GitHub 发布版安装
第一步是下载工具,这是一个静态的二进制文件,可以从我们的 Github 发布版 页面下载。
CLI 工具支持 Linux 和 macOS 的 x86_64 和 arm64,以及 x86_64 Windows。请确保下载适用于您的系统的适当存档。本指南将使用 macOS 变体进行演示。
我们假设下载已保存到您主目录的下载目录中(~/Downloads
)。
我们需要提取二进制文件并将其放置在由你的 $PATH
变量指定的位置。在 macOS 和 Linux 上,/usr/local/bin/
是一个不错的选择。
注意:你需要将 $ARCH
和 $VERSION
替换为你从发布页面下载的架构和版本。
$ cd ~/Downloads
$ sudo unzip ./seaplane-$VERSION-$ARCH.zip -d /usr/local/bin/
从 crates.io 编译
请确保已经安装了 Rust 工具链。
$ cargo install seaplane-cli
从源代码编译
请确保已经安装了 Rust 工具链。
$ git clone https://github.com/seaplane-io/seaplane
$ cd seaplane/seaplane-cli/
$ cargo build --release
$ sudo cp ../target/release/seaplane /usr/local/bin/
Seaplane CLI 工具的使用
我们可以通过输入 seaplane
来确保安装成功,它应该会显示类似于以下的帮助信息。
如果帮助信息看起来略有不同,这是正常的,我们一直在迭代并努力改进我们的产品!
$ seaplane
seaplane v0.1.0 (f9f6dedab8)
Seaplane IO, Inc.
USAGE:
seaplane [OPTIONS] <SUBCOMMAND>
OPTIONS:
-A, --api-key <STRING> The API key associated with a Seaplane account used to access Seaplane API endpoints [env: SEAPLANE_API_KEY]
--color <COLOR> Should the output include color? [default: auto] [possible values: always, ansi, auto, never]
-h, --help Print help information
--no-color Do not color output (alias for --color=never)
-q, --quiet Suppress output at a specific level and below
-v, --verbose Display more verbose output
-V, --version Print version information
SUBCOMMANDS:
account Operate on your Seaplane account, including access tokens [aliases: acct]
flight Operate on Seaplane Flights (logical containers), which are the core component of Formations
formation Operate on Seaplane Formations
help Print this message or the help of the given subcommand(s)
image
init Create the Seaplane directory structure at the appropriate locations
license
shell-completion Generate shell completion script files for seaplane
成功!
配置您的 API 密钥
最终的设置步骤是确保 seaplane
知道我们的 API 密钥。我们可以通过几种不同的方式来完成这项任务
- 在我们的配置文件中将
api-key = "..."
设置 - 设置
SEAPLANE_API_KEY
环境变量 - 使用
--api-key
命令行标志
你选择哪种方式取决于你的偏好和需求。每种方式都有不同的安全和可覆盖性考虑。
这些选项中的每个都覆盖了上面的选项,这意味着如果你在配置文件中设置了 API 密钥,它可以被环境变量或使用命令行标志所覆盖。如果你需要更改 API 密钥仅适用于几次调用,这很有帮助。
我们通常建议使用配置文件,如果可能的话。
SEAPLANE_API_KEY
环境变量的安全性
当 seaplane
进程执行时,一些其他进程可能会看到 seaplane
被提供的环境。通常这需要提升权限,但这并不总是如此。
--api-key
CLI 标志的安全性
就像在 seaplane
进程执行时的环境变量一样,一些其他进程可能会看到 seaplane
被提供的命令行标志。通常这需要提升权限,但这并不总是如此。
然而,与环境变量不同的是,--api-key
标志支持一个更安全的选项,即使用值 -
,这意味着“从 STDIN 读取 API 密钥”,这通常被认为是安全的,并且不会被同一系统上的其他进程查看。
例如,如果 API 密钥存储在一个名为 my_api_key.txt
的文件中,并使用 --api-key
的简写标志 -A
$ cat my_api_key.txt | seaplane -A-
在配置文件中存储 API 密钥
我们可以使用 seaplane account login
将我们的 API 密钥存储在配置文件中。也可以手动将 API 密钥写入配置文件,但这需要你 找到 配置文件,确保它格式正确等。让它我们来处理会更简单!
你会被提示粘贴你的 API 密钥,它将被存储在配置文件的适当位置。
$ seaplane account login
Enter your API key below.
(hint: it can be found by visiting https://flightdeck.cplane.cloud/)
InlifethevisiblesurfaceoftheSpermWhaleisnottheleastamongthemanymarvelshepresents
Successfully saved the API key!
测试!
现在我们已经安装了一个全新的 API 密钥,我们可以确保它正在工作!
为此,我们将执行一个愚蠢的测试,即向我们的访问令牌端点请求新的访问令牌。通常,你永远不需要直接与此功能交互。然而,在内部,尤其是在我们的SDK中,这个功能被广泛使用。如果这个功能正常工作,我们就知道所有安装都是正确的。
$ seaplane account token
eyJ0eXAiOiJKV1QiLCJraWQiOiJhdXRoLXNpZ24ta2V5LTEiLCJhbGciOiJFZERTQSJ9.eyJpc3MiOi
Jpby5zZWFwbGFuZXQuZmxpZ2h0ZGVjayIsImF1ZCI6ImlvLnNlYXBsYW5ldCIsInN1YiI6IklubGlmZ
XRoZXZpc2libGVzdXJmYWNlb2Z0aGVTcGVybVdoYWxlaXNub3R0aGVsZWFzdGFtb25ndGhlbWFueW1h
cnZlbHNoZXByZXNlbnRzIiwiaWF0IjoxNjQ2NzUzODIwLCJleHAiOjE2NDY3NTM4ODAsInRlbmFudCI
6IklubGlmZXRoZXZpc2libGVzdXJmYWNlb2Z0aGVTcGVybVdoYWxlaXNub3R0aGVsZWFzdGFtb25ndG
hlbWFueW1hcnZlbHNoZXByZXNlbnRzIiwic2NvcGUiOiIifQ.epUyBWDiU2N6C7CBM7gnZPqoixd_ZH
dB8Khn_1BKwnjNxJaIba9PC9YTuDwYaFVs17aCWhY-oRDPpmo87YBrDQ
访问令牌只是一个JWT,允许您通过您的API密钥访问我们的公共API。这些令牌的有效期非常短。上面的令牌应该在你看到的时候已经过期。
恭喜!你现在有一个可以运行一些出色工作负载的Seaplane CLI。
许可协议
本软件受Apache License,版本2.0许可,LICENSE。版权所有2022 Seaplane IO,Inc。
依赖项
~14-29MB
~476K SLoC