Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье используются средства командной строки для создания функции Python, которая отвечает на HTTP-запросы. После тестирования кода в локальной среде его необходимо развернуть в бессерверной среде Функций Azure.
В этой статье используется модель программирования Python версии 2 для функций Azure, которая предполагает подход для создания функций на основе декораторов. Дополнительные сведения о модели программирования Python версии 2 см. в справочном руководстве разработчика
Завершение этого быстрого старта обойдется вам в небольшую стоимость в несколько центов США на вашем аккаунте Azure.
Существует также версия этой статьи для Visual Studio Code.
Настройка локальной среды
Перед началом необходимо подготовить следующее:
Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
Один из следующих инструментов для создания ресурсов Azure:
Azure CLI версии 2.4 или более поздней.
Модуль Azure PowerShell 5.9.0 или более поздней версии.
Эмулятор хранилища Azurite. Хотя вы также можете использовать фактическую учетную запись службы хранилища Azure, в статье предполагается, что вы используете этот эмулятор.
Установка основных инструментов Функций Azure
Рекомендуемый способ установки основных средств зависит от операционной системы локального компьютера разработки.
Следующая процедура устанавливает Core Tools версии v4.x с помощью установщика Windows (MSI). Дополнительные сведения о других установщиках на основе пакетов, см. в файле readme для Core Tools.
Скачайте и запустите установщик Core Tools для используемой версии Windows:
- v4.x — Windows 64-разрядная версия (рекомендуется для отладки Visual Studio Code требуется 64-разрядная версия.)
- v4.x - Windows 32-bit
Если вы ранее использовали установщик Windows (MSI) для установки основных инструментов в Windows, перед установкой последней версии удалите старую версию из команды "Добавить программы".
Используйте команду func --version
, чтобы убедиться, что версия Core Tools не менее 4.0.5530
.
Создание и активация виртуальной среды
В подходящей папке выполните следующие команды, чтобы создать и активировать виртуальную среду с именем .venv
. Убедитесь, что вы используете версию Python, поддерживаемую Функции Azure.
python -m venv .venv
source .venv/bin/activate
Если пакет venv не установлен Python для вашего дистрибутива Linux, выполните следующую команду:
sudo apt-get install python3-venv
Все последующие команды будут выполняться в этой активированной виртуальной среде.
Создание локальной функции
В Функциях Azure проект функций представляет собой контейнер для одной или нескольких отдельных функций, каждая из которых реагирует на конкретный триггер. Все функции в проекте совместно используют те же локальные конфигурации и конфигурации размещения.
В этом разделе описано, как создать проект функции и добавить активированную функцию HTTP.
Выполните следующую
func init
команду, чтобы создать проект функций Python версии 2 в виртуальной среде.func init --python
Теперь среда содержит различные файлы для проекта, включая файлы конфигурации с именем local.settings.json и host.json. Файл local.settings.json может содержать секреты, скачанные из Azure, поэтому файл по умолчанию исключен из системы управления версиями в GITIGNORE-файле.
Добавьте функцию в проект с помощью приведенной ниже команды, где аргумент
--name
— уникальное имя функции (HttpExample), а аргумент--template
позволяет указать триггер функции (HTTP).func new --name HttpExample --template "HTTP trigger" --authlevel "anonymous"
Если появится запрос, выберите параметр ANONYMOUS .
func new
добавляет конечную точку триггера HTTP с именемHttpExample
вfunction_app.py
файл, который доступен без проверки подлинности.
Локальное выполнение функции
Выполните функцию, запустив локальное хост-приложение среды выполнения Функций Azure из папки LocalFunctionProj.
func start
Ближе к концу выходных данных появятся следующие строки:
Примечание.
Если HttpExample не отображается так, как показано выше, вероятно, вы запустили хост не из корневой папки проекта. В этом случае остановите хост-приложение клавишами CTRL+C, перейдите в корневую папку проекта и снова выполните указанную выше команду.
Скопируйте URL-адрес вашей HTTP-функции из этого вывода в браузер и добавьте строку запроса
?name=<YOUR_NAME>
, в результате получится полный URL-адрес, напримерhttp://localhost:7071/api/HttpExample?name=Functions
. Браузер должен отобразить сообщение с ответом, которое воспроизводит значение вашей строки запроса. Терминал, в котором вы запустили проект, также выводит данные журнала при выполнении запросов.Когда закончите, нажмите Ctrl + C и введите
y
, чтобы отключить хост функций.
Создание вспомогательных ресурсов Azure для функции
Прежде чем развернуть код функции в Azure, необходимо создать три ресурса:
- группу ресурсов — логический контейнер связанных ресурсов;
- учетную запись хранения — для сохранения состояния и других сведений о проектах;
- Приложение-функция, которое предоставляет окружение для выполнения кода вашей функции. Приложение функций сопоставляется с вашим локальным проектом функции и позволяет сгруппировать функции в логическую единицу для упрощения управления, развертывания и совместного использования ресурсов.
Чтобы создать эти элементы, выполните следующие команды: Поддерживается Azure CLI и PowerShell.
При необходимости войдите в Azure.
az login
Команда
az login
входит в вашу учетную запись Azure.Создайте группу ресурсов с именем
AzureFunctionsQuickstart-rg
в нужном регионе.az group create --name AzureFunctionsQuickstart-rg --location <REGION>
Чтобы создать группу ресурсов, выполните команду az group create. В приведенной выше команде замените
<REGION>
на ближайший к вам регион. Укажите его код, полученный с помощью команды az account list-locations.Примечание.
Вы не можете разместить приложения Windows и Linux в одной группе ресурсов. Если у вас есть группа ресурсов
AzureFunctionsQuickstart-rg
с приложением-функцией Windows или веб-приложением, необходимо использовать другую группу ресурсов.В группе ресурсов и регионе создайте учетную запись хранения общего назначения.
az storage account create --name <STORAGE_NAME> --location <REGION> --resource-group AzureFunctionsQuickstart-rg --sku Standard_LRS
Создайте учетную запись хранения с помощью команды az storage account create.
В предыдущем примере замените
<STORAGE_NAME>
соответствующим именем, которое является уникальным в службе хранилища Azure. Имена должны содержать от 3 до 24 символов, состоящих только из цифр и строчных букв.Standard_LRS
указывает учетную запись общего назначения, которая поддерживается Функциями.В этом кратком руководстве с учетной записи хранения будет взиматься всего лишь несколько центов США.
Создайте приложение-функцию в Azure.
az functionapp create --resource-group AzureFunctionsQuickstart-rg --consumption-plan-location westeurope --runtime python --runtime-version <PYTHON_VERSION> --functions-version 4 --name <APP_NAME> --os-type linux --storage-account <STORAGE_NAME>
Чтобы создать приложение-функцию в Azure, выполните команду az functionapp create. Необходимо указать
--os-type linux
, так как функции Python выполняются только в Linux.В предыдущем примере замените
<APP_NAME>
глобально уникальным именем, подходящим вам. Это<APP_NAME>
также поддомен по умолчанию для функционального приложения. Убедитесь, что заданное значение<PYTHON_VERSION>
является версией, поддерживаемой функциями и той же версией, которую вы использовали во время локальной разработки.Эта команда создает приложение-функцию, работающее в указанной языковой среде выполнения в рамках плана использования Функций Azure, который не предусматривает плату за объем, используемый здесь. Команда также создает связанный экземпляр приложения Azure Application Insights в той же группе ресурсов, с помощью которого можно отслеживать приложение функций и просматривать журналы. Дополнительные сведения см. в разделе Мониторинг функций Azure. Этот экземпляр не создает затраты, пока вы не активируете его.
Развертывание проекта функций в Azure
После успешного создания приложения-функции в Azure теперь можно развернуть проект локальных функций с помощью func azure functionapp publish
команды.
В корневой папке проекта выполните следующую func azure functionapp publish
команду:
func azure functionapp publish <APP_NAME>
В этом примере следует заменить <APP_NAME>
именем приложения. Успешное развертывание показывает результаты, аналогичные следующим выходным данным (усеченным для простоты):
... Getting site publishing info... Creating archive for current directory... Performing remote build for functions project. ... Deployment successful. Remote build succeeded! Syncing triggers... Functions in msdocs-azurefunctions-qs: HttpExample - [httpTrigger] Invoke url: https://msdocs-azurefunctions-qs.azurewebsites.net/api/httpexample
Вызов функции в Azure
Функция использует триггер HTTP, поэтому ее необходимо вызывать через HTTP-запрос по URL-адресу в браузере или с помощью такого средства, как curl.
Скопируйте полный URL-адрес вызова Invoke URL, показанный в выходных данных команды publish
, в адресную строку браузера, добавив параметр запроса ?name=Functions
. В браузере должны отображаться выходные данные, аналогичные данным при локальном запуске функции.
Очистка ресурсов
Если вы намерены перейти к следующему шагу и добавить выходную привязку очереди службы хранилища Azure, сохраните все ваши ресурсы в неизменном виде, так как вам предстоит работать с уже выполненными действиями.
В противном случае используйте следующую команду, чтобы удалить группу ресурсов и все содержащиеся в ней ресурсы и избежать дополнительных расходов.
az group delete --name AzureFunctionsQuickstart-rg
Следующие шаги
Наличие проблем с этой статьей?