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


Использование Функции Azure для разработки бессерверных решений Node.js

Функции Azure предоставляют инфраструктуру бессерверного кода, которая позволяет создавать быстро реагирующие конечные точки HTTP по запросу. Бессерверные приложения состоят из кода JavaScript или TypeScript, который выполняется в ответ на различные события.

Функции предоставляют следующие функции:

Что такое ресурс Функций?

Ресурс Функций Azure — это логическая единица для всех связанных функций в одном географическом расположении Azure. Ресурс может содержать одну функцию или многие функции, которые могут быть независимо друг от друга или связаны с входными или выходными привязками. Вы можете выбрать существующие функции или создать собственные.

К параметрам ресурсов Функций относятся типичные бессерверные конфигурации, которые определяют переменные среды, аутентификацию, ведение журнала и CORS.

Устойчивые функции с отслеживанием состояния

Устойчивые функции сохраняют состояние или управляют долго выполняющимися функциями в Azure. Создайте устойчивую функцию с помощью JavaScript.

Статические веб-приложения включают функции

При разработке статического интерфейсного клиентского приложения (например, Angular, React или Vue), которые также требуют бессерверные API, используйте статические веб-приложения с функциями.

Прокси-сервер между клиентским приложением и API

Если вы планируете развернуть API с помощью статического веб-приложения, вам не нужно прокси-серверы API клиентского приложения. Прокси-сервер устанавливается для вас, включая локальную и удаленную разработку.

При локальной разработке с помощью статического веб-приложения и Функции Azure интерфейс командной строки статических веб-приложений Azure предоставляет локальный прокси-сервер.

Общие параметры безопасности, которые необходимо настроить для экземпляра Функций Azure

Для защиты экземпляра Функций Azure необходимо настроить следующие общие параметры:

  • Параметры конфигурации
    • Параметры конфигурации — создайте параметры приложений для параметров, которые не влияют на безопасность.
    • Секреты и ключи — для любых параметров, влияющих на безопасность, создайте Azure Key Vault и извлеките эти параметры из Key Vault.
    • Параметры состояния FTP на платформе — по умолчанию разрешены все состояния. Для повышения безопасности вам нужно выбрать Только FTPS или полностью отключить FTP.
  • API 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 вы можете создавать функции, которые запускаются другими службами Azure или которые выводят данные в другую службу Azure с помощью привязок триггеров.
  • Функции с большим объемом кода: для расширенной управляемости используйте пакеты Azure SDK для координации и администрирования других служб Azure.

Следующие шаги

Дополнительные сведения о Функции Azure см. в следующей таблице с помощью Node.js

Научиться Пример
Что такое Contoso Real Estate Contoso Real Estate
Создание бессерверных API с помощью Функции Azure MicrosoftDocs/mslearn-build-api-azure-functions
Рефакторинг api Node.js Express в бессерверные ФУНКЦИИ AZURE API MicrosoftDocs/mslearn-module-shifting-nodejs-express-apis-to-serverless
Отправка и анализ файла с помощью Функции Azure и служба хранилища BLOB-объектов Azure-Samples/msdocs-storage-bind-function-service