Создание таймера, который вызывает контейнер
Создайте таймер, который будет вызывать контейнер Serverless Containers каждую минуту.
Перед началом работы
- Создайте контейнер, который хотите вызывать по таймеру. Примеры приложений и Dockerfile.
- Создайте сервисный аккаунт, от имени которого будет вызываться контейнер, и назначьте ему роль
serverless-containers.containerInvoker
.
Создайте таймер
Примечание
Триггер начинает работать в течение 5 минут после создания.
-
В консоли управления
перейдите в каталог, в котором хотите создать таймер. -
Выберите сервис Serverless Containers.
-
На панели слева выберите
Триггеры. -
Нажмите кнопку Создать триггер.
-
В блоке Базовые параметры:
- Введите имя триггера —
timer
. - В поле Тип выберите
Таймер
. - В поле Запускаемый ресурс выберите
Контейнер
.
- Введите имя триггера —
-
В блоке Настройки таймера введите
* * ? * * *
или выберитеКаждую минуту
. -
В блоке Настройки контейнера выберите его и сервисный аккаунт, от имени которого он будет вызываться.
-
Нажмите кнопку Создать триггер.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы создать триггер, который вызывает контейнер каждую минуту, выполните команду:
yc serverless trigger create timer \
--name timer \
--cron-expression '* * ? * * *' \
--invoke-container-id <идентификатор_контейнера> \
--invoke-container-service-account-id <идентификатор_сервисного_аккаунта>
Где:
--name
— имя таймера.--cron-expression
— расписание вызова контейнера в формате cron-выражения.--invoke-container-id
— идентификатор контейнера.--invoke-container-service-account-id
— идентификатор сервисного аккаунта с правами на вызов контейнера.
Результат:
id: a1sp9tj1jhar********
folder_id: b1g4j6o69kqj********
created_at: "2023-03-16T17:45:23.145213360Z"
name: timer
rule:
timer:
cron_expression: '* * ? * * *'
invoke_container_with_retry:
container_id: bbavvhra8ekc********
service_account_id: aje1ki4ae68u********
status: ACTIVE
Создать таймер можно с помощью метода API create.
Проверьте результат
Чтобы проверить, что таймер работает корректно, посмотрите логи контейнера. В них должно отображаться, что контейнер вызывается каждую минуту.
- В консоли управления
перейдите в каталог, в котором находится контейнер. - Выберите сервис Serverless Containers.
- Нажмите на контейнер, журнал вызовов которого хотите посмотреть.
- В открывшемся окне перейдите в раздел Логи и укажите период, за который хотите их посмотреть. По умолчанию задан период 1 час.