Uwaga
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.9 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-quickstart
Utwórz środowisko wirtualne dla aplikacji:
py -m venv .venv .venv\scripts\activate
Zainstaluj zależności:
pip install -r requirements.txt
Uruchom aplikację:
flask run
Przejdź do przykładowej aplikacji w
http://localhost:5000
przeglą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.
Interfejs wiersza polecenia platformy Azure zawiera polecenie az webapp up
, które spowoduje utworzenie niezbędnych zasobów i wdrożenie aplikacji w jednym kroku.
W razie potrzeby zaloguj się do platformy Azure przy użyciu polecenia az login.
az login
Utwórz aplikację internetową i inne zasoby, a następnie wdróż kod na platformie Azure przy użyciu polecenia az webapp up.
az webapp up --runtime PYTHON:3.13 --sku B1 --logs
- Parametr
--runtime
określa, którą wersję języka Python używa Twoja aplikacja. W tym przykładzie użyto języka Python 3.13. Aby wyświetlić listę wszystkich dostępnych środowisk uruchomieniowych, użyj poleceniaaz webapp list-runtimes --os linux --output table
. - Parametr
--sku
definiuje rozmiar (procesor, pamięć) i koszt planu usługi App Service. W tym przykładzie użyto planu usługi B1 (wersja podstawowa), który spowoduje niewielkie koszty w ramach subskrypcji platformy Azure. Aby uzyskać pełną listę planów usługi App Service, wyświetl stronę cennika usługi App Service. - Flaga
--logs
konfiguruje domyślne rejestrowanie wymagane do włączenia wyświetlania strumienia dziennika natychmiast po uruchomieniu aplikacji internetowej. - Opcjonalnie możesz określić nazwę z argumentem
--name <app-name>
. Jeśli go nie podasz, zostanie automatycznie wygenerowana nazwa. - Opcjonalnie możesz dołączyć argument
--location <location-name>
, w którym<location_name>
jest dostępny region platformy Azure. Listę dozwolonych regionów dla konta platformy Azure można pobrać, uruchamiającaz appservice list-locations
polecenie .
Wykonanie polecenia może potrwać kilka minut. Gdy polecenie jest uruchomione, udostępnia komunikaty o tworzeniu grupy zasobów, planie usługi App Service i zasobie aplikacji, konfigurowaniu rejestrowania i wdrażaniu pliku ZIP. Następnie zwraca komunikat zawierający adres URL aplikacji, który jest adresem URL aplikacji na platformie Azure.
The webapp '<app-name>' doesn't exist Creating Resource group '<group-name>' ... Resource group creation complete Creating AppServicePlan '<app-service-plan-name>' ... Creating webapp '<app-name>' ... Configuring default logging for the app, if not already enabled Creating zip with contents of dir /home/cephas/myExpressApp ... Getting scm site credentials for zip deployment Starting zip deployment. This operation can take a while to complete ... Deployment endpoint responded with status code 202 You can launch the app at <URL> { "URL": "<URL>", "appserviceplan": "<app-service-plan-name>", "location": "centralus", "name": "<app-name>", "os": "<os-type>", "resourcegroup": "<group-name>", "runtime_version": "python|3.13", "runtime_version_detected": "0.0", "sku": "FREE", "src_path": "<your-folder-location>" }
Uwaga
Polecenie az webapp up
wykonuje następujące akcje:
Utwórz domyślną grupę zasobów.
Utwórz domyślny plan usługi App Service.
Utwórz aplikację o określonej nazwie.
Rozpakuj i wdroż wszystkie pliki z bieżącego katalogu roboczego przy włączonej automatyzacji kompilacji.
Buforuj parametry lokalnie w pliku .azure/config, aby nie trzeba było ich ponownie określać podczas późniejszego wdrażania przy użyciu polecenia
az webapp up
lub innych poleceńaz webapp
z folderu projektu. Buforowane wartości są domyślnie używane automatycznie.
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
az webapp up
Ponieważ polecenie utworzyło niezbędne zasoby i wdrożyło aplikację w jednym kroku, możesz przejść do następnego 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 strukturach internetowych, takich jak FastAPI, należy skonfigurować skrypt uruchamiania dla usługi App Service w celu uruchamiania aplikacji; W przeciwnym razie usługa App Service uruchamia domyślną aplikację tylko do odczytu znajdującą się w folderze opt/defaultsite .
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ć.