使用InfluxDB v2 API与InfluxDB Cloud无服务器
InfluxDB Cloud Serverless与InfluxDB v2 API /api/v2/write端点以及现有的InfluxDB 2.x工具和代码兼容。对于新的写入工作负载和您带到InfluxDB Cloud Serverless的现有v2写入工作负载,请使用InfluxDB v2 API。
InfluxDB v2 API 端点将无法用于管理资源或查询 InfluxDB Cloud Serverless 中的数据。 要查询数据,使用 Flight+gRPC 协议或 InfluxDB v1 /query HTTP API 端点和 相关工具。
认证 API 请求
InfluxDB API 端点要求每个请求都要通过 API token 进行认证。
使用令牌进行身份验证
使用 Authorization: Token 方案传递一个具有操作所需权限的 API token。
在 InfluxDB 2.x API 中使用 Token 方案。
语法
Authorization: Token API_TOKEN
示例
使用 Token 来验证写请求:
# Use the Token authentication scheme with /api/v2/write
curl --request post "https://cloud2.influxdata.com/api/v2/write?bucket=BUCKET_NAME&precision=s" \
--header "Authorization: Token API_TOKEN" \
--data-binary 'home,room=kitchen temp=72 1463683075'
替换以下内容:
响应
InfluxDB HTTP API 响应使用标准 HTTP 状态码。 部分写入 和错误的响应体包含一个 JSON 对象,其中有 code 和 message 属性来描述错误。响应体消息可能在 InfluxDB Cloud Serverless v1 API、v2 API、InfluxDB Cloud 和 InfluxDB OSS 之间有所不同。
错误示例
缺失的桶值
400 Bad Request{ "code": "invalid", "message":"missing bucket value" }请求中缺少
?bucket=参数值。 提供 bucket 名称。反序列化 org/bucket/precision 失败
400 Bad Request{ "code": "invalid", "message":"failed to deserialize org/bucket/precision in request: unknown variant `u`, expected one of `s`, `ms`, `us`, `ns`" }参数
?precision=包含一个未知值。
提供一个时间戳精度。
写入数据
使用 InfluxDB v2 API /api/v2/write 端点进行新的写入工作负载和现有的 v2 工作负载。
POST https://cloud2.influxdata.com/api/v2/write/api/v2/write 参数
对于 InfluxDB Cloud Serverless v2 API /api/v2/write 请求,请设置以下表中列出的参数:
| 参数 | 允许在 | 被忽略 | 值 |
|---|---|---|---|
| org | 查询字符串 | 已忽略 | 非零长度字符串(已忽略,但不能是空的) |
| 组织ID | 查询字符串 | 被忽略 | 不适用 |
| 桶 * | 查询字符串 | 已荣幸 | 数据库名称 |
| 精度 | 查询字符串 | 荣誉 | 时间戳精度 |
| 接受 | 头部 | 尊重 | 用户定义 |
Authorization * | 头部 | 已尊重 | Token API_TOKEN |
Content-Encoding | 头部 | 被尊重 | gzip(压缩数据)或identity(未压缩) |
| 内容长度 | 头部 | 尊重的 | 用户定义的 |
| 内容类型 | 头部 | 忽略 | 不适用(仅支持行协议) |
| Zap-Trace-Span | 头部 | 被忽略 |
时间戳精度
在v2 API /api/v2/write 请求中使用以下precision值:
ns: 纳秒us: 微秒ms: 毫秒s: 秒m: 分钟h: 小时
用于写入v2 API的工具
以下工具可以与 InfluxDB Cloud Serverless /api/v2/write 端点一起使用:
Telegraf
查看如何 配置 Telegraf 以写入 InfluxDB Cloud Serverless。
交互式客户端
要从命令行交互式测试 InfluxDB v2 API 写入,请使用 influx3 数据 CLI 或常见的 HTTP 客户端,如 cURL 和 Postman。
要设置并开始使用交互式客户端,请参阅入门教程。
客户端库
InfluxDB v3 客户端库 和 v2 客户端库 可以将数据写入 InfluxDB v2 API /api/v2/write 端点。客户端库是特定语言的包,它们将 InfluxDB API 与您的应用集成。
要设置并开始使用客户端库,请参阅入门教程。
查询数据
InfluxDB 3 提供以下协议用于执行查询:
- Flight+gRPC 请求,其中包含一个 SQL 或 InfluxQL 查询。要了解如何使用 Flight 和 SQL 查询 InfluxDB Cloud Serverless,请参阅 入门 教程。
- 包含 InfluxQL 查询的 InfluxDB v1 API
/query请求。
执行查询的工具
InfluxDB Cloud Serverless 支持多种不同的工具来查询数据,包括:
避免使用 /api/v2/query
避免在 InfluxDB Cloud Serverless 及相关工具中使用 /api/v2/query API 端点,例如 influx query CLI 命令和 InfluxDB v2 客户端库。您无法在这些工具中使用 SQL 或 InfluxQL。