Databaseに接続する際やAPIのキーをコードで管理したいときに、実際の他者と共有するコードに書いたりすることは絶対に避けるべきことであることは自明であると思う。
上記のようなスクリプト を共有すること自体はそれほど多くはないと思うが、先日久しぶりに振り返って、実装しなければいけない時があったので、備忘録として残しておく。また前の記事でLINE Notify APIを利用したパッケージの紹介を行った。その際にも環境変数にAPIキーを保存することを推奨したが、そこでピントこなかった人にもこの記事を参考にして欲しい。
今回はRでの作業を残しておくが、pythonで環境変数を設定&参照したいと思っている人がいれば下記の動画をおすすめする。短くまとまっているし、必要最低限の部分のみ共有されているのでとても参考になった。
基本的には.Renviron
というファイルの中で環境変数を管理する。.Renviron
とは基本的にユーザー個別で環境変数設定を行えるファイルである。
注意したいのはこれはRスクリプト を保管するファイルではないという点である。
シェルのようなコマンドラインフォーマットに則って記述された変数の集まりのようなものと自分は捉えている。
.Renviron
をエディタで開き以下のように変数を設定する。
google_key=aaaabbbbccc LINE_API_TOKEN=abcde12345
至ってシンプルである。改行にも、セミコロンやピリオドなどの指定も不要である。この記述が終わったら一度Rstudioのセッションを再起動させる必要がある。基本的に.Renviron
はセッション毎に読み込まれるファイルであることを覚えておく。
ここまでの作業が終わればあとは実際にちゃんと環境変数を参照できるか、または正しく設定されているかを確認することを推奨する。
> Sys.getenv("LINE_API_TOKEN") [1] "abcde12345"
このようにbaseRに含まれているSys.getenv()
関数を使うことで参照できる。以上。