コンテンツにスキップ

UUID生成

ユニバーサル一意識別子を生成します。ワークフロー向けに適応されており、ランダムUUIDはリプレイ時に一貫した値を返します。

local uuid = require("uuid")

タイムスタンプとノードIDを持つ時間ベースのUUIDです。

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.INVALIDno
無効なUUIDフォーマットerrors.INVALIDno
サポートされていないフォーマットタイプerrors.INVALIDno
生成失敗errors.INTERNALno

エラーの処理についてはエラー処理を参照。