Hem*_*Das 5 python amazon-s3 amazon-ec2 aws-lambda
这篇文章旨在获取基本信息/链接,以了解在 Lambda 或 EC2 上运行 Py 代码。
我的代码结构非常简单:
import numpy as np
import pandas as pd
#load more packages
input_data = pd.read_csv(...)
def do_stuff(input, parameters):
action1
action2
output.to_csv(...)
plt.save_fig(...)
do_stuff(input_data,input_parameter)
Run Code Online (Sandbox Code Playgroud)
我需要在 AWS 上运行此代码,但我不确定使用哪个:Lambda 或 EC2。此外,输入文件在我的本地 PC 上,输出将保存到特定文件夹中。我需要将它保存到 S3.0 吗?如果是这样,路径如何?我还用吗import os
对于这个菜鸟之类的问题,我很抱歉。我需要一些关于我应该阅读什么才能开始的入门指导。浏览 AWS 文档变得技术化——从 Lambda 上的“Hello World”——我无法理解太多。由于锁定,我无法使用我的办公室桌面,我的个人 mac 无法处理负载。输入和输出文件非常小 - 累计不到 5 MB(有多个输入文件)。
如果这是需要经常完成的事情,您可能会创建一个工作流程,其中您可以:
将输入.csv文件上传到S3存储桶
您的AWS Lambda函数侦听 S3 存储桶中的更改,并在上传新文件时触发您的代码运行。
您的代码将输出.csv保存到第二个S3存储桶。
代码可能看起来非常粗略像这样(根据本示例进行修改):
import boto3
import os
import sys
from urllib.parse import unquote_plus
s3_client = boto3.client('s3')
def handle_csv(original_csv_path, output_csv_path):
<process csv code>
def lambda_handler(event, context):
for record in event['Records']:
bucket = record['s3']['bucket']['name']
key = unquote_plus(record['s3']['object']['key'])
tmpkey = key.replace('/', '')
download_path = <insert path here>
upload_path = <insert path here>
s3_client.download_file(bucket, key, download_path)
handle_csv(download_path, upload_path)
s3_client.upload_file(upload_path, '<>'.format(bucket), key)
Run Code Online (Sandbox Code Playgroud)
路径可能如下所示: '<bucket/object>': 'input_csvs/1.csv'
| 归档时间: |
|
| 查看次数: |
1049 次 |
| 最近记录: |