Spec-Zone.ru › OpenTofu 1.10

Функции

Встроенные функции​

Язык OpenTofu включает ряд встроенных функций, которые можно вызывать в выражениях для преобразования и объединения значений. Общий синтаксис вызова функции: имя функции, за которым в круглых скобках следуют аргументы, разделённые запятыми:

Блок кода
max(5, 12, 9)

Подробнее о синтаксисе см. в разделе «Вызовы функций» в разделе «Выражения».

Вы можете поэкспериментировать с поведением встроенных функций OpenTofu в консоли выражений OpenTofu, запустив команду tofu console:

Блок кода
> max(5, 12, 9)
12

В примерах в документации для каждой функции вывод консоли используется для демонстрации результата вызова функции с различными параметрами.

Функции, определяемые провайдерами​

Начиная с OpenTofu 1.7.0, провайдеры могут определять собственные функции, доступные во время выполнения.

OpenTofu перебирает блок required_providers и запрашивает у указанных провайдеров все функции, которые они хотят зарегистрировать. Функции добавляются в контекст текущего модуля под provider::<provider_name>::<function_name>. Также поддерживаются псевдонимы провайдеров под provider::<provider_name>::<provider_alias>::<function_name>. Функции доступны только в модуле, которому требуется провайдер, и не наследуются дочерними модулями.

Пример:​

Блок кода
terraform {
  required_providers {
    myhelper = {
      # yantrio/helpers registers a function named "echo"
      source = "yantrio/helpers"
    }
  }
}

locals {
  myval = provider::myhelper::echo("Hello Functions!")
}

Встроенные функции провайдера:​

В OpenTofu есть встроенный провайдер terraform.io/builtin/terraform, который предоставляет дополнительные функции, доступные в конфигурациях OpenTofu.

Примечания для авторов провайдеров:​

  • Поддержка функций добавлена в версии протокола 5.5 и 6.5.
  • Протокол провайдеров OpenTofu совместим с протоколом провайдеров Terraform.
  • GetProviderSchema() используется для первоначального запроса списка функций, доступных в конкретном провайдере.
  • Провайдеры, предоставляющие функции, можно настраивать; они могут предоставлять дополнительные функции через GetFunctions(). Примеры реализации см. во внешних провайдерах Lua и Go.

Copyright (c) The OpenTofu Authors
Copyright (c) 2014 HashiCorp, Inc.
Mozilla Public License, version 2.0
https://opentofu.org/docs/v1.10/language/functions/

Spec-Zone.ru

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