Руководство. Функция Python с служба хранилища таблицы Azure в качестве выходных данных

В этом руководстве описано, как настроить функцию Python с служба хранилища таблицей в качестве выходных данных, выполнив следующие задачи.

  • Используйте Visual Studio Code для создания проекта функции Python.
  • Добавьте привязку выходных функций таблицы служба хранилища.
  • Используйте Visual Studio Code для локального запуска функции.
  • Используйте Azure CLI для создания подключения между функцией Azure и таблицей служба хранилища с помощью Подключение службы.
  • Используйте Visual Studio для развертывания функции.

Общие сведения о компонентах проекта функции в этом руководстве:

Компонент проекта Выбор или решение
Исходная служба функции Azure;
Целевая служба Таблица хранилища Azure
Привязка функции Триггер HTTP, служба хранилища таблица в виде выходных данных
Тип проверки подлинности локального проекта Строка подключения
Тип проверки подлинности облачной функции Строка подключения

Необходимые компоненты

Создание проекта функции 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 извлекает строка подключения для подключения к локальному проекту.

Чтобы проверка привязка была добавлена успешно:

  1. TableStorageOutputFunc/function.json Откройте файл, проверка, с которым была добавлена новая привязка type: table и direction: out добавлена в этот файл.
  2. 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}")

Локальное выполнение функции

Следуйте инструкциям, чтобы выполнить функцию локально и проверить выходные данные таблицы.

  1. Выберите учетную запись служба хранилища, которую вы выбрали при создании ресурса функции Azure, если вам будет предложено подключиться к учетной записи хранения. Это значение используется для среды выполнения функций Azure. Это не обязательно та же учетная запись хранения, которую вы используете для выходных данных.
  2. Чтобы запустить функцию локально, нажмите <kbd>клавишу F5 </kbd> или щелкните значок запуска и отладки на панели действий слева.
  3. Чтобы проверить возможность записи функции в таблицу, щелкните правой кнопкой мыши Execute Function Now... функцию в представлении рабочей области Visual Studio Code и проверка ответ функции. Ответное сообщение должно содержать rowKey текст, записанный в таблицу.

Создание подключения с помощью службы Подключение or

На последнем шаге вы проверили проект функции локально. Теперь вы узнаете, как настроить подключение между функцией Azure и таблицей служба хранилища Azure в облаке, чтобы функция могли записывать в большой двоичный объект хранилища после развертывания в облаке.

  1. function.json Откройте файл в локальном проекте, измените значение connection свойства.bindingsAZURE_STORAGETABLE_CONNECTIONSTRING
  2. Выполните следующую команду 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

Вы создали ресурс службы Подключение or, который настраивает AZURE_STORAGETABLE_CONNECTIONSTRING переменную в Параметры приложения функции. Затем этот параметр приложения будет использоваться привязкой функции для подключения к хранилищу, чтобы функция может записывать в таблицу хранилища. Дополнительные сведения о том, как служба Подключение or помогает Функции Azure подключаться к службам.

Развертывание функции в Azure

Теперь вы можете развернуть функцию в Azure и проверить, работает ли выходная привязка таблицы хранилища.

  1. Следуйте инструкциям из этого руководства Функции Azure, чтобы развернуть функцию в Azure.
  2. Чтобы проверить возможность записи функции в таблицу, щелкните правой кнопкой мыши 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 ), проверка Параметры приложения функции.

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

Если вы не собираетесь продолжать использовать этот проект, удалите ресурс приложения-функции, созданный ранее.

  1. В портал Azure откройте ресурс приложения-функции и нажмите кнопку "Удалить".
  2. Введите имя приложения и нажмите кнопку "Удалить ", чтобы подтвердить.

Следующие шаги

Ознакомьтесь со статьями ниже, чтобы узнать больше о концепциях службы Подключение or и о том, как он помогает Функции Azure подключаться к другим облачным службам.