3
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?

More than 1 year has passed since last update.

【Ruby】.envファイルの導入について

Last updated at Posted at 2021-07-24

1.背景

現在、RubyにてLINEBotを開発中です。
LINEBotのIDやトークンなど、「必要だけどセキュリティ上隠したい」データを格納する
dotenvを今回使用したので、備忘録としてまとめます。

2.環境

  • mac.os バージョン10.15.6
  • Ruby 2.7.3
  • psql (PostgreSQL) 12.6

3.手順

①gemの導入

Gemfile上に下記のコードを記述してbundle(または bundle install)を行う

gem "dotenv"

②.envファイルの作成

今回はBotのアカウント(チャネル)に必要な項目を追記しました。
※隠したいファイルなのでGitの管理から外すよう.gitignoreを設定しましょう。

LINE_CHANNEL_ID = "12345678"
LINE_CHANNEL_SECRET = "XXXXXXXXX"
LINE_CHANNEL_TOKEN = "XXXXXXXXX"

③loadメソッドを記述する

.envを読み込ませたい場所(今回はapp.rbとしました)に追記します。
ENVという配列に格納されているので、ENV['設定した項目']で取り出すことができます。

app.rb
Dotenv.load
# (例)LINE_CHANNEL_ID を取り出したい
puts ENV["LINE_CHANNEL_ID"] #→12345678

4.補足1(コンソール使用時)

今回の場合、Dotenv.loadで読み込んだ後に取り出すことができるので、例えばコンソール上で取り出した場合はnil(該当の項目は未設定ということ)が返ってきます。

bot % irb
irb(main):001:0> ENV['LINE_CHANNEL_ID']
=> nil

5.補足2(隠しファイルに記述する方法)

その他にも、「~/.bash_profile」や「~/.bashrc」に記述する方法があります。
「~/.bash_profile」はログイン時のみ設定されるファイルで、「~/.bashrc」はbashを起動するたびに毎回設定されるファイルです。

シェルにbashを利用している場合、ホームディレクトリに.bashrcという隠し属性(ドット)ファイルがあります。vimをインストールしている場合、下記のコマンドで起動するので編集することで記述ができます。

ターミナル.
$ vi ~/.bashrc

bashrcに記述します。
vimはiでインサートモードに切り替わり、書き込むことができます。
escを押した後、:wqを入力すると、保存して終了できます。

~/.bashrc
export LINE_CHANNEL_ID = "12345678"

設定内容をすぐ反映したい際は、下記のコードを実行します。

ターミナル.
$ source ~/.bashrc
app.rb
puts ENV['LINE_CHANNEL_ID'] #=> 12345678

6.参考

1.dotenv でパスワードやトークンを隠す
2..gitignore の書き方
3.Ruby + SinatraでLINE Botを作ろう
4.【Ruby】ENVオブジェクトで環境変数として設定した値を取得する方法
5.パスを追加したい~.bashrc編~
6.dotenv

7.最後に

記事の感想や意見、ご指摘等あれば伝えていただけるとありがたいです。
読んでいただき、ありがとうございました。

3
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
3
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?