Spec-Zone.ru › OpenTofu 1.9

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

Spec-Zone.ru

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