Краткое руководство. Создание приложения Python в Службе приложений Azure в LinuxQuickstart: Create a Python app in Azure App Service on Linux

В этом кратком руководстве описывается процесс развертывания веб-приложения Python для службы приложений на платформе Linux, высокомасштабируемой службы веб-размещения Azure с самостоятельной установкой исправлений.In this quickstart, you deploy a Python web app to App Service on Linux, Azure's highly scalable, self-patching web hosting service. Вы используете локальный интерфейс командной строки Azure (CLI) на компьютере Mac, Linux или Windows.You use the local Azure command-line interface (CLI) on a Mac, Linux, or Windows computer. Веб-приложение, которое вы настраиваете, использует бесплатный уровень Службы приложений, поэтому в процессе выполнения этого руководства затраты на ресурсы Azure не изменяются.The web app you configure uses a free App Service tier, so you incur no costs in the course of this article.

Если вы предпочитаете развертывать приложения с помощью интегрированной среды разработки, см. статью Развертывание приложений Python в службе приложений из Visual Studio Code.If you prefer to deploy apps through an IDE, see Deploy Python apps to App Service from Visual Studio Code.

Настройка начальной средыSet up your initial environment

Перед началом работы убедитесь, что у вас есть такие компоненты.Before you begin, you must have the following:

  1. Подготовьте учетную запись Azure с активной подпиской.Have an Azure account with an active subscription. Создайте учетную запись бесплатно.Create an account for free.
  2. Установите Python 3.6 или более поздней версии.Install Python 3.6 or higher.
  3. Установите Azure CLI версии 2.0.80 или более поздней для выполнения команд в любой оболочке для подготовки и настройки ресурсов Azure.Install the Azure CLI 2.0.80 or higher, with which you run commands in any shell to provision and configure Azure resources.

Откройте окно терминала и проверьте, что используется Python 3.6 или более поздней версии:Open a terminal window and check your Python version is 3.6 or higher:

python3 --version

Убедитесь, что у вас есть Azure CLI версии 2.0.80 или выше.Check that your Azure CLI version is 2.0.80 or higher:

az --version

Теперь войдите в Azure с помощью CLI.Then sign in to Azure through the CLI:

az login

Эта команда открывает окно браузера для ввода учетных данных.This command opens a browser to gather your credentials. После выполнения команда отображает выходные данные JSON с информацией о подписках.When the command finishes, it shows JSON output containing information about your subscriptions.

Войдя, вы сможете выполнять в Azure CLI команды Azure для работы с ресурсами в подписке.Once signed in, you can run Azure commands with the Azure CLI to work with resources in your subscription.

Клонирования репозиторияClone the sample

Выполните указанную ниже команду, чтобы клонировать репозиторий с примером.Clone the sample repository with the following command. (Установите Git, если у вас его еще нет.)(Install git if you don't have git already.)

git clone https://github.com/Azure-Samples/python-docs-hello-world

Затем перейдите в эту папку:Then go into that folder:

cd python-docs-hello-world

Пример кода содержит файл application.py, который сообщает Службе приложений, что код содержит приложение Flask.The sample code contains an application.py file, which tells App Service that the code contains a Flask app. Дополнительные сведения см. в статье Настройка приложений Python для Службы приложений Azure под управлением Linux.For more information, see Container startup process and customizations.

Запуск примераRun the sample

Для начала создайте виртуальную среду и установите необходимые зависимости.First create a virtual environment and install dependencies:

python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Затем задайте для переменной среды FLASK_APP модуль записи приложения и запустите сервер разработки Flask:Then set the FLASK_APP environment variable to the app's entry module and run the Flask development server:

export FLASK_APP=application.py
flask run

Откройте веб-браузер и перейдите к примеру приложения по адресу http://localhost:5000/.Open a web browser, and go to the sample app at http://localhost:5000/. Приложение отображает сообщение Hello World! .The app displays the message Hello World!.

Локальный запуск примера приложения Python

В окне терминала нажмите клавиши CTRL+C, чтобы выйти из сервера разработки Flask:In your terminal window, press Ctrl+C to exit the Flask development server.

Развертывание примераDeploy the sample

Разверните код в локальной папке (python-docs-hello-world) с помощью команды az webapp up.Deploy the code in your local folder (python-docs-hello-world) using the az webapp up command:

az webapp up --sku F1 -n <app-name>
  • Если команда az не распознана, убедитесь, что установлен Azure CLI, как описано в разделе Настройка начальной среды.If the az command is not recognized, be sure you have the Azure CLI installed as described in Set up your initial environment.
  • Замените <app_name> именем, уникальным для всех регионов Azure (допустимыми символами являются a-z, 0-9и - ).Replace <app_name> with a name that's unique across all of Azure (valid characters are a-z, 0-9, and -). Рекомендуется использовать сочетание названия компании и идентификатора приложения.A good pattern is to use a combination of your company name and an app identifier.
  • Аргумент --sku F1 создает веб-приложение в ценовой категории "Бесплатный".The --sku F1 argument creates the web app on the Free pricing tier. Этот аргумент можно опустить, чтобы использовать более быструю ценовую категорию "Премиум" с почасовой оплатой.Omit this argument to use a faster premium tier, which incurs an hourly cost.
  • Вы также можете добавить аргумент -l <location-name>, где <location_name> — это регион Azure, например centralus, eastasia, westeurope, koreasouth, brazilsouth, centralindia и т. д.You can optionally include the argument -l <location-name> where <location_name> is an Azure region such as centralus, eastasia, westeurope, koreasouth, brazilsouth, centralindia, and so on. Список допустимых регионов для учетной записи Azure можно получить, выполнив команду az account list-locations.You can retrieve a list of allowable regions for your Azure account by running the az account list-locations command.

Выполнение этой команды может занять несколько минут.The command may take a few minutes to complete. Во время выполнения она предоставляет сообщения о создании группы ресурсов, плане службы приложений и приложении размещения, настройке ведения журнала и последующем выполнении развертывания ZIP-файла.While running, it provides messages about creating the resource group, the App Service plan and hosting app, configuring logging, then performing ZIP deployment. Затем оно выдает сообщение You can launch the app at http://<app-name>.azurewebsites.net (Вы можете запустить приложение по адресу http://.azurewebsites.net). Это URL-адрес приложения в Azure.It then gives the message, "You can launch the app at http://<app-name>.azurewebsites.net", which is the app's URL on Azure.

Пример выходных данных команды az webapp up

Примечание

Команда az webapp up выполняет следующие действия:The az webapp up command does the following actions:

Переход в приложениеBrowse to the app

Найдите развернутое приложение в веб-браузере по URL-адресу http://<app-name>.azurewebsites.net.Browse to the deployed application in your web browser at the URL http://<app-name>.azurewebsites.net.

Пример кода Python запускает контейнер Linux в Службе приложений с помощью встроенного образа.The Python sample code is running a Linux container in App Service using a built-in image.

Запуск примера приложения Python в Azure

Поздравляем!Congratulations! Вы развернули свое приложение Python в службе приложений в Linux.You've deployed your Python app to App Service on Linux.

Повторное развертывание обновленийRedeploy updates

Откройте в редакторе файл application.py и измените функцию hello следующим образом.In your favorite code editor, open application.py and update the hello function as follows. Будет добавлена инструкция print для создания выходных данных журнала, которые понадобятся в следующем разделе.This change adds a print statement to generate logging output that you work with in the next section.

def hello():
    print("Handling request to home page.")
    return "Hello Azure!"

Сохраните изменения и выйдите из редактора.Save your changes and exit the editor.

Повторно разверните приложение с помощью команды az webapp up.Redeploy the app using the az webapp up command again:

az webapp up

Эта команда использует значения, которые кэшируются локально в файле .azure/config, включая имя приложения, группу ресурсов и план службы приложений.This command uses values that are cached locally in the .azure/config file, including the app name, resource group, and App Service plan.

После завершения развертывания вернитесь в окно браузера и откройте http://<app-name>.azurewebsites.net.Once deployment is complete, switch back to the browser window open to http://<app-name>.azurewebsites.net. Обновите страницу, на которой должно отобразиться измененное сообщение:Refresh the page, which should display the modified message:

Запуск обновленного примера приложения Python в Azure

Совет

Visual Studio Code предоставляет разнообразные расширения для Python и Службы приложений Azure, которые упрощают процесс развертывания веб-приложений Python в службе приложений.Visual Studio Code provides powerful extensions for Python and Azure App Service, which simplify the process of deploying Python web apps to App Service. Дополнительные сведения см. в статье Развертывание приложений Python в Службе приложений из Visual Studio Code.For more information, see Deploy Python apps to App Service from Visual Studio Code.

Журналы потоковой передачиStream logs

Вы можете получить доступ к журналам консоли, созданным в приложении, и контейнеру, в котором он выполняется.You can access the console logs generated from inside the app and the container in which it runs. Журналы содержат все выходные данные, созданные с помощью инструкций print.Logs include any output generated using print statements.

Чтобы включить потоковую передачу журналов, выполните следующую команду:To stream logs, run the following command:

az webapp log tail

Обновите приложение в браузере, чтобы создать журналы консоли, которые содержат сообщения с HTTP-запросами к приложению.Refresh the app in the browser to generate console logs, which include messages describing HTTP requests to the app. Если выходные данные не отображаются немедленно, повторите попытку через 30 секунд.If no output appears immediately, try again in 30 seconds.

Вы также можете проверить файлы журнала в браузере на странице https://<app-name>.scm.azurewebsites.net/api/logs/docker.You can also inspect the log files from the browser at https://<app-name>.scm.azurewebsites.net/api/logs/docker.

Чтобы остановить потоковую передачу журналов, нажмите клавиши CTRL+C.To stop log streaming at any time, type Ctrl+C.

Управление приложением AzureManage the Azure app

Перейдите на портал Azure, чтобы управлять созданным приложением.Go to the Azure portal to manage the app you created. Найдите в поиске и выберите Службы приложений.Search for and select App Services.

Перейдите к разделу службы приложений на портале Azure

Выберите имя приложения Azure.Select the name of your Azure app.

Переход к приложению Python в Службе приложений на портале Azure

При выборе приложения открывается страница Обзор, где можно выполнять основные задачи управления, такие как обзор, завершение, запуск, перезапуск и удаление.Selecting the app opens its Overview page, where you can perform basic management tasks like browse, stop, start, restart, and delete.

Управление приложением Python на странице "Обзор" на портале Azure

В меню службы приложений слева доступно несколько страниц для настройки приложения.The App Service menu provides different pages for configuring your app.

Очистка ресурсовClean up resources

На предыдущем шаге вы создали ресурсы Azure в группе ресурсов.In the preceding steps, you created Azure resources in a resource group. Группа ресурсов имеет имя, такое как "appsvc_rg_Linux_CentralUS", в зависимости от расположения.The resource group has a name like "appsvc_rg_Linux_CentralUS" depending on your location. Если вы используете номер SKU Службы приложений, отличающийся от бесплатного уровня F1, за эти ресурсы будет взиматься плата (см. сведения о ценах на Службу приложений).If you use an App Service SKU other than the free F1 tier, these resources incur ongoing costs (see App Service pricing).

Если эти ресурсы вам не понадобятся в будущем, удалите группу ресурсов, выполнив следующие команды:If you don't expect to need these resources in the future, delete the resource group by running the following command:

az group delete

Эта команда использует имя группы ресурсов, кэшированное в файле .azure/config.The command uses the resource group name cached in the .azure/config file.

Выполнение этой команды может занять около минуты.The command may take a minute to complete.

Дальнейшие действияNext steps