Разработка бессерверных приложений Node.js с помощью функций Azure
Функции 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 Key Vault и извлеките эти параметры из Key Vault.
- Параметры состояния FTP на платформе — по умолчанию разрешены все состояния. Для повышения безопасности вам нужно выбрать Только FTPS или полностью отключить FTP.
- CORS — настройте домены клиента. Не используйте
*
, указывая все домены. - Параметр TLS/SSL для HTTPS — по умолчанию ваш API принимает HTTP- и HTTPS-запросы. Включите Только HTTPS в параметрах TLS/SSL. Так как приложение-функция размещается в безопасном поддомене, его можно использовать немедленно (с
https
) и отложить покупку доменного имени и использовать сертификат для домена до тех пор, пока вы не будете готовы. - Слоты развертывания — создайте слот развертывания, например
stage
илиpreflight
, и отправляйте данные на такой слот. Переключите этот слот этапа на рабочую среду, когда вы будете готовы. Не получите в привычке вручную толкать на производство. Ваша база кода должна иметь возможность указать версию фиксации, которая используется со слотом.
Предварительные требования для разработки Функции 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.
Это расширение позволяет создавать функции JavaScript и TypeScript на основе распространенных шаблонов.
Интеграция с другими службами Azure
Бессерверные функции изменяют значительную часть конфигурации и управления сервера, что позволяет вам сосредоточиться только на нужном коде.
- Функции с малым количеством кода: с помощью Azure Functions вы создаете функции, которые активируются другими службами Azure или выводят данные в другие службы Azure, используя привязки триггеров .
- Функции с большим объемом кода: для расширенной управляемости используйте пакеты Azure SDK для координации и администрирования других служб Azure.