Настройка FunctionGraph
Сервис FunctionGraph позволяет размещать и запускать код (функцию) в бессерверной среде. Запуск функции происходит на определенный пользователем триггер. FunctionGraph обеспечивает высокую доступность, масштабируемость и выполняет все функции администрирования вычислительных ресурсов, также устраняя необходимость в обслуживании серверов.
В этом разделе описаны настройки для библиотеки бота Telegram и создание функции с помощью этого сервиса. В качестве примера будет использована бибилиотека telebot.
Подготовка к загрузке зависимости FunctionGraph
Для установки библиотеки telebot потребуется виртуальная машина или ваш компьютер. На данный момент Python 3.6 поддерживает версия pyTelegramBotAPI 4.7.1
-
Установите библиотеку «pyTelegramBotAPI 4.7.1», которую поддерживает версия Python 3.6.
python3.6 -m pip install pyTelegramBotAPI==4.7.1 --rootСм.также -
В текущем каталоге появится структура папок usr/.. Архивируйте содержимое каталога dist-packages. Например:
zip -r telebot.zip ./usr/local/lib/python3.6/dist-packages -
Сохраните архив «telebot.zip» на своем устройстве. Например, для сохранения на Windows подойдет графический клиент WinSCP.
Создание зависимости FunctionGraph
-
Войдите в консоль управления Advanced:
-
В списке сервисов выберите FunctionGraph.
-
В боковом меню слева выберите Functions → Dependencies.
-
Нажмите Create Dependency.
-
Заполните следующие поля:
-
Name — укажите название.
-
Runtime — выберите из списка среду выполнения Python 3.6.
-
Description (опционально) — укажите описание зависимости, например «telebot».
-
Upload Mode — выберите режим загрузки файла зависимости: Upload ZIP file — загрузка ZIP-архива. Нажмите Select File и укажите путь к файлу.
-
-
Нажмите OK для подтверждения загрузки.
Создание функции FunctionGraph
-
В списке сервисов выберите FunctionGraph.
-
Нажмите Create Function и заполните следующие параметры:
-
Function Name — задайте название функции.
-
Runtime — укажите среду выполнения функции Python 3.6.
-
App — default.
-
Enterprise Project — укажите проект или оставьте по умолчанию «default».
-
-
Перейдите к следующим настройкам, нажав Create Function.
-
На вкладке Code в поле Dependencies нажмите Select, чтобы добавить ранее созданную зависимость. В нашем примере это зависимость с описанием «telebot».
-
Нажмите ОК.
-
Скопируйте код бота и вставьте в редактор кода ниже.
# -*- coding:utf-8 -*-import jsonimport base64import telebotimport loggingimport osAPI_TOKEN = json.loads(os.environ['RUNTIME_USERDATA'])['token']logger = telebot.loggertelebot.logger.setLevel(logging.INFO)bot = telebot.TeleBot(API_TOKEN, threaded=False)def process_event(event):# Get telegram webhook json from eventrequest_body_dict = json.loads(base64.b64decode(event['body']))# Parse updates from jsonupdate = telebot.types.Update.de_json(request_body_dict)# Run handlers and etc for updatesbot.process_new_updates([update])def handler (event, context):# Process event from cloud and respondprocess_event(event)return {"statusCode": 200,"isBase64Encoded": False,"body": json.dumps(event),"headers": {"Content-Type": "application/json"}}# Handle '/start' and '/help'@bot.message_handler(commands=['help', 'start'])def send_welcome(message):bot.reply_to(message, "Hi there, I am EchoBot.")# Handle all other messages@bot.message_handler(func=lambda message: True, content_types=['text'])def echo_message(message):bot.reply_to(message, message.text) -
В правом верхнем углу нажмите Save.
-
Перейдите на вкладку Configuration для создания шифрованной переменной среды.
-
В поле Encryption Settings нажмите Add now?.
-
Из мессенджера Telegram-чата «BotFather» скопируйте токен бота. Токен находится в сообщении об успешном создании бота, после «Use this token to access the HTTP API».
-
Вставьте токен в поле Value, а в поле Key запишите слово «token».
-
Нажмите Save.
Функция в FunctionGraph настроена, теперь создайте группу API Gateway.
- Подготовка к загрузке зависимости FunctionGraph
- Создание зависимости FunctionGraph
- Создание функции FunctionGraph