在Golang应用程序中使用AWS参数存储的实例

104 阅读1分钟

使用AWS参数存储服务是非常简单和容易的。在这个例子中,我们只是在获取我们之前保存在参数存储中的内容。

package main

import (
	"context"
	"fmt"
	"log"

	"github.com/aws/aws-sdk-go/aws"
	"github.com/aws/aws-sdk-go/aws/session"
	"github.com/aws/aws-sdk-go/service/ssm"
)

func main() {
	ses, err := session.NewSessionWithOptions(session.Options{
		Profile: "localstack",
		Config: aws.Config{
			Region:           aws.String("eu-west-1"),
			Endpoint:         aws.String("http://localhost:4566"),
		},
	})
	if err != nil {
		log.Fatalln(err)
	}

	client := ssm.New(ses)

	res, err := client.GetParametersWithContext(context.Background(), &ssm.GetParametersInput{
		Names: aws.StringSlice([]string{
			"/dev/user/cassandra/hosts",
			"/dev/user/cassandra/port",
			"/dev/auth/rsa/public-key",
		}),
	})
	if err != nil {
		fmt.Println(err)
	}

	for _, param := range res.Parameters {
		fmt.Println(*param.Type)
		fmt.Println(*param.Name)
		fmt.Println(*param.Value)
	}
}