Amazon ec2 通过CodeStar创建Amazon Linux 2实例
我使用AWS CodeStar创建了一个带有Elastic Beanstalk的Java Web应用程序。应用程序运行正常,没有问题。但是弹性Beanstalk配置的EC2实例正在运行AmazonLinux1。我需要AmazonLinux2,因为我想在那里安装的一些东西只在AmazonLinux2上运行。用于实例的AMI是Amazon ec2 通过CodeStar创建Amazon Linux 2实例,amazon-ec2,amazon-elastic-beanstalk,amazon-linux,amazon-linux-2,aws-codestar,Amazon Ec2,Amazon Elastic Beanstalk,Amazon Linux,Amazon Linux 2,Aws Codestar,我使用AWS CodeStar创建了一个带有Elastic Beanstalk的Java Web应用程序。应用程序运行正常,没有问题。但是弹性Beanstalk配置的EC2实例正在运行AmazonLinux1。我需要AmazonLinux2,因为我想在那里安装的一些东西只在AmazonLinux2上运行。用于实例的AMI是aws-elasticbeanstalk-amzn-2018.03.0.x86_64-tomcat8.5java8-hvm-202102251130 当您通过CodeStar创
aws-elasticbeanstalk-amzn-2018.03.0.x86_64-tomcat8.5java8-hvm-202102251130
当您通过CodeStar创建项目时,您只能选择实例类型(我选择t3.micro作为开始)。无法选择操作系统。您也不能在EC2控制台或Elastic Beanstalk控制台中指定操作系统。解决方案可能是在自动缩放组中选择不同的AMI,但我不确定CodeStar提供的模板是否适用于AL2,因为它是为AL1构建的
所以我的问题是:
有两种方法可以改变它,但我不知道强制改变EB平台版本是否不会破坏一些兼容。无论如何,如果你愿意,你可以试一试 第一个选项,您可以转到源代码repo,打开
template.yml
。查找行SolutionStackName:!参考“SolutionStackName”
并更改您想要的平台,例如:
SolutionStackName: 64bit Amazon Linux 2 v4.1.6 running Tomcat 8.5 Corretto 11
"SolutionStackName":"64bit Amazon Linux 2 v4.1.6 running Tomcat 8.5 Corretto 11",
此更改应触发重新部署您的CodeStar
项目和电子商务环境
或者第二个选项,转到CodeStar
项目的CodePiepline
,编辑Deploy
阶段的GenerateChangeSet
操作。在操作的高级设置中,转到参数覆盖
和“SolutionStackName”:“运行Tomcat 8.5 Java 8的64位Amazon Linux 2018.03 v3.4.4”,
到您想要的位置,例如:
SolutionStackName: 64bit Amazon Linux 2 v4.1.6 running Tomcat 8.5 Corretto 11
"SolutionStackName":"64bit Amazon Linux 2 v4.1.6 running Tomcat 8.5 Corretto 11",
请注意,您可能还需要向CodePipeline用于CloudFormation的角色添加权限。角色的名称可以在GenerateChangeSet
操作详细信息中找到。获得名称后,可以转到IAM控制台,添加缺少的权限。在我的测试中,我确实试图找到所需的最低权限,所以我只是添加了一堆权限(错误实践):
最后,CodeStar使用的演示应用程序可能无法与更新后的环境配合使用,因为它是为较旧的电子商务平台而设计的,而不是为新的电子商务平台而设计的。解决方案有效。你是对的,更改后应用程序无法工作。