Создание нового файла, запись в него и загрузка на S3 с использованием Python в Lambda - PullRequest
0 голосов
/ 24 апреля 2020

Я пытаюсь создать новый файл, используя Python в AWS Lambda и записать в него, а затем загрузить в корзину S3. Я хочу, чтобы каждое имя файла было уникальным в зависимости от переменной. В данном случае это submission_id.

import json
import sys
import logging
import boto3

client = boto3.client('s3')

Разбор данных из вызова webhook API (Все это прекрасно работает)

def lambda_handler(event, context):
     form_data = json.loads(event['body'])
     form_id = (form_data['FormID'])
     submission_id = (form_data['UniqueID'])

Создание нового файла с результатами и загрузка на S3.

Хотите использовать submission_id в качестве переменной имени файла.

     data_file = open('/tmp/submission_id' + '.txt', 'w+')
     data_file.write(str(form_data))
     data_file.close()

Загрузить файл в корзину S3

     client.upload_file('/tmp/submission_id', 'mb-sentiment' , 'data_file')

Я получаю следующую ошибку:

[ОШИБКА] FileNotFoundError: [ Errno 2] Нет такого файла или каталога: '/ tmp / submission_id' Traceback (последний вызов был последним): файл "/var/task/lambda_function.py", строка 24, в lambda_handler client.upload_file ('/ tmp / submission_id' , 'mb-sentiment', 'data_file')

Кто-нибудь знает, как я могу точно кодировать это? В этом нет ничего сложного, но я новичок ie, набирающий скорость. Проверил некоторые другие сообщения, но ни один, кажется, не рассматривает этот конкретный случай использования.

Спасибо!

1 Ответ

0 голосов
/ 24 апреля 2020

Мне кажется, у вас должно быть .txt в конце:

client.upload_file('/tmp/submission_id.txt', 'mb-sentiment' , 'data_file')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...