# Creating AWS Lambda layers

I was asked to help create AWS Lambda layers because a customer wasn't sure how the folder structure works.

For example, this is a helper file named `helpers.js`.

```javascript
'use strict';

const log = async (func, msg) => {
  console.log(func, msg);
};

const is_valid_format_email = (email) => {
  const regex = /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@\w+([\.-]?\w+)*(\.\w{2,40})+$/i;
  return regex.test(email);
};

const is_valid_domain_email = (domain, email) => {
  const parts = email.split('@');
  if (parts.length == 2) {
    if (parts[1] == domain) {
      const regex = /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")$/i;
      return regex.test(parts[0]);
    } else {
      return false;
    }
  } else {
    return false;
  }
};

const is_valid_password = (password) => {
  const regex = /^(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$&*])(?=.*[0-9]).{12,64}$/;
  return regex.test(password);
};

exports.log = log;
exports.is_valid_format_email = is_valid_format_email;
exports.is_valid_domain_email = is_valid_domain_email;
exports.is_valid_password = is_valid_password;
```

The folder structure should be like this:

*   `Top-folder`
    
    *   `nodejs`
        
        *   `node_modules`
            
            *   `constants.js`
                
            *   `helpers.js`
                

If using AWS Console, just zip up the `nodejs` folder. You'll have a new file like this:

*   `Folder`
    
    *   `nodejs.zip`
        
    *   `nodejs`
        
        *   `node_modules`
            
            *   `constants.js`
                
            *   `helpers.js`
                

Then, just upload `nodejs.zip` to the layer. In the Lambda function, add the layer to the function and include the files as below:

```javascript
'use strict';
const constants = require('constants.js');
const helpers = require('helpers.js');
```
