Porquê o GCP?
Ao escrever telegramas para bots, me deparei com a questão de como fazer com que o bot funcione constantemente com rapidez e liberdade. As opções com Heroku e Pythonanywhere têm limites muito pequenos se você tiver mais de um bot. Então eu decidi usar o GCP. A plataforma oferece US $ 300 por ano grátis + grandes descontos no uso desses fundos (até 94%).Como hospedar seu bot?
Etapa 1. Registre-se no GCP
Acesse o site do GCP e clique em Introdução gratuitamente .Digite seus dados e cartão. O dinheiro do cartão não será debitado se você não ativar uma assinatura paga.Etapa 2. Crie uma máquina virtual
Após o registro, você estará na página principal do serviço. Você precisa selecionar a guia Compute Engine na seção Resources.Você deve criar uma nova instância.Se você não implantar o banco de dados em uma máquina virtual, poderá usar g1-small, caso contrário, aconselho n1-standart.Você também precisará escolher um sistema operacional. Eu escolhi o Debian GNU / Linux 9 (stretch).Toda a VM criada. A implantação convencional leva de 1 a 5 minutos.Etapa 3. Configure a máquina virtual
Você pode se conectar via SSH a partir do seu PC ou interagir através da plataforma.Para fazer isso, clique em SSH.O seu terminal Linux será aberto em uma nova janela.Agora vamos à configuração. Primeiro, digite o comando:sudo apt-get update
para atualizar informações sobre as versões mais recentes do pacote.Depois que entramos:sudo apt-get install python3-setuptools
sudo apt-get install python3-pip
O próprio Python não precisa ser instalado, ele já existe.Agora você precisa instalar todas as bibliotecas necessárias. Há uma pequena nuance, todas as bibliotecas devem ser instaladas duas vezes:pip3 install ‘name_of_package’
para uso via comando python3 esudo pip3 install ‘name_of_package’
para systemd. Este utilitário irá ajudá-lo a iniciar o bot e reiniciá-lo se ele travar.A maneira mais fácil de executar o bot no python3, mas ele será desativado se você se desconectar. Você pode usar a tela, mas o bot não será reiniciado. Você também pode usar o crontab com verificação de portas, mas me parece que essa opção é mais complicada que o systemd.Etapa 4. Encha o bot no servidor
Existem duas maneiras de preencher seu bot. Se você não é amigo do Git, pode simplesmente arquivar o bot em .tar e enviá-lo ao servidor:Depois disso, descompacte-o com o comando:tar -xvf yourfile.tar
Agora seu bot está armazenado em uma pasta com o nome do arquivo.A segunda maneira é através do Git. Eu acho que você não deve explicar como fazer isso com pessoas que sabem como usá-lo.Depois de instalá-lo com o comando:sudo apt install git
Você pode cloná-lo na sua VM.Depois disso, vamos à configuração do systemd. Para fazer isso, vá para o diretório:cd /etc/systemd/system
E crie o arquivo bot.service:sudo nano bot.service
Digite o seguinte na janela que se abre:
[Unit]
Description=Telegram bot ' '
After=syslog.target
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/home/ /
ExecStart=/usr/bin/python3 /home/ / /bot.py
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
Feche e salve o arquivo. Fecha com o comando Ctrl + X.Depois disso, insira os comandos por sua vez:sudo systemctl daemon-reload
sudo systemctl enable bot
sudo systemctl start bot
sudo systemctl status bot
Se tudo correr bem, você verá algo como o seguinte:É isso, agora o seu bot funciona de forma independente. Espero que meu artigo o ajude a hospedar seu bot.PS
1.Verifique se há erros no seu bot
Inicie seu bot e teste sua operação antes de iniciá-lo através do systemd. Para fazer isso, vá para a pasta com o bot e execute o python.cd < >
python3 bot.py
2. Adicione codificação aos arquivos com scripts py
Insira no início do arquivo.3.Espelhos no systemd
Se você verificou o bot em busca de erros e ele funcionou bem, mas não deseja iniciar no systemd, você pode olhar para os logs e entender qual é o erro olhando para o arquivo:sudo nano /var/log/syslog
Você pode baixar esse arquivo e visualizá-lo no seu computador através do Notepad ++.Atualização 4.Bot
Se você deseja adicionar ou fazer upload de uma nova versão do bot, digite o comando:sudo systemctl stop bot
Forneça todas as manipulações necessárias. E, em seguida, insira os seguintes comandos para que funcione novamente:sudo systemctl daemon-reload
sudo systemctl start bot
sudo systemctl status bot