설정 파일에 환경 변수를 Go로 쓰고 싶어요.
5001 단어 Go
환경 변수 쓰기
yaml이나 어떤 파일에 프로그램의 설정값을 쓸 때 환경 변수도 함께 쓰면 됩니다.그때 이 방법을 쓰면 되지 않겠습니까?먼저 한 말의 실용성이 불분명하다.
메서드
yaml로 설정 쓰기처음에는 환경 변수이고 설정이 없으면 | 오른쪽에 있는 문자열을 분리하여 값을 설정합니다.yml := `
password: $DBPASS|mypass
user: $DBUSER|root
name: $DBNAME|db_dev
host: $DBHOST|localhost
`
string의named type을 만듭니다.type F string
yaml을 받는 struct를 제작합니다.type dbSetting struct {
Password F
User F
Name F
Host F
}
받아들이다.conf := dbSetting{}
yaml.Unmarshal([]byte(yml), &conf)
F에서 수신기 방법을 만들었어요.
이런 느낌.func (f *F) Val() (string, error) {
// 空文字だったらエラー
if f.raw() == "" {
return "", errors.New("value not set")
}
// sep == "|" で分解
pieces := strings.Split(f.raw(), sep)
for _, p := range pieces {
// $から始まる = 環境変数
if strings.HasPrefix(p, envvarPrefix) {
// 環境変数が見つかったらそれを返す
if env, ok := os.LookupEnv(strings.TrimLeft(p, envvarPrefix)); ok {
return env, nil
}
continue
}
// 環境変数が見つからない || 普通の文字列の場合
return p, nil
}
return "", errors.New("value not set")
}
따라서 설정 파일에서 환경 변수의 값을 얻을 수 있습니다.conf.Password.Val()
해봤어요.
confield라고 합니다.써 보았지만 자신도 실천에서 시도해 본 적이 없어 어떻게 쓰는지 모르겠다.
https://github.com/seihmd/confield
Reference
이 문제에 관하여(설정 파일에 환경 변수를 Go로 쓰고 싶어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/seihmd/items/14e860dee0350c5fe9d9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
yaml로 설정 쓰기처음에는 환경 변수이고 설정이 없으면 | 오른쪽에 있는 문자열을 분리하여 값을 설정합니다.
yml := `
password: $DBPASS|mypass
user: $DBUSER|root
name: $DBNAME|db_dev
host: $DBHOST|localhost
`
string의named type을 만듭니다.type F string
yaml을 받는 struct를 제작합니다.type dbSetting struct {
Password F
User F
Name F
Host F
}
받아들이다.conf := dbSetting{}
yaml.Unmarshal([]byte(yml), &conf)
F에서 수신기 방법을 만들었어요.이런 느낌.
func (f *F) Val() (string, error) {
// 空文字だったらエラー
if f.raw() == "" {
return "", errors.New("value not set")
}
// sep == "|" で分解
pieces := strings.Split(f.raw(), sep)
for _, p := range pieces {
// $から始まる = 環境変数
if strings.HasPrefix(p, envvarPrefix) {
// 環境変数が見つかったらそれを返す
if env, ok := os.LookupEnv(strings.TrimLeft(p, envvarPrefix)); ok {
return env, nil
}
continue
}
// 環境変数が見つからない || 普通の文字列の場合
return p, nil
}
return "", errors.New("value not set")
}
따라서 설정 파일에서 환경 변수의 값을 얻을 수 있습니다.conf.Password.Val()
해봤어요.
confield라고 합니다.써 보았지만 자신도 실천에서 시도해 본 적이 없어 어떻게 쓰는지 모르겠다.
https://github.com/seihmd/confield
Reference
이 문제에 관하여(설정 파일에 환경 변수를 Go로 쓰고 싶어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/seihmd/items/14e860dee0350c5fe9d9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(설정 파일에 환경 변수를 Go로 쓰고 싶어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/seihmd/items/14e860dee0350c5fe9d9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)