iT邦幫忙

2025 iThome 鐵人賽

DAY 12
0

前言

本來想說功能已經開發好,API Gateway 也都串接了,照理說,直接呼叫下列指令,應該要成功註冊新帳號呢?! 居然失敗了⋯⋯

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{"username":"帳號","password":"密碼"}' \
  https://iwlw3i3ys4.execute-api.ap-northeast-1.amazonaws.com/prod/register

結果

{"message":"Internal Server Error"}%

除錯流程

  • 首先是運行 Lambda Function 的 Role,需要給 DynamoDB 的寫入權限,修改 Role 配置的 Policy。
    https://ithelp.ithome.com.tw/upload/images/20250922/20130149I8jv9qXwOj.png
  • 這個可以看出來,API 沒有成功,所以可以直接運行 Lambda Function 並手動給參數。
    https://ithelp.ithome.com.tw/upload/images/20250922/20130149M5GitE0RB6.png
  • 看到了,我們採用的 Python 3.13 裡面是沒有 bcrypt
    https://ithelp.ithome.com.tw/upload/images/20250923/20130149XCa8gte7iP.png

Lambda Layer

  1. 找一台「Linux」
  2. 確認 Python 版本是 3.13
  3. 建立目錄並安裝 bcrypt
    mkdir lambda-register
    cd lambda-register
    
    pip3 install bcrypt -t .
    
  4. 打包成 zip
    zip -r ../lambda-register.zip .
    
  5. 上傳
    aws lambda publish-layer-version \
      --layer-name bcrypt-layer \
      --zip-file fileb://lambda-register.zip \
      --compatible-runtimes python3.13
    

上一篇
【Day 11】 保護系統只讓特定人士使用,實作註冊、登入與驗證功能
系列文
無法成為片師也想拍 Vlog?!個人影音小工具的誕生!12
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言