So, I am trying to integrate my lambda function with EFS. I am able to access the root directory (as read-only from lambda) as I can see xyz
directory available in my root dir. /mnt/
-> xyz
When I try to access /mnt/xyz
or /mnt/xyz/
then I get this error:
{
"errorType": "Error",
"errorMessage": "EACCES: permission denied, scandir '/mnt/xyz/'",
"trace": [
"Error: EACCES: permission denied, scandir '/mnt/xyz/'",
" at Object.readdirSync (fs.js:948:3)",
" at Runtime.exports.handler (/var/task/index.js:19:24)",
" at Runtime.handleOnce (/var/runtime/Runtime.js:66:25)"
]
}
Permission given to the access point: 777
Lambda integrates with Amazon Elastic File System (Amazon EFS) to support secure, shared file system access for Lambda applications. You can configure functions to mount a file system during initialization with the NFS protocol over the local network within a VPC.
You can also use resource-based policies to grant invoke permission to an AWS service that invokes a function in response to activity in your account. Open the Functions page of the Lambda console. Choose a function. Choose Configuration and then choose Permissions.
The correct permissions for all executable files within a Lambda deployment package is 644 in Unix permissions numeric notation. For folders within a deployment package, the correct permissions setting is 755.
The issue that I was facing was related to the user/group id (ownership). The file was produced by an application running on AWS EC2 instance and consumed by AWS Lambda function.
To find the owner/group of files use cmd ls -al
To find the owner/group IDs use cmd ls -n
As the file produced by the root (UID: 0) I need to set the owner id
and group id
as 0
at EFS access point
This configuration resolved my issue.
I tried to replicate the issue, and can verify that I had the same problem. The help came from the following GitHub issue: EFS permission denied.
The permission denied was caused by incorrectly set root and local mount point in the access point and lambda respectively. The correct setting that worked were:
/lambda
)/mnt/lambda
)These settings enable successful access to the EFS.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With