首页 > 解决方案 > AWS Lambda、python 和 AWS SFTP 堆栈

问题描述

我有一个 AWS FTP 正在运行,我正在向它发送文件,我正在发送 CSV 文件,我想将我所有的 .CSV 导入我的数据库。

我的数据库在 EC2 实例上运行。

堆栈:AWS SFT(发送文件 CSV)--> S3 --->(文件上传时触发 lambda)---> Lambda [python:获取 csv 并导入到 db]

我想知道这是否可能?谢谢!

标签: databasecsvamazon-ec2aws-lambdasftp

解决方案


是的,这是可能的。

  1. 将您的 Lambda 中的触发器添加到您将发送 CSV 文件的 S3 存储桶。

在此处输入图像描述

  1. 确保 Lambda 具有获取 S3 存储桶中对象的权限,并且可以连接到 EC2 实例。

  2. 创建您的代码以在触发 Lambda 时从 S3 读取对象内容。

在此处输入图像描述

  1. 您已准备好创建自动化。

在此处输入图像描述

我的示例代码:

import boto3
    
    
s3 = boto3.client("s3")
    
def lambda_handler(event, context):
    for record in event.get("Records", []):
        bucket_name = record["s3"]["bucket"]["name"]
        object_key  = record["s3"]["object"]["key"]
            
        response = s3.get_object(Bucket=bucket_name, Key=object_key)
        content  = response["Body"].read()

推荐阅读