【问题标题】:I am creating a lambda using Python to create a file in s3 bucket but its only creating one row. Need iteration based creation我正在使用 Python 创建一个 lambda 以在 s3 存储桶中创建一个文件,但它只创建一行。需要基于迭代的创建
【发布时间】:2022-01-18 12:06:03
【问题描述】:

我正在使用 Python 创建一个 AWS Lambda 函数以在 S3 存储桶中创建一个文件,但它只创建一行。需要基于迭代的创建。

下面是我的代码:

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'))

    s3.put_object(Bucket=bucket, Key=fileName, Body=uploadByteStream)

    print('Put Complete')

上面的代码是在 S3 存储桶中创建一个 json 文件,但我想迭代说 5,以便该文件有 5 条记录。

【问题讨论】:

  • 您希望其他 4 个记录的 excat 值是多少?
  • 您的代码似乎只创建了一个eventToUpload。您从哪里获取信息以输出多条记录?
  • 条件 1 ) 多条记录的值相同 2) 从 s3 获取 ghz 文件并附加记录

标签: python amazon-web-services amazon-s3 aws-lambda aws-lambda-layers


【解决方案1】:

AWS S3 默认不支持,也不支持将内容附加到现有文件。

您可以:

  • 循环遍历 Python 脚本上的 events,以创建具有唯一标识的 fileName 前缀/后缀的多个文件,例如 ITEM_ID
  • 事先读取并解析现有文件(如果有),然后将 events 附加到它并写入/替换文件。

This question 似乎对您的情况也有有用的答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-03
    • 2023-01-16
    • 1970-01-01
    • 2017-12-25
    相关资源
    最近更新 更多