Поделиться через


Разработка бессерверных приложений 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 необходимо настроить следующие общие параметры:

  • Параметры конфигурации
    • Параметры конфигурации — создайте параметры приложений для параметров, которые не влияют на безопасность.
    • Секреты и ключи — для любых параметров, влияющих на безопасность, создайте 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.