У меня есть приведенный ниже файл TF, в котором будет создана функция - FirstFunction. Это работает отлично.
resource "azurerm_function_app" "**firstfunction**" {
name = **var.firstfunctionname**
location = azurerm_resource_group.resourcegroupX.location
resource_group_name = azurerm_resource_group.resourcegroupX.name
app_service_plan_id = azurerm_app_service_plan.appserviceplan.id
https_only = "true"
client_affinity_enabled = "true"
app_settings = {
NS = azurerm_eventhub_namespace.eventhubns.name
Hub = azurerm_eventhub.**firsteventhub**.name
propertyX = "**firstproperty**"
LogRef = "${azurerm_storage_account.store.primary_blob_endpoint}${azurerm_storage_container.**firstlogs**.name}"
}
}
resource "azurerm_app_service_virtual_network_swift_connection" "**firstvnet**" {
app_service_id = azurerm_function_app.**firstfunction**.id
subnet_id = azurerm_subnet.snet.id
}
В файле см. Раздел, заключенный с ****, который необходимо изменить для создания SecondFunction, ThirdFunction и так далее ...
The способ, который у меня есть прямо сейчас, - это создать несколько файлов TF с одним и тем же скопированным кодом и изменить разделы, заключенные в **.
Я прочитал модульную систему, но понял, что ограничение с модульной системой заключается в том, что я не могу обратитесь к другим компонентам, созданным в том же модуле TF root, как показано ниже. Например, в файле TF я ссылаюсь на местоположение как location = azurerm_resource_group.resourcegroupX.location. Если я делаю это как модуль, местоположение должно быть указано на как location = var.location_name, где location_name должно быть определено как переменная. Я не могу ссылаться на компоненты, созданные с помощью одного и того же модуля root.
Не могли бы вы предложить решение, в котором я могу создать несколько компонентов на основе аналогичного кода? Обратите внимание, что в приведенном выше примере я создаю 2 ресурса в одном файле TF, и оба они связаны.