Yandex.Cloud
  • Сервисы
  • Почему Yandex.Cloud
  • Сообщество
  • Решения
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Yandex Cloud Functions
  • Начало работы
    • Обзор
    • Создание функции
      • Обзор
      • Python
      • Node.js
      • PHP
      • Go
      • Bash
    • Создание триггера
      • Обзор
      • Таймер
      • Триггер для Message Queue
      • Триггер для Object Storage
      • Триггер для Container Registry
      • Триггер для Cloud Logs
      • Триггер для Yandex IoT Core
  • Пошаговые инструкции
    • Все инструкции
    • Получение IAM-токена сервисного аккаунта с помощью функции
    • Управление правами доступа к функции
    • Управление функцией
      • Создание функции
      • Управление версиями функции
      • Работа в редакторе кода
      • Вызов функции
      • Изменение функции
      • Просмотр графиков мониторинга
      • Просмотр журнала выполнения
      • Удаление функции
    • Управление триггером
      • Получение информации о триггере
      • Создание таймера
      • Создание триггера для Message Queue
      • Создание триггера для Object Storage
      • Создание триггера для Container Registry
      • Создание триггера для Cloud Logs
      • Создание триггера для Yandex IoT Core
      • Изменение триггера
      • Удаление триггера
  • Концепции
    • Обзор
    • Функция
    • Вызов функции
    • Среда выполнения
      • Обзор
      • Окружение
      • Контекст выполнения
    • Сборщик
    • Триггер
      • Обзор
      • Таймер
      • Триггер для Message Queue
      • Триггер для Object Storage
      • Триггер для Container Registry
      • Триггер для Cloud Logs
      • Триггер для Yandex IoT Core
    • 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
  • Сценарии использования
    • Создание навыка Алисы
  • Правила тарификации
  • Управление доступом
  • Справочник API Functions
    • Аутентификация в API
    • gRPC
      • Обзор
      • FunctionService
      • OperationService
    • REST
      • Обзор
      • Function
        • Обзор
        • create
        • createVersion
        • delete
        • get
        • getVersion
        • getVersionByTag
        • list
        • listAccessBindings
        • listOperations
        • listRuntimes
        • listTagHistory
        • listVersions
        • removeTag
        • setAccessBindings
        • setTag
        • update
        • updateAccessBindings
  • Справочник API Triggers
    • Аутентификация в API
    • gRPC
      • Обзор
      • TriggerService
      • OperationService
    • REST
      • Обзор
      • Trigger
        • Обзор
        • create
        • delete
        • get
        • list
        • listOperations
        • update
  • Вопросы и ответы
  1. Пошаговые инструкции
  2. Управление функцией
  3. Управление версиями функции

Управление версиями функции

  • Получить список функций
  • Создать версию функции
    • Подготовить ZIP-архив с кодом функции
    • Создать версию функции
  • Получить информацию о версии функции
    • Получить список версий функции
    • Получить подробную информацию о версии функции
  • Добавить переменную окружения
  • Управлять тегами версии
    • Добавить тег
    • Удалить тег

Управление версиями функции позволяет:

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

Вы можете изменить код функции с помощью редактора кода.

Примечание

Для сохранения целостности связей изменение и удаление версий функции не предусмотрено. Подробнее о взаимосвязи ресурсов читайте в разделе Функция.

Получить список функций

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

Консоль управления
CLI
API
  1. В консоли управления перейдите в каталог, в котором хотите посмотреть список функций.
  2. Откройте сервис Cloud Functions.
  3. Перейдите на вкладку Функции.

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

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

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

yc serverless function list

Результат:

+----------------------+--------------------+----------------------+--------+
|          ID          |        NAME        |      FOLDER ID       | STATUS |
+----------------------+--------------------+----------------------+--------+
| b097d9ous3gep99khe83 | my-beta-function   | aoek49ghmknnpj1ll45e | ACTIVE |
+----------------------+--------------------+----------------------+--------+

Получить список функций можно с помощью метода API list.

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

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

Важно

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

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

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

    exports.handler = async function (event, context) {
        let name = 'World';
        if (event.queryStringParameters && event.queryStringParameters.name) {
            name = event.queryStringParameters.name
        }
        return {
            'statusCode': 200,
            'headers': {
                'Content-Type': 'text/plain'
            },
            'isBase64Encoded': false,
            'body': `Hello, ${name}!`
        }
    };
    
  2. Добавьте файл index.js в ZIP-архив hello-js.zip.

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

При создании версии необходимо задать следующие параметры:

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

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

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

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

yc serverless function version create \
--function-name=my-nodejs-function \
--runtime nodejs12 \
--entrypoint index.handler \
--memory 128m \
--execution-timeout 5s \
--source-path ./hello-js.zip

где:

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

Результат:

done (1s)
id: d4evvn8obisajd51plaq
function_id: d4elpv8pft639ku7k0u6
created_at: "2020-08-01T19:09:19.531Z"
runtime: nodejs12
entrypoint: index.handler
resources:
memory: "134217728"
execution_timeout: 5s
image_size: "4096"
status: ACTIVE
tags:
- $latest
log_group_id: ckg3qh8h363p40gmr9gn

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

Получить информацию о версии функции

Получить список версий функции

Консоль управления
CLI
API
  1. В консоли управления перейдите в каталог, в котором находится функция.
  2. Откройте сервис Cloud Functions.
  3. Перейдите на вкладку Функции.
  4. Выберите функцию, для которой хотите получить список версий.
  5. В разделе История версий будет показан список версий функции и подробная информация о них.

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

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

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

yc serverless function version list --function-name <имя функции>

Результат:

+----------------------+----------------------+----------+--------------+---------+---------------------+
|          ID          |     FUNCTION ID      | RUNTIME  |  ENTRYPOINT  |  TAGS   |     CREATED AT      |
+----------------------+----------------------+----------+--------------+---------+---------------------+
| b09u830mb1n32a7rj0n8 | b097d9ous3gep99khe83 | python37 | test.handler | $latest | 2019-06-13 09:23:23 |
| b09ch6pmpohfc9sogj5f | b097d9ous3gep99khe83 | python37 | test.handler | beta    | 2019-06-13 09:12:38 |
+----------------------+----------------------+----------+--------------+---------+---------------------+

Получить список версий функции можно с помощью метода API listVersions.

Получить подробную информацию о версии функции

Консоль управления
CLI
API
  1. В консоли управления перейдите в каталог, в котором находится функция.
  2. Откройте сервис Cloud Functions.
  3. Перейдите на вкладку Функции.
  4. Выберите функцию, для которой хотите получить список версий.
  5. В разделе История версий будет показан список версий функции и подробная информация о них.

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

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

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

  • ID, выполните команду:

    yc serverless function version get <идентификатор версии>
    

    Результат:

    id: b09u830mb1n32a7rj0n8
    function_id: b097d9ous3gep99khe83
    created_at: "2019-06-13T09:23:23.383Z"
    runtime: python37
    entrypoint: test.handler
    resources:
      memory: "134217728"
    execution_timeout: 5s
    image_size: "4096"
    status: ACTIVE
    tags:
    - $latest
    log_group_id: eolv6578frac08uh5h6s
    
  • TAGS, выполните команду:

    yc serverless function version get-by-tag --function-name <имя функции> --tag <тег>
    

    Результат:

    id: b09ch6pmpohfc9sogj5f
    function_id: b097d9ous3gep99khe83
    created_at: "2019-06-13T09:12:38.464Z"
    runtime: python37
    entrypoint: test.handler
    resources:
      memory: "134217728"
    execution_timeout: 5s
    image_size: "4096"
    status: ACTIVE
    tags:
    - beta
    log_group_id: eolv6578frac08uh5h6s
    

Получить подробную информацию о версии функции можно с помощью метода API getVersion.

Добавить переменную окружения

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

Консоль управления
CLI
API
  1. В консоли управления перейдите в каталог, в котором находится функция.
  2. Откройте сервис Cloud Functions.
  3. Выберите функцию, для версии которой хотите добавить переменную окружения.
  4. Перейдите на вкладку Редактор.
  5. В открывшемся окне, в блоке Параметры, укажите переменную окружения и нажмите Добавить переменную окружения. Можно добавить несколько переменных окружения.
  6. Нажмите кнопку Создать версию. Будет создана новая версия функции с указанными переменными окружения.

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

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

Чтобы добавить переменные окружения, выполните команду:

Важно

Если в прошлой версии уже были переменные окружения, они перезапишутся.

yc serverless function version create \
--function-name=<имя функции> \
--runtime <среда выполнения> \
--entrypoint <точка входа> \
--memory 128m \
--execution-timeout 5s \
--source-version-id <идентификатор версии> \
--environment <переменные окружения>

где:

--function-name — имя функции.
--runtime — среда выполнения.
--entrypoint — точка входа, указывается в формате <имя файла с функцией>.<имя обработчика>.
--memory — объем RAM.
--execution-timeout — максимальное время выполнения функции до таймаута.
--source-version-id — ID версии функции, код которой вы хотите скопировать.
--environment — переменные окружения в формате key=value. Можно указать несколько пар через запятую.

Добавить переменные окружения можно с помощью метода API createVersion.

Управлять тегами версии

При создании новой версии ей присваивается тег по умолчанию — $latest. Вы можете добавить или удалить тег версии.

Для обращения к версии функции используйте ее уникальный идентификатор. Как узнать уникальный идентификатор версии, читайте в разделе Получить список версий функции.

Добавить тег

CLI
API

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

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

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

yc serverless function version set-tag --id <идентификатор версии> --tag <тег>

Результат:

id: b09ch6pmpohfc9sogj5f
function_id: b097d9ous3gep99khe83
created_at: "2019-06-13T09:12:38.464Z"
runtime: python37
entrypoint: test.handler
resources:
  memory: "134217728"
execution_timeout: 5s
image_size: "4096"
status: ACTIVE
tags:
- beta
- first
log_group_id: eolv6578frac08uh5h6s

Добавить тег можно с помощью метода API setTag.

Удалить тег

CLI
API

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

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

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

yc serverless function version remove-tag --id <идентификатор версии> --tag <тег>

Результат:

id: b09ch6pmpohfc9sogj5f
function_id: b097d9ous3gep99khe83
created_at: "2019-06-13T09:12:38.464Z"
runtime: python37
entrypoint: test.handler
resources:
  memory: "134217728"
execution_timeout: 5s
image_size: "4096"
status: ACTIVE
tags:
- beta
log_group_id: eolv6578frac08uh5h6s

Удалить тег можно с помощью метода API removeTag.

В этой статье:
  • Получить список функций
  • Создать версию функции
  • Подготовить ZIP-архив с кодом функции
  • Создать версию функции
  • Получить информацию о версии функции
  • Получить список версий функции
  • Получить подробную информацию о версии функции
  • Добавить переменную окружения
  • Управлять тегами версии
  • Добавить тег
  • Удалить тег
Language
Вакансии
Политика конфиденциальности
Условия использования
© 2021 ООО «Яндекс.Облако»