Solución:
La respuesta anterior de Repakula Srushith es correcta pero creará un csv vacío ya que el archivo no se cierra. Puede cambiar el código a
f = open("/tmp/csv_file.csv", "w+")
temp_csv_file = csv.writer(f)
temp_csv_file.writerow(["Account Name", "Month", "Cost"])
# writing rows in to the CSV file
for detail in response:
temp_csv_file.writerow([detail['account_name'],
detail['month'],
detail['cost']
])
f.close()
Aquí hay una función de muestra para crear un archivo CSV en Lambda usando Python:
Suponiendo que la variable ‘respuesta’ tiene los datos necesarios para crear el informe, el siguiente código le ayudará a crear un archivo CSV temporal en el /tmp
carpeta de la función lambda:
import csv
temp_csv_file = csv.writer(open("/tmp/csv_file.csv", "w+"))
# writing the column names
temp_csv_file.writerow(["Account Name", "Month", "Cost"])
# writing rows in to the CSV file
for detail in response:
temp_csv_file.writerow([detail['account_name'],
detail['month'],
detail['cost']
])
Una vez que haya creado el archivo CSV, puede cargarlo S3 y enviarlo como un correo electrónico o compartirlo como un enlace usando el siguiente código:
client = boto3.client('s3')
client.upload_file('/tmp/csv_file.csv', BUCKET_NAME,'final_report.csv')
Puntos para recordar:
- El / tmp es un directorio de almacenamiento de 512 MB de tamaño que se puede utilizar para almacenar algunos archivos temporales o en la memoria.
- No debe confiar en este almacenamiento para mantener el estado en las funciones lambda posteriores.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)