iT邦幫忙

2025 iThome 鐵人賽

DAY 17
0

核心功能實作

  • Bedrock API 調用
  • DynamoDB 數據存儲
  • 錯誤處理機制
  • 日誌輸出

數據流設計

用戶輸入 → Bedrock AI 處理 → 獲得回應 → 存儲到 DynamoDB → 返回結果

以下為lambda 存入Dynamodb核心程式碼

from datetime import datetime
import uuid
    
#
dynamodb = boto3.resource('dynamodb', region_name='ap-east-2')
table = dynamodb.Table('chat')

# 存儲到 DynamoDB(根據你的表結構調整欄位名稱)
  try:
      table.put_item(
          Item={
              'id': record_id,  # 假設主鍵名稱是 'id'
              'timestamp': timestamp,
              'message': user_message,  # 用戶輸入
              'response': generated_text,  # AI 回應
              'model': model_id,
              'created_at': timestamp,
              # 如果你的表有其他必填欄位,請在這裡加入
          }
      )
      print(f"Successfully stored record {record_id} to DynamoDB")
      
  except Exception as db_error:
      print(f"DynamoDB storage error: {str(db_error)}")
      # 即使數據庫存儲失敗,仍然返回 AI 回應

配置 IAM 權限(可查看第13天如何配置)

  • 選擇 AmazonDynamoDBFullAccess_v2
  • 添加 Bedrock 調用權限
  • 確保 Lambda 基本執行權限

https://ithelp.ithome.com.tw/upload/images/20251001/20106094cIX17hV5Rt.png
Lambda 函數測試

  • 使用提供的測試事件 JSON
  • 檢查執行日誌
  • 確認返回結果

https://ithelp.ithome.com.tw/upload/images/20251001/20106094mzCYRIgUbY.png
DynamoDB 數據驗證

  • 導航到 DynamoDB 控制台
  • 選擇 chat
  • 檢查 "瀏覽表項目"
  • 確認數據正確寫入

https://ithelp.ithome.com.tw/upload/images/20251001/20106094jLTdKlOqnV.png
最後一定要來個API測試總結

https://ithelp.ithome.com.tw/upload/images/20251001/20106094wSF4QSWKpD.png

https://ithelp.ithome.com.tw/upload/images/20251001/20106094odkjZkCG6Z.png
🎯 核心功能實現

  • ✅ Lambda 函數成功整合 Amazon Bedrock DeepSeek-V3 模型
  • ✅ 實現對話記錄的持久化存儲(DynamoDB)
  • ✅ 完整的錯誤處理和日誌監控機制
  • ✅ 彈性的權限管理和安全控制

上一篇
Day 16 DynamoDB: 創建及基本操作
下一篇
Day 18 前端升級:打造 AI 問答介面
系列文
來都來了,那就做一個AWS從0到100的微服務AI小平台!22
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言