はじめに
公式ドキュメントに書いてあるものの、調べるのに少し時間がかかってしまったので、残しておこうかと思います。
EFSアクセスポイントの作成に失敗した話
先日、仕事でterraform
を使って階層深めのEFSアクセスポイントを作成しようとしたところ、以下のようなエラーが発生して、作成ができないことがありました。
╷
│ Error: creating EFS Access Point for File System (fs-xxxxxxxxxxxxxxxxx): ValidationException: 1 validation error detected: Value '/one/two/three/four/five' at 'rootDirectory.path' failed to satisfy constraint: Member must satisfy regular expression pattern: ^(\/|(\/(?!\.)+[^$#<>;`|&?{}^*/\n]+){1,4})$
│ {
│ RespMetadata: {
│ StatusCode: 400,
│ RequestID: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
│ },
│ Message_: "1 validation error detected: Value '/one/two/three/four/five' at 'rootDirectory.path' failed to satisfy constraint: Member must satisfy regular expression pattern: ^(\\/|(\\/(?!\\.)+[^$#<>;`|&?{}^*/\\n]+){1,4})$"
│ }
│
╵
GUI画面から作成しようとした場合は以下のように表示されます。
EFSアクセスポイントのルートディレクトリ制限
AWSのドキュメントには書かれておりますが、マウントさせるEFS側領域を設定するルートディレクトリの階層に制限があります。
- ディレクトリ階層は4階層まで
- フルパスの長さは100文字以内
今回の場合、ディレクトリ階層が5階層となっていたためエラーが発生したということでした。
おわりに
調べてみると文字数はともかく、階層数は今回の私のように引っかかる方が多いのではないかと思います。
まぁ、そもそもそんなに階層数深くするような設計にするなということなんでしょうね。