使用Node.js SDK构buildElastic Beanstalk

有没有人用AWS javascript sdk创build了一个弹性beanstalk应用程序? 我已经能够使用grunt更新现有的应用程序,这工作得很好。 但作为持续集成/持续部署项目的一部分,我们还希望在不存在的情况下创build应用程序。 我发现这些文档是令人困惑的,按照AWS惯常的方式,缺乏任何一种有凝聚力的例子,那就是“做这个,然后做这个”。 如果有人这样做,可以指向正确的方向,这将是一个很大的帮助。 在这个时候,我不确定这是一个单一的步骤还是多步骤的过程。

所以,下面是构build应用程序的基本节点包。 我已经上传了一个基本的API应用程序作为一个zip文件,它什么都没有。 这个想法是,一旦它被创build,我就可以使用一个咕噜脚本来更新它 – 有一些非常好的grunt模块,一旦创build就会这样做。 但最初的创作失踪了。 现在也可以轻松地添加更多的参数。

var applicationName = process.argv[2]; var environmentName = process.argv[3]; var regionName = process.argv[4]; var AWS = require('aws-sdk'); AWS.config.update({region: regionName}); var applicationParams = { ApplicationName: applicationName }; var environmentParams = { ApplicationName: applicationName, /* required */ EnvironmentName: environmentName, /* required */ VersionLabel: 'initial', SolutionStackName: "64bit Amazon Linux 2015.03 v1.4.4 running Node.js", CNAMEPrefix: applicationName, Tier: { Version: " ", Type: "Standard", Name: "WebServer" }, OptionSettings: [ { Namespace: 'aws:elasticbeanstalk:environment', OptionName: 'EnvironmentType', Value: 'SingleInstance' }, { Namespace: 'aws:autoscaling:launchconfiguration', OptionName: 'EC2KeyName', Value: 'MyPemFile' }, { Namespace: 'aws:autoscaling:launchconfiguration', OptionName: 'IamInstanceProfile', Value: 'aws-elasticbeanstalk-ec2-role' }, { Namespace: 'aws:autoscaling:launchconfiguration', OptionName: 'InstanceType', Value: 't1.micro' } ], }; var versionParams = { ApplicationName: applicationName, /* required */ VersionLabel: 'initial', /* required */ AutoCreateApplication: true, SourceBundle: { S3Bucket: 'beanstalk-test-ff', S3Key: 'test-app.zip' } }; var elasticbeanstalk = new AWS.ElasticBeanstalk(); elasticbeanstalk.createApplication(applicationParams, function(err, data) { console.log('Creating application'); console.log(data); if (err) { if (err.message.indexOf("already exists") > -1) { console.log('Application already exists, continuing on'); } else { console.log(err,err.stack); // an error occurred } } else { elasticbeanstalk.createApplicationVersion(versionParams, function(err, data) { console.log('Creating application version....'); console.log(data); if (err) console.log(err, err.stack); // an error occurred else { elasticbeanstalk.createEnvironment(environmentParams, function(err, data) { console.log('Creating application environment....'); console.log(data); if (err) console.log(err, err.stack); // an error occurred }); } }); } });