Spec-Zone.ru › OpenTofu 1.11

Встроенный провайдер

Большинство провайдеров распространяются отдельно в виде плагинов, но один провайдер встроен непосредственно в 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/

Spec-Zone.ru

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