Articles of boto3

¿Existe una API de Python para enviar solicitudes de obtención por lotes a DynamoDB de AWS?

El paquete boto3 , el contenedor AWS API oficial de boto3 Amazon, tiene un gran soporte para cargar elementos a DynamoDB de forma masiva. Se parece a esto: db = boto3.resource(“dynamodb”, region_name = “my_region”).Table(“my_table”) with db.batch_writer() as batch: for item in my_items: batch.put_item(Item = item) Aquí my_items es una lista de diccionarios de Python, cada […]

Completa un multipart_upload con boto3?

Intenté esto: import boto3 from boto3.s3.transfer import TransferConfig, S3Transfer path = “/temp/” fileName = “bigFile.gz” # this happens to be a 5.9 Gig file client = boto3.client(‘s3’, region) config = TransferConfig( multipart_threshold=4*1024, # number of bytes max_concurrency=10, num_download_attempts=10, ) transfer = S3Transfer(client, config) transfer.upload_file(path+fileName, ‘bucket’, ‘key’) Resultado: 5.9 archivo de concierto en s3. No parece […]

¿Cómo inserto condicionalmente un elemento en una tabla dynamodb usando boto3?

Si tengo una tabla con una clave hash de userId y una clave de rango de productId, ¿cómo puedo colocar un elemento en esa tabla solo si no existe utilizando los enlaces dynamodb de boto3? La llamada normal a put_item se ve así table.put_item(Item={‘userId’: 1, ‘productId’: 2}) Mi llamada con una ConditionExpression se ve así: […]

Leyendo múltiples archivos csv desde S3 bucket con boto3

Necesito leer varios archivos csv de S3 con boto3 en python y finalmente combinar esos archivos en un solo dataframe en pandas. Soy capaz de leer un solo archivo de la siguiente secuencia de comandos en Python s3 = boto3.resource(‘s3’) bucket = s3.Bucket(‘test-bucket’) for obj in bucket.objects.all(): key = obj.key body = obj.get()[‘Body’].read() Siguiendo mi […]

Función AWS Lambda usando el tiempo de espera de Boto3

He resuelto mi propia pregunta, ¡pero la estoy publicando de todos modos con la esperanza de salvar a alguien más unas horas! Tengo un proyecto sin servidor en AWS que usa Python para insertar un registro en una cola de kinesis. Sin embargo, cuando uso boto3.client (‘kinesis’) o la función put_record, parece que se cuelga […]

¿Dónde está la documentación de la API para los recursos de boto3?

Aprendí que boto3 ofrece dos niveles de abstracción: una API de bajo nivel llamada client que es una envoltura delgada alrededor de la API HTTP de AWS y un resource alto nivel llamado cliente que ofrece objetos reales de Python. Mi pregunta es, ¿dónde está la documentación de la API para la API de resource […]

Sobrescribir el punto final S3 utilizando el archivo de configuración de Boto3

VISIÓN GENERAL: Estoy intentando sobrescribir ciertas variables en boto3 usando el archivo de configuración ( ~/aws/confg ). En mi caso de uso, quiero usar el servicio fakes3 y enviar solicitudes de S3 al localhost. EJEMPLO: En boto (no boto3 ), puedo crear una configuración en ~/.boto similar a esta: [s3] host = localhost calling_format = […]

Usando boto3 en GAE – obteniendo problemas con Popen

Estoy intentando ejecutar un código python en el motor de aplicaciones de Google que envía un mensaje a Amazon SQS. He instalado boto3, pero recibo un error al intentar importarlo en mi servicio AppEngine: File “/base/data/home/apps/s~myservice/test.408770177247417142/lib/botocore/credentials.py”, line 763, in ProcessProvider def __init__(self, profile_name, load_config, popen=subprocess.Popen): AttributeError: ‘module’ object has no attribute ‘Popen’ ¿Alguien sabe cómo […]

Boto3 / S3: Renombrando un objeto usando copy_object

Estoy tratando de cambiar el nombre de un archivo en mi cubo s3 usando python boto3, no pude entender claramente los argumentos. ¿Puede alguien ayudarme aquí? Lo que estoy planeando es copiar el objeto en un nuevo objeto y luego eliminar el objeto real. Encontré preguntas similares aquí, pero necesito una solución usando boto3.

¿Cómo leer una lista de archivos de parquet de S3 como un dataframe de pandas usando pyarrow?

Tengo una forma boto3 de lograr esto usando boto3 (1.4.4), pyarrow (0.4.1) y pandas (0.20.3). Primero, puedo leer un solo archivo de parquet localmente como este: import pyarrow.parquet as pq path = ‘parquet/part-r-00000-1e638be4-e31f-498a-a359-47d017a0059c.gz.parquet’ table = pq.read_table(path) df = table.to_pandas() También puedo leer un directorio de archivos de parquet localmente como este: import pyarrow.parquet as pq […]