Amazon web services 在使用CLI创建弹性beanstalk环境时,如何指定自定义amazon机器映像(AMI)ID?

Amazon web services 在使用CLI创建弹性beanstalk环境时,如何指定自定义amazon机器映像(AMI)ID?,amazon-web-services,automation,amazon-elastic-beanstalk,Amazon Web Services,Automation,Amazon Elastic Beanstalk,我从这里学习了如何将自定义AMI ID与Elastic Beanstalk控制台一起使用 如何使用aws elasticbeanstalk或eb命令执行相同的操作 我找不到如何从一开始就做这件事 如果我想使用自定义AMI ID,我觉得保存的配置文件中的platformar值必须更改 有人知道如何使用命令行指定自定义AMI ID吗?为了指定AMI ID,您需要管理更多Beanstalk环境。当您开始使用这些特性时,我建议您开始使用与Beanstalk一起工作的现有AMI(选择一个您已经测试过的AM

我从这里学习了如何将自定义AMI ID与Elastic Beanstalk控制台一起使用

如何使用
aws elasticbeanstalk
eb
命令执行相同的操作

我找不到如何从一开始就做这件事

如果我想使用自定义AMI ID,我觉得保存的配置文件中的
platformar
值必须更改


有人知道如何使用命令行指定自定义AMI ID吗?

为了指定AMI ID,您需要管理更多Beanstalk环境。当您开始使用这些特性时,我建议您开始使用与Beanstalk一起工作的现有AMI(选择一个您已经测试过的AMI)

关键是AMI ID是
启动配置的一部分

CLI:

aws elasticbeanstalk创建环境--区域us-west-2--应用程序名称我的应用程序--环境名称我的环境--版本标签v1--解决方案堆栈名称“运行IIS 10.0的64位Windows Server 2016 v1.2.0”--选项设置名称空间=aws:autoscaling:launchconfiguration,选项名称=ImageId,Value=“ami-xxxxxxx”

SDK:

您可以通过createEnvironment()调用中的
选项设置指定AMI ID

示例代码:

var var params = {
  ApplicationName: "my-app", 
  CNAMEPrefix: "my-app", 
  EnvironmentName: "my-env", 
  SolutionStackName: "64bit Windows Server 2016 v1.2.0 running IIS 10.0", 
  VersionLabel: "v1",
  OptionSettings: [
    {
      Namespace: 'aws:autoscaling:launchconfiguration',
      OptionName: 'ImageId',
      Value: 'ami-xxxxxxx'
    },
  ],
 };
 elasticbeanstalk.createEnvironment(params, function(err, data) {
   if (err) console.log(err, err.stack); // an error occurred
   else     console.log(data);           // successful response
 });
本文详细讨论了上述方法:


如果我想要的
环境类型
单实例
而不是
负载平衡、自动缩放
,我如何设置AMI ID?AMI ID也在
aws:autoscaling:launchconfiguration
中为单实例指定。这也是可以设置EC2实例类型的地方。这称为Beanstalk命名空间。AWS对此有很好的文档。谢谢。我很好奇为什么EB配置可以在
.ebextensions
、saved configuration和
--option settings
中找到。这让我很困惑。为什么EB的设计者不把所有的配置放在一个地方呢?请提出一个新问题。长评论线程不好。