跳至主要內容

月份: 2022 年 8 月

Lambda Timeout 可能肇因於 RDS Proxy Session Pinning

事情是這樣的:

前陣子工作上開發的 API 上線後,在當天的數千次 request 中,發生 5 次不明原因的錯誤(從 CloudWatch Dashboard 看到 API Gateway 的 5XX Error 出現大於零的數字)。

後來為了重現錯誤,用 K6 做了 soak test。在 30 分鐘內也的確出現數次錯誤。
不過 API Gateway 在 response payload 之中只給出「Internal Server Error」的訊息,為了進一步了解錯誤的原因,要參考 $context Variables for access logging only 章節在 Access Log 之中加入額外的資訊。比如說:

  • $context.authorize.error
  • $context.authorizer.error
  • $context.authenticate.error
  • $context.integration.error
  • $context.waf.error

MySQL「ci」字集做字串比對會無視大小寫

在我踩到坑、並找到解法之後,才發現這個很基礎
但踩到了就踩到了,還是紀錄一下🙈

根據 khiav223577 大大的「MySQL 編碼挑選與差異比較」分享,
一般常使用的「ci」字集,其意思是 case-insensitive,也就是大小寫不敏感。
這種設定相當適合用在文章網站、新聞網站的搜尋功能,因為無論使用者輸入大寫的「APPLE」或小寫的「apple」,都能找到所有帶有「Apple」關鍵字的資料。
但當你需要做如 ID 比對、token 比對、短網址代碼比對,可能都需要改成 case-sensitive 字集,
或者在 WHERE 條件中使用 binary 達成目的。

由 Compete Themes 設計的 Author 佈景主題