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

662
Visualizações
La biblioteca pysftp no funciona en la capa lambda de AWS

Quiero cargar archivos en la instancia de EC2 usando la biblioteca pysftp (secuencia de comandos de Python). Así que he creado un pequeño script de Python que está usando la línea de abajo para conectarse

 pysftp.Connection( host=Constants.MY_HOST_NAME, username=Constants.MY_EC2_INSTANCE_USERNAME, private_key="./mypemfilelocation.pem", ) some code here ..... pysftp.put(file_to_be_upload, ec2_remote_file_path)

Este script cargará archivos desde mi máquina Windows local a la instancia EC2 usando el archivo .pem y funciona correctamente.

Ahora quiero realizar esta acción usando AWS lambda con la funcionalidad API Gateway .

Así que cargué el script de Python en AWS lambda. Ahora no estoy seguro de cómo usar la biblioteca pysftp en AWS lambda, así que encontré una solución que agrega la capa de biblioteca pysftp en la capa lambda de AWS. lo hice con

pip3 install pysftp -t ./carpeta_biblioteca

Y hago zip de la carpeta anterior y lo agrego en AWS lambda Layer.

Pero aún tengo tantos errores como uno por uno: -

Ningún módulo llamado 'pysftp'

Ningún módulo llamado 'paramiko'

Símbolo indefinido: PyInt_FromLong

no se puede importar el nombre '_bcrypt' del módulo 'bcrypt' parcialmente inicializado (probablemente debido a una importación circular)

módulo cffi no encontrado

Acabo de desaparecer de los errores anteriores. No encontré la solución adecuada. ¿Cómo puedo usar la biblioteca pysftp en mi AWS lambda sin problemas?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Construí la capa pysftp y la probé en mi lambda con python 3.8. Solo para ver la importación y la impresión básica:

 import json import pysftp def lambda_handler(event, context): # TODO implement print(dir(pysftp)) return { 'statusCode': 200, 'body': json.dumps('Hello from Lambda!') }

Usé la siguiente herramienta acoplable para construir la capa pysftp :

  • https://github.com/lambci/docker-lambda

Entonces, lo que hice para pysftp fue:

 # create pysftp fresh python 3.8 environment python -m venv pysftp # activate it source pysftp/bin/activate cd pysftp # install pysftp in the environemnt pip3 install pysftp # generate requirements.txt pip freeze > requirements.txt # use docker to construct the layer docker run --rm -v `pwd`:/var/task:z lambci/lambda:build-python3.8 python3.8 -m pip --isolated install -t ./mylayer -r requirements.txt zip -r pysftp-layer.zip .

Y el resto es cargar el zip en s3, crear una nueva capa en la consola de AWS, configurar el tiempo de Compatible runtime en python 3.8 y usarlo en mi función lambda de prueba.

También puede consultar aquí cómo usar esta herramienta de ventana acoplable (el comando de ventana acoplable que utilicé se basa en lo que hay en ese enlace).

Espero que esto ayude

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