Руководство. Функция Python с хранилищем таблиц Azure в качестве выходных данных
В этом руководстве вы узнаете, как настроить функцию Python с таблицей хранилища в качестве выходных данных, выполнив следующие задачи.
- Используйте Visual Studio Code для создания проекта функции Python.
- Добавление привязки выходной функции таблицы хранилища.
- Используйте Visual Studio Code для локального запуска функции.
- Используйте Azure CLI для создания подключения между функцией Azure и таблицей хранилища с соединителем службы.
- Используйте Visual Studio для развертывания функции.
Общие сведения о компонентах проекта функции в этом руководстве:
Компонент проекта | Выбор или решение |
---|---|
Исходная служба | функции Azure; |
Целевая служба | Таблица хранилища Azure |
Привязка функции | Триггер HTTP, таблица хранилища в качестве выходных данных |
Тип проверки подлинности локального проекта | Строка подключения |
Тип проверки подлинности облачной функции | Строка подключения |
Предупреждение
Корпорация Майкрософт рекомендует использовать самый безопасный поток проверки подлинности. Поток проверки подлинности, описанный в этой процедуре, требует очень высокого уровня доверия к приложению и несет риски, которые отсутствуют в других потоках. Этот поток следует использовать только в том случае, если другие более безопасные потоки, такие как управляемые удостоверения, не являются жизнеспособными.
Необходимые компоненты
- Установите Visual Studio Code на одной из поддерживаемых платформ.
- Интерфейс командной строки Azure. Его можно использовать в Azure Cloud Shell или установить локально.
- Учетная запись служба хранилища Azure и таблица хранения. Если у вас нет учетной записи хранения, создайте ее.
- В этом руководстве предполагается, что вы знаете понятия, представленные в руководстве разработчика функций, и как подключиться к службам в Функции Azure.
Создание проекта функции Python
Следуйте инструкциям, чтобы создать локальный проект Функции Azure и укажите следующие сведения в запросах:
Prompt | Выбор |
---|---|
Выбор языка | Выберите Python . (модель языка программирования версии 1) |
Выберите интерпретатор Python для создания виртуальной среды | Выберите предпочтительный интерпретатор Python. Если нужный вариант не отображается, введите полный путь к двоичному файлу Python. |
Выбор шаблона для первой функции проекта | Выберите HTTP trigger . |
Укажите имя функции | Введите TableStorageOutputFunc . |
Уровень авторизации | Выберите Anonymous , что позволит любому пользователю вызывать конечную точку функции. |
Вы создали проект функции Python с триггером HTTP.
Добавление выходной привязки таблицы хранилища
Атрибуты привязки определяются в файле function.json для данной функции. Чтобы создать привязку, щелкните правой кнопкой мыши (CTRL+щелкните macOS) function.json
файл в папке функции и нажмите кнопку "Добавить привязку... Выполните инструкции, указанные на экране, чтобы определить следующие свойства для новой привязки:
Prompt | значение | Описание |
---|---|---|
Select binding direction (Выберите направление привязки) | out |
Привязка является выходной привязкой. |
Select binding with direction... (Выберите привязку с направлением...) | Azure Table Storage |
Привязка — это привязка служба хранилища Azure табличной привязки. |
The name used to identify this binding in your code (Имя, используемое для идентификации этой привязки в коде) | outMessage |
Имя, которое используется для идентификации параметров привязки, указанных в коде. |
Имя таблицы в учетной записи хранения, в которой будут записываться данные | testTable |
Имя таблицы, записываемой функцией в виде выходных данных. Создайте таблицу с именем testTable в учетной записи хранения, если она не существует. |
Select setting from "local.setting.json" (Выберите параметр из файла local.setting.json) | Create new local app settings |
Выберите учетную запись хранения, в качестве выходных данных записывается функция. Visual Studio Code извлекает строка подключения для подключения к локальному проекту. |
Чтобы проверить, что привязка была добавлена успешно, выполните следующие действия.
TableStorageOutputFunc/function.json
Откройте файл, убедитесь, что новая привязка былаtype: table
добавлена вdirection: out
этот файл.local.settings.json
Откройте файл, убедитесь, что в этот файл добавлена новая пара<your-storage-account-name>_STORAGE: <your-storage-account-connection-string>
"ключ-значение", содержащая учетную запись хранения строка подключения.
После добавления привязки обновите коды функций, чтобы использовать привязку, заменив TableStorageOutputFunc/__init__.py
файл Python здесь.
import logging
import uuid
import json
import azure.functions as func
def main(req: func.HttpRequest, outMessage: func.Out[str]) -> func.HttpResponse:
rowKey = str(uuid.uuid4())
data = {
"Name": "Output binding message",
"PartitionKey": "message",
"RowKey": rowKey
}
outMessage.set(json.dumps(data))
return func.HttpResponse(f"Message created with the rowKey: {rowKey}")
Локальное выполнение функции
Следуйте инструкциям, чтобы выполнить функцию локально и проверить выходные данные таблицы.
- Выберите учетную запись хранения, выбранную при создании ресурса функции Azure, если вам будет предложено подключиться к учетной записи хранения. Это значение используется для среды выполнения функций Azure. Это не обязательно та же учетная запись хранения, которую вы используете для выходных данных.
- Чтобы запустить функцию локально, нажмите
<kbd>
клавишу F5</kbd>
или щелкните значок запуска и отладки на панели действий слева. - Чтобы проверить возможность записи функции в таблицу, щелкните правой кнопкой мыши
Execute Function Now...
функцию в представлении рабочей области Visual Studio Code и проверьте ответ функции. Ответное сообщение должно содержатьrowKey
текст, записанный в таблицу.
Создание подключения с помощью соединителя службы
На последнем шаге вы проверили проект функции локально. Теперь вы узнаете, как настроить подключение между функцией Azure и таблицей служба хранилища Azure в облаке, чтобы функция могли записывать в большой двоичный объект хранилища после развертывания в облаке.
function.json
Откройте файл в локальном проекте, измените значениеconnection
свойства.bindings
AZURE_STORAGETABLE_CONNECTIONSTRING
- Выполните следующую команду Azure CLI, чтобы создать соединение между функцией Azure и служба хранилища Azure.
az functionapp connection create storage-table --source-id "<your-function-resource-id>" --target-id "<your-storage-table-resource-id>" --secret
--source-id
формат:/subscriptions/{subscription}/resourceG roups/{source_resource_group}/providers/Microsoft.Web/sites/{site}
--target-id
формат:/subscriptions/{subscription}/resourceGroups/{target_resource_group}/providers/Microsoft.Storage/storageAccounts/{account}/tableServices/default
Вы создали ресурс соединителя служб, который настраивает AZURE_STORAGETABLE_CONNECTIONSTRING
переменную в параметрах приложения функции. Затем этот параметр приложения будет использоваться привязкой функции для подключения к хранилищу, чтобы функция может записывать в таблицу хранилища. Дополнительные сведения о том, как соединитель служб помогает Функции Azure подключаться к службам.
Развертывание функции в Azure
Теперь вы можете развернуть функцию в Azure и проверить, работает ли выходная привязка таблицы хранилища.
- Следуйте инструкциям из этого руководства Функции Azure, чтобы развернуть функцию в Azure.
- Чтобы проверить возможность записи функции в таблицу, щелкните правой кнопкой мыши
Execute Function Now...
функцию в представлении РЕСУРСОВ Visual Studio Code и проверьте ответ функции. Ответное сообщение должно содержатьrowKey
функцию, только что написанную в таблицу.
Устранение неполадок
Если возникают ошибки, связанные с узлом хранения, напримерNo such host is known (<acount-name>.table.core.windows.net:443)
, необходимо проверить, используется ли строка подключения для подключения к служба хранилища Azure содержит конечную точку таблицы или нет. Если это не так, перейдите на портал служба хранилища Azure, скопируйте строка подключения из Access keys
колонки и замените значения.
Если эта ошибка возникает при локальном запуске проекта, проверьте local.settings.json
файл.
Если при развертывании функции в облаке (в данном случае развертывание функции обычно завершается сбоем Syncing triggers
), проверьте параметры приложения функции.
Очистка ресурсов
Если вы не собираетесь продолжать использовать этот проект, удалите ресурс приложения-функции, созданный ранее.
- В портал Azure откройте ресурс приложения-функции и нажмите кнопку "Удалить".
- Введите имя приложения и нажмите кнопку "Удалить ", чтобы подтвердить.
Следующие шаги
Ознакомьтесь со статьями ниже, чтобы узнать больше о концепциях соединителя служб и о том, как он помогает Функции Azure подключаться к другим облачным службам.