- tocdepth
2
Настройка 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.
В боковом меню слева выберите
.Нажмите 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 json import base64 import telebot import logging import os API_TOKEN = json.loads(os.environ['RUNTIME_USERDATA'])['token'] logger = telebot.logger telebot.logger.setLevel(logging.INFO) bot = telebot.TeleBot(API_TOKEN, threaded=False) def process_event(event): # Get telegram webhook json from event request_body_dict = json.loads(base64.b64decode(event['body'])) # Parse updates from json update = telebot.types.Update.de_json(request_body_dict) # Run handlers and etc for updates bot.process_new_updates([update]) def handler (event, context): # Process event from cloud and respond process_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.
для Dev & Test