Триггеры облачного запуска 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, отменить текущий запуск в этой запущенной рабочей области и повторно запустить план. После этого триггер запуска будет успешно запущен.
Это было странное дело...