Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Функции Azure предоставляют мощную бессерверную инфраструктуру, что упрощает разработку масштабируемых конечных точек HTTP по запросу. С помощью JavaScript или TypeScript можно создавать бессерверные приложения, которые отвечают на различные события, что позволяет сосредоточиться на написании кода, не беспокоясь об управлении серверами. Это руководство поможет вам приступить к разработке бессерверных приложений Node.js с помощью Функций Azure, интеграции с другими службами Azure.
Что такое ресурс Функций?
Ресурс Функций Azure — это логическая единица для всех связанных функций в одном географическом расположении Azure. Ресурс может содержать одну функцию или многие функции, которые могут быть независимо друг от друга или связаны с входными или выходными привязками. Вы можете выбрать существующие функции или создать собственные.
К параметрам ресурсов Функций относятся типичные бессерверные конфигурации, которые определяют переменные среды, аутентификацию, ведение журнала и CORS.
Устойчивые функции с отслеживанием состояния
Устойчивые функции сохраняют состояние или управляют долго выполняющимися функциями в Azure. Создайте устойчивую функцию с помощью JavaScript.
Статические веб-приложения включают функции
При разработке статического клиентского приложения внешнего интерфейса (например, Angular, React или Vue), которое также требует бессерверных API, используйте статические веб-приложения с функциями для объединения обоих функций.
Прокси-сервер между клиентским приложением и API
Если вы планируете развернуть API с помощью статического веб-приложения, вам не нужно прокси-серверы API клиентского приложения. Прокси-сервер устанавливается при развертывании приложения Функций Azure в качестве управляемого приложения.
При локальной разработке со статическим веб-приложением и функциями Azure интерфейс командной строки статических веб-приложений Azure предоставляет локальный прокси-сервер.
Общие параметры безопасности, которые необходимо настроить для экземпляра Функций Azure
Для защиты экземпляра Функций Azure необходимо настроить следующие общие параметры:
-
Проверка подлинности и авторизация:
- Используйте идентификатор Microsoft Entra (ранее Azure Active Directory) для надежной проверки подлинности. Настройте приложение-функцию, чтобы требовать токены OAuth2 для производственных рабочих нагрузок.
- Избегайте использования ключей функций для конфиденциальных приложений. Вместо этого интегрируйте с идентификатором Microsoft Entra id или проверяйте токены JWT в коде функции.
- Использование управляемых удостоверений позволяет аутентифицировать ваше приложение-функцию с другими ресурсами Azure, обеспечивая, что каждая функция получает доступ только к необходимым ресурсам.
-
Параметры конфигурации:
- Параметры приложения — создайте параметры приложения для параметров, которые не влияют на безопасность.
- Секреты и ключи — для любых параметров, влияющих на безопасность, используйте этот многоуровневый подход:
- Сначала используйте идентификатор Microsoft Entra для проверки подлинности, где поддерживается.
- Для интеграций, не поддерживающих Entra ID, сохраните секреты в Azure Key Vault и извлеките эти параметры из вашего хранилища ключей.
- Никогда не внедряйте секреты в файлы кода или конфигурации.
- Сведения о других параметрах безопасности платформы см. в разделе "Защита функций Azure".
-
Безопасность сети:
- CORS — настройте домены клиента. Не используйте
*, указывая все домены. - Интеграция с виртуальной сетью — используйте частные конечные точки или интеграцию виртуальной сети, чтобы ограничить уязвимость сети и ограничить входящий трафик из доверенных источников.
- CORS — настройте домены клиента. Не используйте
-
HTTPS и шифрование:
- Параметр TLS/SSL для HTTPS — по умолчанию ваш API принимает HTTP- и HTTPS-запросы. Включите Только HTTPS в параметрах TLS/SSL. Так как приложение-функция размещается в безопасном поддомене, его можно использовать немедленно (с
https) и отложить покупку доменного имени и использовать сертификат для домена до тех пор, пока вы не будете готовы.
- Параметр TLS/SSL для HTTPS — по умолчанию ваш API принимает HTTP- и HTTPS-запросы. Включите Только HTTPS в параметрах TLS/SSL. Так как приложение-функция размещается в безопасном поддомене, его можно использовать немедленно (с
-
Развертывание и мониторинг:
- Слоты развертывания — создайте слот развертывания, например
stageилиpreflight, и отправляйте данные на такой слот. Переключите этот слот этапа на рабочую среду, когда вы будете готовы. Не получите в привычке вручную толкать на производство. Ваша база кода должна иметь возможность указать версию фиксации, которая используется со слотом. - Включите Application Insights для телеметрии в режиме реального времени, оповещений и обнаружения аномалий для мониторинга функций и журналов аудита на предмет подозрительной активности.
- Слоты развертывания — создайте слот развертывания, например
Подробные рекомендации по обеспечению безопасности см. в разделе "Защита функций Azure".
Варианты размещения функций Azure
Функции Azure можно размещать разными способами в зависимости от ваших требований:
Планы размещения ресурсов Функций Azure
При создании ресурса Функций Azure можно выбрать один из следующих планов размещения:
- План потребления: оплачивайте только время выполнения функций с автоматическим масштабированием.
- План потребления Flex: обеспечивает расширенный контроль с всегда готовыми экземплярами для уменьшения холодного запуска, интеграции виртуальной сети и настраиваемых размеров экземпляров (512 МБ до 4 ГБ). Этот план рекомендуется для новых рабочих нагрузок под управлением Linux, требующих корпоративных функций безопасности и производительности. Обратите внимание, что этот план использует биллинг на основе выполнения, аналогичный плану потребления, но с дополнительными затратами на такие функции, как постоянно готовые экземпляры.
- План "Премиум": обеспечивает улучшенную производительность с предварительно разогретыми экземплярами, подключением к виртуальной сети и увеличенной продолжительностью выполнения.
- Выделенный план (служба приложений): выполнение функций на выделенных виртуальных машинах для прогнозируемых затрат и полного контроля над средой выполнения.
Дополнительные сведения о выборе подходящего плана размещения см. в разделе "Параметры размещения Функций Azure".
Ресурс "Контейнерные приложения Azure"
Кроме того, можно развернуть Функции Azure в ресурсе приложений контейнеров Azure в качестве контейнерных рабочих нагрузок. Этот параметр обеспечивает полный контроль над средой контейнера и идеально подходит при необходимости пользовательских зависимостей, длительных процессов или необходимости объединения функций с другими контейнерными микрослужбами. Дополнительные сведения см. в разделе "Приложения контейнеров Azure" для размещения функций Azure .
Предварительные требования для разработки Функции Azure
- Node.js LTS . Используйте последнюю версию долгосрочной поддержки (LTS) для обеспечения оптимальной совместимости и обновлений безопасности с помощью Функций Azure.
- Основные инструменты Функций Azure. Используйте текущую основную версию для локальной разработки и отладки.
Простая функция JavaScript для HTTP-запросов
Функция — это экспортированная асинхронная функция со сведениями о запросе и контексте. На следующем снимке портала Azure показан код функции.
import { app, HttpRequest, HttpResponseInit, InvocationContext } from "@azure/functions";
export async function status(request: HttpRequest, context: InvocationContext): Promise<HttpResponseInit> {
context.log(`Http function processed request for url "${request.url}"`);
return {
status: 200,
jsonBody: {
env: process.env
}
};
};
app.http('status', {
route: "status",
methods: ['GET'],
authLevel: 'anonymous',
handler: status
});
Локальная разработка функций с помощью Visual Studio Code и расширений
Создайте первую функцию с помощью Visual Studio Code. Visual Studio Code упрощает работу со многими деталями с помощью расширения Azure Functions.
Это расширение позволяет создавать функции JavaScript и TypeScript на основе распространенных шаблонов.
Интеграция с другими службами Azure
Бессерверные функции изменяют значительную часть конфигурации и управления сервера, что позволяет вам сосредоточиться только на нужном коде.
- Функции с низким кодом. С помощью функций Azure вы создаете функции, активированные другими службами Azure или выводим в другие службы Azure с помощью привязок триггеров. Модель программирования версии 4 регистрирует все триггеры и привязки непосредственно в коде, что делает конфигурацию безопасной и интуитивно понятной.
- Функции с высоким кодом. Для получения дополнительных средств управления используйте пакеты SDK Azure для координации и управления другими службами Azure. Используйте управляемые удостоверения для безопасной проверки подлинности функций с другими ресурсами Azure без управления учетными данными.