Recap Series
- 第 02 場:使用 Terraform 實現 AWS 合規
- 第 03 場:從新手到開發者:一段精彩的 AWS 雲端旅程
- 第 04 場:以團隊為優先:使用 Laravel 與 Bref 進行無伺服器工程
- 第 05 場:活動開幕:AWS Community Day Hong Kong 2025
- 第 06 場:Agent-to-Agent:在 AWS 上打造可互通的 AI
- 第 07 場:運用另一種遙測資料,透過 AI Agent 加速改善
- 第 08 場:告別 Vibe Coding:運用 Kiro 實踐規格驅動開發(Spec-Driven Development)
- 第 09 場:運用 MCP 與 AI 代理進行自動化測試
- 第 10 場:以 ML 驅動的方法實現電信安全現代化
- 第 11 場:重新思考 GenAI Agent:RAG 與 MCP
- 第 12 場:運用 TAK 與 AWS 進行災害及緊急應變
- 第 13 場:從測試角度重新思考 Serverless 應用程式工作流程
- 第 14 場:運用實務 AWS FinOps 邁向雲端成功
錄影
https://www.youtube.com/watch?v=Rs0yu_fEgFQ
個人背景
- 分享他的 AWS 歷程:
- 2023 年起步,先前對雲端運算一無所知。
- 加入 AWS User Group Philippines,並成為 AWS Creatives 團隊的一員。
- 使用 AWS 部署服務、執行程式碼及建置專案。
- 在 6 個月內成為雲端顧問、AWS User Group Philippines 社群負責人、AWS Community Builder,並取得 AWS Certified Cloud Practitioner 認證。
AWS User Group Philippines
- 說明他擔任聚會負責人的角色:
- 每月免費舉辦研討會與網路研討會,對象包括學生、轉職者及年輕專業人士。
- 舉辦各種活動,促進學習及社群參與。
成為 AWS Community Builder
- 分享個人歷程:
- 原先從事 UI/UX 設計、沒有技術背景,後來開始接觸 AWS。
- 他透過社群資源學習 AWS。
- 在 6 個月內撰寫一篇介紹如何使用 AWS 建立不同應用程式的文章,並申請成為 AWS Community Builder。
資源與合作
- [ 1 ] 鼓勵與會者提供意見並參與合作:
- 邀請與會者填寫意見回饋表。
- 提供 Tutorials Dojo AWS 模擬考的 QR Code。
- [ 2 ] 提供免費模擬考資源:
- 宣布與會者將獲得 Tutorials Dojo 免費模擬考的兌換券。
- 期望協助與會者準備 AWS Cloud Practitioner 或 SAA 考試。
結論
- 希望與會者認為這場分享有所助益,並善用所提供的資源。
- 鼓勵大家持續參與 AWS 社群並相互合作。
使用 AWS Lambda 與 CORS 建立 Python 程式碼遊樂場
目標
- 建立 Python 程式碼遊樂場,讓使用者透過網頁介面執行 Python 程式碼。
架構
- 前端:在 Amazon EC2 上執行的網站。
- 後端:用來執行 Python 程式碼的 AWS Lambda 函式。
建立 Python 程式碼遊樂場的步驟
[ 1 ] 建立 AWS Lambda 函式
- 前往 AWS Management Console。
- 進入 Lambda,然後按一下「Create function」。
- 選擇「Author from scratch」。
- 為函式命名(例如 UG_HK_PythonCodePlayground)。
- 選擇 Python 作為 Runtime。
- 建立具備基本 Lambda 權限的新 Execution Role。
[ 2 ] 設定支援 CORS 的 Function URL
- 在 Lambda 函式設定中前往 Function URL。
- 啟用 Function URL。
- 新增下列標頭以設定 CORS:
- Expose Headers:Content-Type
- Allow Headers:Content-Type
- 也可視需要設定 Max Age,供快取使用。
[ 3 ] 撰寫並部署 Lambda 函式程式碼
- 在 Lambda 函式編輯器中撰寫 Python 程式碼。
- 儲存並部署函式。
[ 4 ] 建立前端(HTML 檔案)
- 開啟 Visual Studio Code。
- 建立前端所需的 HTML 檔案。
- 從 Lambda 設定中複製 Function URL。
- 在 HTML 檔案中使用 Function URL,向 Lambda 函式擷取資料並加以執行。
[ 5 ] 測試設定
- 確認 CORS 設定正確,讓前端能與 Lambda 函式通訊。
- 執行測試,透過網頁介面執行 Python 程式碼。
重點
- CORS 設定:讓前端能與 Lambda 函式通訊的必要設定。
- Function URL:為 Lambda 函式提供可直接存取的 HTTP(S) 端點。
- 測試:確認 Python 程式碼能正確執行,且前端能取得執行結果。
結論
- Python 程式碼遊樂場讓使用者能透過網頁介面執行 Python 程式碼,後端由 AWS Lambda 負責執行,前端則使用 Amazon EC2。
疑難排解步驟
[ 1 ] HTTP 錯誤
- 執行程式碼時遇到 HTTP 錯誤。
- 檢查瀏覽器開發人員工具中的 Network 分頁以找出問題。
[ 2 ] CORS 設定錯誤
- 發現
Access-Control-Allow-Origin
標頭被設為 false
- 確認 Allow Origin 標頭已正確設定,以修正 CORS 設定。
[ 3 ] 驗證 CORS 設定
- 使用瀏覽器開發人員工具檢查網路請求。
- 觀察到兩種請求:
- Preflight Request:瀏覽器向伺服器確認是否允許跨來源請求。
- 實際請求(PATCH):Preflight Request 確認 CORS 設定正確後,從伺服器擷取資料。
[ 4 ] 最終測試
- 修正 CORS 設定後,再次執行程式碼。
- 確認 Python 程式碼已成功執行,且前端取得了執行結果。
結論
- Python 程式碼遊樂場現在能讓使用者透過網頁介面執行 Python 程式碼,後端由 AWS Lambda 負責執行,前端則使用 Amazon EC2。
- 正確設定 CORS,是前端能否與 Lambda 函式通訊的關鍵。
Python 程式碼遊樂場回顧
- 示範如何透過 AWS Lambda 與 Function URL 建立 Python 程式碼遊樂場。
- 設定 CORS,讓不同網站都能存取 Lambda 函式,且不會發生跨來源問題。
- 確保瀏覽器允許不同來源之間必要的請求與回應。
- 強調 CORS 設定對 Lambda 資源與外部網站安全通訊的重要性。
