Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

685
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

0

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

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda