- Архитектурный центр
- Практические материалы
- Использование Apache Spark в облаке Advanced
- Создание корпоративного хранилища данных на платформе Advanced с помощью Data Warehouse Service
- Создание корпоративного хранилища данных на платформе Advanced с помощью ClickHouse в составе кластера MapReduce
- Управление пользовательским доступом и правами в консоли облака Advanced через провайдера OAuth
- Федерация консоли облака Advanced с доменом Active Directory
- Обучающие курсы и сертификация
- Термины и сокращения
- Обратиться в поддержку
Настройка 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