- OpenTofu 言語
- 関数
- uuidv5
uuidv5
関数
uuidv5
は、RFC 4122 セクション 4.3 で説明されている *名前ベース* の UUID (「バージョン 5」UUID とも呼ばれる) を生成します。
uuidv5(namespace, name)
uuid
によって生成される擬似ランダム UUID とは異なり、名前ベースの UUID は名前空間と名前から派生し、名前空間と名前が変更されない限り、毎回同じ UUID 値を生成します。
名前ベースの UUID 名前空間はそれ自体が UUID ですが、可読性を高めるために、この関数は RFC 4122 によって割り当てられた名前空間のエイリアスとしていくつかのキーワードを受け入れます。
キーワード | 名前空間 ID | 名前形式 |
---|---|---|
"dns" | 6ba7b810-9dad-11d1-80b4-00c04fd430c8 | 完全修飾 DNS ドメイン名。 |
"url" | 6ba7b811-9dad-11d1-80b4-00c04fd430c8 | RFC 3986 で定義されている有効な URL。 |
"oid" | 6ba7b812-9dad-11d1-80b4-00c04fd430c8 | ISO/IEC オブジェクト識別子 |
"x500" | 6ba7b814-9dad-11d1-80b4-00c04fd430c8 | X.500 識別名 |
上記の表に含まれていない他の名前空間を使用するには、割り当てられた名前空間 ID を通常の 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
。