AWS Lambda Functions
npm install aquanow-users-lambdaAWS Lambda Functions
Under root directory, run
```
npm ci
Make sure your editor support eslint and prettier (maybe you'll need to add extensions for them). VS Code (https://code.visualstudio.com/) is suggested here as the editor.
#### Configure Visual Studio Code
1. Install Eslint and Prettier extensions
2. Update settings to make use of the extensions, and let Prettier auto-format the code based on the eslint config file.
More specifically: In the top nav bar of VS Code, click Code -> Preferences -> Settings -> {} at the top right coner as shown below.
!image of vscode
Update the settings as
``
{
// Editor
"explorer.confirmDelete": false,
"explorer.confirmDragAndDrop": false,
"window.openFilesInNewWindow": "on",
"window.zoomLevel": 0,
"editor.fontSize": 14,
"files.autoSave": "onFocusChange",
"editor.formatOnSave": true,
// Use eslint config as the rules for prettier
"javascript.format.enable": false, // disable default formatter
"prettier.eslintIntegration": true
}
Then restart the vs code editor, you should see Prettier automatically format your code, whenver you save your file.
!vscode auto formatting
####Setup serverless module
First install serverless globally:
``
npm install -g serverless
####Setup AWS credentials
Edit ~/.aws/credentials and ~/.aws/config files under directory. For windows users this is C:\Users\USERNAME\.aws'
credentials file:
```
[aquaNow-PROD]
aws_access_key_id=...
aws_secret_access_key=...
config file - configure profile name and cloudformation stack region
``
[aquaNow-PROD]
region=us-east-1
When deploying the project, a stage variable is used to specify which environment (AWS Account) will the lambdas (as well as other infrastructures) be deployed to. Currently the available stage variables include: PROD, DEV.
Deploy the entire project:
``
sls deploy --stage PROD
Update a function - this is useful when you want to update and test a single lambda function:
``
sls deploy --stage PROD --function orderHistory
Create API Key for a user
`
const request = require("request");
const executeAPIUrl = 'https://execute.aquanow.io'; // Adjust your url accordingly
const options = {
method: 'POST',
url: ${executeAPIUrl}/apiKey,
headers:
{
'cache-control': 'no-cache',
'Content-Type': 'application/json'
},
body: {
userId: 'fuzionadmin', // required | username
customerId: 'aquanow', // optional
},
json: true
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
`
Run scripts in script folder
Make sure you have correct aws credentials configured on your terminal. You can check aws credentials using aws configure
```
npm run script scripts/addRfqExchange.js