TOP ▲
itcore TOP
> TIPS
> go_ssm.php
タグ:aws go ssm GO言語 SSMパラメタ取得 | itcore 2021年
import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/ssm"
"os"
)
// 定数
const REGION = "ap-northeast-1"
// グローバル変数
var ENV = os.Getenv("ENV") // dev
func main() {
sess := session.Must(session.NewSession())
svc := ssm.New(
sess,
aws.NewConfig().WithRegion(REGION),
)
// 1つの値を取得
param_id := "/" + ENV + "/app/id" // /dev/app/id
res_ssm1, err := svc.GetParameter(&ssm.GetParameterInput{
Name: aws.String(param_id),
WithDecryption: aws.Bool(true), // 暗号化していない時も指定して問題ない
})
if err != nil {
return err.Error()
}
id1 := aws.StringValue(res_ssm1.Parameter.Value)
// /区切りのパス配下を一括取得
path := "/" + ENV + "/app" // /dev/app
res_ssm2, err := svc.GetParametersByPath(&ssm.GetParametersByPathInput{
Path: aws.String(path),
Recursive: aws.Bool(true),
WithDecryption: aws.Bool(true), // 暗号化していない時も指定して問題ない
})
if err != nil {
return err.Error()
}
list := res_ssm2.Parameters
map_ssm2 := map[string]string{}
for _, rec := range list {
map_ssm2[aws.StringValue(rec.Name)] = aws.StringValue(rec.Value)
}
id2 := map_ssm[path+"/id"] // /dev/app/id"
pw2 := map_ssm[path+"/pw"] // /dev/app/pw"
}