ТЕЛЕГРАМЕН БОТ ЗА ПОДКРЕПА НА ХРАНИТЕЛНИ ДИЕТИ.
Описание и обосновка.
Ще се извърши телеграмен бот, където се съхраняват хранителни диети (и може би повече информация, която ще се появи по време на същото), както добавени от потребителя на споменатото приложение (чрез приложение, което ще бъде създадено по-късно), както е дефинирано по подразбиране при създаване бота.
Това, което ще позволи това, ще бъде както да се консултирате с пълна диета, така и да можете да запомните кое ястие трябва да изберете, за да спазвате диетата си, без повече да вдигате телефона например. Ще бъде проучена възможността за добавяне на рецепти, за да подобрим нашите умения в кухнята.
Услуги и инструменти.
- Използване на PostgreSQL като база данни.
- Използване на Travis-ci за постигане на непрекъсната интеграция и проверка, че средата работи правилно.
- Този бот е изграден на Python 3.5.2.
- За използването и тестването на този бот се използва API на Telegram.
- Ще е необходима облачна услуга, за да можем да разположим нашия бот.
Както показва един от инструментите, за този проект е конфигурирана непрекъсната интеграция, а в този случай Travis-ci.
Тази конфигурация е свързана с акаунта в GitHub, в допълнение към създаването на .travis.yml файл, който показва всичко необходимо за настройка на теста на проекта.
За да може Травис да конфигурира нашия проект, за да може да провежда тестовете, е създаден файл за създаване. Този файл съдържа следната информация:
инсталиране: pip install -r requirements.txt
тест: cd botDietas && pytest
изпълнение: cd botDietas && python bot_dietas.py
## Внедряване в PASS.
За този важен етап създадох акаунт в Heroku и това беше първата стъпка за конфигуриране на разполагането.
След това създадох приложение със съответната база данни (от PostgreSQL) с командите heroku създаване Y. heroku addons: създаване на heroku-postgresql: hobby-dev --app botdietas, Botdietas е името на предварително създаденото приложение. За да създадете това без грешки, е необходимо да влезете в нашия акаунт с командата heroku вход.
След като приложението и DB са създадени, е необходимо да ги синхронизирате с GitHub и хранилището, където разработваме приложението, за да можем да използваме тази конфигурация по-късно.
И също така, както се вижда на следващата екранна снимка, трябва да направим внедряването на приложението да се случва автоматично, но преди да сме преминали през Travis-CI.
Следващото нещо е да зададете променливите на околната среда както на Travis-CI, така и на Heroku. Трябва да зададем като променливи на средата идентификационните данни на базата данни, създадена в Heroku и Token на бота на Telegram.
Освен това, за да Heroku знае какво да изпълни, трябва да създадем файл, наречен Procfile със следното съдържание:
работник: python botDietas/bot_dietas.py
И накрая, за да публикуваме версията на Python, по която работим, създаваме файл runtime.txt, където ще е необходимо само да добавим следното:
И сега, за да завършим, нашето приложение се стартира с командата:
heroku ps: работник на мащаба = 1 --app botdietas
Можем да видим, че приложението работи правилно чрез достъп до регистрационните файлове, предоставени от Heroku от терминала или от уеб страницата.
Ако имаме достъп от уеб страницата, ще ни бъде представено нещо подобно:
След това остава само да влезете в Telegram от бота "@DietasBot", за да тествате работата му.
Тестова среда.
Направих тази конфигурация и този етап на Ubuntu, така че инсталацията вече беше извършена от упражненията, съответстващи на същия предмет.
Първите проведени тестове бяха местните тестове и стъпките им бяха както следва.
- Създайте Dockerfile.
Основно информацията, предадена на файла, е операционната система, която ще се използва, променливите на средата и аргументите, които ще бъдат предадени на изпълнението на контейнера и това, което трябва да бъде инсталирано.
Веднъж създадени, ние пристъпваме към инсталирането на контейнера с командата sudo docker build -t dietsbot ./, където dietasbot е името на контейнера. Трябва да имаме предвид, че трябва да използваме тази команда в папката, където се намира файлът Dockerfile, за който вече говорихме.
Сега трябва да проверим дали имаме достъп до този контейнер със следния ред:
докер изпълнение -e "DATABASE_URL = XXX" -e "HOST_BD = XXXX" -e "NAME_BD = XXXX" -e "PW_BD = XXXX" -e "TOKENBOT = XXXX" -e "USER_BD = XXXX" -i -t dietasbot/кош/баш
Параметрите, които трябва да се използват, са тези идентификационни данни, съответстващи на базата данни Heroku, която бяхме използвали в предишни конфигурации, и тази на бота, който разработваме. Ако всичко е работило според очакванията, можем да преминем към конфигурацията на Docker в Docker Hub.
- Следващата стъпка е да синхронизираме нашия акаунт в Git Hub с вече създадения акаунт в Docker Hub и да създадем хранилище.
- След това, след като избутаме файла Dockerfile в нашето хранилище на Git Hub и той бъде актуализиран, хранилището на Docker Hub започва своята „Конструкция“ и правилната му работа се проверява.
- И сега, за да изтеглите, просто трябва да използвате докер издърпване mmaribanhez/botdiets, тази информация е, че можем да получим от самото хранилище.
Тук виждаме как нашето изтегляне се появява в хранилищата на нашата система.
## Дизайн на виртуална поддръжка за разполагане на приложение.
В този случай сме конфигурирали всичко необходимо за автоматично внедряване на производствени платформи.
От всички възможности използвах Vagrant, Azure, Ansible, Fabric и Supervisor. Разбира се, преди да започна да обяснявам всичко, което съм направил, накратко обяснявам какъв е всеки от тези инструменти.
Скитник: Инструмент, предназначен за създаване и конфигуриране на виртуализирани среди за разработка. За да го използваме, трябва да сме инсталирали VirtualBox, да можете да го инсталирате, като използвате следната връзка .
Лазурен: Инструмент, който осигурява управлявана среда за изпълнение и внедряване на приложения и услуги в облака.
Отговорни: Инструмент, който ви позволява да управлявате конфигурациите, осигуряването на ресурси, автоматичното внедряване на приложения и много други ИТ задачи по изчистен и лесен начин.
Плат: Python библиотека, която позволява подреждане на задачи както на локална машина, така и на отдалечена машина, така че да можем да изпълним внедряването, без да използваме ssh.
Ръководител: Мениджър на процеси за Linux.
Стъпки за разполагане.
Както вече беше посочено, трябва да сме инсталирали VirtualBox и ако е необходимо можем да използваме следното:
Сега инсталираме както Vagrant, така и лазурната приставка за Vagrant и Azure CLI.
Като следваща стъпка намираме конфигурацията на файла Vagrantfile, който е файлът, който ще дефинира нашата виртуална машина за разполагане.
Това е както следва, като можете да го видите в следната връзка и по-долу:
Трябва също да знаем, че декларираните променливи на средата са посочени в помощния файл, наречен .env и че от съображения за сигурност не е качено в това хранилище.
Някои от посочените променливи са например името на нашата машина, изображение на операционна система или мрежова конфигурация.
Използвайки vagrant up, можем да стартираме нашата машина, като също така отбележим, че благодарение на използването на Ansible можем да инсталираме пакетите. В последната част можем да видим, че файл, наречен конфигурация.имл и че със съдържанието на последното инсталираме всички необходими пакети за използването на нашето приложение.
Съдържанието е както следва.
Поръчката скитник нагоре --provider = лазурен Той е отговорен както за разполагането на машината, така и за нейното осигуряване. Има обаче конкретна команда, която би била полезна за действието по инсталиране на пакета: скитническо осигуряване.
Също така виждаме, че в директорията на това хранилище има друг файл, наречен ansible.cfg, и това се дължи на решението на грешка, възникнала при тези последни конфигурации.
След внедряването и осигуряването на машината трябва да комуникираме с нея и да можем да изпълняваме задачи от разстояние.
Разбира се, изисква предварителна инсталация. Както можете да видите в урока, командата за изпълнение е следната:
Въпреки че можем да използваме и:
Два от нашите файлове се намесват в конфигурацията на този инструмент: вътрешната конфигурация и файлът, в който ще дефинираме всички функции, с които ще комуникираме с машината и ще изпълним нашето приложение.
Съдържанието и на двете е следното:
- Файл Supervisor.conf:
- Вътрешна конфигурация.
По този начин се определя как ще правим тестовете на нашето приложение, как ще разгръщаме приложението си и как ще стартираме изпълнението на бота.
Изпълнението на този инструмент се основава на следната команда:
Ето защо изпълнението на нашата машина на тестовете, създадени в предишни етапи, е както следва:
След това, и за да автоматизирам целия процес, създадох както makefile, така и скрипт за разполагането.
Командите на създадения Makefile са следните:
- разполагане: Действие по разполагане и осигуряване на нашата машина.
- Инсталирай: Подобно на предишното действие.
- бягай: Действие за стартиране на изпълнението на бота.
- презареждане: Действие за презареждане на конфигурирания надзор.
- Изтрий: Действие по изтриване на папката, създадена при клониране на това хранилище на машината Azure.
- тест: Действие при провеждане на тестовете за проверка на правилната работа на нашата машина.
И накрая, скриптът има само следното съдържание:
Целта на този скрипт е само да стартира бота, да изисква само използването на команда.
- Нужен е хранителен курс за борба със затлъстяването
- La Fe участва в европейски проект за големи данни за подобряване на грижите за пациентите със затлъстяване
- Детско затлъстяване, предстоящ въпрос за 2020 г. - Публично
- UCA стартира проект за минимизиране на въздействието на задържането върху здравето на
- Фондацията Gasol и IFA стартират проекта PRE-SAFALÍN за предотвратяване на затлъстяването при деца