AWS Elastic Beanstalk automation. This is the node version of Ruby Beanstalkify
Prerequisites
- Node.js: Requires Node.js version 18 or higher. Make sure to have the appropriate version installed before using Beanstalkify.
node --version
- ts-node: Necessary for running the acceptance tests. Ensure you have ts-node installed globally or as a development dependency.
npm install -g ts-node
OR
npm install ts-node --save-dev
Install
npm install beanstalkify
Usage
import Beanstalkify from 'beanstalkify';
const beanstalkify = new Beanstalkify({
credentials: {
accessKeyId: 'YOUR_ACCESS_KEY',
secretAccessKey: 'YOUR_SECRET_KEY'
},
region: 'ap-southeast-2'
});
// Deploy configuration
const deployConfig = {
archiveFilePath: 'PATH_TO_YOUR_ZIP_FILE',
environmentName: 'YOUR_ENVIRONMENT_NAME',
awsStackName: '64bit Amazon Linux 2023 v6.0.1 running Node.js 18',
tags: [
{
Key: 'YOUR_TAG_KEY',
Value: 'YOUR_TAG_VALUE'
},
// ... additional tags as needed
]
};
// Deploy using async/await
async function deployApp() {
try {
const data = await beanstalkify.deploy(deployConfig);
/*
Outputs:
{
appName: 'test-website',
appVersion: 'foo',
envName: 'test-website-prod',
envUrl: 'tech-website-12345.ap-southeast-2.elasticbeanstalk.com'
}
*/
console.log(data);
} catch (error) {
console.error('Error during deployment:', error);
}
}
deployApp();
Unit test
npm run test
Acceptance test
- Create
credentials.json
within folderacceptance
{
"credentials": {
"accessKeyId": "XXX",
"secretAccessKey": "XXX"
},
"region": "ap-southeast-2"
}
- Run
ts-node acceptance/index.ts
- It should create automatically two random elasticbeanstalk environments
Change Log
This project adheres to Semantic Versioning. Every release, along with the migration instructions, is documented on the Github Releases page.
Contributors
liamqma | lucascanavan | Maxwell2022 | joshhunt |