DevDevデブ!!

プログラミングのこととか書きます。多分。。。

aws-sdk-go ssm Parameter Storeのラッパーを作った

みなさんがデスストランディングで遊んでる間、プライベートで実務で使うためのライブラリを作ってたんですよ。いや使うかわからんけど

github.com

なぜ作った?

aws-sdkあるあるだと思うんですけど、入力、出力がそれぞれXXXXInput, XXXXOutputとかになってて、取り回しがダルい

あとgithubに草生やしたかった

つーかkvsライクなapiになってると思ったよね。なのでredisにput, getするような感覚で使えるようにしたかった。

使い方

sess := session.New(aws.NewConfig())
 
client := pmstr.New(ssm.New(sess))
//Get StringType Paramter
param, err := client.Get("parameter_name").AsString()

//Get StringListType Parameter
params, err := client.Get("string_list_parameter_name").AsStringList()

//Get SecureStringType Parameter
secureParam, err := client.Get("secure_parameter_name").AsSecureString()

//Put StringType Parameter
output, err := client.PutString("parameter_name", "parameter_value").Do()

//Put StringListType Parameter
output, err := client.PutStringList("parameter_name", []string{"value1", "value2"}).Do()

//Put SecureStringType Parameter
output, err := client.PutSecureString("parameter_name", "parameter_value").Do()

//set parameter by method chain
output, err := client.PutString("parameter_name", "parameter_value")
    .Description("description")
    .Overwrite(true)
    .Policies("policies")
    .Do()

サポートしてる機能

  • ssm.PutParameter
  • ssm.GetParameter

にしか対応してないっす。GetParametersByPathみたいな、高機能なやつは気が向いたら作る。

あとがき

実は実務がカツカツでこんなの作ってる場合じゃねえ