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-nodeOR
npm install ts-node --save-devnpm install beanstalkifyimport 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.jsonwithin 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.