Upgrade to Pro — share decks privately, control downloads, hide ads and more …

環境変数について / Introduction to Environment Variables

環境変数について / Introduction to Environment Variables

苫小牧高専 情報処理同好会 JoshoLTの発表資料

Takuya Mukohira

June 19, 2018
Tweet

More Decks by Takuya Mukohira

Other Decks in Programming

Transcript

  1. 環境変数とは • 環境変数は自分で定義することもできる • export VAR="hogehoge" とか • シェルの設定ファイルに書くとか
  $HOME/.bashrc

    とか
  $HOME/.tcshrc とか
  $HOME/.profile とか • 定義方法はシェルによって異なる
  bash: export VAR='hogehoge' # だいたいこっちでOK
  tcsh: setenv VAR 'hogehoge' # jocalc
  2. 認証情報のハードコーディングが良く ない理由 • 情報漏えいの危険性 • 完成したTwitter botをGitHubで公開!
 → 認証情報の漏えい、アカウント乗っ取り •

    ソースコードを他人に渡したい時どうする……? • 実装(コード)と設定(認証情報)が密に結合している • 手元のPCではテスト用アカウントを、本番環境では本番用 のアカウントを使う、といった事をしたい時どうする……?
  3. The Twelve Factor App • Ⅲ.設定 • Twelve Factor Appは設定を環境変数に格納し、


    設定をコードから厳密に分離する。 • 設定とは
 ・データベースサーバやキャッシュサーバ等への接続情報
 ・外部サービスの認証情報
 ・その他、デプロイごとの値 • 判断基準:コードベースを今すぐオープンソースにできるか
  4. direnvの導入 • https://github.com/direnv/direnv
 An environment switcher for the shell. •

    ディレクトリごとに環境変数を切替えられる。 • ディレクトリAに移動すると
 プロジェクトA用の環境変数が設定され、
 ディレクトリBに移動すると
 プロジェクトB用の環境変数が設定される。 • macOSやLinuxの各ディストリ、各種BSDに対応。