Amazon Elastic File System (Amazon EFS) 統合で AWS Lambda 関数を呼び出したら、エラーメッセージが表示されました。
簡単な説明
Amazon EFS アクセスポイントを Lambda にマウントするための前提条件は次のとおりです。
- Lambda 関数の実行ロールには、次の elasticfilesysystem 権限が必要です。
elasticfilesystem:ClientMount
elasticfilesystem:ClientWrite (読み取り専用接続には不要)
- AWS ID およびアクセス管理 (IAM) ユーザーには次の権限が必要です。
elasticfilesystem:DescribeMountTargets
- EFS ファイルシステムのセキュリティグループは、Lambda セキュリティグループまたは IP アドレス範囲からの NFS (ポート 2049) インバウンドトラフィックを許可する必要があります。
- Lambda セキュリティグループは、EFS セキュリティグループまたは IP アドレス範囲への NFS (ポート 2049) アウトバウンドトラフィックを許可する必要があります。
- Lambda 関数と Amazon EFS アクセスポイントは、同じ AWS リージョンとアベイラビリティーゾーンにある必要があります。
詳細については、「Lambda 関数を使用してファイルシステムをマウントするための正しい EFS アクセスポイント設定を作成する方法」を参照してください。
解決策
Lambda 関数のエラーメッセージについては、以下のトラブルシューティング手順に従ってください。
EFSMountFailureException:
権限または設定の問題により、Lambda 関数は設定された EFS ファイルシステムをマウントできませんでした。Lambda 関数の権限を確認してください。次に、EFS ファイルシステムとアクセスポイントが存在し、使用できる状態であることを確認します。詳細については、「関数が EFS ファイルシステムをマウントできませんでした」を参照してください。
EFSMountConnectivityException:
Lambda 関数は、NFS プロトコル (TCP ポート 2049) で設定された EFS ファイルシステムにネットワーク接続できませんでした。Amazon Virtual Private Cloud (Amazon VPC) サブネットのセキュリティグループとルーティング設定を確認します。詳細については、「関数が EFS ファイルシステムに接続できませんでした」を参照してください。
EFSMountTimeoutException:
Lambda 関数は設定された EFS ファイルシステムにネットワーク接続できましたが、マウント操作がタイムアウトしました。Lambda 関数の呼び出しを再試行してください。Lambda 関数が再びタイムアウトになった場合は、関数の同時実行を制限して EFS ファイルシステムの負荷量を減らします。詳細については、「タイムアウトのため、関数が EFS ファイルシステムをマウントできませんでした」を参照してください。
PermissionError: Permission denied: '/mnt/xyz/abc':
Lambda は指定された Amazon EFS アクセスポイントにアクセスできません。Amazon EFS アクセスポイントのトラブルシューティングについては、「一般的な EFS アクセスポイント設定とは?」を参照してください。
詳細については、「Lambda での呼び出しに関する問題のトラブルシューティング」を参照してください。
関連情報
Amazon EFS アクセスポイントでの作業