Spec-Zone.ru › OpenTofu 1.9

Функции

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

Язык 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!")
}

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

  • Поддержка функций добавлена в версии протокола 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.9/language/functions/

Spec-Zone.ru

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