Trigger туннель
Обзор
Триггеры - команды, выполняемые по определенному событию, tuna поддерживает два типа событий:
- HTTP запрос (Webhook)
- Письмо (SMTP)
Создание Trigger туннеля доступно только по подписке.
Пример
Все актуальные флаги, подсказки и примеры можно посмотреть вызвав справку:
tuna trigger --help
tuna trigger webhook --help
tuna trigger smtp --help
Почти для всех флагов есть аналогичные переменные окружения.
Скрипт для запуска
Например создайте скрипт /tmp/trigger.sh
который будет создавать файл и записывать в него фразу Hello tuna
:
#!/bin/sh
set -xe
touch /tmp/test_file.txt
echo "Hello tuna" > /tmp/test_file.txt
Затем сделайте его исполняемым с помощью команды chmod +x /tmp/trigger.sh
.
HTTP запрос (Webhook)
tuna trigger webhook /tmp/trigger.sh
tuna сгенерирует ссылку:
INFO[13:00:00] Welcome to Tuna
INFO[13:00:00] Forwarding tcp://ru.tuna.am:16502 -> 127.0.0.1:35839
INFO[13:00:00] Send an HTTP request to http://ru.tuna.am:16502 to execute the command "/tmp/trigger.sh"
Теперь вы можете отправить запрос по указанному адресу, а tuna выполнит указанный скрипт, например:
curl -sSLf http://ru.tuna.am:16502
Письмо (SMTP)
tuna trigger smtp /tmp/trigger.sh
tuna сгенерирует ссылку:
INFO[13:00:00] Welcome to Tuna
INFO[13:00:00] Forwarding tcp://ru.tuna.am:19284 -> 127.0.0.1:1025
INFO[13:00:00] Send a message to SMTP server ru.tuna.am:19284 to execute the command "/tmp/trigger.sh"
Теперь вы можете отправить письмо по указанному адресу, а tuna выполнит указанный скрипт, например:
curl -s \
--url "smtp://ru.tuna.am:19284" \
--mail-from "tuna@example.com" \
--mail-rcpt "tuna@example.com" \
--upload-file /tmp/trigger.sh
С указанием токена
Можно указать специфичный токен через флаг --token
или переменную окружения TUNA_TOKEN
. Переопределение происходит в соответствии с политикой очерёдности конфигурации.
tuna trigger webhook --token=tt_***
tuna trigger smtp --token=tt_***
С указанием региона для подключения
Можно указать специфичный регион через флаг --location
/-l
или переменную окружения TUNA_LOCATION
. Переопределение происходит в соответствии с политикой очерёдности конфигурации.
tuna trigger webhook --location=nl
tuna trigger smtp --location=nl
Статичный порт
В качестве значения флага --port
/-p
может выступать алиас или назначенный порт:
Можно резервировать TCP порты в личном кабинете и после перезапуска туннеля адрес останется прежним.
tuna trigger webhook --port=postgres
tuna trigger webhook --port=35000
tuna trigger smtp --port=postgres
tuna trigger smtp --port=35000