es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo recuperar la URL de distribución de CloudFront asociada en Amplify+Terraform?

¿Es posible obtener la URL de la Distribución CloudFront de una aplicación Amplify dentro de Terraform?

Si creara una nueva aplicación Next.js dentro de la consola web, hay una importante redirección 200 que se agrega en ‘Redirecciones y reescrituras’, que apunta todos los caminos de la interfaz a la Distribución CloudFront asociada. Sin embargo, ahora he migrado a Terraform con el recurso aws_amplify_app, que no agrega automáticamente esta reescritura.

Entonces, ¿alguien sabe cómo hacer esto dentro del proveedor de TF? Aprecio que esto sea imposible porque la Distribución CloudFront solo se crea como parte de la propia aplicación Amplify. Por lo tanto, alternativamente, si no está expuesto, ¿hay alguna forma de que Amplify maneje esta lógica específica de Next cuando se utiliza Terraform (en lugar de solo a través de la consola web)?

A continuación se muestra el código relevante de mi main.tf, con un comentario TODO que muestra lo que debe ser automático.

“`tf
resource "aws_amplify_app" "ui" {
name = "my-ui"

custom_rule {
source = "/<path>"
status = "200"
## TODO – esto debería configurarse automáticamente como la URL de la nueva Distribución CloudFront creada
target = "https://xxxxxxxxx.cloudfront.net/<path>"
}
}
“`

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    No es posible recuperar directamente la URL de la Distribución de CloudFront de una aplicación de Amplify dentro de Terraform, ya que la distribución de CloudFront se crea como parte de la propia aplicación de Amplify. Sin embargo, una solución alternativa podría ser utilizar el recurso aws_amplify_domain para asociar un dominio personalizado con la aplicación de Amplify, y luego recuperar la URL de la Distribución de CloudFront desde el registro DNS de ese dominio personalizado. Esto requeriría configurar el dominio personalizado de forma independiente fuera de Terraform.

    Alternativamente, dado que el recurso aws_amplify_app no agrega automáticamente la reescritura necesaria para una aplicación de Next.js, podrías utilizar el recurso aws_cloudfront_distribution junto con aws_route53_record para crear la Distribución de CloudFront y el registro DNS asociado de forma independiente dentro de Terraform.

Comments are closed.