Вызов функции

    Примечание

    Чтобы любой пользователь мог вызывать функцию, необходимо сделать ее публичной. Подробнее о правах читайте в разделе Управление доступом.

    Для обращения к функции используйте ее имя или уникальный идентификатор, которые можно узнать с помощью команды:

    $ yc serverless function list
    +----------------------+--------------------+----------------------+
    |          ID          |        NAME        |      FOLDER ID       |
    +----------------------+--------------------+----------------------+
    | b097d9ous3gep99khe83 | my-beta-function   | aoek49ghmknnpj1ll45e |
    +----------------------+--------------------+----------------------+
    

    Для примера используется функция, описанная в разделе Создать версию функции.

    Вызовите функцию:

    1. В консоли управления выберите сервис Cloud Functions.
    2. Нажмите значок image в строке функции, которую вы хотите вызвать.
    3. В открывшемся окне перейдите в раздел Тестирование.
    4. В поле Тег версии укажите, какую версию функции вызвать.
    5. В поле Шаблон данных выберите один из вариантов:
      • Без шаблона — произвольный формат данных.
      • HTTP-вызов — формат данных HTTP-вызова для функции, выступающей в качестве обработчика HTTP-запросов.
      • Триггер для Message Queue — формат данных для функции, которая вызывается триггером для обработки сообщений из очереди.
    6. В поле Входные данные введите входные данные для тестирования функции.
    7. Нажмите кнопку Запустить тест.
    8. В разделе Результат тестирования в поле Состояние функции будет показан статус тестирования.
    9. В поле Ответ функции появятся обработанные функцией данные.

    Примечание

    Для обеспечения безопасности вызов функции возможен только с использованием протокола TLS.

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

    https://functions.yandexcloud.net/<ID функции>
    

    Также ссылка для вызова функции отображается в параметре http_invoke_url при создании функции.

    Вы можете вызвать определенную версию функции с помощью параметра tag. По умолчанию вызывается функция с тегом $latest.

    • Пример вызова функции без дополнительных параметров:

      https://functions.yandexcloud.net/b09bhaokchn9pnbrlseb
      

      Ответ зависит от вашей функции, в данном случае он будет таким:

      Hello, World!
      
    • Пример вызова функции с добавлением в URL параметра name:

      https://functions.yandexcloud.net/b09bhaokchn9pnbrlseb?name=<имя пользователя>
      

      На странице появится следующий ответ:

      Hello, Username!
      
    • Пример вызова определенной версии функции с добавлением в URL параметра tag:

      https://functions.yandexcloud.net/b09bhaokchn9pnbrlseb?tag=<тег версии>
      

    Вы можете вызвать определенную версию функции с помощью параметра --tag. По умолчанию вызывается функция с тегом $latest.

    • Вызовите функцию, указав в параметре имя для приветствия:

      $ yc serverless function invoke b09bhaokchn9pnbrlseb -d '{"queryStringParameters": {"name": "Username"}}'
      
      {"statusCode": 200, "headers": {"Content-Type": "text/plain"}, "isBase64Encoded": false, "body": "Hello, Username!"}
      
    • Вызовите определенную версию функции с помощью тега:

      $ yc serverless function invoke b09bhaokchn9pnbrlseb --tag <тег версии функции>
      

    Подробнее о том, какая должна быть структура функции для вызова разными способами (HTTP, CLI), читайте в разделе Вызов функции.