MENU

blog
スタッフブログ

dot
[Golang] .envからデータを取得する
技術

[Golang] .envからデータを取得する

こんにちは!
ソリューションセクションの日野です。

最近めっきり寒くなってきましたね・・・
朝晩の寒暖差もすごくて体調を崩しやすくなっているので一緒に気を付けましょうね!

今回はGolangで.envの環境変数を使いたかったのでenvconfigを使って取得してみました。

ソースコード

以下の.envのデータを取得する処理を書いてみたいと思います

PORT=1234
TEST_URL=https://www.id-frontier.jp/

まずimportでライブラリを追加します

import(
	"github.com/kelseyhightower/envconfig"
)

.envから取得したデータを格納するstructを追加

type EnvTest struct {
  Port string
  TestUrl string `split_words:"true"` // .envで指定する定数に「_」が入っている場合はsplit_wordsをtrueにする
}

データ取得処理を追加

//.envデータ取得
func GetEnv() (EnvTest, error) {
	var envData EnvTest 
	envErr := envconfig.Process("", &envData)
	return envData, envErr
}

あとは.envデータを取得したい部分で上記のメソッドを呼び出すだけでEntTestのstructにデータが格納されるので使いやすくなります!

ちなみに・・・

envErr := envconfig.Process("", &envData)の””の部分に文字指定するとその文字から始まる変数をstructに格納できます

MYSQL_HOST=localhost
MYSQL_DATABASE=test_db
type EnvMysql struct{
    Host string
    Database string
}

//MysqlのEnvデータ取得
func GetMysqlEnv() (EnvMysql, error) {
	var envData EnvMysql
	envErr := envconfig.Process("mysql", &envData)
	return envData, envErr
}


参考にしたのはこちらのサイトです。

ちなみにアイキャッチはGolang公式キャラクターのGopher君です
かわいいですね!
オリジナルのThe Go gopher(Gopherくん)をもっと見たい方は公式サイトにもたまにいるので実装が詰まってイライラしたときにでも見に行ってみてはいかがでしょうか(笑)
それでは!

dot
dot
PAGETOP