InfluxDB:由于我的令牌和 os.getenv,无法与客户端连接

InfluxDB : cant connect with the client because of my token and os.getenv

我刚开始使用 InfluxDB。 在 UI 上有一段 Python 从数据库开始的例子:初始化客户端,写入数据,发出请求并关闭客户端。为了验证请求,您必须在 UI 上生成一个令牌,以确保请求安全。但是当我 运行 示例代码时,我从代码的第 12 行收到错误“只能将 str(不是“NoneType”)连接到 str”。

代码:

from datetime import datetime
import os

from influxdb_client import InfluxDBClient, Point, WritePrecision
from influxdb_client.client.write_api import SYNCHRONOUS

# You can generate an API token from the "API Tokens Tab" in the UI
token = os.getenv("INFLUX_TOKEN")
org = "XXXXXXX"
bucket = "XXXXXXX Bucket"

with InfluxDBClient(url="https://europe-west1-1.gcp.cloud2.influxdata.com", token=token, org=org) as client:

    write_api = client.write_api(write_options=SYNCHRONOUS)
    point = Point("mem") \
        .tag("host", "host1") \
        .field("used_percent", 23.43234543) \
        .time(datetime.utcnow(), WritePrecision.NS)

    write_api.write(bucket, org, point)
    
    query = """from(bucket: "XXXXXXX Bucket") |> range(start: -1h)"""
    tables = client.query_api().query(query, org=org)
    for table in tables:
        for record in table.records:
            print(record)
            
    client.close()

我知道问题出在 os.getenv("INFLUX_TOKEN") 因为它应该 return 一个字符串但实际上 return NoneType 对象,但我不知道为什么它不起作用。使用令牌我得到了两件事:令牌的名称及其创建时获得的代码。 我试过了:

一直都是同样的错误,所以如果有人能帮助我,请帮助我!

你的环境变量确实有问题,如果 os.getenv("INFLUX_TOKEN") returns None 表示未设置INFLUX_TOKEN变量。

您可以在 shell 中手动设置它,在您通过输入 ssh shell

生成令牌后

export INFLUX_TOKEN="your-influx-token"

您可以找到有关环境变量的更多信息