Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
© 2022 ООО «Яндекс.Облако»
Yandex Cloud Functions
  • Сопоставление с другими сервисами Yandex Cloud
  • Начало работы
    • Обзор
    • Создание функции
      • Обзор
      • Node.js
      • Python
      • Go
      • PHP
      • Bash
      • Java
    • Создание триггера
      • Обзор
      • Таймер
      • Триггер для Message Queue
      • Триггер для Object Storage
      • Триггер для Container Registry
      • Триггер для Cloud Logs
      • Триггер для Cloud Logging
      • Триггер для Yandex IoT Core
      • Триггер для бюджетов
      • Триггер для Data Streams
  • Пошаговые инструкции
    • Все инструкции
    • Получение IAM-токена сервисного аккаунта с помощью функции
    • Подключение к управляемым БД из функции
    • Управление правами доступа к функции
    • Управление функцией
      • Создание функции
      • Управление версиями функции
      • Работа в редакторе кода
      • Вызов функции
      • Изменение функции
      • Масштабирование функции
      • Мониторинг функции
      • Просмотр журнала выполнения
      • Удаление функции
    • Управление триггером
      • Получение информации о триггере
      • Создание таймера
      • Создание триггера для Message Queue
      • Создание триггера для Object Storage
      • Создание триггера для Container Registry
      • Создание триггера для Cloud Logs
      • Создание триггера для Cloud Logging
      • Создание триггера для Yandex IoT Core
      • Создание триггера для бюджетов
      • Создание триггера для Data Streams
      • Изменение триггера
      • Мониторинг триггера
      • Удаление триггера
  • Концепции
    • Обзор
    • Функция
    • Вызов функции
    • Среда выполнения
      • Обзор
      • Окружение
      • Контекст выполнения
      • Предзагружаемая среда выполнения
    • Сборщик
    • Триггер
      • Обзор
      • Таймер
      • Триггер для Message Queue
      • Триггер для Object Storage
      • Триггер для Container Registry
      • Триггер для Cloud Logs
      • Триггер для Cloud Logging
      • Триггер для Yandex IoT Core
      • Триггер для бюджетов
      • Триггер для Data Streams
    • Dead Letter Queue
    • Лог-группа
    • Резервное копирование
    • Квоты и лимиты
  • Разработка на Node.js
    • Обзор
    • Управление зависимостями
    • Обработчик запросов
    • Контекст вызова
    • Журналирование
    • Обработка ошибок
    • Использование SDK
  • Разработка на Python
    • Обзор
    • Управление зависимостями
    • Обработчик запросов
    • Контекст вызова
    • Журналирование
    • Обработка ошибок
    • Использование SDK
  • Разработка на Go
    • Обзор
    • Управление зависимостями
    • Обработчик запросов
    • Контекст вызова
    • Журналирование
    • Обработка ошибок
    • Использование SDK
  • Разработка на PHP
    • Обзор
    • Управление зависимостями
    • Обработчик запросов
    • Контекст вызова
    • Журналирование
    • Обработка ошибок
  • Разработка на Bash
    • Обзор
    • Обработчик запросов
    • Журналирование
    • Обработка ошибок
    • Использование SDK
  • Разработка на Java
    • Обзор
    • Модель программирования
      • Обзор
      • Интерфейс Function
      • Интерфейс YcFunction
      • Класс HttpServlet
      • Spring Boot
    • Управление зависимостями
    • Обработчик запросов
    • Контекст вызова
    • Журналирование
    • Обработка ошибок
    • Использование SDK
  • Разработка на R
    • Обзор
    • Модель программирования
    • Управление зависимостями
    • Обработчик запросов
    • Контекст вызова
    • Журналирование
    • Обработка ошибок
  • Разработка на C#
    • Обзор
    • Модель программирования
      • Обзор
      • Интерфейс Function
      • Интерфейс YcFunction
    • Управление зависимостями
    • Обработчик запросов
    • Контекст вызова
    • Журналирование
    • Обработка ошибок
    • Использование SDK
  • Практические руководства
    • Создание навыка Алисы
    • Развертывание веб-приложения
    • Разработка навыка Алисы и сайта с авторизацией
    • Запись данных с устройства в Managed Service for PostgreSQL
    • Разработка Slack-бота
    • Разработка Telegram-бота
    • Подключение к базе данных YDB из функции на Python
    • Подключение к базе данных YDB из функции на Node.js
    • Конвертация видео в GIF на Python
    • Создание функции Node.js с помощью TypeScript
  • Правила тарификации
  • Управление доступом
  • Справочник API Functions
    • Аутентификация в API
    • gRPC (англ.)
      • Overview
      • FunctionService
      • OperationService
    • REST (англ.)
      • Overview
      • Function
        • Overview
        • create
        • createVersion
        • delete
        • get
        • getVersion
        • getVersionByTag
        • list
        • listAccessBindings
        • listOperations
        • listRuntimes
        • listScalingPolicies
        • listTagHistory
        • listVersions
        • removeScalingPolicy
        • removeTag
        • setAccessBindings
        • setScalingPolicy
        • setTag
        • update
        • updateAccessBindings
  • Справочник API Triggers
    • Аутентификация в API
    • gRPC (англ.)
      • Overview
      • TriggerService
      • OperationService
    • REST (англ.)
      • Overview
      • Trigger
        • Overview
        • create
        • delete
        • get
        • list
        • listOperations
        • pause
        • resume
        • update
  • Вопросы и ответы
  1. Начало работы
  2. Создание функции
  3. PHP

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

Статья создана
Yandex Cloud
  • Перед началом работы
  • Создайте функцию
  • Создайте первую версию функции
    • Подготовьте ZIP-архив с кодом функции
    • Создайте версию функции
  • Вызовите функцию
  • Что дальше

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

Перед началом работы

Создайте каталог в Yandex Cloud.

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

Консоль управления
CLI
API
Yandex Cloud Toolkit
  1. В консоли управления перейдите в каталог, в котором хотите создать функцию.
  2. Откройте сервис Cloud Functions
  3. Нажмите кнопку Создать функцию.
  4. Введите имя функции — php-function.
  5. Нажмите кнопку Создать.

Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

Чтобы создать функцию, выполните команду:

yc serverless function create --name=php-function

Результат:

id: b09bhaokchn9********
folder_id: aoek49ghmknn********
created_at: "2019-06-14T10:03:37.475Z"
name: php-function
log_group_id: eolm8aoq9vcp********
http_invoke_url: https://functions.yandexcloud.net/b09bhaokchn9********
status: ACTIVE

Создать функцию можно с помощью метода API create.

Создать функцию можно с помощью плагина Yandex Cloud Toolkit для семейства IDE на платформе IntelliJ от JetBrains.

Создайте первую версию функции

Для создания версии функции вы можете воспользоваться одним из форматов загрузки кода. Для примера будет использован ZIP-архив.

Важно

Файл больше 3,5 МБ необходимо загружать через Object Storage. Подробнее об ограничениях читайте в разделе Квоты и лимиты в Cloud Functions.

Подготовьте ZIP-архив с кодом функции

  1. Сохраните следующий код в файл с названием hello.php:

    <?php
    
    function handler () {
        $resp =  'Hello, World!';
        return [
            'statusCode' => 200,
            'body' => json_encode($resp),
        ];
    }
    
  2. Добавьте файл hello.php в ZIP-архив hello-php.zip.

Создайте версию функции

Консоль управления
CLI
API
Yandex Cloud Toolkit
  1. В консоли управления перейдите в каталог, в котором находится функция.
  2. Выберите сервис Cloud Functions.
  3. Выберите функцию php-function.
  4. В разделе Последняя версия нажмите кнопку Создать в редакторе.
  5. Задайте параметры версии:
    • Среда выполнения: php74.
    • Способ: ZIP-архив.
    • Файл: hello-php.zip.
    • Точка входа: hello.handler.
    • Таймаут, секунды: 3.
    • Память: 128 МБ.
    • Сервисный аккаунт: Не выбрано.
  6. Нажмите кнопку Создать версию.

Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

Чтобы создать версию функции, выполните команду:

yc serverless function version create \
  --function-name=php-function \
  --runtime php74 \
  --entrypoint hello.handler \
  --memory 128m \
  --execution-timeout 3s \
  --source-path ./hello-php.zip

где:

  • --function-name — имя функции, версию которой вы хотите создать.
  • --runtime — среда выполнения.
  • --entrypoint — точка входа, указывается в формате <имя файла с функцией>.<имя обработчика>.
  • --memory — объем RAM.
  • --execution-timeout — максимальное время выполнения функции до таймаута.
  • --source-path — ZIP-архив c кодом функции и необходимыми зависимостями.

Результат:

done (1s)
id: d4evvn8obisa********
function_id: d4elpv8pft63********
created_at: "2020-08-01T19:09:19.531Z"
runtime: php74
entrypoint: hello.handler
resources:
    memory: "134217728"
execution_timeout: 3s
image_size: "4096"
status: ACTIVE
tags:
- $latest
log_group_id: ckg3qh8h363p********

Создать версию функции можно с помощью метода API createVersion.

Создать версию функции можно с помощью плагина Yandex Cloud Toolkit для семейства IDE на платформе IntelliJ от JetBrains.

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

Примечание

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

Консоль управления
CLI
HTTPS
Yandex Cloud Toolkit
  1. В консоли управления перейдите в каталог, в котором находится функция.
  2. Выберите сервис Cloud Functions.
  3. Выберите функцию.
  4. Перейдите на вкладку Тестирование.
  5. В поле Тег версии укажите $latest, чтобы вызвать последнюю версию функции.
  6. В поле Шаблон данных выберите Без шаблона.
  7. Нажмите кнопку Запустить тест.
  8. В разделе Результат тестирования, в поле Состояние функции, будет показан статус тестирования. Важно: максимальное время выполнения функции до таймаута (включая начальную инициализацию при первом запуске) — 10 минут.
  9. В поле Ответ функции появится результат выполнения функции.

Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

Чтобы вызвать функцию, выполните команду:

yc serverless function invoke <идентификатор функции>

По умолчанию вызывается версия функции с тегом $latest.

Ссылку для вызова функции можно найти на вкладке Обзор, в поле Ссылка для вызова.

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

https://functions.yandexcloud.net/b09bhaokchn9pnbrlseb

На странице появится ответ:

Hello, World!

Вызвать функцию можно с помощью плагина Yandex Cloud Toolkit для семейства IDE на платформе IntelliJ от JetBrains.

Что дальше

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

Была ли статья полезна?

Language / Region
© 2022 ООО «Яндекс.Облако»
В этой статье:
  • Перед началом работы
  • Создайте функцию
  • Создайте первую версию функции
  • Подготовьте ZIP-архив с кодом функции
  • Создайте версию функции
  • Вызовите функцию
  • Что дальше