database - AWS Lambda、python 和 AWS SFTP 堆栈
问题描述
我有一个 AWS FTP 正在运行,我正在向它发送文件,我正在发送 CSV 文件,我想将我所有的 .CSV 导入我的数据库。
我的数据库在 EC2 实例上运行。
堆栈:AWS SFT(发送文件 CSV)--> S3 --->(文件上传时触发 lambda)---> Lambda [python:获取 csv 并导入到 db]
我想知道这是否可能?谢谢!
解决方案
是的,这是可能的。
- 将您的 Lambda 中的触发器添加到您将发送 CSV 文件的 S3 存储桶。
确保 Lambda 具有获取 S3 存储桶中对象的权限,并且可以连接到 EC2 实例。
创建您的代码以在触发 Lambda 时从 S3 读取对象内容。
- 您已准备好创建自动化。
我的示例代码:
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()
推荐阅读
- android - 如何将 LiveData 应用于 xxxFragment.class 而不是 XML
- python - 使用 Python 将 JSON 键值对从源映射到目标
- ruby-on-rails - 连接被拒绝:无法打开 Rails 应用程序(端口转发和绑定)
- odoo - Odoo - 导入其他语言的产品描述
- centos - CentOS 7 文件 libwxgtk-webview3.0-gtk3-0v5 libwxgtk-media3.0-gtk3-0v5
- spring-boot - 在 spring boot + jpa 中,当我在数据库中有两个或更多数据时,我面临这个错误。“org.springframework.dao.InvalidDataAccessResourceUsageException:
- javascript - Chrome 为增量点击功能返回错误代码 5
- laravel - 'http://localhost:8080' 已被 CORS 策略 Laravel8 阻止
- python - 我运行了一个代码,使用 22 nd 端口将我的计算机链接到另一台计算机。但没有收到任何数据
- mysql - 选择在 MYSQL 中具有最大值的所有行