deploy/terraform/terraform-units/modules/sap_landscape/ams.tf (40 lines of code) (raw):
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
// Imports data of existing AMS subnet
data "azurerm_subnet" "ams" {
provider = azurerm.main
count = length(local.ams_subnet_arm_id) > 0 ? 1 : 0
name = split("/", local.ams_subnet_arm_id)[10] # Get the Subnet from actual arm_id
virtual_network_name = split("/", local.ams_subnet_arm_id)[8] # Get the Network from actual arm_id
resource_group_name = split("/", local.ams_subnet_arm_id)[4] # Get RG name from actual arm_id
}
resource "azurerm_subnet_route_table_association" "ams" {
provider = azurerm.main
count = local.create_ams_instance && local.ams_subnet_defined && !local.SAP_virtualnetwork_exists && !local.ams_subnet_existing ? (local.create_nat_gateway ? 0 : 1) : 0
depends_on = [
azurerm_route_table.rt,
azurerm_subnet.ams
]
subnet_id = local.ams_subnet_existing ? var.infrastructure.virtual_networks.sap.subnet_ams.arm_id : azurerm_subnet.ams[0].id
route_table_id = azurerm_route_table.rt[0].id
}
# Created AMS instance if log analytics workspace is NOT defined
resource "azapi_resource" "ams_instance" {
type = "Microsoft.Workloads/monitors@2023-04-01"
count = local.create_ams_instance && local.ams_subnet_defined ? 1 : 0
name = local.ams_instance_name
location = local.region
parent_id = azurerm_resource_group.resource_group[0].id
depends_on = [
azurerm_virtual_network.vnet_sap,
azurerm_subnet.ams
]
body = jsonencode({
properties = {
appLocation: local.region,
routingPreference: "RouteAll",
logAnalyticsWorkspaceArmId: length(local.ams_laws_arm_id) > 0 ? local.ams_laws_arm_id : null,
managedResourceGroupConfiguration: {
name: "managedrg-ams"
},
monitorSubnet: length(local.ams_subnet_arm_id) > 0 ? local.ams_subnet_arm_id : azurerm_subnet.ams[0].id,
}
})
}