Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

679
Vistas
Utilizando una fuente personalizada en AWS Lambda y Node.js 12.x

Estoy tratando de crear una función AWS Lambda para aplicar un efecto de marca de agua en las imágenes. La imagen original se extraerá de S3, se aplicarán las marcas de agua y los resultados se volverán a cargar en S3.

Estoy usando sharp para crear estas composiciones con este código:

 await sharp(inputImage) .rotate() .composite([{ input: new Buffer.from(watermark), tile: true, gravity: 'northwest' }])

Con una marca de agua personalizada SVG

 watermark = `<svg ... <text x="50%" y="100%" style="font-family:'Open Sans';font-weight:400;font-size:75px;font-style:normal;fill:rgba(128,128,128,1);stroke:none;" text-anchor="middle">${event.watermarkName}</text></g></svg>`;

Dentro del SVG hay un elemento de texto que cambio dinámicamente para que contenga una cadena específica. Por ejemplo, puedo poner (c) Company Name en una imagen y (c) John Doe en otra.

El código funciona cuando se ejecuta en mi máquina, pero una vez dentro de una función Lambda con el tiempo de ejecución de Node.js 12.x, este es el resultado Ejemplo de marca de agua de texto

Como puede ver, especifiqué Open Sans como la fuente a utilizar. De hecho, puse el archivo OpenSans-Regular.ttf en /fonts/ , creé un archivo fonts.conf y configuré FONTCONFIG_PATH='/var/task/fonts' como se describe en esta pregunta .

No obstante, las fuentes siguen sin funcionar. ¿Alguien tiene sugerencias sobre cómo puedo solucionar esto?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Bueno, preguntarle a Stackoverflow me ayudó a encontrar la respuesta por mi cuenta, así que lo comparto en caso de que alguien se encuentre con este problema en el futuro.

AWS Lambda no parece admitir ni siquiera las fuentes básicas por sí solo. Por este motivo, deberá incluir sus propias fuentes como archivos dentro del archivo zip de implementación.

En mi caso esto funcionó:

  • Cree una carpeta /fonts y dentro coloque todos los archivos necesarios (en mi caso OpenSans-Regular.ttf ).

  • Coloque un archivo llamado fonts.conf dentro de esta carpeta

     <?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <dir>/var/task/fonts/</dir> <cachedir>/tmp/fonts-cache/</cachedir> <config></config> </fontconfig>
  • Dígale a Lambda dónde está el archivo de configuración creando una variable de entorno

     FONTCONFIG_PATH='./fonts'

¡Y voilá!

ejemplo de trabajo

over 4 years ago · Santiago Trujillo Denunciar

0

Trabajó para mí también con FONTCONFIG_FILE="/var/task/fonts.conf"

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda