当前位置:  开发笔记 > 编程语言 > 正文

通过AWS SDK部署EB

如何解决《通过AWSSDK部署EB》经验,为你挑选了1个好方法。

我目前的部署过程:

    从代码创建zip文件

    使用EB CLI和.elasticbeanstalk/config.yml将代码上传到EB实例我在config.yml中指定了应用程序名称,环境名称和工件(zip文件).

我是否可以仅使用AWS SDK(nodeJS)将代码部署到EB实例?



1> Vitaly Senko..:

发现自己.您需要将ZIP文件上传到S3.然后,您需要为EB Application创建应用程序版本(使用唯一标签和ZIP文件所在的S3Key).然后,您需要使用新的Versionlabel更新EB环境(如果需要,请不要忘记指定Node start脚本).

也许这段代码对某人有用:

var aws = require('aws-sdk');
var s3 = new aws.S3();
var eb = new aws.ElasticBeanstalk();

var zipFileName = 'myCodeZipArchive.zip';
var appName = 'app-name';
var envName = 'env-name';
var s3bucket = 'my-app-source-bucket';

var label = `${appName}_${envName}_${new Date().toISOString()}`;

s3.upload({
  Bucket: s3bucket,
  Key: label,
  Body: fs.createReadStream(zipFileName)
}).promise().then(() => eb.createApplicationVersion({
  ApplicationName: appName,
  VersionLabel: label,
  SourceBundle: {
    S3Bucket: s3bucket,
    S3Key: label
  }
}).promise()).then(() => eb.updateEnvironment({
  ApplicationName: appName,
  EnvironmentName: envName,
  OptionSettings: [{
    Namespace: 'aws:elasticbeanstalk:container:nodejs',
    OptionName: 'NodeCommand',
    Value: 'npm start'
  }],
  VersionLabel: label
}).promise());

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有