跳转到内容

UUID 生成

生成通用唯一标识符。适配工作流使用 - 随机 UUID 在重放时返回一致的值。

local uuid = require("uuid")

基于时间的 UUID,包含时间戳和节点 ID。

local id, err = uuid.v1()

返回值: string, error

随机 UUID。

local id, err = uuid.v4()

返回值: string, error

时间排序的 UUID。可按创建时间排序。

local id, err = uuid.v7()

返回值: string, error

使用 MD5 从命名空间和名称生成确定性 UUID。

local id, err = uuid.v3(namespace, name)
参数类型描述
namespacestring有效的 UUID 字符串
namestring要哈希的值

返回值: string, error

使用 SHA-1 从命名空间和名称生成确定性 UUID。

local NS_URL = "6ba7b811-9dad-11d1-80b4-00c04fd430c8"
local id, err = uuid.v5(NS_URL, "https://example.com/resource")
参数类型描述
namespacestring有效的 UUID 字符串
namestring要哈希的值

返回值: string, error

local valid = uuid.validate(input)
参数类型描述
inputany要检查的值

返回值: boolean, error

local ver, err = uuid.version(id)
参数类型描述
uuidstring有效的 UUID 字符串

返回值: integer, error

local var, err = uuid.variant(id)
参数类型描述
uuidstring有效的 UUID 字符串

返回值: string, error (RFC4122、Reserved、Microsoft、Future、NCS 或 Invalid)

local info, err = uuid.parse(id)
参数类型描述
uuidstring有效的 UUID 字符串

返回值: table, error

返回表字段:

  • version (integer): UUID 版本(1、3、4、5 或 7)
  • variant (string): RFC4122、Reserved、Microsoft、Future、NCS 或 Invalid
  • timestamp (integer): Unix 时间戳(仅 v1 和 v7)
  • node (string): 节点 ID(仅 v1)
local formatted, err = uuid.format(id, "standard")
local formatted, err = uuid.format(id, "simple")
local formatted, err = uuid.format(id, "urn")
参数类型描述
uuidstring有效的 UUID 字符串
formatstring?standard(默认)、simple 或 urn

返回值: string, error

条件类型可重试
无效的输入类型errors.INVALID
无效的 UUID 格式errors.INVALID
不支持的格式类型errors.INVALID
生成失败errors.INTERNAL

参见 错误处理 了解如何处理错误。