2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

discord bot (discord.js)を GCP 無料VM で常時実行

Posted at

ローカルPCのnode.jsをつけっぱなしにするはイヤだったので、もともと維持しているGCPの無料VMで実行させることにしました。

無料VM

https://cloud.google.com/free?hl=ja
に詳しく載っています。

VMの構築方法の詳細は、ググると詳しく載っているのと、自分の過去記事にも少し触れていますので、省略しますが、要は、e2-microという小さなサーバをUS-WEST(オレゴン)で作ると無料って感じです。
あたりさわりのない「ubuntu」で作っています。
実は、ずっと18のままだったんですが、サポート切れたので、今日、20に上げました。

nodejs インストール

nodesoource経由でインストールしてみます。

$ sudo su
# apt update
# apt upgrade
# curl -fsSL https://deb.nodesource.com/setup_23.x -o nodesource_setup.sh
# chmod 777 nodesource_setup.sh 
# ./nodesource_setup.sh 
# apt install nodejs

常時起動のために、foreverもインストールします。

# npm install -g forever

-gを忘れずに・・

動いてるか確かめます。

# node -v
# npm -v

環境移行

前回作ったBOTプログラムをこっちに持ってきます。

$ mkdir ~/discord-bot
$ cd ~/discord-bot/
$ mkdir tenki_likemark
$ cd tenki_likemark/
$ npm init
$ npm i discord.js
$ npm i axios

プログラムとconfigをコピペします。

$ vi index.js
$ vi config.json

動くかな??

$ node index.js
東京の天気👍#xxxxで起動しました!

動いたので、CTRL+C で一旦とめます。

forever

常時起動には、foreverを使います。

$ forever start index.js
warn:    --minUptime not set. Defaulting to: 1000ms
warn:    --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info:    Forever processing file: index.js
(node:79148) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
(node:79148) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(node:79148) [DEP0060] DeprecationWarning: The `util._extend` API is deprecated. Please use Object.assign() instead.

なんか、たくさんワーニングが出るな〜??
動いているか見てみます。

$ forever list
(node:79181) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
(node:79181) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(node:79181) [DEP0060] DeprecationWarning: The `util._extend` API is deprecated. Please use Object.assign() instead.
info:    Forever processes running
data:        uid  command       script   forever pid   id logfile                          uptime      
data:    [0] EMJe /usr/bin/node index.js 79159   79166    /home/hogehoge/.forever/EMJe.log 0:0:0:43.19 

動いてるっぽい。

完成

めでたしめでたし

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?