Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym szybkim wprowadzeniu wdrożysz aplikację internetową w języku Python (Django, Flask lub FastAPI) do Azure App Service. Azure App Service to w pełni zarządzana usługa hostingu stron internetowych, która obsługuje aplikacje w języku Python hostowane w środowisku serwera z systemem Linux.
Aby ukończyć ten szybki przewodnik, potrzebujesz:
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Zainstalowany lokalnie język Python w wersji 3.14 lub nowszej.
Uwaga
Ten artykuł zawiera bieżące instrukcje dotyczące wdrażania aplikacji internetowej w języku Python przy użyciu usługi aplikacja systemu Azure Service. Język Python w systemie Windows nie jest już obsługiwany.
Przeskocz na koniec
Przykładową aplikację można szybko wdrożyć w tym samouczku przy użyciu interfejsu wiersza polecenia dla deweloperów platformy Azure i zobaczyć, jak działa na platformie Azure. Wystarczy uruchomić następujące polecenia w usłudze Azure Cloud Shelli postępować zgodnie z monitem:
mkdir flask-quickstart
cd flask-quickstart
azd init --template https://github.com/Azure-Samples/msdocs-python-flask-webapp-quickstart
azd up
Aby usunąć zasoby:
azd down
Aplikacja przykładowa
Ten przewodnik szybkiego startu można ukończyć przy użyciu Flask, Django lub FastAPI. Udostępniono przykładową aplikację w każdym frameworku, aby pomóc Ci śledzić czynności opisane w tym przewodniku szybkiego startu. Pobierz lub sklonuj przykładową aplikację na lokalną stację roboczą.
git clone https://github.com/Azure-Samples/msdocs-python-flask-webapp-quickstart
Aby uruchomić aplikację lokalnie:
Przejdź do folderu aplikacji:
cd msdocs-python-flask-webapp-quickstartUtwórz środowisko wirtualne dla aplikacji:
py -m venv .venv .venv\scripts\activateZainstaluj zależności:
pip install -r requirements.txtUruchom aplikację:
flask runPrzejdź do przykładowej aplikacji w
http://localhost:5000przeglądarce internetowej.
Masz problemy? Daj nam znać.
Tworzenie aplikacji internetowej na platformie Azure
Aby hostować aplikację na platformie Azure, musisz utworzyć aplikację internetową w usłudze Azure App Service. Aplikację internetową można utworzyć przy użyciu interfejsu wiersza polecenia platformy Azure, programu VS Code, pakietu rozszerzenia Azure Tools lub witryny Azure Portal.
Polecenia Azure CLI można uruchamiać na komputerze z zainstalowanym Azure CLI.
Stwórz zasoby Azure, a następnie wdroż aplikację, używając oddzielnych poleceń Azure CLI.
W razie potrzeby zaloguj się do platformy Azure przy użyciu polecenia az login.
az login
Zastąp <app-name> globalnie unikalną nazwą. Stwórz grupę zasobów i plan App Service, a następnie stwórz aplikację webową za pomocą az webapp create.
az group create --name myResourceGroup --location eastus
az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku P0v3 --is-linux
az webapp create --name <app-name> --resource-group myResourceGroup --plan myAppServicePlan --runtime "PYTHON:3.14"
az webapp config appsettings set --name <app-name> --resource-group myResourceGroup --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
- Użyj parametru
--runtime, aby określić wersję Python, na której działa twoja aplikacja. Ten przykład wykorzystuje Python 3.14. Aby wypisać obsługiwane runtime'y Python, użyjaz webapp list-runtimes --os-type linux --runtime python --output table. - Użyj parametru,
--skuaby zdefiniować rozmiar (CPU i pamięć) oraz koszt planu App Service. Ten przykład wykorzystuje plan usług P0v3 (Premium v3), który wiąże się z kosztem subskrypcji Azure. Aby uzyskać pełną listę planów usługi App Service, zobacz Cennik usługi App Service. - Zamień
eastusna preferowany region. Aby wyświetlić dostępne regiony, uruchomaz account list-locationsz--output table. - Ustawienie
SCM_DO_BUILD_DURING_DEPLOYMENTumożliwia budowę Oryxa, w tym instalację zależności w requirements.txt, gdy wdrażasz archiwum źródłowe.
Utwórz plik ZIP z plikami aplikacji, w tym requirements.txt, w katalogu głównym archiwum. Wyklucz lokalne pliki takie jak .venv, .git i .env. Instrukcje specyficzne dla platformy znajdziesz na karcie Wdrażanie przy użyciu pliku ZIP w sekcji Utworzenie pliku ZIP swojej aplikacji. Następnie wdroż archiwum za pomocą polecenia az webapp deploy:
az webapp deploy --name <app-name> --resource-group myResourceGroup --src-path <zip-file-path> --type zip
Wdrożenie może zająć kilka minut. Przejdź do https://<app-name>.azurewebsites.net, aby zobaczyć swoją aplikację. Aby streamować logi, włącz je, uruchamiając az webapp log config --name <app-name> --resource-group myResourceGroup --docker-container-logging filesystem, a następnie uruchom az webapp log tail --name <app-name> --resource-group myResourceGroup.
Masz problemy? Daj nam znać.
Wdrażanie kodu aplikacji na platformie Azure
Azure App Service obsługuje wiele metod wdrażania kodu aplikacji do Azure, w tym GitHub Actions oraz wszystkie główne narzędzia CI/CD. W tym artykule opisano sposób wdrażania kodu z lokalnej stacji roboczej na platformie Azure.
- Wdrażanie przy użyciu interfejsu wiersza polecenia platformy Azure
- Wdrażanie przy użyciu programu VS Code
- Wdrażanie przy użyciu pliku ZIP
Polecenia Azure CLI w poprzednim kroku utworzyły zasoby i wdrożyły Twoją aplikację. Możesz przejść do kolejnego kroku.
Masz problemy? Zapoznaj się najpierw z przewodnikiem rozwiązywania problemów. Jeśli to nie pomoże, daj nam znać.
Konfigurowanie skryptu uruchamiania
Na podstawie obecności niektórych plików we wdrożeniu usługa App Service automatycznie wykrywa, czy aplikacja jest aplikacją Django lub Flask, i wykonuje domyślne kroki uruchamiania aplikacji. W przypadku aplikacji opartych na innych frameworkach webowych, takich jak FastAPI, możesz potrzebować skonfigurować skrypt startowy App Service, aby uruchomić Twoją aplikację. W przeciwnym razie App Service uruchamia domyślną aplikację tylko do odczytu, znajdującą się w folderze opt/defaultsite .
- Python 3.14 i nowsze: App Service automatycznie wykrywa i uruchamia aplikacje FastAPI. Nie jest wymagane żadne polecenie startowe.
- Python 3.13 i wcześniejsze: Musisz skonfigurować własne polecenie startowe.
Aby dowiedzieć się więcej na temat sposobu uruchamiania aplikacji w języku Python przez usługę App Service oraz sposobu konfigurowania i dostosowywania jej zachowania za pomocą aplikacji, zobacz Konfigurowanie aplikacji języka Python dla systemu Linux dla usługi aplikacja systemu Azure Service.
Usługa App Service automatycznie wykrywa obecność aplikacji Flask. Nie jest potrzebna żadna dodatkowa konfiguracja dla tego przewodnika szybkiego startu.
Przechodzenie do aplikacji
Przejdź do wdrożonej aplikacji w przeglądarce internetowej. Możesz skorzystać z linku w witrynie Azure Portal. Przejdź do strony Przegląd i wybierz pozycję Domena domyślna. Jeśli zostanie wyświetlona domyślna strona aplikacji, zaczekaj minutę i odśwież przeglądarkę.
Przykładowy kod w języku Python uruchamia kontener systemu Linux w usłudze App Service przy użyciu wbudowanego obrazu.
Gratulacje! Wdrożyłeś swoją aplikację Python do usługi App Service.
Masz problemy? Zapoznaj się najpierw z przewodnikiem rozwiązywania problemów. Jeśli to nie pomoże, daj nam znać.
Dzienniki strumieniowe
Usługa App Service w Azure przechwytuje wszystkie dane wyjściowe komunikatów do konsoli, aby ułatwić diagnozowanie problemów z aplikacją. Przykładowe aplikacje zawierają print() instrukcje, aby zademonstrować tę funkcję.
@app.route('/')
def index():
print('Request for index page received')
return render_template('index.html')
@app.route('/favicon.ico')
def favicon():
return send_from_directory(os.path.join(app.root_path, 'static'),
'favicon.ico', mimetype='image/vnd.microsoft.icon')
@app.route('/hello', methods=['POST'])
def hello():
name = request.form.get('name')
if name:
print('Request for hello page received with name=%s' % name)
return render_template('hello.html', name = name)
else:
print('Request for hello page received with no name or blank name -- redirecting')
return redirect(url_for('index'))
Zawartość dzienników diagnostycznych usługi App Service można przejrzeć przy użyciu interfejsu wiersza polecenia platformy Azure, programu VS Code lub witryny Azure Portal.
Najpierw należy skonfigurować Azure App Service, aby wyprowadzać dzienniki do systemu plików App Service przy użyciu polecenia az webapp log config.
az webapp log config \
--web-server-logging filesystem \
--name $APP_SERVICE_NAME \
--resource-group $RESOURCE_GROUP_NAME
Aby streamować dzienniki, użyj polecenia az webapp log tail.
az webapp log tail \
--name $APP_SERVICE_NAME \
--resource-group $RESOURCE_GROUP_NAME
Odśwież stronę główną w aplikacji lub spróbuj wykonać inne żądania, aby spowodować wygenerowanie komunikatów dziennika. Dane wyjściowe powinny wyglądać podobnie do poniższych.
Starting Live Log Stream ---
2021-12-23T02:15:52.740703322Z Request for index page received
2021-12-23T02:15:52.740740222Z 169.254.130.1 - - [23/Dec/2021:02:15:52 +0000] "GET / HTTP/1.1" 200 1360 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/hello" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:15:52.841043070Z 169.254.130.1 - - [23/Dec/2021:02:15:52 +0000] "GET /static/bootstrap/css/bootstrap.min.css HTTP/1.1" 200 0 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:15:52.884541951Z 169.254.130.1 - - [23/Dec/2021:02:15:52 +0000] "GET /static/images/azure-icon.svg HTTP/1.1" 200 0 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:15:53.043211176Z 169.254.130.1 - - [23/Dec/2021:02:15:53 +0000] "GET /favicon.ico HTTP/1.1" 404 232 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:16:01.304306845Z Request for hello page received with name=David
2021-12-23T02:16:01.304335945Z 169.254.130.1 - - [23/Dec/2021:02:16:01 +0000] "POST /hello HTTP/1.1" 200 695 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:16:01.398399251Z 169.254.130.1 - - [23/Dec/2021:02:16:01 +0000] "GET /static/bootstrap/css/bootstrap.min.css HTTP/1.1" 304 0 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/hello" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:16:01.430740060Z 169.254.130.1 - - [23/Dec/2021:02:16:01 +0000] "GET /static/images/azure-icon.svg HTTP/1.1" 304 0 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/hello" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
Masz problemy? Zapoznaj się najpierw z przewodnikiem rozwiązywania problemów. Jeśli to nie pomoże, daj nam znać.
Czyszczenie zasobów
Po zakończeniu pracy z przykładową aplikacją możesz usunąć wszystkie zasoby aplikacji z platformy Azure. Usunięcie grupy zasobów gwarantuje, że nie będą naliczane dodatkowe opłaty i pomaga utrzymać porządek w subskrypcji Azure. Usunięcie grupy zasobów spowoduje również usunięcie wszystkich zasobów w grupie zasobów i jest najszybszym sposobem usunięcia wszystkich zasobów platformy Azure dla aplikacji.
Usuń grupę zasobów przy użyciu polecenia az group delete .
az group delete \
--name msdocs-python-webapp-quickstart \
--no-wait
--no-wait Argument umożliwia zwracanie polecenia przed ukończeniem operacji.
Masz problemy? Daj nam znać.