Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
В этом кратком руководстве вы используете Visual Studio Code для создания приложения, которое отвечает на изменения в таблице базы данных SQL Azure. После локального тестирования кода вы развернете его в новом бессерверном приложении-функции, работающем в плане потребления Flex в Функциях Azure.
Источник проекта использует расширение Azure Developer CLI (azd) с Visual Studio Code для упрощения инициализации и проверки кода проекта локально и развертывания кода в Azure. Это развертывание следует текущим рекомендациям по безопасным и масштабируемым Функции Azure развертываниям.
Это важно
Поддержка реагирования на изменения в базе данных SQL Azure предоставляется для всех языков, но в этом сценарии быстрого старта в настоящее время есть примеры только для C#, Python и TypeScript. Чтобы завершить работу с этим кратким руководством, выберите один из этих поддерживаемых языков в верхней части статьи.
Предпосылки
Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
Visual Studio Code на одной из поддерживаемых платформ.
Расширение "Функции Azure" для Visual Studio Code. Для этого расширения требуются основные средства Azure Functions Core Tools. Если это средство недоступно локально, расширение пытается установить его с помощью установщика на основе пакетов. Вы также можете установить или обновить пакет Core Tools, выполнив команду
Azure Functions: Install or Update Azure Functions Core Toolsиз палитры команд. Если на локальном компьютере не установлено npm или Homebrew, необходимо вручную установить или обновить основные средства.
Расширение C# для Visual Studio Code.
-
Node.js 18.x или более поздней версии. Используйте команду
node --version, чтобы проверить установленную версию.
Версии Python, поддерживаемые Функциями Azure. Дополнительные сведения см. в разделе Как установить Python.
Расширение Python для Visual Studio Code.
- Расширение Azure Developer CLI для Visual Studio Code.
- Расширение SQL Server (mssql) для Visual Studio Code.
Инициализируйте проект
Вы можете использовать azd init команду из палитры команд для создания локального проекта кода Функций Azure на основе шаблона.
В Visual Studio Code откройте папку или рабочую область, в которой вы хотите создать проект.
Нажмите клавишу F1 , чтобы открыть палитру команд, найдите и выполните команду
Azure Developer CLI (azd): Initialize App (init), а затем выберите шаблон.При появлении запроса найдите и выберите
Azure Functions with SQL Triggers and Bindings.При появлении запроса введите уникальное имя среды, например
sqldbchanges.
Эта команда извлекает файлы проекта из репозитория шаблонов и инициализирует проект в текущей папке или рабочей области. В azdсреде используется для поддержания уникального контекста развертывания для приложения, и вы можете определить несколько. Это также часть имени группы ресурсов, создаваемой в Azure.
Эта команда извлекает файлы проекта из репозитория шаблонов и инициализирует проект в текущей папке или рабочей области. В azdсреде используется для поддержания уникального контекста развертывания для приложения, и вы можете определить несколько. Это также часть имени группы ресурсов, создаваемой в Azure.
Эта команда извлекает файлы проекта из репозитория шаблонов и инициализирует проект в текущей папке или рабочей области. В azdсреде используется для поддержания уникального контекста развертывания для приложения, и вы можете определить несколько. Это также часть имени группы ресурсов, создаваемой в Azure.
Прежде чем запускать приложение локально, необходимо создать ресурсы в Azure.
Создание ресурсов Azure
Этот проект настроен так, чтобы использовать команду azd provision для создания функционального приложения в плане потребления Flex, а также других необходимых ресурсов Azure, которые соответствуют текущим рекомендациям.
В Visual Studio Code нажмите клавишу F1 , чтобы открыть палитру команд, найдите и выполните команду
Azure Developer CLI (azd): Sign In with Azure Developer CLI, а затем войдите с помощью учетной записи Azure.Нажмите клавишу F1 , чтобы открыть палитру команд, выполните поиск и выполните команду
Azure Developer CLI (azd): Provision Azure resources (provision), чтобы создать необходимые ресурсы Azure.При появлении запроса в окне терминала укажите следующие необходимые параметры развертывания:
Подсказка Description Выбор подписки Azure для использования Выберите подписку, в которой нужно создать ресурсы. Параметр развертывания расположения Регион Azure, в котором создается группа ресурсов, содержащая новые ресурсы Azure. Отображаются только регионы, поддерживающие план потребления Flex. Параметр развертывания vnetEnabled Хотя шаблон поддерживает создание ресурсов в виртуальной сети, чтобы упростить развертывание и тестирование, выберите False.
Команда azd provision использует ваш ответ на данные запросы с файлами конфигурации Bicep для создания и настройки этих необходимых ресурсов Azure, следуя последним наилучшим практикам.
- План потребления и приложение-функция Flex
- База данных SQL Azure (имя по умолчанию: ToDo)
- служба хранилища Azure (обязательно) и Application Insights (рекомендуется)
- Политики и роли доступа для учетной записи
- Подключения между службами с помощью управляемых удостоверений (вместо хранимых строка подключения)
Перехватчики после подготовки также генерируют файл local.settings.json, который требуется для локального запуска. Этот файл содержит параметры, необходимые для подключения к базе данных в Azure.
Просмотр кода (необязательно)
В примере определяются две функции:
| Имя функции | Файл кода | Тип триггера | Description |
|---|---|---|---|
httptrigger-sql-output |
sql_output_http_trigger.cs | Триггер HTTP | Принимает правильно отформатированные полезные данные JSON и использует выходную привязку SQL для вставки объекта в качестве строки в ToDo таблице. |
ToDoTrigger |
sql_trigger.cs | Триггер SQL | Прослушивает таблицу ToDo для изменений на уровне строк и возвращает объект, представляющий измененную строку. |
Тип ToDoItem определен в ToDoItem.cs.
| Имя функции | Файл кода | Тип триггера | Description |
|---|---|---|---|
http_trigger_sql_output |
function_app.py | Триггер HTTP | Принимает правильно отформатированные полезные данные JSON и использует выходную привязку SQL для вставки объекта в качестве строки в ToDo таблице. |
httptrigger-sql-output |
sql_trigger_todo | Триггер SQL | Прослушивает таблицу ToDo для изменений на уровне строк и возвращает объект, представляющий измененную строку. |
Тип ToDoItem определен в todo_item.py.
| Имя функции | Файл кода | Тип триггера | Description |
|---|---|---|---|
httpTriggerSqlOutput |
sql_output_http_trigger.ts | Триггер HTTP | Принимает правильно отформатированные полезные данные JSON и использует выходную привязку SQL для вставки объекта в качестве строки в ToDo таблице. |
sqlTriggerToDo |
sql_trigger.ts | Триггер SQL | Прослушивает таблицу ToDo для изменений на уровне строк и возвращает объект, представляющий измененную строку. |
Тип ToDoItem определен в ToDoItem.ts.
Обе функции используют переменные среды уровня AZURE_SQL_CONNECTION_STRING_KEY_* приложения, которые определяют подключение на основе удостоверения к экземпляру Azure SQL Database с аутентификацией через Microsoft Entra ID. Эти переменные среды создаются как в Azure (параметры приложения-функции), так и локально (local.settings.json) во время azd provision операции.
Подключение к базе данных SQL
Вы можете использовать расширение SQL Server (mssql) для Visual Studio Code для подключения к новой базе данных. Это расширение помогает вносить обновления в ToDo таблицу для запуска функции триггера SQL.
Нажмите клавишу F1 и в палитре команд выполните поиск и выполните команду
MS SQL: Add Connection.В диалоговом окне "Подключение" измените тип входных данных на "Обзор Azure ", а затем задайте следующие остальные параметры:
Вариант Choose Description Сервер Экземпляр SQL Server По умолчанию отображаются все серверы, доступные вашей учетной записи Azure. Используйте подписку, группу ресурсов и расположение для фильтрации списка серверов. База данных ToDoБаза данных, созданная во время процесса подготовки. Тип проверки подлинности Идентификатор Microsoft Entra Если вы еще не вошли, выберите вход и войдите в учетную запись Azure. Идентификатор клиента Арендатор конкретной учетной записи. Если у вашей учетной записи несколько арендаторов, выберите подходящего арендатора для вашей подписки. Выберите "Подключиться", чтобы подключиться к базе данных. Подключение использует учетную запись локального пользователя, которая имеет права администратора на сервере размещения и сопоставляется с
dboв базе данных.В представлении SQL Server найдите и разверните Подключения, а затем новый сервер в обозревателе SQL Server. Разверните таблицы и убедитесь, что таблица
ToDoсуществует. Если он не существует, может потребоваться выполнитьazd provisionповторно и проверить наличие ошибок.
Локальное выполнение функции
Visual Studio Code интегрируется с инструментами Azure Functions Core для запуска этого проекта на локальном компьютере разработки перед публикацией в новом приложении функций в Azure.
Нажмите клавишу F1 и в палитре команд выполните поиск и выполните команду
Azurite: Start.Чтобы запустить функцию локально, нажмите клавишу F5 или значок запуска и отладки на панели действий слева.
На панели терминала отображаются выходные данные основных инструментов. Приложение запускается на панели терминала , и вы увидите имя функции, которая выполняется локально.
При запуске приложения можно проверить и отладить оба триггера функции.
Чтобы проверить функцию триггера HTTP, которая записывается в выходную привязку SQL:
Скопируйте этот объект JSON, который также можно найти в
test.httpфайле проекта:{ "id": "11111111-1111-1111-1111-111111111111", "order": 1, "title": "Test Todo Item", "url": "https://example.com", "completed": false }Эти данные представляют строку, вставленную в базу данных SQL при вызове конечной точки HTTP. Выходная привязка преобразует объект данных в
INSERTоперацию в базе данных.При запуске приложения в представлении Azure в разделе "Рабочая область" разверните функции локального проекта>.
Щелкните правой кнопкой мыши функцию HTTP (или ctrl+щелкните macOS), выберите "Выполнить функцию", вставьте скопированные данные JSON и нажмите клавишу ВВОД.
Функция обрабатывает HTTP-запрос и записывает элемент в подключенную базу данных SQL и возвращает созданный объект.
Вернитесь в обозреватель SQL Server, щелкните таблицу правой кнопкой
ToDoмыши (или Ctrl+щелчок на macOS) и выберите Выбрать первые 1000. При выполнении запроса возвращает вставленную или обновленную строку.Повторите шаг 3 и повторно отправьте один и тот же объект данных с тем же идентификатором. На этот раз выходное связывание выполняет операцию
UPDATEвместоINSERTи изменяет существующую строку в базе данных.
По завершении введите CTRL+C в терминале, чтобы остановить процесс основных инструментов.
Развертывание в Azure
Вы можете выполнить команду azd deploy из Visual Studio Code, чтобы развернуть код проекта на уже созданных ресурсах в Azure.
Нажмите клавишу F1 , чтобы открыть палитру команд, выполните поиск и выполните команду
Azure Developer CLI (azd): Deploy to Azure (deploy).Команда
azd deployупаковывает и развёртывает ваш код в контейнер для развёртывания. Затем приложение запускается и запускается в развернутом пакете.После успешного выполнения команды приложение запущено в Azure. Запишите значение
Endpoint, которое является URL-адресом вашего функционального приложения, запущенного в Azure.
Вызов функции в Azure
В Visual Studio Code нажмите клавишу F1 и в палитре команд найдите и выполните команду
Azure: Open in portal, выберитеFunction appи выберите новое приложение. При необходимости войдите с помощью учетной записи Azure.Выберите поток журнала в левой панели, которая подключается к журналам Application Insights для вашего приложения.
Вернитесь в Visual Studio Code, чтобы запустить обе функции в Azure.
Нажмите клавишу F1 , чтобы открыть палитру команд, выполните поиск и выполните команду
Azure Functions: Execute Function Now....Найдите и выберите приложение удаленной функции из списка, а затем выберите функцию триггера HTTP.
Как и раньше, вставьте данные объекта JSON в поле ввода полезной нагрузки Введите тело полезной нагрузки и нажмите клавишу ВВОД.
{ "id": "11111111-1111-1111-1111-111111111111", "order": 1, "title": "Test Todo Item", "url": "https://example.com", "completed": false }Чтобы выполнить
INSERTвместоUPDATE, заменитеidна новое значение GUID.Вернитесь на портал и просмотрите выходные данные выполнения в окне журнала.
Очистите ресурсы
Когда вы закончите работу с приложением-функцией и связанными ресурсами, эту команду можно использовать для удаления приложения-функции и связанных ресурсов из Azure и предотвращения дополнительных затрат:
azd down --no-prompt
Замечание
Параметр --no-prompt указывает azd удалить группу ресурсов без подтверждения.
Эта команда не влияет на локальный проект кода.