在開始之前,請確保:
主要優勢:
依照第九天的方式建立好 Lambda 函數,基礎設定完成後進入下一步。
進入 IAM 設定

檢查現有權限

新增 Bedrock 權限
bedrock

⚠️安全原則提醒最小權限原則
只給予必要的操作權限,避免過度授權造成安全風險!
回到 Lambda 函數,開始撰寫 Bedrock 串接邏輯:
import json
import boto3
from botocore.exceptions import ClientError
def lambda_handler(event, context):
    """
    AWS Lambda 函數:使用 Bedrock 調用 DeepSeek-V3 模型
    """
    
    # 初始化 Bedrock Runtime 客戶端
    bedrock_runtime = boto3.client(
        service_name='bedrock-runtime',
        region_name='us-west-2'  # 根據區域調整
    )
    
    # DeepSeek-V3 模型 ID
    model_id = "deepseek.v3-v1:0"
    
    try:
        # 從 event 中獲取用戶輸入
        user_message = event.get('message', 'Hello, how are you?')
        
        # 構建請求負載
        request_body = {
            "messages": [
                {
                    "role": "user",
                    "content": user_message
                }
            ],
            "max_tokens": 1000,
            "temperature": 0.7,
            "top_p": 0.9
        }
        
        # 調用 Bedrock
        response = bedrock_runtime.invoke_model(
            modelId=model_id,
            contentType='application/json',
            accept='application/json',
            body=json.dumps(request_body)
        )
        
        # 解析回應
        response_body = json.loads(response['body'].read())
        generated_text = response_body['choices'][0]['message']['content']
        
        # 返回成功回應
        return {
            'statusCode': 200,
            'body': json.dumps({
                'message': generated_text,
                'success': True
            }, ensure_ascii=False)
        }
        
    except ClientError as e:
        return {
            'statusCode': 400,
            'body': json.dumps({
                'error': f"Bedrock Error: {e.response['Error']['Message']}",
                'success': False
            })
        }
        
    except Exception as e:
        return {
            'statusCode': 500,
            'body': json.dumps({
                'error': f"Error: {str(e)}",
                'success': False
            })
        }
完成程式碼撰寫後,點擊 Deploy 按鈕部署函數。

⚠️ 重要設定:
為什麼要調整?
Lambda 預設 3 秒逾時,但 AI 模型回應通常需要更長時間,避免函數執行中斷。

成功指標:

這次的「串串香」沒有問題! 🍢
成功建立了: