dpa456
todo el mundo.
Al usar for_each en terraform, aparece la duplicación. En este caso, ¿cómo debo evitarlo?
Los puntos problemáticos son 1), y 2). los valores de datos deben obtenerse de cada recurso a través de for_each.
// custom hostname binding
resource "azurerm_app_service_custom_hostname_binding" "service_host_bind" {
for_each = azurerm_dns_cname_record.cname_target
hostname = trim(each.value.fqdn, ".")
app_service_name = azurerm_app_service._service.name
resource_group_name = azurerm_resource_group._rg.name
depends_on = [azurerm_dns_txt_record._txt_target]
lifecycle {
ignore_changes = [ssl_state, thumbprint]
} }
// app service managed certificate
resource "azurerm_app_service_managed_certificate" "_service_manage_cert" {
for_each = azurerm_app_service_custom_hostname_binding._service_host_bind
custom_hostname_binding_id = each.value.id
}
// app service certificate binding
resource "azurerm_app_service_certificate_binding" "xtrm_service_certi_bind" {
1) hostname_binding_id = azurerm_app_service_custom_hostname_binding._service_host_bind.id
// ## how to for_each??
2) certificate_id = azurerm_app_service_managed_certificate._service_manage_cert.id
// ## how to for_each??
ssl_state = "SniEnabled"
}
Actualmente, hemos preparado varios dominios para la redirección e intentamos otorgar certificados para cada uno.
Por ejemplo, cuando hay un dominio de punto final (www.azure.com), dominios para redirección: auz-ure.com, auz-ure.com, az-ops.shop, etc.
(azure-redirect.net -> www.azure.com
auz-ure.com -> www.azure.com
az-ops.tienda -> www.azure.com)
Para el código de terraformación, me referí al documento.
-
Gracias por reproducir 🙂 Probé tu sugerencia pero muestra este error “La clave dada no identifica un elemento en este valor de colección: cadena requerida”.
– dpa456
25 de noviembre de 2021 a las 10:44
-
Probablemente necesite usar each.key en lugar de each.value. Actualizaré la respuesta.
– Tobías Thieron
25 de noviembre de 2021 a las 11:18
-
hola, probé este código y tuve éxito en el plan de terraformación XD, sí, cada clave pasó el trabajo, ¡gracias! ”’ for_each = azurerm_app_service_custom_hostname_binding.service_host_bind hostname_binding_id = azurerm_app_service_custom_hostname_binding.service_host_bind[each.key].id id_certificado = azurerm_app_service_managed_certificate.service_manage_cert[each.key].identificación ”’
– dpa456
25 de noviembre de 2021 a las 13:23