Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon ec2 通过CodeStar创建Amazon Linux 2实例_Amazon Ec2_Amazon Elastic Beanstalk_Amazon Linux_Amazon Linux 2_Aws Codestar - Fatal编程技术网

Amazon ec2 通过CodeStar创建Amazon Linux 2实例

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 CodeStar创建了一个带有Elastic Beanstalk的Java Web应用程序。应用程序运行正常,没有问题。但是弹性Beanstalk配置的EC2实例正在运行AmazonLinux1。我需要AmazonLinux2,因为我想在那里安装的一些东西只在AmazonLinux2上运行。用于实例的AMI是
aws-elasticbeanstalk-amzn-2018.03.0.x86_64-tomcat8.5java8-hvm-202102251130

当您通过CodeStar创建项目时,您只能选择实例类型(我选择t3.micro作为开始)。无法选择操作系统。您也不能在EC2控制台或Elastic Beanstalk控制台中指定操作系统。解决方案可能是在自动缩放组中选择不同的AMI,但我不确定CodeStar提供的模板是否适用于AL2,因为它是为AL1构建的

所以我的问题是:

  • 有没有一种简单的方法可以为CodeStar项目获取AL2实例
  • 如果唯一的解决方案是指定AMI,那么应该是哪一个,以及如何确保我的项目在那里工作

  • 有两种方法可以改变它,但我不知道强制改变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使用的演示应用程序可能无法与更新后的环境配合使用,因为它是为较旧的电子商务平台而设计的,而不是为新的电子商务平台而设计的。

    解决方案有效。你是对的,更改后应用程序无法工作。