Spec-Zone.ru › OpenTofu 1.12

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.12/language/functions/uuidv5/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API