Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
В этом кратком руководстве вы используете Visual Studio Code для создания приложения, которое реагирует на изменения в базе данных NoSQL Azure Cosmos DB. После локального тестирования кода вы развернете его в новом бессерверном приложении-функции, которое вы создаете в плане потребления Flex в Функции Azure.
Источник проекта использует расширение Azure Developer CLI (azd) с Visual Studio Code для упрощения инициализации и проверки кода проекта локально, а также для развертывания кода в Azure. Это развертывание следует текущим рекомендациям по безопасным и масштабируемым Функции Azure развертываниям.
Это важно
Реагирование на изменения в базе данных Azure Cosmos DB NoSQL поддерживается для всех языков, однако, в этом сценарии быстрого старта в настоящее время содержатся примеры только для 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.
Инициализируйте проект
Вы можете использовать azd init команду из палитры команд для создания локального проекта кода Функций Azure на основе шаблона.
В Visual Studio Code откройте папку или рабочую область, в которой вы хотите создать проект.
Нажмите клавишу F1 , чтобы открыть палитру команд, найдите и выполните команду
Azure Developer CLI (azd): Initialize App (init), а затем выберите шаблон.При инициализации
azdтекущей папки или рабочей области может возникнуть небольшая задержка.
При появлении запроса выберите " Выбрать шаблон", а затем найдите и выберите
Azure Functions with Cosmos DB Bindings (.NET).При появлении запроса введите уникальное имя среды, например
cosmosdbchanges-dotnet.Эта команда извлекает файлы проекта из репозитория шаблонов и инициализирует проект в текущей папке или рабочей области. В
azdсреде используется для поддержания уникального контекста развертывания для приложения, и вы можете определить несколько. Это также часть имени группы ресурсов, создаваемой в Azure.
При появлении запроса выберите " Выбрать шаблон", а затем найдите и выберите
Azure Functions TypeScript CosmosDB trigger.При появлении запроса введите уникальное имя среды, например
cosmosdbchanges-ts.Эта команда извлекает файлы проекта из репозитория шаблонов и инициализирует проект в текущей папке или рабочей области. В
azdсреде используется для поддержания уникального контекста развертывания для приложения, и вы можете определить несколько. Это также часть имени группы ресурсов, создаваемой в Azure.
При появлении запроса выберите " Выбрать шаблон", а затем найдите и выберите
Azure Functions Python with CosmosDB triggers and bindings....При появлении запроса введите уникальное имя среды, например
cosmosdbchanges-py.Эта команда извлекает файлы проекта из репозитория шаблонов и инициализирует проект в текущей папке или рабочей области. В
azdсреде используется для поддержания уникального контекста развертывания для приложения, и вы можете определить несколько. Это также часть имени группы ресурсов, создаваемой в Azure.
Выполните эту команду в зависимости от локальной операционной системы, чтобы предоставить скрипты конфигурации необходимым разрешениям:
Выполните следующую команду с достаточными привилегиями:
chmod +x ./infra/scripts/*.sh
Прежде чем запускать приложение локально, необходимо создать ресурсы в Azure. Этот проект не использует локальную эмуляцию для Azure Cosmos DB.
Создание ресурсов Azure
Этот проект настроен для использования команды azd provision для создания приложения-функции в Flex Consumption плане, а также других необходимых ресурсов 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
- Учетная запись Azure Cosmos DB
- служба хранилища Azure (обязательно) и Application Insights (рекомендуется)
- Политики и роли доступа для учетной записи
- Подключения между службами с помощью управляемых удостоверений (вместо хранимых строка подключения)
Перехватчики после развертывания также создают файл local.settings.json, необходимый при локальном запуске. Этот файл также содержит параметры, необходимые для подключения к базе данных Azure Cosmos DB в Azure.
Подсказка
Если какой-либо шаг завершился сбоем во время подготовки, вы можете снова запустить команду
azd provisionпосле устранения возникших проблем.После успешного выполнения команды можно запустить код проекта локально и активировать его в базе данных Azure Cosmos DB в Azure.
Локальное выполнение функции
Visual Studio Code интегрируется с инструментами Azure Functions Core для запуска этого проекта на локальном компьютере разработки перед публикацией в новом приложении функций в Azure.
Нажмите клавишу F1 и в палитре команд выполните поиск и выполните команду
Azurite: Start.Чтобы запустить функцию локально, нажмите клавишу F5 или значок запуска и отладки на панели действий слева. На панели терминала отображаются выходные данные основных инструментов. Приложение запускается на панели терминала , и вы увидите имя функции, которая выполняется локально.
При возникновении проблем с запуском в Windows убедитесь, что в качестве терминала по умолчанию для Visual Studio Code не используется WSL Bash.
При работе с основными инструментами в Терминале, нажмите F1 и в палитре команд найдите и выполните команду
NoSQL: Create Item..., выберите какdocument-dbбазу данных, так иdocumentsконтейнер.Замените содержимое файла New Item.json данными JSON и нажмите кнопку "Сохранить".
{ "id": "doc1", "title": "Sample document", "content": "This is a sample document for testing my Azure Cosmos DB trigger in Azure Functions." }После нажатия кнопки "Сохранить" вы увидите выполнение функции в терминале, а локальный документ обновляется, чтобы включить метаданные, добавленные службой.
По завершении нажмите клавиши CTRL+C в окне терминала, чтобы остановить
func.exeпроцесс узла.
Просмотр кода (необязательно)
Функция активируется на основе канала изменений в базе данных NoSQL Azure Cosmos DB. Эти переменные среды настраивают, как триггер отслеживает канал изменений:
-
COSMOS_CONNECTION__accountEndpoint: конечная точка учетной записи Cosmos DB -
COSMOS_DATABASE_NAME: имя базы данных для мониторинга -
COSMOS_CONTAINER_NAME: имя контейнера для мониторинга
Эти переменные среды создаются как в Azure (параметры приложения-функции), так и локально (local.settings.json) во время azd provision операции.
Вы можете просмотреть код, определяющий триггер Azure Cosmos DB в файле проекта CosmosTrigger.cs.
Вы можете просмотреть код, определяющий триггер Azure Cosmos DB в файле проекта cosmos_trigger.ts.
Вы можете просмотреть код, определяющий триггер Azure Cosmos DB в файле проекта function_app.py.
Проверив и подтвердив правильность кода функции локально, настало время опубликовать проект в Azure.
Развертывание в Azure
Вы можете выполнить команду azd deploy из Visual Studio Code, чтобы развернуть код проекта на уже созданных ресурсах в Azure.
Нажмите клавишу F1 , чтобы открыть палитру команд, выполните поиск и выполните команду
Azure Developer CLI (azd): Deploy to Azure (deploy).Команда
azd deployупаковывает и развёртывает ваш код в контейнер для развёртывания. Затем приложение запускается и запускается в развернутом пакете.После успешного выполнения команды приложение запущено в Azure.
Вызов функции в Azure
В Visual Studio Code нажмите клавишу F1 и в палитре команд найдите и выполните команду
Azure: Open in portal, выберитеFunction appи выберите новое приложение. При необходимости войдите с помощью учетной записи Azure.Эта команда открывает новое приложение-функцию на портале Azure.
На вкладке "Обзор" на главной странице выберите имя вашего функционального приложения, а затем вкладку "Журналы".
NoSQL: Create ItemИспользуйте команду в Visual Studio Code, чтобы снова добавить документ в контейнер, как и раньше.Убедитесь, что функция активируется обновлением в отслеживаемом контейнере.
Повторное развертывание кода
Вы можете выполнять команду azd deploy столько раз, сколько вам нужно для развертывания обновлений кода в приложении функций.
Замечание
Развернутые файлы кода всегда перезаписываются последним пакетом развертывания.
Исходные ответы на azd запросы и любые переменные среды, созданные с помощью azd , хранятся локально в именованной среде.
azd env get-values Используйте команду, чтобы просмотреть все переменные в вашей среде, которые использовались при создании ресурсов Azure.
Очистите ресурсы
Когда вы закончите работу с приложением-функцией и связанными ресурсами, эту команду можно использовать для удаления приложения-функции и связанных ресурсов из Azure и предотвращения дополнительных затрат:
azd down --no-prompt
Замечание
Параметр --no-prompt указывает azd удалить группу ресурсов без подтверждения.
Эта команда не влияет на локальный проект кода.