AWS Elastic Beanstalk automation. This is the node version of Ruby Beanstalkify
- 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
npm install beanstalkify
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();
npm run 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
This project adheres to Semantic Versioning. Every release, along with the migration instructions, is documented on the Github Releases page.
liamqma | lucascanavan | Maxwell2022 | joshhunt |