【AWS SSM】get_parametersの仕様【パラメータストアから値を取得する】

【AWS SSM】get_parametersの仕様【パラメータストアから値を取得する】AWS
ゆうすけ
ゆうすけ

ssm.get_parametersの仕様が分かりません。

資格マフィア
資格マフィア

ssm.get_parametersの仕様と使い方を解説しよう。

 

✔️ 本記事のテーマ

 ssm.get_parametersの仕様について

 

✔️ 読者さんへの前置きメッセージ

本記事は「ssm.get_parametersの仕様と使い方」について書いています。

 

この記事を読むことで

  • ssm.get_parameters の仕様
  • パラメータストア からパラメータを取得する関数の使い方

について理解できます。

 

ssm.get_parameters は AWS Lambda で AWS Systems Manager パラメータストア からパラメータを取得する時に使用する関数です。

 

ssm.get_parameters関数を使うことで、
簡単にパラメータストアからパラメータを取得することができます。

参考記事: 【AWS】パラメータストアを使うメリット

 

ただ、ssm.get_parametersにはいくつかの仕様上の注意点があります。

 

この記事では、ssm.get_parametersの基本的な使い方から注意点まで徹底的に解説します。

 

それでは、解説していきましょう。

ssm.get_parameters とは?

ssm.get_parameters とは?

ssm.get_parameters は Pythonライブラリ boto3 の関数です。

 

AWS Systems Manager パラメータストア から パラメータを取得する時に使用します。

 

具体的なコードで示しましょう。

import boto3


ssm = boto3.client('ssm', region)
response = ssm.get_parameters(
    Names=keys,
    WithDecryption=True,
)

 

このように ssm.get_parametersを使ってコードを書くことで、
パラメータストア に登録している Name で対象のパラメータ値を取得することができます。

 

なお、AWS LAmbda からパラメータストア に登録しているパラメータ値を取得する方法は
【AWS】パラメータストアの値をLambdaから取得する
の記事で解説しています。

 

ssm.get_parameters関数 の使い方

ssm.get_parameters関数 の使い方

それでは、ssm.get_parameters の使い方を解説していきましょう。

 

ssm.get_parameters は2つの引数をとります。

  • 第1引数: Names
  • 第2引数: WithDecryption

 

順番に解説していきましょう。

ssm.get_parameters の第1引数: Names

第1引数 Namesパラメータ名です。
String 型可変長引数です。
(ただし、この引数の上限は10)

 

渡された個数だけパラメータ名に対応する値を取得します。

 

1 request で複数のパラメータを取得することができるので非常に便利です。

ssm.get_parameters の第2引数: WithDecryption

第2引数 WithDecryptionパラメータ値の複合化のON/OFFです。
Boolean 型で指定します。

 

AWS Systems Manager パラメータストア ではパラメータ値を暗号化して登録することができます。

 

この機能により、アクセスキーなどを安全に管理することができます。

パラメータの暗号化

このように暗号化されたパラメータを取得する際に、
WithDecryption=True で指定すると、複合化して値を取得することができます。

 

ただ、暗号化されていないパラメータを取得する場合に WithDecryption=True にしても問題はないので、基本的には WithDecryption=True で指定しておけば良いのかなと思います。

 

なお、値を暗号化できることを含めた、
AWS Systems Manager パラメータストア を使用するメリットは
「」
の記事で解説しています。

ssm.get_parameters関数 の注意点

ssm.get_parameters関数 の注意点

とても便利な ssm.get_parameters ですが、使用する上で以下の注意点があります。

  • 可変長引数: Nmaes の上限は10
  • Names を複数渡した場合、return の順序が保証されてない

 

順番に解説していきましょう。

可変長引数: Names の上限は10

ssm.get_parameters の第1引数である Names は可変長引数なので、渡された引数の個数に応じて適切な処理をするのですが、Amazon GetParamters API の仕様上の制約により、この引数は11個以上渡すとErrorが生じます。

at 'names' failed to satisfy constraint: Member must have length less than or equal to 10."

 

よって、get_parameters で一度に取得するパラメータ数は10個までにする必要があります。

 

Names を複数渡した場合、return の順序が保証されてない

ssm.get_parameters の第1引数である Names に複数のワードを指定して、
複数のパラメータを取得した場合、return されるパラメータ情報は順序保証がされません。

import boto3


ssm = boto3.client('ssm', region)
response = ssm.get_parameters(
    Names='PARAM1', 'PARAM2', 'PARAM3'
    WithDecryption=True,
)

 

例えば、このように PARAM1 PARAM2  PARAM3 のパラメータ情報を取得する場合に、
return されるパラメータ情報は引数で渡した順やパラメータストアで定義されている順ではありません。

 

そのため、return されたパラメータ情報は後処理で並び替える必要があります。

 

まとめ(ssm.get_parametersの仕様)

まとめ(ssm.get_parametersの仕様)

AWS GetParamters API を使っている get_parameters の仕様について解説しました。

 

get_parameters は パラメータストアからパラメータ値を取得するための関数です。

 

get_parametersを使うことで、AWS Lambda などからパラメータストア で管理するパラメータ情報を取得することができるので便利です。

 

なお、AWS Systems Manager パラメータストア の使い方や必要な設定については
【AWS】パラメータストアの値をLambdaから取得する
の記事で解説しているのでよかったら参考にしてみてください。

 

AWS について独学で学ぶためにオススメの書籍

AWS  について独学で学ぶためにオススメの書籍

AWS は世界で最もメジャーなクラウドサービスです。

 

モダンなシステム開発のほとんどの現場で採用されているので、
いまや、プログラマーやエンジニアにとって、避けることのできないスキルでしょう。

 

もし、AWSについて独学でスキルをつけるなら、以下の書籍がオススメです。

 

この書籍はAWSについての全てを0から解説しています。

 

AWS を理解するには特有のサービスや考え方の理解が必要となります。この書籍では初学者がつまずきがちなポイントがきちんと解説されているので効率的にスキルを習得できます。
Kindle本もあるので、電子書籍派の方にもオススメできます。

 

また、AWSについて基礎から学ぶのであれば、オンラインスクールもオススメです。


オンラインスクールで学習すると、講義も分かりやすく、
サポート体制もしっかりしているので、
初学者のハードルが高いAWSを学ぶ人にもオススメです。


オンラインで無料レッスンを体験することもできるので、
自分にあっているかどうかを確かめることができます。


オススメは以下の3つです。
どのスクールも無料体験が用意されているので、
契約前に自分に最適なスクールを探すことができるでしょう。

✔️オススメのプログラミングスクール ベスト3

これらのプログラミングスクールは全て無料の体験コースがあります。

 

「雰囲気だけでも知りたい」
「プログラミング学習の全体像を知りたい」
「スクールに入るかどうか迷っている」
という方はとりあえず無料カウンセリングを受けてみることをオススメします。

 

無料カウンセリングだけなら費用はかかりませんし、
スクールに通うにしろ、独学で学ぶにしろ、
カウンセリングで得ることができる情報には価値があります

 

プログラミングスクールについては「プログラミングスクールで失敗しないためには【オススメベスト3も紹介】」の記事でも紹介しています。


気になった方はぜひチェックしてみて下さい〜!

コメント

タイトルとURLをコピーしました