2017-08-04 100 views
0

我想通过Terraform创建一个新的beanstalk环境并让它运行指定的war文件。使用我的terraform配置脚本,我可以创建beanstalk环境,并且还可以将war文件上载到S3存储桶。但是,我无法将这个war文件部署到这个新创建的beanstalk环境中。无法通过Terraform将新的war文件部署到beanstalk

这是我的TF配置。

resource "aws_s3_bucket_object" "myjar" { 
    bucket = "mybucketname" 
    key = "jars/myapp-1.0.war" 
    source = "localdir/myapp-1.0.war" 
    etag = "${md5(file("localdir/myapp-1.0.war"))}" 
} 

resource "aws_elastic_beanstalk_application_version" "myjarversion" { 
    application = "MyBeanstalkApplication" 
    name = "1.0" 
    bucket = "mybucketname" 
    key = "jars/myapp-1.0.war" 
} 

resource "aws_elastic_beanstalk_environment" "tftestenv" { 
    name    = "myapp-tftest" 
    application   = "MyBeanstalkApplication" 
    solution_stack_name = "64bit Amazon Linux 2017.03 v2.6.2 running Tomcat 8 Java 8" 

    setting { 
    namespace = "aws:autoscaling:asg" 
    name  = "MinSize" 
    value  = "1" 
    } 
    ... # bunch of other beanstalk settings 
} 

Terraform成功地拿起在适当的水桶和关键本地文件localdir/myapp-1.0.war,上传到S3,也是战争的文件在我的魔豆的应用程序版本相关联(我可以看到魔豆版本的应用程序列表中列出的战争当通过AWS控制台查看时)。

它也为我的应用程序创建一个myapp-tftest环境,但不会将war文件部署到它。

我在这里错过了什么?或者是不可能通过terraform将一个版本部署到beanstalk环境中(这会令人失望)。

回答

1

我没有意识到有一个选项叫version_label,通过它可以指定应用程序版本。

关闭此问题。

相关问题