es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Estoy creando una función lambda utilizando Python para crear un archivo en un cubo de S3, pero solo está creando una fila. Necesito crear filas iterativamente.

Estoy creando una función de AWS Lambda utilizando Python para crear un archivo en un bucket de S3, pero solo está creando una fila. Necesito crear iteraciones basadas en la creación.

A continuación se muestra mi código:

import json
import boto3

s3 = boto3.client('s3')

def lambda_handler(event, context):
    bucket ='xyz'

    eventToUpload = {}
    eventToUpload['ITEM_ID'] = 1234
    eventToUpload['Name'] = 'John'
    eventToUpload['Office'] = 'NY'

    fileName = 'testevent' + '.json'

    uploadByteStream = bytes(json.dumps(eventToUpload).encode('UTF-8'))

    for i in range(5):
        s3.put_object(Bucket=bucket, Key=fileName, Body=uploadByteStream)

    print('Put Complete')

El código anterior está creando un archivo json en el bucket de S3, pero quiero tener una iteración de, digamos, 5 para que el archivo tenga 5 registros.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para crear múltiples registros en el bucket de S3 utilizando iteración, puedes modificar el código de la siguiente manera:

    import json
    import boto3
    
    s3 = boto3.client('s3')
    
    def lambda_handler(event, context):
        bucket = 'xyz'
        records_to_create = 5
    
        for i in range(records_to_create):
            eventToUpload = {}
            eventToUpload['ITEM_ID'] = 1234
            eventToUpload['Name'] = 'John'
            eventToUpload['Office'] = 'NY'
    
            fileName = 'testevent' + str(i) + '.json'
    
            uploadByteStream = bytes(json.dumps(eventToUpload).encode('UTF-8'))
    
            s3.put_object(Bucket=bucket, Key=fileName, Body=uploadByteStream)
    
        print('Put Complete')
    

    En el código anterior, se crea una variable records_to_create para especificar la cantidad de registros que se crearán. Se utiliza un bucle for para iterar records_to_create veces, creando un nuevo diccionario eventToUpload y nombre de archivo en cada iteración. El nombre de archivo se actualiza con i para asegurar nombres de archivo únicos. La función s3.put_object se llama dentro del bucle for para cargar cada registro en el bucket de S3.

Comments are closed.