21 个版本 (8 个破坏性更新)

0.9.1 2023 年 5 月 16 日
0.8.1 2023 年 5 月 10 日
0.5.4 2023 年 3 月 15 日

1572网页编程

Download history 13/week @ 2024-04-28 6/week @ 2024-05-05 2/week @ 2024-05-12 14/week @ 2024-05-19 14/week @ 2024-05-26 25/week @ 2024-06-02 20/week @ 2024-06-09 15/week @ 2024-06-16 34/week @ 2024-06-23 27/week @ 2024-06-30 29/week @ 2024-07-07 46/week @ 2024-07-14 68/week @ 2024-07-21 83/week @ 2024-07-28 27/week @ 2024-08-04

230 每月下载量
nomad_events_logger 中使用

MIT 许可证

230KB
4.5K SLoC

Nomad 客户端

License Lines of code Crates.io Crates.io

Nomad HTTP API 客户端

目录

概述

HTTP API 版本 : v1.5.x

快速入门

通过命令行安装包

cargo add nomad-client-rs

或者将以下内容添加到您的 Cargo.toml

[dependencies]
nomad-client-rs = "x.x.x"

使用方法

默认 nomad 客户端使用 环境变量/默认值

let client = NomadClient::default();

具有自定义配置的 nomad 客户端

let client_config = Config {
  base_url: "http://example".into(),
  port: 1234,
  api_version: "v1".into(),
  token: None,
  ..Config::default()
};

let client = NomadClient::new(client_config);

实现的 API 端点

方法 HTTP 请求
allocation allocation_restart POST /client/allocation/{alloc_id}/restart
acl acl_tokens_list GET /acl/tokens
acl acl_token_create POST /acl/token
acl acl_token_update POST /acl/token/{accessor_id}
acl acl_token_read GET /acl/token/{accessor_id}
acl acl_token_read_self GET /acl/token/self
acl acl_token_delete DELETE /acl/token/{accessor_id}
client client_list_files GET /client/fs/ls/{alloc_id}?path={file_path}
client client_get_file GET /client/fs/cat/{alloc_id}?path={file_path}
client client_get_file_info GET /client/fs/stat/{alloc_id}?path={file_path}
client client_read_metadata GET /client/metadata
client client_update_metadata POST /client/metadata
deployment deployment_list GET /deployments
deployment deployment_get GET /deployments/{id}
deployment deployment_allocation_list GET /deployment/allocations/{id}
deployment deployment_fail POST /deployment/fail/{id}
event events_subscribe GET /event/stream
job job_dispatch POST /job/{job_name}/dispatch
job job_parse POST /job/parse
job job_create POST /jobs
job job_list_allocations GET /job/{job_name}/allocations
job job_delete DELETE /job/{job_name}
namespace namespace_list GET /namespaces
namespace namespace_get GET /namespace/{namespace}
namespace namespace_create POST /namespace
namespace namespace_delete DELETE /namespace/{namespace}
status status_get_peers GET /status/peers
status status_get_leader GET /status/leader
变量 变量列表 GET /vars
变量 变量获取 GET /var/{var_path}
变量 变量创建 PUT /var/{var_path}
变量 变量删除 DELETE /var/{var_path}
服务 服务列表 GET /services
服务 变量获取 GET /services/{service_name}

环境

变量

NomadClient 可以通过环境变量进行配置。
如果环境变量不可用,它将使用指定的默认值。

变量 默认值
NOMAD_BASE_URL https://127.0.0.1
NOMAD_PORT 4646
NOMAD_API_VERSION v1
NOMAD_SECRET_TOKEN
NOMAD_TLS_ALLOW_INSECURE false
NOMAD_MTLS_CERT_PATH
NOMAD_MTLS_KEY_PATH

身份验证

MTLS

NomadClient 仅支持使用 .pem 文件进行 mTLS 身份验证。要使用 mTLS 身份验证,只需在 Config 结构体中配置 mtls 字段。

let client_config = Config {
  mtls: Some(MTLSConfig::new("path/to/client.pem", "path/to/client-key.pem"));
  ..Config::default()
};

依赖项

~6–19MB
~274K SLoC