当前位置: 首页 > news >正文

lambda如何读写dynamedb数据

参考文档https://dev.classmethod.jp/articles/how-to-put-get-items-from-dynamodb-table-using-aws-lambda-boto3/大家好我是来自 XXX 业务总部的 XXX。今天我们将学习如何使用 AWS Lambda 对 DynamoDB 表执行写入Put/ 读取Get数据项操作。一、在 Amazon DynamoDB 中创建表首先在 DynamoDB 中创建表需指定表名和分区键。进入 Amazon DynamoDB 控制台点击创建表。输入表名与分区键点击创建表。表创建说明DynamoDB 是无模式数据库创建时仅需表名与主键。表名用于标识表3–255 字符支持字母、数字、下划线、连字符、点号。分区键表主键的一部分哈希值用于检索数据项与跨节点分配数据保障扩展性与可用性。排序键可选作为主键第二部分可对相同分区键的数据项排序 / 检索。默认表配置表格设置项取值创建后是否可编辑容量模式预置容量是读取容量5 读取容量单位RCU是写入容量5 写入容量单位WCU是自动扩缩容开启是本地二级索引无否全局二级索引无是表创建成功后控制台会显示新表。二、创建 IAM 角色为让 Lambda 函数访问 DynamoDB需创建具备 DynamoDB读、写、更新权限的 IAM 策略并将该角色附加到 Lambda 函数。进入 IAM 控制台 → 策略 →创建策略。选择JSON粘贴以下策略点击下一步标签。json{ Version: 2012-10-17, Statement: [ { Action: [ dynamodb:GetItem, dynamodb:PutItem, dynamodb:UpdateItem, dynamodb:DescribeTable ], Effect: Allow, Resource: * } ] }输入策略名如access_dynamodb_from_lambda点击创建策略。进入角色→创建角色。可信实体类型选AWS 服务使用场景选Lambda下一步。权限添加AWSLambdaBasicExecutionRole刚创建的access_dynamodb_from_lambda输入角色名完成创建。三、创建 AWS Lambda 函数进入 Lambda 控制台点击创建函数。填写基础信息绑定已创建的执行角色。点击创建函数。四、Lambda 写入 DynamoDB 数据项代码PutPUT 方法用于在 DynamoDB 表中创建数据项。python运行#参考文档源代码 import json import boto3 client boto3.client(dynamodb) def lambda_handler(event, context): PutItem client.put_item( TableNameCustomer, Item{ id: { S: 01 }, name: { S: XYZ } } ) response { statusCode: 200, body: json.dumps(PutItem) } return response/code #因为参考文档源代码只能一味的写入死数据这边做了一下修改仅供参考 import json import boto3 client boto3.client(dynamodb) def lambda_handler(event, context): body json.loads(event.get(body,{})) if isinstance(body,list): body body[0] id body.get(id) name body.get(name) PutItem client.put_item( TableNameCustomer, Item{ id: { S: id }, name: { S: name } } ) response { statusCode: 200, body: json.dumps(PutItem) } return responseS代表字符串类型N代表数字类型。Boto3 是 AWS Python SDK用于与 DynamoDB 等 AWS 服务交互。执行后DynamoDB 表中将新增一条id:01、name:XYZ的数据项。五、Lambda 读取 DynamoDB 数据项代码GetGET 方法按主键读取 DynamoDB 数据项。python运行import json import boto3 client boto3.client(dynamodb) def lambda_handler(event, context): GetItem client.get_item( TableNameCustomer, Key{ id: {S: 01} } ) response { statusCode: 200, body: json.dumps(GetItem) } return response #同写入同理 import json import boto3 client boto3.client(dynamodb) def lambda_handler(event, context): # 1. 从传入的事件中动态获取 id支持 API Gateway / 测试事件 request_body json.loads(event.get(body, {})) customer_id request_body.get(id, ) if not customer_id: return { statusCode: 400, body: json.dumps({error: 请传入 id 参数}) } # 2. 动态查询 DynamoDB GetItem client.get_item( TableNameCustomer, Key{ id: {S: customer_id} } ) # 3. 返回结果 response { statusCode: 200, body: json.dumps(GetItem) } return response执行结果示例json{ statusCode: 200, body: {\Item\: {\id\: {\S\: \01\}, \name\: {\S\: \XYZ\}}, ...} }六、总结Amazon DynamoDB 是全托管 NoSQL 数据库服务具备快速、稳定的性能与无缝扩展能力。本文讲解了创建 DynamoDB 表以及通过 AWS Lambda Boto3 与 DynamoDB 交互的核心方法。参考文档DynamoDB Table — Boto3 官方文档Dynamodb-Boto3 文档使用 Boto3 客户端操作 DynamoDB 表Python SDKBoto3DynamoDB 示例
http://www.rkmt.cn/news/1410072.html

相关文章:

  • 我的tmux日常使用
  • 智能驾驶的“眼睛”:车辆检测技术全景解读与实战指南
  • Cartographer无里程计建图实战:室内外效果对比与参数调优心得
  • 面试高频:Spring AI 统一聊天入口怎么设计,这次把路由和降级讲具体
  • LightRAG 入门指南:手把手教你用图增强 RAG 系统
  • 别再拍脑袋定样本量了!用Excel手把手教你搞定市场调研问卷的样本容量(附置信区间计算模板)
  • Hi3559A BT.1120接口调试避坑实录:从时钟配置到VI DEV绑定的完整流程
  • Java 做 AI 提取任务时,为什么我更建议先想好结构化输出
  • 把 ZipVoice 从 onnxruntime 移植到 MNN —— 7 个让人怀疑人生的细节
  • 第5篇_PUBLISH不是收到就转发_Broker怎么处理QoS_PacketId和多客户端fanout
  • Grok生成的pdf怎么导出 “AI导出鸭”不会搞算我输!
  • ChatGPT饮食建议生成器上线倒计时:最后48小时必须完成的3项合规改造(GDPR+《互联网诊疗监管办法》双达标清单)
  • 告别CH340!用ESP32-S3的USB CDC功能实现零成本串口打印与调试(ESP-IDF 4.4环境)
  • Zed Git Panel 新特性:在编辑器里直接看提交历史,真香
  • 可视挖耳勺多少像素够用?可视耳勺好用吗?可视耳勺使用方法
  • CH582低功耗调试踩坑记:从1.2mA降到5uA,我都改了哪些IO配置?
  • 从玩具车到无人机:用OpenCV C++双目测距项目实战智能避障(附完整源码)
  • 从Wi-Fi信号到手机充电:用Python和Matplotlib可视化麦克斯韦方程组(附代码)
  • 别再只用disp了!Matlab里fprintf格式化输出实战,从%f到%f\n的保姆级指南
  • OpenClaw用户如何配置Taotoken作为其AI供应商并快速开始
  • 保姆级教程:用Cartographer融合思岚S1雷达与Tobotics IMU,解决纯激光建图漂移问题
  • 第 3 篇:把 MCP 接入 AI,以及生态里有什么
  • 空间滞后误差模型SAC怎么做:SPSSAU操作与结果解读
  • 【ChatGPT】电子束光刻机EBL 深度拆解、爆炸图10张、信息图10张、下位机C++、上位机C#、PLC代码框架
  • Louvain算法实战:用NetworkX和Python分析你的社交网络好友圈子
  • 如何0基础搭建Shopify分销系统
  • 别再只盯着TX时钟了!手把手教你用FPGA的RXOUTCLK(线路恢复时钟)驱动你的接收端
  • 【MATLAB】二自由度机械臂参数辨识与自适应滑模控制仿真研究
  • QT6构建使用OpenCV(MinGW版)
  • ProxySQL选型实战:从手写读写分离到中间件的踩坑全记录