Mục tiêu: tạo được một web app đơn giản (có thể không cần frontend thì càng tốt), có vài endpoint có thể chạy được. Làm starter cho bất cứ project nào sau này!
<aside> ⚠️
Hãy cẩn thận, khi bạn create quá nhiều (tầm 5 cái) app services thì sẽ có lỗi 429 “App Service Plan Create operation is throttled for subscription xxx. Please contact support if issue persists.”. Khi ấy bạn phải đợi 48h mới có thể tạo cái mới (trong cùng region)
Solution là có thể tạo 1 subscription mới.
</aside>
Source code: https://github.com/dinhanhthi/learn-azure-fastapi
WEBSITE_PORT
, ref.<aside> ☝️
Nhược điểm của cái này là nếu cài 1 dependencies thêm thì làm khá phức tạp (ví dụ muốn cài ffmpeg
trong container của App Service. Chỉ có cách là dùng Azure Function (1 service khác, có plan) → Trong trường hợp đó thì nên dùng Docker container!
</aside>
⚠️ Don’t install VSCode Azure extension, otherwise you loose your RAM!
Main tutorial: Quickstart: Deploy a Python (Django, Flask, or FastAPI) web app to Azure - Azure App Service | Microsoft Learn
Rename folder cho dễ làm việc
mv msdocs-python-fastapi-webapp-quickstart fastapi-quickstart
Có chút thay đổi chỗ tạo python env
conda create -n fastapi-quickstart python=3.11
conda activate fastapi-quickstart
Thử deploy app dùng Azure CLI
az webapp up
sẽ tự động tạo hết các resource group, app service plan, webapp service luôn!!!
$RESOURCE_GROUP_NAME
và $APP_SERVICE_NAME
thì xem ở Overview.🐞 Error: didn't respond to HTTP pings on port: 8000, failing site start. See container logs for debugging. ← chưa có up cái codes lên!!!!
🎯 Mục tiêu: Auto CD/CI từ Github (trong cái link tut không có option này).
Configure continuous deployment - Azure App Service | Microsoft Learn ← Nói chung là bên trong có sẵn, chỉ cần kết nối với Github + cấp quyền cho nó là nó tự động deploy và kết nối với github!
Nếu làm việc với admin/boss thì nhớ nói nó làm cái này!