Бөлісу құралы:


Настройка конечной точки HTTP в Функциях Azure

В этой статье вы узнаете, как создавать высокомасштабируемые API с помощью Функции Azure путем настройки триггера HTTP для обработки определенных действий в проектировании API. Функции Azure включает в себя коллекцию встроенных триггеров и привязок HTTP, что упрощает создание конечной точки на различных языках, включая Node.js, C#и многое другое. Вы также готовитесь к росту API, интегрируя его с Функции Azure прокси-серверами и настройкой макетных API. Так как эти задачи выполняются поверх бессерверной вычислительной среды функций, вам не нужно беспокоиться о масштабировании ресурсов. Вместо этого вы можете просто сосредоточиться на логике API.

Внимание

Функции Azure прокси-серверы — это устаревшая функция для версий 1.x до 3.x среды выполнения Функции Azure. Поддержка прокси-серверов может быть повторно включена в версии 4.x для успешного обновления приложений-функций до последней версии среды выполнения. Как можно скорее необходимо перейти на интеграцию приложений-функций с Azure Управление API. Управление API позволяет воспользоваться преимуществами более полного набора функций для определения, защиты, администрации и монетизации API на основе Функций. Дополнительные сведения см. в разделе Управление API интеграции.

Сведения о том, как повторно включить поддержку прокси-серверов в Функциях версии 4.x, см. в статье "Повторное включение прокси-серверов" в Функциях версии 4.x.

Необходимые компоненты

  • Средство тестирования HTTP, которое обеспечивает безопасность данных. Дополнительные сведения см. в средствах тестирования HTTP.

В этой статье в качестве отправной точки используются ресурсы, созданные при создании первой функции в портал Azure. Выполните шаги в этой статье для создания приложения-функции, если вы еще не сделали этого.

После создания этого приложения-функции вы можете выполнить действия, описанные в этой статье.

Вход в Azure

Войдите на портал Azure с помощью своей учетной записи Azure.

Настройка функции HTTP

По умолчанию вы настраиваете функцию триггера HTTP, чтобы принять любой метод HTTP. В этом разделе вы измените функцию, чтобы она отвечала только на запросы GET по пути /api/hello. Вы можете использовать URL-адрес по умолчанию: https://<yourapp>.azurewebsites.net/api/<funcname>?code=<functionkey>

  1. Перейдите к своей функции на портале Azure. В меню слева выберите Интеграция, а затем в разделе Триггер выберите HTTP (req) (HTTP (запрос)).

    Снимок экрана: изменение параметров триггера HTTP функции.

  2. Используйте настройки триггера HTTP, указанные в следующей таблице.

    Поле Пример значения Description
    Шаблон маршрута hello Определяет пути, используемые для вызова этой функции
    Уровень авторизации Анонимные (Необязательно.) Предоставляет доступ к функции без ключа API
    Выбранные методы HTTP GET Разрешает использовать только выбранные методы HTTP для вызова этой функции

    Так как глобальный параметр обрабатывает /api префикс базового пути в шаблоне маршрута, его не нужно задать здесь.

  3. Выберите Сохранить.

Дополнительные сведения о настройке функций HTTP см. в Функции Azure обзоре триггеров и привязок HTTP.

Тестирование API

Протестируйте функцию и убедитесь, что она работает с новой контактной зоной API.

  1. На странице "Функция" выберите "Код и тест" в меню слева.

  2. Щелкните Получить URL функции в меню сверху и скопируйте этот URL-адрес. Убедитесь, что функция теперь использует /api/hello путь.

  3. Скопируйте URL-адрес на новую вкладку браузера или предпочитаемый клиент REST. Браузеры по умолчанию используют запросы GET.

  4. Добавьте параметры в строку запроса в URL-адресе. Например, /api/hello/?name=John.

  5. Нажмите клавишу ВВОД, чтобы убедиться, что ваша функция работает. Вы увидите ответ "Hello John".

  6. Вы также можете вызвать конечную точку с другим методом HTTP, чтобы убедиться, что функция не выполняется. Для методов HTTP, отличных от GET, необходимо использовать безопасное средство тестирования HTTP.

Общие сведения о прокси-серверах

В следующем разделе вы запустите API через прокси-сервер. Функции Azure прокси-серверы позволяют пересылать запросы другим ресурсам. Вы определяете конечную точку HTTP, как и триггер HTTP. Но вместо кода, который нужно выполнять при вызове конечной точки, здесь вы предоставляете URL-адрес удаленной реализации. Это позволяет создавать несколько источников API в одну область API, что упрощает использование клиентами и полезно, если вы хотите создать API как микрослужбы.

Прокси-сервер может указывать на любой ресурс HTTP, например:

Дополнительные сведения о Функции Azure прокси см. в статье [Работа с устаревшими прокси-серверами].

Примечание.

Функции Azure прокси-серверы доступны в Функции Azure версиях 1.x до 3.x.

Создание первого прокси-сервера

В этом разделе вы создадите прокси-сервер, который будет играть роль интерфейса для вашего API.

Настройка интерфейсной среды

Повторите действия, описанные в разделе "Создание приложения-функции", чтобы создать новое приложение-функцию , в котором создается прокси-сервер. URL-адрес нового приложения служит интерфейсом для нашего API, а приложение-функция, которое вы ранее редактировали, служит серверной частью:

  1. Перейдите к своему новому приложению-функции интерфейса на портале.

  2. Разверните узел "Параметры" и выберите переменные среды.

  3. Выберите вкладку "Параметры приложения", где хранятся пары "ключ-значение".

  4. Нажмите кнопку +Добавить , чтобы создать новый параметр. Введите HELLO_HOST для имени и задайте для узла внутреннего приложения-функции значение, например<YourBackendApp>.azurewebsites.net.

    Это значение является частью URL-адреса, скопированного ранее при тестировании функции HTTP. Позже вы ссылаетесь на этот параметр в конфигурации.

    Примечание.

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

  5. Нажмите кнопку "Применить" , чтобы сохранить новый параметр. На вкладке "Параметры приложения" нажмите кнопку "Применить", а затем нажмите кнопку "Подтвердить ", чтобы перезапустить приложение-функцию.

Создание прокси-сервера в интерфейсной части

  1. Вернитесь к разделу портала для интерфейсного приложения-функции.

  2. В меню слева разверните узел "Функции", выберите "Прокси", а затем нажмите кнопку "Добавить".

  3. На странице "Создать прокси-сервер" используйте параметры в следующей таблице и нажмите кнопку "Создать".

    Поле Пример значения Description
    Имя. HelloProxy Понятное имя, используемое только для управления
    Шаблон маршрута /api/remotehello Определяет пути, используемые для вызова этого прокси-сервера
    Внутренний URL-адрес https://%HELLO_HOST%/api/hello Определяет конечную точку, к которой должен быть отправлен запрос

    Снимок экрана: параметры на странице

    Так как Функции Azure прокси-серверы не предоставляют /api префикс базового пути, его необходимо включить в шаблон маршрута. Синтаксис %HELLO_HOST% ссылается на созданный ранее параметр приложения. Разрешенный URL-адрес указывает на исходную функцию.

  4. Проверьте работу нового прокси-сервера, скопировав URL-адрес прокси-сервера и вставив его в адресную строку в браузере или в любой клиент HTTP.

    • Для анонимной функции используйте: https://YOURPROXYAPP.azurewebsites.net/api/remotehello?name="Proxies"
    • Для функции с авторизацией используйте: https://YOURPROXYAPP.azurewebsites.net/api/remotehello?code=YOURCODE&name="Proxies"

Создание макета API

Затем вы используете прокси-сервер для создания макетного API для решения. Этот прокси-сервер позволяет выполнять разработку клиентов, не требуя полной реализации серверной части. Позже в разработке можно создать новое приложение-функцию, поддерживающее эту логику, и перенаправить прокси-сервер на него:

  1. Чтобы создать этот макет API, создайте новый прокси-сервер, на этот раз с помощью редактора Служба приложений. Чтобы приступить к работе, перейдите к приложению-функции в портал Azure. Выберите функции платформы и выберите редактор Служба приложений в разделе "Средства разработки".

    Редактор службы приложений откроется в новой вкладке.

  2. В области слева щелкните proxies.json. Этот файл содержит конфигурацию всех прокси-серверов. Если вы используете любой метод развертывания функций, этот файл хранится в системе управления версиями. Дополнительные сведения об этом файле см. в статье о расширенной конфигурации прокси-серверов.

    Файл proxies.json должен отображаться следующим образом:

    {
        "$schema": "http://json.schemastore.org/proxies",
        "proxies": {
            "HelloProxy": {
                "matchCondition": {
                    "route": "/api/remotehello"
                },
                "backendUri": "https://%HELLO_HOST%/api/hello"
            }
        }
    }
    
  3. Добавьте макет API. Замените файл proxies.json следующим кодом:

    {
        "$schema": "http://json.schemastore.org/proxies",
        "proxies": {
            "HelloProxy": {
                "matchCondition": {
                    "route": "/api/remotehello"
                },
                "backendUri": "https://%HELLO_HOST%/api/hello"
            },
            "GetUserByName" : {
                "matchCondition": {
                    "methods": [ "GET" ],
                    "route": "/api/users/{username}"
                },
                "responseOverrides": {
                    "response.statusCode": "200",
                    "response.headers.Content-Type" : "application/json",
                    "response.body": {
                        "name": "{username}",
                        "description": "Awesome developer and master of serverless APIs",
                        "skills": [
                            "Serverless",
                            "APIs",
                            "Azure",
                            "Cloud"
                        ]
                    }
                }
            }
        }
    }
    

    Этот код добавляет новый прокси-сервер, GetUserByNameкоторый пропускает backendUri свойство. Вместо вызова другого ресурса он изменяет ответ по умолчанию из Функции Azure прокси-серверов с помощью переопределения ответа. Вы также можете использовать переопределения запросов и ответов с URL-адресом серверной части. Этот метод полезен при прокси-сервере в устаревшей системе, где может потребоваться изменить заголовки, параметры запроса и т. д. Дополнительные сведения о переопределении запросов и ответов см. в разделе "Изменение запросов и ответов".

  4. Протестируйте api макета, вызвав конечную точку <YourProxyApp>.azurewebsites.net/api/users/{username} с помощью браузера или любимого клиента REST. Замените {username} строковым значением, представляющим имя пользователя.

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

Дополнительные сведения о разработке API: