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

525
Vistas
El error del sistema de archivos de solo lectura de AWS Lambda no pudo crear el directorio con la imagen de Docker

Problema

La imagen de Docker se compila correctamente, pero falla cuando se ejecuta desde Lambda debido a su sistema de archivos de solo lectura.

Resumen

Luminati-proxy tiene una integración docker para su administrador de proxy. Copié su archivo docker y lo agregué a mi propio archivo docker para enviar un script a AWS Lambda. La creación de la imagen de la ventana acoplable fue exitosa , pero cuando se envió a Lambda, falló debido a un error del sistema de archivos de solo lectura :

 Failed to create directory /home/sbx_user1051/proxy_manager: [code=EROFS] Error: EROFS: read-only file system, mkdir '/home/sbx_user1051' 2022-02-28 19:37:22.049 FILE (8): Failed to create directory /home/sbx_user1051/proxy_manager: [code=EROFS] Error: EROFS: read-only file system, mkdir '/home/sbx_user1051'

Análisis

Al examinar el trackback, el error se centra en la instalación de proxy_manager y falla con los cambios de directorio (mkdir, mk_work_dir...). Estos cambios se realizan dentro de los archivos .js de GitHub que se extraen del archivo docker como la instalación de proxy_manager. Obviamente, el único directorio mutable en Lambda es el directorio /tmp , pero ¿existe alguna solución para configurar esto sin recurrir a colocar todo en el directorio /tmp mientras se borra solo durante el tiempo de ejecución? Reinstalar un proxy_manager cada ejecución no es nada ideal ...

¿Responder?

¿Podría ser esto tan simple como establecer estipulaciones ambientales como:

 ENV PATH=... ENV LD_LIBRARY_PATH=...

Si es así, ¿cómo deberían configurarse? Estoy agregando el archivo docker a continuación para una referencia rápida:

 FROM node:14.18.1 RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \ && sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' \ && apt-get update \ && apt-get install -y google-chrome-stable fonts-ipafont-gothic fonts-wqy-zenhei fonts-thai-tlwg fonts-kacst fonts-freefont-ttf \ --no-install-recommends \ && rm -rf /var/lib/apt/lists/* USER root RUN npm config set user root RUN npm install -g npm@8.1.3 RUN npm install -g @luminati-io/luminati-proxy ENV DOCKER 1 CMD ["luminati", "--help"]

Agradezco la perspicacia!

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

0

AWS Lambda proporciona la carpeta /tmp para que los usuarios escriban archivos en lambda, ya que no conozco el contexto de su pregunta, pero espero que esto ayude. Puede escribir archivos en AWS Lambda en la carpeta /tmp, por ejemplo. Quiero crear un archivo demo.txt en tiempo de ejecución/programáticamente usando AWS lambda, luego puedo escribir el archivo en /txt/demo.txt

over 4 years ago · Santiago Trujillo Denunciar

0

TL;RD:

  • En su lugar, debe aprovechar un depósito S3 para almacenar, leer y modificar cualquier archivo. Todas las lambdas y microservicios. En general, siempre debe ser tratado como apátrida
  • Toda la funcionalidad del proxy de Luminati viene preconstruida dentro de Amazon Lambdas y API Gateway .
  • Las funciones de Lambda no están destinadas a ejecutar procesos de ejecución prolongada, ya que están limitadas a un máximo de 15 minutos, por lo que el diseño del contenedor que intenta ejecutar en lambdas debe tener consideraciones de arquitectura sin servidor de AWS en su diseño.

Explicación:

Según ladocumentación de las funciones de AWS Lambda:

La imagen del contenedor debe poder ejecutarse en un sistema de archivos de solo lectura. Su código de función puede acceder a un directorio grabable /tmp con 512 MB de almacenamiento.

Dado que se supone que los contenedores basados en imágenes basadas en Linux ya tienen una carpeta llamada /tmp , debería poder acceder a esa carpeta en cualquier momento desde su código para leer (recuerde, FS de solo lectura )

Si está buscando almacenar contenido, la solución de Amazon es que cree y administre cualquier contenido en un depósito S3, los depósitos son tan fáciles de usar como si leyera un archivo localmente, pero permanecerán accesibles después de que la instancia lambda finalice la carga de trabajo.

Consulte Leer archivo desde el depósito de aws s3 mediante el nodo fs y Cargar un archivo en Amazon S3 con NodeJS para obtener más detalles sobre cómo utilizar un depósito de S3. Hay muchas formas de lograrlo, independientemente del idioma que se utilice.

Todo esto se basa en una práctica recomendada promovida por AWS en su plataforma. Donde las lambdas permanecen apátridas

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