uuidv5 Функция
uuidv5 генерирует UUID на основе имени, как описано в разделе 4.3 RFC 4122; такой UUID также известен как UUID «версии 5».
uuidv5(namespace, name)
В отличие от псевдослучайных UUID, генерируемых функцией uuid, UUID на основе имени зависят от пространства имён и имени. Если пространство имён и имя не меняются, каждый раз получается одно и то же значение UUID.
Сами пространства имён для UUID на основе имени также являются UUID, но для удобства чтения эта функция принимает некоторые ключевые слова в качестве псевдонимов пространств имён, назначенных в RFC 4122:
| Ключевое слово | Идентификатор пространства имён | Формат имени |
|---|---|---|
"dns" |
6ba7b810-9dad-11d1-80b4-00c04fd430c8 |
Полное доменное имя DNS. |
"url" |
6ba7b811-9dad-11d1-80b4-00c04fd430c8 |
Любой допустимый URL, определённый в RFC 3986. |
"oid" |
6ba7b812-9dad-11d1-80b4-00c04fd430c8 |
Идентификатор объекта ISO/IEC |
"x500" |
6ba7b814-9dad-11d1-80b4-00c04fd430c8 |
Различительное имя X.500 |
Чтобы использовать любое другое пространство имён, не включённое в таблицу выше, передайте его назначенный идентификатор непосредственно в качестве первого аргумента в стандартном формате строки UUID.
Примеры
По возможности используйте ключевые слова пространств имён, чтобы будущим читателям было проще понять назначение кода:
> uuidv5("dns", "www.opentofu.org")
df1e675d-b743-5f6c-9952-6311d0f141df
> uuidv5("url", "https://www.opentofu.org/")
ace93eea-1a2c-5eed-b41b-718be15d2e50
> uuidv5("oid", "1.3.6.1.4")
af9d40a5-7a36-5c07-b23a-851cd99fbfa5
> uuidv5("x500", "CN=Example,C=GB")
84e09961-4aa4-57f8-95b7-03edb1073253Ключевые слова пространств имён считаются эквивалентными соответствующим UUID пространств имён. В некоторых особых случаях может быть уместнее использовать форму UUID:
> uuidv5("6ba7b810-9dad-11d1-80b4-00c04fd430c8", "www.opentofu.org")
df1e675d-b743-5f6c-9952-6311d0f141dfЕсли вы хотите использовать пространство имён, определённое вне RFC 4122, необходимо указать UUID пространства имён, поскольку соответствующего ключевого слова нет:
> uuidv5("743ac3c0-3bf7-4a5b-9e6c-59360447c757", "LIBS:diskfont.library")
ede1a974-df7e-5f17-84b9-76208818b2c8При использовании UUID в качестве пространства имён рассмотрите возможность добавить рядом с выражением комментарий, который указывает, какое пространство имён оно представляет, например, со ссылкой на стандарт, в котором оно определено.
Связанные функции
-
uuid, которая генерирует псевдослучайные UUID.
Copyright (c) The OpenTofu Authors
Copyright (c) 2014 HashiCorp, Inc.
Mozilla Public License, version 2.0
https://opentofu.org/docs/v1.11/language/functions/uuidv5/