Golangでの環境変数の設定方法
環境変数の設定方法には幾つかあるので簡単なものから紹介していきます。
export
一番一般的な方法で、簡単に設定できます。
export GO_ENV=develop
取得方法
package main import ( "log" "os" ) func main() { const env = os.Getenv("GO_ENV") log.Println(env) // develop }
起動スクリプトに設定
環境変数をいろんな値で汚くしたくない場合は下記のようにnode実行時に簡単に設定できます。取得方法は同じです。
GO_ENV=develop go run main.go
godotenv
godotenvは環境変数を設定したファイルを読み込むことで、osパッケージから環境変数にアクセスできるようにしてくれます。
godotenvはgo getでインストールします。
$ go get github.com/joho/godotenv
プロジェクトのrootディレクトリ直下にenvfileディレクトリを作成します。ディレクトリ配下に各環境で読み込みたい設定ファイルを作成し、環境変数を設定。
$ tree . . ├── envfiles │ ├── develop.env │ ├── production.env │ └── test.env └── main.go
ファイルの中身はこんな感じで設定します。
dbuser: test dbpass: 12345678
使用方法はこちら。簡単にファイルに設定した環境変数を使用できます。
package main import ( "fmt" "log" "os" "github.com/joho/godotenv" ) func main() { err := godotenv.Load(fmt.Sprintf("envfiles/%s.env", os.Getenv("GO_ENV"))) if err != nil { log.Fatal("Error loading .env file") } user := os.Getenv("DB_USER") pass := os.Getenv("DB_PASS") log.Println(user) // test log.Println(pass) // 12345678 }
起動時にGO_ENVに環境名を渡してファイルに設定した値を読み込むことでosパッケージから使えうようになります。
$ GO_ENV=test go run main.go
まとめ
- exportで設定
- 起動スクリプトに設定
- godotenvで設定し、osパッケージから使用
設定方法はたくさんあるのでプロジェクトの規模や進捗具合で最適なものを選択するのがいいかと思います。
The following two tabs change content below.
髙妻智一
2013年CyberAgent新卒入社
スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。
2018年仮想通貨のスマホウォレットを提供するGinco Incにブロックチェーンエンジニアとして入社。
最新記事 by 髙妻智一 (全て見る)
- Polkadot(Substrate)のアドレスとトランザクションについて - 2023-03-09
- 【無料公開】「Goで始めるBitcoin」3章 Bitcoinノードとの通信 技術書典8 - 2020-03-08
- エンジニアがゼロから技術ブログを書くための方法をまとめました - 2019-05-25
コメントを残す