You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AWS Lambda中用Node.js将CSV转为HTML表格适配AWS Wisdom

用Lambda将CSV转换为HTML并导入AWS Wisdom知识库

整体流程

  • 触发Lambda:通过S3事件(CSV文件上传至指定S3桶时自动触发)或CloudWatch定时任务触发
  • 读取CSV:从S3或目标数据源读取CSV内容
  • 格式转换:将CSV数据转换为结构化HTML(推荐表格形式,便于Wisdom索引)
  • 上传至Wisdom:调用AWS Wisdom API将生成的HTML文件导入指定知识库

具体Lambda代码实现(Python)

以下代码使用Python内置csv模块处理CSV,转换为HTML表格后通过boto3调用Wisdom API完成上传:

import boto3
import csv
from io import StringIO

s3 = boto3.client('s3')
wisdom = boto3.client('wisdom')

def lambda_handler(event, context):
    # 从S3读取触发的CSV文件(以S3事件触发为例)
    bucket = event['Records'][0]['s3']['bucket']['name']
    key = event['Records'][0]['s3']['object']['key']
    
    # 获取并解析CSV内容
    s3_response = s3.get_object(Bucket=bucket, Key=key)
    csv_raw = s3_response['Body'].read().decode('utf-8')
    csv_reader = csv.reader(StringIO(csv_raw))
    
    # 生成HTML表格结构
    html_content = '<html><body><table border="1">'
    # 写入表头
    headers = next(csv_reader)
    html_content += '<tr>' + ''.join([f'<th>{header}</th>' for header in headers]) + '</tr>'
    # 写入数据行
    for row in csv_reader:
        html_content += '<tr>' + ''.join([f'<td>{cell}</td>' for cell in row]) + '</tr>'
    html_content += '</table></body></html>'
    
    # 上传至Wisdom知识库
    wisdom.create_content(
        knowledgeBaseId='YOUR_KNOWLEDGE_BASE_ID',
        name=f'Converted_{key.split("/")[-1].replace(".csv", ".html")}',
        content=html_content,
        contentType='text/html'
    )
    
    return {
        'statusCode': 200,
        'body': 'CSV转换为HTML并成功上传至Wisdom'
    }

关键注意事项

  • 权限配置:为Lambda角色添加以下权限:
    • s3:GetObject(读取触发的CSV文件)
    • wisdom:CreateContent(向Wisdom知识库上传内容)
  • HTML规范:使用简洁的结构化HTML(如表格),避免复杂CSS或JS,确保Wisdom能正确索引内容
  • 依赖处理:若需用pandas处理复杂CSV(如多表头、合并单元格),需为Lambda创建包含pandas的层
  • 参数替换:将代码中的YOUR_KNOWLEDGE_BASE_ID替换为实际的Wisdom知识库ID

内容的提问来源于stack exchange,提问作者Demo Google

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 03:15:31