Триггеры облачного запуска Terraform с Azure

У меня проблема с доступом к моим данным " terrafrom_remote_state"объекты.. Итак, я слежу за сайтом hashicorp, чтобы развернуть лазурный ресурс с облаком terraform с триггерами запуска. Триггер работает, запускает план для второй рабочей области, но он не может получить доступ к данным, которые я передаю через выходы.

Я установил «состояние» для общего доступа к первому рабочему пространству и установил триггер запуска во втором рабочем пространстве, который будет запускаться первым. Здесь нет проблем.

Я пытался следить за тем, что есть на сайте hasicorp, но это для aws, так что, может быть, для лазури я что-то пропустил. Я опубликую свои выводы, а затем немного кода для второго рабочего пространства.

Выходы: которые я просмотрел в файле состояния, и они выглядят хорошо.

      output "rgName" {
  description = "The resource group for resources"
  value = var.rgName
}

output "location" {
  description = "The location for resources"
  value = var.location
}

output "subnet1_id" {
  description = "subnet 1"
  value = azurerm_subnet.subnet1.id
}

2-е рабочее пространство

      data "terraform_remote_state" "network" {
  backend = "remote"

  config = {

    organization = "Awesome-Company"
    workspaces = {
          name = "TFCloud-Trigger-Network"
    }
  }
}

provider "azurerm" {
  version =  "2.66.0"

  subscription_id = var.subscription_id
  client_id = var.client_id
  client_secret = var.clientSecret
  tenant_id = var.tenant_id

  features{}
}

#Deploy Public IP
resource "azurerm_public_ip" "pip1" {
  name                = "TFC-pip1"
  location            = data.terraform_remote_state.network.outputs.location
  resource_group_name = data.terraform_remote_state.network.outputs.rgName  
  allocation_method   = "Dynamic"
  sku                 = "Basic"
}

#Create NIC
resource "azurerm_network_interface" "nic1" {
  name                = "TFC-TestVM-Nic"  
  location            = data.terraform_remote_state.network.outputs.location  
  resource_group_name = data.terraform_remote_state.network.outputs.rgName 

    ip_configuration {
    name                          = "ipconfig1"
    subnet_id                     = date.terraform_remote_state.network.outputs.subnet1_id 
    private_ip_address_allocation  = "Dynamic"
    public_ip_address_id          = azurerm_public_ip.pip1.id
  }
}

Ошибка

Ошибка: неподдерживаемый атрибут │ │ в строке 26 main.tf, в ресурсе "azurerm_public_ip" "pip1": │ 26: location = data.terraform_remote_state.network.outputs.location │
├──────────── ──── │ │ data.terraform_remote_state.network.outputs — это объект без атрибутов │ │ Этот объект не имеет атрибута с именем «местоположение».

Я не могу получить доступ к data.terraform_remote_state.network.outputs

1 ответ

Итак, я понял это, и этого нет в документации. Рабочая область, запущенная другой рабочей областью, не будет автоматически обновлять свой план terrafrom.

Обычно, когда я редактирую код в github (или другом репозитории), облако terraform автоматически запускает план, как только вы сохраните этот новый код. Рабочее пространство, запущенное другим, этого не сделает. Таким образом, несмотря на то, что я изменил код, мне пришлось вручную перейти в TF Cloud, отменить текущий запуск в этой запущенной рабочей области и повторно запустить план. После этого триггер запуска будет успешно запущен.

Это было странное дело...

Другие вопросы по тегам