Встроенный провайдер
Большинство провайдеров распространяются отдельно в виде плагинов, но один провайдер встроен непосредственно в OpenTofu. Этот провайдер предоставляет источник данных terraform_remote_state.
Поскольку этот провайдер встроен в OpenTofu, для использования его возможностей (за исключением функций провайдера) не нужно объявлять его в блоке required_providers. У него есть специальный адрес источника провайдера: terraform.io/builtin/terraform. Этот адрес может иногда появляться в сообщениях об ошибках OpenTofu и других выводимых данных, чтобы однозначно указывать на встроенный провайдер, а не на гипотетический сторонний провайдер с именем типа "terraform".
Также существует провайдер с адресом источника hashicorp/terraform — более старая версия провайдера, который теперь встроен в OpenTofu. hashicorp/terraform несовместим с OpenTofu и ни в коем случае не должен объявляться в блоке required_providers.
Функции
У встроенного провайдера есть дополнительные функции, которые можно вызывать после объявления провайдера в блоке required_providers.
terraform {
required_providers {
terraform = {
source = "terraform.io/builtin/terraform"
}
}
}decode_tfvars
decode_tfvars принимает содержимое файла .tfvars в виде строки и возвращает декодированный объект.
locals {
content = file("./example_file.tfvars")
decoded = provider::terraform::decode_tfvars(local.content) # Returns object
}encode_tfvars
encode_tfvars принимает объект и возвращает его строковое представление, которое можно использовать в качестве содержимого файла .tfvars.
locals {
object = {
key1 = "value1"
key2 = "value2"
}
encoded = provider::terraform::encode_tfvars(local.object) # Returns string
}Ключи объекта должны быть допустимыми идентификаторами.
encode_expr
encode_expr принимает произвольное выражение и преобразует его в строку с допустимым синтаксисом OpenTofu.
locals {
expression = {
key1 = "value1"
key2 = "value2"
}
encoded = provider::terraform::encode_expr(local.expression) # Returns string
}
Copyright (c) The OpenTofu Authors
Copyright (c) 2014 HashiCorp, Inc.
Mozilla Public License, version 2.0
https://opentofu.org/docs/v1.11/language/providers/builtin/