Упражнение. Обзор входных и выходных привязок

Завершено

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

На иллюстрации ниже в общих чертах показано то, что мы будем создавать.

Снимок экрана: панель кода и теста с кодом по умолчанию для шаблона функции триггера HTTP.

Параметр req является триггерной привязкой, а параметр res является выходной привязкой. Это может помочь подумать об этих параметрах как сокращения для "запроса" и "ответа".

Снимок экрана: панель кода и теста с кодом по умолчанию для шаблона функции триггера HTTP.

Параметр Request является триггерной привязкой, а параметр Response является выходной привязкой.

Создание приложения-функции

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

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

  2. В меню ресурсов или на домашней странице выберите элемент Создать ресурс. Откроется панель Создание ресурса.

  3. В меню Создать ресурс выберите Вычисления, а затем в списке результатов выберите Приложение-функция. Возможно, вам потребуется найти приложение-функцию в окне служба и Marketplace.

  4. Выберите "Потребление", а затем нажмите кнопку "Выбрать ". Откроется панель Создание приложения-функции.

  5. На вкладке Основные сведения введите указанные ниже значения для каждого параметра.

    Параметр значение Описание
    Сведения о проекте
    Отток подписок Подписка Concierge Найдите подписку Azure, которую вы хотите использовать для этого упражнения.
    Группа ресурсов В раскрывающемся списке выберите [имя группы ресурсов песочницы]. Группа ресурсов для песочницы.
    Сведения об экземпляре
    Имя приложения-функции Введите глобально уникальное имя. Это имя идентифицирует ваше новое приложение-функцию. Допустимые символы: a-z, 0-9 и -.
    Стек среды выполнения В раскрывающемся списке выберите Node.js Пример кода в этом модуле написан на JavaScript.
    Версия Примите значение по умолчанию Для этого упражнения достаточно значения по умолчанию.
    Область/регион В раскрывающемся списке выберите расположение Выберите ближайший к вам регион.
  6. Примите значения по умолчанию для всех остальных параметров. Выберите команду Просмотр и создание, чтобы проверить параметры, а затем нажмите Создать, чтобы подготовить и развернуть приложение-функцию.

  7. Развертывание может занять некоторое время. В глобальных элементах управления рядом с именем учетной записи выберите значок Уведомления и просмотрите сообщение Развертывание выполнено успешно.

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

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

  2. В меню ресурсов или на домашней странице выберите элемент Создать ресурс. Откроется панель Создание ресурса.

  3. В меню Создать ресурс выберите Вычисления, а затем в списке результатов выберите Приложение-функция. Возможно, вам потребуется найти приложение-функцию в окне служба и Marketplace.

  4. Выберите "Потребление", а затем нажмите кнопку "Выбрать ". Откроется панель Создание приложения-функции.

  5. На вкладке Основные сведения введите указанные ниже значения для каждого параметра.

    Параметр значение Описание
    Сведения о проекте
    Отток подписок Подписка Concierge Найдите подписку Azure, которую вы хотите использовать для этого упражнения.
    Группа ресурсов В раскрывающемся списке выберите [имя группы ресурсов песочницы]. Группа ресурсов для песочницы.
    Сведения об экземпляре
    Имя приложения-функции Введите глобально уникальное имя. Это имя идентифицирует ваше новое приложение-функцию. Допустимые символы: a-z, 0-9 и -.
    Стек среды выполнения В раскрывающемся списке выберите PowerShell Core Пример кода в этом модуле предназначен для PowerShell.
    Версия Примите значение по умолчанию Для этого упражнения достаточно значения по умолчанию.
    Область/регион В раскрывающемся списке выберите расположение Выберите ближайший к вам регион.
  6. Примите значения по умолчанию для всех остальных параметров. Выберите команду Просмотр и создание, чтобы проверить введенные данные, а затем нажмите Создать, чтобы подготовить и развернуть приложение-функцию.

  7. Развертывание может занять некоторое время. В глобальных элементах управления рядом с именем учетной записи выберите значок Уведомления и просмотрите сообщение Развертывание выполнено успешно.

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

Совет

Если вам не удается найти свое приложение-функцию на портале Azure, узнайте, как добавить приложения-функции в избранное на портале Azure.

Создание функции

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

  1. Нажмите кнопку "Создать функцию" в разделе "Создать" портал Azure на вкладке "Функции" на странице "Обзор".

  2. Откроется панель Создание функции.

    Снимок экрана: панель

  3. В разделе "Выбор шаблона" выберите шаблон триггераHTTP, а затем нажмите кнопку "Далее".

  4. В разделе сведения о шаблоне проверьте следующие параметры.

    • В текстовом поле "Имя функции" используйте имя httpTrigger1 по умолчанию. Azure автоматически присваивает уникальные имена создаваемым функциям. Вы можете выбрать другое имя, но не забудьте использовать значимые имена.

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

  5. Нажмите кнопку создания. Когда функция триггера распространяется в приложение-функцию, появится панель "Функции " для приложения-функции , перечисление HttpTrigger1.

  6. На панели команд выберите Получить URL-адрес функции. Откроется диалоговое окно Получение URL-адреса функции.

  7. В раскрывающемся списке выберите По умолчанию (ключ функции), а затем щелкните значок Копировать в буфер обмена в конце URL-адреса и нажмите кнопку OK, чтобы закрыть диалоговое окно.

  8. Вставьте скопированный URL-адрес функции в адресную строку новой вкладки браузера. Нажмите клавишу ВВОД, чтобы выполнить запрос в браузере. Ответ может занять несколько минут, так как приложение-функция инициализирует. Если произошла ошибка времени ожидания, обновите страницу, чтобы отправить запрос повторно.

    Когда функция возвращает ответ, в браузере отобразятся выходные данные, аналогичные приведенным ниже.

    This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.
    
  9. Добавьте следующую строку запроса &name=Joe в конец URL-адреса. Полученный URL-адрес должен иметь примерно следующий вид.

    https://example.azurewebsites.net/api/HttpTrigger1?code=AbCdEfGhIjKlMnOpQrStUvWxYz==&name=Joe

  10. Нажмите клавишу ВВОД, чтобы выполнить запрос в браузере. Когда функция возвращает ответ, в браузере отобразятся выходные данные, аналогичные приведенным ниже.

    Hello, Joe. This HTTP triggered function executed successfully.
    

    Как уже понятно из этого упражнения, вам нужно определить триггер при создании функции. У каждой функции есть один триггер. В этом примере мы используем триггер HTTP. Это означает, что функция запускается при получении HTTP-запроса. На следующем снимке экрана на языке JavaScript показана реализация из шаблона по умолчанию, которая возвращает значение параметра name, полученное в строке или в тексте запроса. Если строка запроса не была предоставлена, функция возвращает сообщение, предлагающее инициатору вызова предоставить значение имени.

    Иллюстрация триггера HTTP по умолчанию, в котором показаны параметры привязки HTTP-запроса и ответа.

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

    Откроется панель Код и тестирование для функции, в которой отображается содержимое файла index.js. Код JavaScript по умолчанию для функции должен выглядеть следующим образом.

    module.exports = async function (context, req) {
        context.log('JavaScript HTTP trigger function processed a request.');
    
        const name = (req.query.name || (req.body && req.body.name));
        const responseMessage = name
            ? "Hello, " + name + ". This HTTP triggered function executed successfully."
            : "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.";
    
        context.res = {
            // status: 200, /* Defaults to 200 */
            body: responseMessage
        };
    }
    
  12. Давайте кратко рассмотрим другой файл функции — файл конфигурации function.json. Для доступа к этому файлу выберите function.json из раскрывающегося списка путей к файлам над блоком кода. Эти данные конфигурации показаны в приведенном ниже коде JSON.

    {
        "bindings": [
        {
            "authLevel": "function",
            "type": "httpTrigger",
            "direction": "in",
            "name": "req",
            "methods": [
            "get",
            "post"
            ]
        },
        {
            "type": "http",
            "direction": "out",
            "name": "res"
        }
      ]
    }
    

    У функции есть привязка триггераreq типа httpTrigger и выходная привязка res типа http.

В приведенном выше коде функции видно, как мы обращались к полезным данным входящего HTTP-запроса с помощью параметра req. Аналогичным образом мы отправили HTTP-ответ, просто задав параметр res. Привязки действительно берут на себя часть сложной работы.

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

  1. Нажмите кнопку "Создать функцию" в разделе "Создать" портал Azure на вкладке "Функции" на странице "Обзор".

  2. Откроется панель Создание функции.

  3. В разделе "Выбор шаблона" выберите шаблон триггераHTTP, а затем нажмите кнопку "Далее".

  4. В разделе сведения о шаблоне проверьте следующие параметры.

    • В текстовом поле "Имя функции" используйте имя httpTrigger1 по умолчанию. Azure автоматически предоставляет уникальное имя при создании функции. Вы можете выбрать другое имя, но не забудьте использовать значимые имена.

    • В текстовом поле Уровень авторизации подтвердите значение по умолчанию Функция. Уровень авторизации определяет, какие ключи должны присутствовать в запросе для его выполнения. Ключи функции применяются к конкретным функциям.

      Снимок экрана: панель

  5. Нажмите кнопку создания. Для функции отобразится панель HttpTrigger1.

  6. На панели команд выберите Получить URL-адрес функции. Откроется диалоговое окно Получение URL-адреса функции.

  7. В раскрывающемся списке выберите По умолчанию (ключ функции), а затем щелкните значок Копировать в буфер обмена в конце URL-адреса и нажмите кнопку OK, чтобы закрыть диалоговое окно.

  8. Вставьте скопированный URL-адрес функции в адресную строку новой вкладки браузера. Нажмите клавишу ВВОД, чтобы выполнить запрос в браузере. Ответ может занять несколько минут, так как приложение-функция инициализирует. Если произошла ошибка времени ожидания, обновите страницу, чтобы отправить запрос повторно.

    Когда функция возвращает ответ, в браузере отобразятся выходные данные, аналогичные приведенным ниже.

    This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.
    
  9. Добавьте строку запроса &name=Joe в конец URL-адреса. Полученный URL-адрес должен иметь примерно следующий вид.

    https://example.azurewebsites.net/api/HttpTrigger1?code=AbCdEfGhIjKlMnOpQrStUvWxYz==&name=Joe

  10. Нажмите клавишу ВВОД, чтобы выполнить запрос в браузере. Когда функция возвращает ответ, в браузере отобразятся выходные данные, аналогичные приведенным ниже.

    Hello, Joe. This HTTP triggered function executed successfully.
    

    Как уже понятно из этого упражнения, вам нужно определить триггер при создании функции. У каждой функции есть один триггер. В этом примере мы используем триггер HTTP. Это означает, что функция запускается при получении HTTP-запроса. На следующем снимке экрана показана реализация из шаблона по умолчанию в PowerShell, которая с помощью командлета Push-OutputBinding возвращает значение параметра "name", которое было частью строки или текста запроса. Если строка не была предоставлена, функция возвращает сообщение, предлагающее инициатору вызова предоставить значение имени.

    Панель

  11. В меню "Функция" выберите пункт Код и тестирование. Откроется панель Код и тестирование для функции, в которой отображается содержимое файла run.ps1.

    Код PowerShell по умолчанию для функции должен выглядеть следующим образом.

    using namespace System.Net
    
    # Input bindings are passed in via param block.
    param($Request, $TriggerMetadata)
    
    # Write to the Azure Functions log stream.
    Write-Host "PowerShell HTTP trigger function processed a request."
    
    # Interact with query parameters or the body of the request.
    $name = $Request.Query.Name
    if (-not $name) {
        $name = $Request.Body.Name
    }
    
    $body = "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response."
    
    if ($name) {
        $body = "Hello, $name. This HTTP triggered function executed successfully."
    }
    
    # Associate values to output bindings by calling 'Push-OutputBinding'.
    Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
        StatusCode = [HttpStatusCode]::OK
        Body = $body
    })
    
  12. Давайте кратко рассмотрим другой файл функции — файл конфигурации function.json. Чтобы открыть файл, выберите function.json из раскрывающегося списка путей к файлам. Эти данные конфигурации показаны в приведенном ниже коде JSON.

    {
      "bindings": [
        {
          "authLevel": "function",
          "type": "httpTrigger",
          "direction": "in",
          "name": "Request",
          "methods": [
            "get",
            "post"
          ]
        },
        {
          "type": "http",
          "direction": "out",
          "name": "Response"
        }
      ]
    }
    

    Как вы видите, у этой функции есть привязка триггера Request типа httpTrigger и выходная привязка Response типа http. В приведенном выше коде функции видно, как мы обращались к полезным данным входящего HTTP-запроса с помощью параметра Request. Аналогичным образом мы отправили HTTP-ответ, просто задав параметр Response. Привязки действительно берут на себя часть сложной работы.

Изучение типов привязки

  1. В меню Функция выберите пункт Интеграция. Откроется панель Интеграция для функции.

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

    Снимок экрана: вертикальная диаграмма потока, в которой показаны триггеры и входные данные, ведущие к функции, и функция, ведущая к выходным данным.

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

  2. В поле Входные данные выберите Добавить входные данные. Появится панель Создание входных данных. Выберите раскрывающийся список для типа привязки, чтобы просмотреть список всех возможных типов входных привязок.

    Снимок экрана: параметры добавления входных данных.

    Рассмотрите как можно использовать каждую из этих привязок в решении.

    Далее в этом модуле мы добавим входные привязки, но теперь нажмите кнопку "Отмена ", чтобы закрыть эту область.

  3. Выберите элемент Добавить выходные данные в поле Выходные данные. Откроется панель Создание выходных данных. Выберите раскрывающийся список для типа привязки, чтобы просмотреть список всех возможных типов выходных привязок.

    Снимок экрана: параметры добавления выходных данных.

    Как можно видеть, доступно несколько типов выходных привязок. Далее в этом модуле мы добавим выходные привязки, но теперь нажмите кнопку "Отмена ", чтобы закрыть эту область.

  1. В меню Функция выберите пункт Интеграция. Откроется панель Интеграция для функции.

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

    Снимок экрана: горизонтальная диаграмма потока, в которой показаны триггеры и входные данные, ведущие к функции, и функция, ведущая к выходным данным.

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

  2. В поле Входные данные выберите Добавить входные данные. Появится панель Создание входных данных. Выберите раскрывающийся список для типа привязки, чтобы просмотреть список всех возможных типов входных привязок.

    Снимок экрана: параметры добавления входных данных.

    Рассмотрите как можно использовать каждую из этих привязок в решении. Существует множество вариантов на выбор.

    Далее в этом модуле мы добавим входные привязки, но теперь нажмите кнопку "Отмена ", чтобы закрыть эту область.

  3. Выберите элемент Добавить выходные данные в поле Выходные данные. Откроется панель Создание выходных данных. Выберите раскрывающийся список для типа привязки, чтобы просмотреть список всех возможных типов выходных привязок.

    Снимок экрана: параметры добавления выходных данных.

    Как можно видеть, доступно несколько типов выходных привязок. Далее в этом модуле мы добавим выходные привязки, но теперь нажмите кнопку "Отмена ", чтобы закрыть эту область.

До сих пор мы узнали, как создать приложение-функцию и добавить в нее функцию. Мы видели простую функцию в действии, которая выполняется при выполнении HTTP-запроса. Мы также изучили портал Azure и типы входных и выходных привязок, доступных для функций. В следующем уроке мы будем считывать текст из базы данных с помощью привязки для ввода.