У меня есть некоторые данные в S3, и я хочу создать лямбда-функцию для прогнозирования вывода с моей развернутой конечной точкой aws sagemaker, затем я снова помещаю выходные данные в S3. Необходимо ли в этом случае создавать шлюз api, как описано в этом ссылка? и в лямбда-функции то, что я должен поставить. Я ожидаю поставить (где найти данные, как вызвать конечную точку, куда поместить данные)
import boto3
import io
import json
import csv
import os
client = boto3.client('s3') #low-level functional API
resource = boto3.resource('s3') #high-level object-oriented API
my_bucket = resource.Bucket('demo-scikit-byo-iris') #subsitute this for your s3 bucket name.
obj = client.get_object(Bucket='demo-scikit-byo-iris', Key='foo.csv')
lines= obj['Body'].read().decode('utf-8').splitlines()
reader = csv.reader(lines)
import io
file = io.StringIO(lines)
# grab environment variables
runtime= boto3.client('runtime.sagemaker')
response = runtime.invoke_endpoint(
EndpointName= 'nilm2',
Body = file.getvalue(),
ContentType='*/*',
Accept = 'Accept')
output = response['Body'].read().decode('utf-8')
мои данные - это файл csv из 2 столбцов с плавающей запятой без заголовков, проблема в том, что строки возвращают список строк (каждая строка является элементом этого списка: ['11.55,65.23', '55 .68,69.56 '... ]) вызов работает хорошо, но ответ также является строкой: output = '65 .23 \ n, 65.23 \ n, 22.56 \ n, ... '
Итак, как сохранить этот вывод на S3 как файл csv
Спасибо