IT

【AWS】Parameter name must be a fully qualified name.と言われたら

原因と対策

「パラメータ名は完全修飾名でなければならない」というエラーメッセージは、AWS Systems Manager パラメータストアがフルパスを要求していることを示しています。

例えば:

  • NG: sample-system/hoge/{設定したい値}
  • OK: /sample-system/hoge/{設定したい値}

ポイントは、パラメータ名の先頭に /を付けることです。


完全修飾パラメータ名とは?

完全修飾パラメータ名とは、パラメータの階層構造を表す完全なパスのことで、ファイルシステムのパスのようなものです。

例: /app/database/password

appがトップレベルの階層で、その下にdatabase、最下層にpasswordというパラメータ

この方法により、システムはパラメータを論理的に整理し、アクセス制御を容易にすることができます。


注意点

  • パラメータ名に使用できる文字は、 a-zA-Z0-9_.-/のみ

ベストプラクティス

一貫性のある命名規則

環境や用途を明確にする命名規則を採用することが望ましいです。

  • 推奨される構成

/[環境]/[アプリケーション名]/[コンポーネント]/[パラメータ名]

例:

  • 本番環境: /prod/myapp/api/endpoint
  • 開発環境: /dev/myapp/api/endpoint

この方法により、本番環境と開発環境の差が一目で分かります。

最後に

パラメーターストア、シークレットストア、環境変数の選択はどれを選べばいいか迷ってしまいますね。

私は、以下の理由からパラメーターストアで統一して運用しています。

1. 環境変数と比べて、一元管理ができる

2. 暗号化された文字列も扱える

3. boto3 からのアクセスが容易

以上、この情報が皆様のお役に立てば幸いです。

  • この記事を書いた人

緑川縁

ニートからシステムエンジニアになった人
クラウド案件をメインにやっています。
保持資格:CCNA,AWS SAA&SAP,秘書検定2級
趣味でボカロ曲作り始めました。

-IT
-