Руководство. Функция Python с хранилищем очередей Azure в качестве триггера
В этом руководстве описано, как настроить функцию Python с очередью хранилища в качестве триггера, выполнив следующие задачи.
- Используйте Visual Studio Code для создания проекта функции Python.
- Используйте Visual Studio Code для локального запуска функции.
- Используйте Azure CLI для создания подключения между функцией Azure и очередью хранилища с соединителем службы.
- Используйте Visual Studio для развертывания функции.
Общие сведения о компонентах проекта функции в этом руководстве:
Компонент проекта | Выбор или решение |
---|---|
Исходная служба | функции Azure; |
Целевая служба | Очередь службы хранилища Azure |
Привязка функции | Очередь хранилища в качестве триггера |
Тип проверки подлинности локального проекта | Строка подключения |
Тип проверки подлинности облачной функции | Строка подключения |
Предупреждение
Корпорация Майкрософт рекомендует использовать самый безопасный поток проверки подлинности. Поток проверки подлинности, описанный в этой процедуре, требует очень высокого уровня доверия к приложению и несет риски, которые отсутствуют в других потоках. Этот поток следует использовать только в том случае, если другие более безопасные потоки, такие как управляемые удостоверения, не являются жизнеспособными.
Необходимые компоненты
- Установите Visual Studio Code на одной из поддерживаемых платформ.
- Интерфейс командной строки Azure. Его можно использовать в Azure Cloud Shell или установить локально.
- Учетная запись служба хранилища Azure и очередь хранилища. Если у вас нет служба хранилища Azure, создайте его.
- В этом руководстве предполагается, что вы знаете основные понятия, представленные в руководстве разработчика Функции Azure и способах подключения к службам в Функциях.
Создание проекта функции Python
Следуйте инструкциям, чтобы создать локальный проект Функции Azure и укажите следующие сведения в запросах:
Prompt | Выбор |
---|---|
Выбор языка | Выберите Python . (модель языка программирования версии 1) |
Выберите интерпретатор Python для создания виртуальной среды | Выберите предпочтительный интерпретатор Python. Если нужный вариант не отображается, введите полный путь к двоичному файлу Python. |
Выбор шаблона для первой функции проекта | Выберите Azure Queue Storage trigger . |
Укажите имя функции | Введите QueueStorageTriggerFunc . |
Select setting from "local.settings.json" (Выберите параметр из файла local.settings.json) | Выберите Create new local app settings , который позволяет выбрать учетную запись хранения и указать имя очереди, которая работает в качестве триггера. |
Вы создали проект функции Python с служба хранилища Azure очередью в качестве триггера. Локальный проект подключается к служба хранилища Azure с помощью строка подключения, сохраненной local.settings.json
в файле. Наконец, функция в __init__.py
файле функции может использовать строка подключения с помощью привязки функции, main
определенной function.json
в файле.
Локальное выполнение функции
Следуйте инструкциям из руководства, чтобы выполнить функцию локально и проверить триггер.
- Выберите учетную запись хранения, выбранную при создании ресурса функции Azure, если вам будет предложено подключиться к хранилищу. Это значение используется для среды выполнения функции Azure, и оно не обязательно совпадает с учетной записью хранения, используемой для триггера.
- Чтобы запустить функцию локально, нажмите
<kbd>
клавишу F5</kbd>
или щелкните значок запуска и отладки на панели действий слева. - Чтобы проверить правильность работы триггера, оставьте функцию локальной и откройте область очередей хранилища в портал Azure, выберите "Добавить сообщение" и укажите тестовое сообщение. Вы должны увидеть, что функция активируется и обрабатывается как элемент очереди в терминале Visual Studio Code.
Создание подключения с помощью соединителя службы
На последнем шаге вы проверили проект функции локально. Теперь вы узнаете, как настроить подключение между функцией Azure и очередью служба хранилища Azure в облаке, чтобы ее можно было активировать в очереди хранилища после развертывания в облаке.
-
function.json
Откройте файл в локальном проекте, измените значениеconnection
свойства.bindings
AZURE_STORAGEQUEUE_CONNECTIONSTRING
- Выполните следующую команду Azure CLI, чтобы создать подключение между функцией Azure и учетной записью хранения Azure.
az functionapp connection create storage-queue --source-id "<your-function-resource-id>" --target-id "<your-storage-queue-resource-id>" --secret
-
--source-id
формат:/subscriptions/{subscription}/resourceGroups/{source_resource_group}/providers/Microsoft.Web/sites/{site}
-
--target-id
формат:/subscriptions/{subscription}/resourceGroups/{target_resource_group}/providers/Microsoft.Storage/storageAccounts/{account}/queueServices/default
На этом шаге создается ресурс соединителя служб, который настраивает AZURE_STORAGEQUEUE_CONNECTIONSTRING
переменную в параметрах приложения функции. Среда выполнения привязки функции использует ее для подключения к хранилищу, чтобы функция может принимать триггеры из очереди хранилища. Дополнительные сведения см. в статье о том, как соединитель служб помогает Функции Azure подключаться к службам.
Развертывание функции в Azure
Теперь вы можете развернуть функцию в Azure и проверить работу триггера очереди хранилища.
- Следуйте инструкциям из этого руководства Функции Azure, чтобы развернуть функцию в Azure.
- Откройте область очередей хранилища в портал Azure, выберите "Добавить сообщение" и укажите тестовое сообщение. Вы увидите, что функция активируется и обрабатывается как элемент очереди в журналах функций.
Устранение неполадок
Если возникают ошибки, связанные с узлом хранилища, напримерNo such host is known (<account-name>.queue.core.windows.net:443)
, проверьте, используется ли строка подключения для подключения к служба хранилища Azure содержит конечную точку очереди или нет. Если это не так, перейдите к служба хранилища Azure в портал Azure, скопируйте строка подключения из Access keys
области и замените значения.
Если эта ошибка возникает при локальном запуске проекта, проверьте local.settings.json
файл.
Если эта ошибка возникает при развертывании функции в облаке (в данном случае развертывание функции обычно завершается сбоем Syncing triggers
), проверьте параметры приложения функции.
Очистка ресурсов
Если вы не собираетесь продолжать использовать этот проект, удалите ресурс приложения-функции, созданный ранее.
- В портал Azure откройте ресурс приложения-функции и нажмите кнопку "Удалить".
- Введите имя приложения и нажмите кнопку "Удалить ", чтобы подтвердить.
Следующие шаги
Ознакомьтесь со статьями ниже, чтобы узнать больше о концепциях соединителя служб и о том, как он помогает Функции Azure подключаться к службам.