GitHub - suzuken/yamlssm と同様にtomlでも出来るようにしました。
やってることは
- AWS System Managerで、Parameter Storeでを設定する(例えばxxxという名前でsecure stringで設定します)
- "ssm://xxxx" と書いてると、toml読み込み時にxxxの部分をdecodeする
使い方はREADMEにも書いてますが、下記のように使います
1. decode
package main import ( "fmt" toml "github.com/sioncojp/tomlssm" ) type Config struct { User string `toml:"username"` Password string `toml:"password"` } func LoadToml(c string) (*Config, error) { var config Config if _, err := toml.Decode(c, &config, "ap-northeast-1"); err != nil { return nil, err } return &config, nil } func main() { conf, err := LoadToml(` username = "test" password = "ssm://password" `) if err != nil { fmt.Println(err) } fmt.Println(conf) }
2. tomlファイルを指定する
# config.toml username = "test" password = "ssm://password"
package main import ( "fmt" toml "github.com/sioncojp/tomlssm" ) type Config struct { User string `toml:"username"` Password string `toml:"password"` } func LoadToml(c string) (*Config, error) { var config Config if _, err := toml.DecodeFile(c, &config, "ap-northeast-1"); err != nil { return nil, err } return &config, nil } func main() { conf, err := LoadToml("config.toml") if err != nil { fmt.Println(err) } fmt.Println(conf) }