EFSのFileSystemIdを取得方法について
BatchやプログラムでEFSのFileSystemIdを取得し、マウント作業を自動化したい時に役立つ方法。
AWS CLIを利用する。(もちろんAWS SDKも利用可能)
基本的には下記コマンドで全てのEFSの全ての詳細情報を取ることが可能。
$ aws efs describe-file-systems
上記コマンドを使って "--query" オプションを追加することで特定の情報だけをフィルタリングすることが可能。
※AWSのAPIは大体 "--filter" というサーバ側のフィルタリングオプションと "--query" というクライアント側のフィルタリングオプションが存在する。しかし、EFSの場合だと、"--filter" 機能は特に実装されてない(2022年7月時点)らしいので、"--query" オプションでフィルタリングをかけるしかない。
"--query" のフィルタリング方法はJMESPath構文を使用する。
$ aws efs describe-file-systems --query FileSystems[?Name==\`efs-test-001\`].FileSystemId
みたいに特定NameでFileSystemIdを取得することが可能。
さらにoutputのタイプを設定することで文字列のみを取得することも可能。
$ aws efs describe-file-systems --query FileSystems[?Name==\`efs-test-001\`].FileSystemId --output text
参考情報