InfluxDB v3 Cloud Dedicated 文档 提交 API 问题

InfluxDB Cloud Dedicated 管理API

许可证: MIT

InfluxDB Cloud Dedicated 管理API提供了用于管理InfluxDB Cloud Dedicated实例的编程接口。

InfluxDB v3 管理API允许您管理InfluxDB Cloud Dedicated实例,并将创建和管理数据库、权限和令牌等功能集成到您的流程或应用程序中。

本文档是从InfluxDB OpenAPI规范生成的。

身份验证

InfluxDB 管理API端点需要以下凭证

  • ACCOUNT_ID: 属于集群的账户的ID。要查看账户ID和集群ID,请列出集群详细信息

  • CLUSTER_ID: 您想要管理的集群的ID。要查看账户ID和集群ID,请列出集群详细信息

  • Authorization MANAGEMENT_TOKEN: 包含管理令牌的HTTP头中的Authorization

    请参阅如何创建管理令牌

    默认情况下,InfluxDB v3中的管理令牌是由OAuth2身份提供者签发的短期令牌,授予特定用户对您的InfluxDB集群的行政访问权限。但是,出于自动化目的,您可以手动创建直接与您的InfluxDB集群进行身份验证且不需要与您的身份提供者进行人工交互的管理令牌。

数据库令牌

管理集群的数据库读写令牌

获取集群所有数据库令牌

路径参数
accountId
必需
字符串 <uuid> (UuidV4)
clusterId
必需
字符串 <uuid> (UuidV4)

获取 数据库令牌 的集群 ID

响应

请求示例

HOST="https://console.influxdata.com"

list_tokens () {
  local response=$( \
    curl \
      --location "$HOST/api/v0/accounts/$ACCOUNT_ID/clusters/$CLUSTER_ID/tokens" \
      --header "Accept: application/json" \
      --header "Authorization: Bearer $MANAGEMENT_TOKEN" \
  )
  echo "$response"
}

响应示例

内容类型
application/json
[
  • {
    },
  • {
    },
  • {
    }
]

创建数据库令牌

为集群创建 数据库令牌

响应中返回的 accessToken 属性上的令牌可以用来验证查询和写入请求到集群。

显著行为

  • 激活和同步新的令牌可能需要一些时间——从几秒到几分钟不等。如果新的数据库令牌立即无法使用(查询或写入时收到 401 未授权 错误),请等待然后再次尝试您的请求。

  • 令牌字符串仅在创建令牌时可见,并且不会被 InfluxDB 存储;您无法恢复丢失的令牌。

在秘密存储中存储安全令牌

我们建议将数据库令牌存储在 安全秘密存储 中。例如,查看如何 使用您的 OS 秘密存储中的令牌认证 Telegraf

如果您丢失了令牌,请从 InfluxDB 中 删除令牌 并创建一个新的。

路径参数
accountId
必需
字符串 <uuid> (UuidV4)

创建数据库令牌的 账户 的 ID

clusterId
必需
字符串 <uuid> (UuidV4)

为创建数据库令牌的 数据库令牌 的集群 ID

请求体模式:application/json
描述
必需
字符串(模式)

数据库令牌的描述

对象数组(模式)

允许的权限列表 数据库令牌

响应

请求示例

内容类型
application/json
示例
{
  • "description": "Limited Access Token",
  • "permissions": [
    ]
}

响应示例

内容类型
application/json
示例
{
  • "accountId": "11111111-1111-4111-8111-111111111111",
  • "clusterId": "33333333-3333-4333-8333-333333333333",
  • "id": "55555555-5555-4555-8555-555555555555",
  • "description": "Limited Access Token",
  • "permissions": [
    ],
  • "createdAt": "2023-12-21T17:32:28.000Z",
  • "accessToken": "apiv1_5555555555555555555555555555555555555555555555555555555555555555"
}

获取数据库令牌

路径参数
accountId
必需
字符串 <uuid> (UuidV4)

属于 账户 的数据库令牌的 ID

clusterId
必需
字符串 <uuid> (UuidV4)

属于 数据库令牌 的集群 ID

tokenId
必需
字符串 <uuid> (UuidV4)

要获取的数据库令牌的 ID

响应

请求示例

HOST="https://console.influxdata.com"

get_token () {
  local tokenId=$1
  local response=$( \
    curl \
      --location "$HOST/api/v0/accounts/$ACCOUNT_ID/clusters/$CLUSTER_ID/tokens/$tokenId" \
      --header "Accept: application/json" \
      --header "Authorization: Bearer $MANAGEMENT_TOKEN" \
  )
  echo "$response"
}

响应示例

内容类型
application/json
示例
{
  • "accountId": "11111111-1111-4111-8111-111111111111",
  • "clusterId": "33333333-3333-4333-8333-333333333333",
  • "id": "55555555-5555-4555-8555-555555555555",
  • "description": "Limited Access Token",
  • "permissions": [
    ],
  • "createdAt": "2023-12-21T17:32:28.000Z"
}

更新数据库令牌

路径参数
accountId
必需
字符串 <uuid> (UuidV4)

属于 账户 的数据库令牌的 ID

clusterId
必需
字符串 <uuid> (UuidV4)

属于 数据库令牌 的集群 ID

tokenId
必需
字符串 <uuid> (UuidV4)

要更新的数据库令牌的ID

请求体模式:application/json
描述
字符串(模式)

数据库令牌的描述

对象数组(模式)

允许的权限列表 数据库令牌

响应

请求示例

内容类型
application/json
示例
{
  • "description": "Updated Limited Access Token",
  • "permissions": [
    ]
}

响应示例

内容类型
application/json
示例
{
  • "accountId": "11111111-1111-4111-8111-111111111111",
  • "clusterId": "33333333-3333-4333-8333-333333333333",
  • "id": "55555555-5555-4555-8555-555555555555",
  • "description": "Updated Limited Access Token",
  • "permissions": [
    ],
  • "createdAt": "2023-12-21T17:32:28.000Z"
}

删除数据库令牌

路径参数
accountId
必需
字符串 <uuid> (UuidV4)

属于 账户 的数据库令牌的 ID

clusterId
必需
字符串 <uuid> (UuidV4)

属于 数据库令牌 的集群 ID

tokenId
必需
字符串 <uuid> (UuidV4)

要删除的数据库令牌的ID

响应

请求示例

HOST="https://console.influxdata.com"

delete_token () {
  local tokenId=$1
  local response=$( \
    curl \
      --location "$HOST/api/v0/accounts/$ACCOUNT_ID/clusters/$CLUSTER_ID/tokens/$tokenId" \
      --request DELETE \
      --header "Accept: application/json" \
      --header "Authorization: Bearer $MANAGEMENT_TOKEN" \
  )
  echo "$response"
}

响应示例

内容类型
application/json
{
  • "code": 400,
  • "message": "bad request"
}

数据库

管理集群的数据库

获取集群的所有数据库

路径参数
accountId
必需
字符串 <uuid> (UuidV4)

获取账户数据库的ID

clusterId
必需
字符串 <uuid> (UuidV4)

获取数据库的集群ID

响应

请求示例

HOST="https://console.influxdata.com"

list_databases () {
  local response=$( \
    curl \
      --location "$HOST/api/v0/accounts/$ACCOUNT_ID/clusters/$CLUSTER_ID/databases" \
      --header "Accept: application/json" \
      --header "Authorization: Bearer $MANAGEMENT_TOKEN" \
  )
  echo "$response"
}

响应示例

内容类型
application/json
[
  • {
    },
  • {
    }
]

创建数据库

路径参数
accountId
必需
字符串 <uuid> (UuidV4)

为创建数据库的账户ID

clusterId
必需
字符串 <uuid> (UuidV4)

为创建数据库的集群ID

请求体模式:application/json
maxColumnsPerTable
整数 <int32> (模式) >= 1
默认值: 200

集群数据库每个表的最大列数

maxTables
整数 <int32> (模式) >= 1
默认值: 500

集群数据库的最大表数

name
必需
字符串 (模式) [ 1 .. 64 ] 个字符

集群数据库的名称

数组ClusterDatabasePartitionTemplatePartTagValue (对象) 或 ClusterDatabasePartitionTemplatePartTimeFormat (对象) 或 ClusterDatabasePartitionTemplatePartBucket (对象) (模式) [ 1 .. 8 ] 项 唯一

用于分区集群数据库的模板。

每个模板部分按顺序评估,将每个部分输出的最终分区键连接起来,由分区键分隔符|分隔。

例如,使用以下分区模板

[
  {
    "type": "time",
    "value": "%Y"
  },
  {
    "type": "tag",
    "value": "bananas"
  },
  {
    "type": "tag",
    "value": "plátanos"
  },
  {
    "type": "bucket",
    "value": {
      "tagName": "c",
      "numberOfBuckets": 10
    }
  }
]

以下分区键被推导出来

  • time=2023-01-01, a=香蕉, b=菠萝, c=香蕉 -> 2023|香蕉|菠萝|5
  • time=2023-01-01, b=菠萝 -> 2023|!|菠萝|!
  • time=2023-01-01, another=猫, b=菠萝 -> 2023|!|菠萝|!
  • time=2023-01-01 -> 2023|!|!|!
  • time=2023-01-01, a=猫|狗, b=!, c=! -> 2023|猫%7C狗|%21|8
  • time=2023-01-01, a=%50, c=%50 -> 2023|%2550|!|9
  • time=2023-01-01, a=, c= -> 2023|^|!|0
  • time=2023-01-01, a=<长字符串> -> 2023|<长字符串>#|!|!
  • time=2023-01-01, c=<长字符串> -> 2023|!|!|<未截断长字符串的桶ID>

当使用默认的分区模板(YYYY-MM-DD)时,不需要编码,因为推导出的分区键包含单个部分,没有保留字符。[TemplatePart::Bucket]部分按定义始终在部分长度限制内,不包含受限字符,因此也不进行百分编码和/或截断。

retentionPeriod
整数 <int64> (模式) >= 0
默认值: 0

集群数据库的保留期(以纳秒为单位,如果适用)

如果未设置保留期或设置为0,则数据库将具有无限保留期

响应

请求示例

内容类型
application/json
示例
{
  • "name": "DatabaseOne"
}

响应示例

内容类型
application/json
示例
{
  • "accountId": "11111111-1111-4111-8111-111111111111",
  • "clusterId": "33333333-3333-4333-8333-333333333333",
  • "name": "DatabaseOne",
  • "maxTables": 500,
  • "maxColumnsPerTable": 200,
  • "retentionPeriod": 0
}

更新数据库

路径参数
accountId
必需
字符串 <uuid> (UuidV4)

属于该数据库的账户的ID

clusterId
必需
字符串 <uuid> (UuidV4)

属于该数据库的集群ID

databaseName
必需
string (ClusterDatabaseName) [ 1 .. 64 ]个字符

要更新的数据库名称

请求体模式:application/json
maxColumnsPerTable
整数 <int32> (模式) >= 1
默认值: 200

集群数据库每个表的最大列数

maxTables
整数 <int32> (模式) >= 1
默认值: 500

集群数据库的最大表数

retentionPeriod
整数 <int64> (模式) >= 0
默认值: 0

集群数据库的保留期(以纳秒为单位,如果适用)

如果未设置保留期或设置为0,则数据库将具有无限保留期

响应

请求示例

内容类型
application/json
示例
{
  • "maxTables": 300,
  • "maxColumnsPerTable": 150,
  • "retentionPeriod": 600000000000
}

响应示例

内容类型
application/json
示例
{
  • "accountId": "11111111-1111-4111-8111-111111111111",
  • "clusterId": "33333333-3333-4333-8333-333333333333",
  • "name": "DatabaseOne",
  • "maxTables": 300,
  • "maxColumnsPerTable": 150,
  • "retentionPeriod": 600000000000
}

删除数据库

路径参数
accountId
必需
字符串 <uuid> (UuidV4)

属于该数据库的账户的ID

clusterId
必需
字符串 <uuid> (UuidV4)

属于该数据库的集群ID

databaseName
必需
string (ClusterDatabaseName) [ 1 .. 64 ]个字符

要删除的数据库名称

响应

请求示例

HOST="https://console.influxdata.com"

delete_database () {
  local databaseName=$1
  local response=$( \
    curl \
      --location "$HOST/api/v0/accounts/$ACCOUNT_ID/clusters/$CLUSTER_ID/databases/$databaseName" \
      --request DELETE \
      --header "Accept: application/json" \
      --header "Authorization: Bearer $MANAGEMENT_TOKEN" \
  )
  echo "$response"
}

响应示例

内容类型
application/json
{
  • "code": 400,
  • "message": "bad request"
}

管理数据库中的表

创建数据库表

路径参数
accountId
必需
字符串 <uuid> (UuidV4)

为创建数据库表指定的账户的ID

clusterId
必需
字符串 <uuid> (UuidV4)

创建数据库表的集群ID

databaseName
必需
string (ClusterDatabaseName) [ 1 .. 64 ]个字符

为创建数据库表指定的数据库名称

请求体模式:application/json
name
必需
字符串(模式)非空

集群数据库表的名称

数组ClusterDatabasePartitionTemplatePartTagValue (对象) 或 ClusterDatabasePartitionTemplatePartTimeFormat (对象) 或 ClusterDatabasePartitionTemplatePartBucket (对象) (模式) [ 1 .. 8 ] 项 唯一

用于分区集群数据库的模板。

每个模板部分按顺序评估,将每个部分输出的最终分区键连接起来,由分区键分隔符|分隔。

例如,使用以下分区模板

[
  {
    "type": "time",
    "value": "%Y"
  },
  {
    "type": "tag",
    "value": "bananas"
  },
  {
    "type": "tag",
    "value": "plátanos"
  },
  {
    "type": "bucket",
    "value": {
      "tagName": "c",
      "numberOfBuckets": 10
    }
  }
]

以下分区键被推导出来

  • time=2023-01-01, a=香蕉, b=菠萝, c=香蕉 -> 2023|香蕉|菠萝|5
  • time=2023-01-01, b=菠萝 -> 2023|!|菠萝|!
  • time=2023-01-01, another=猫, b=菠萝 -> 2023|!|菠萝|!
  • time=2023-01-01 -> 2023|!|!|!
  • time=2023-01-01, a=猫|狗, b=!, c=! -> 2023|猫%7C狗|%21|8
  • time=2023-01-01, a=%50, c=%50 -> 2023|%2550|!|9
  • time=2023-01-01, a=, c= -> 2023|^|!|0
  • time=2023-01-01, a=<长字符串> -> 2023|<长字符串>#|!|!
  • time=2023-01-01, c=<长字符串> -> 2023|!|!|<未截断长字符串的桶ID>

当使用默认的分区模板(YYYY-MM-DD)时,不需要编码,因为推导出的分区键包含单个部分,没有保留字符。[TemplatePart::Bucket]部分按定义始终在部分长度限制内,不包含受限字符,因此也不进行百分编码和/或截断。

响应

请求示例

内容类型
application/json
示例
{
  • "name": "TableOne"
}

响应示例

内容类型
application/json
示例
{
  • "accountId": "11111111-1111-4111-8111-111111111111",
  • "clusterId": "33333333-3333-4333-8333-333333333333",
  • "databaseName": "DatabaseOne",
  • "name": "TableOne"
}