LoginSignup
3
1

More than 3 years have passed since last update.

SSMパラメータストアから10件以上のデータを取得する

Posted at

SSMパラメータストアから複数のパラメータを一括で取得したい!というときにはget_parametersget_parameters_by_pathを使うといい感じに取れる。

ただ、これ知らなかったが一度に10件までしか取得できないようで、それ以降取得するには返却されるトークンを使ってリトライしないといけないらしい。

SSMパラメータストアの/HOGE/以下のパスに11件のパラメータを作っておきlambda(python3.8)で実験。

lambda
import json
import boto3

ssm = boto3.client("ssm")

def lambda_handler(event, context):
    params = dict()
    responseSSM = ssm.get_parameters_by_path(
        Path = "/HOGE",
        WithDecryption = False
    )
    for param in responseSSM["Parameters"]:
        params[ param["Name"] ] = param["Value"]

    while True:
        if not "NextToken" in responseSSM:
            break
        responseSSM = ssm.get_parameters_by_path(
            NextToken = responseSSM["NextToken"],
            Path = "/HOGE",
            WithDecryption = False
        )
        for param in responseSSM["Parameters"]:
            params[ param["Name"] ] = param["Value"]

    for prm in params:
        print(prm)

    # params["/HOGE/FUGA1"] 等そのままパラメータ名を指定してアクセスできる。

    return {
        'statusCode': 200,
        'body': json.dumps('Hello from Lambda!')
    }

IAMロールにSSMFullAccess権限を与えておき実行。

出力は以下のようになっている。10件以上取得できることが確認できた。
順番は。。謎。

log
/HOGE/FUGA1
/HOGE/FUGA10
/HOGE/FUGA11
/HOGE/FUGA2
/HOGE/FUGA4
/HOGE/FUGA5
/HOGE/FUGA6
/HOGE/FUGA7
/HOGE/FUGA8
/HOGE/FUGA9
/HOGE/FUGA3
3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1