AWS Elastic Beanstalk部署极简Spring工程(EB CLI失败版)

发布于:2025-05-16 ⋅ 阅读:(9) ⋅ 点赞:(0)

弃用

这里我没有走通EB CLI方式部署。

问题

最近又加入了AWS项目组,又要再次在AWS云上面部署Spring服务,我这里使用的使用AWS中国云。需要使用AWS Elastic Beanstalk部署一个极简Spring工程。

EB CLI安装

安装EB CLI之前需要先在本地安装好Git,Python,virtualenv三个软件。安装好上面三个软件后,才能开始EB CLI的安装。

# 拉代码
git clone https://github.com/aws/aws-elastic-beanstalk-cli-setup.git
# 脚本安装
python ./aws-elastic-beanstalk-cli-setup/scripts/ebcli_installer.py
# 配置zsh
echo 'export PATH="/Users/zhangyalin/.ebcli-virtual-env/executables:$PATH"' >> ~/.zshenv && source ~/.zshenv

验证安装工具软件版本

# 查看eb版本
eb --version
# 查看java版本
java -version
# 查看maven版本
mvn -v

创建一个极简Spring工程

mkdir eb-java
cd eb-java

Application.java

./eb-java/src/main/java/com/example/Application.java内容如下:

package com.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

Controller.java

./eb-java/src/main/java/com/example/Controller.java内容如下:

package com.example;
    
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
    
@RestController
public class Controller {
    
    @GetMapping("/")
    public String index() {
       return "Hello Elastic Beanstalk!";
    }
}

pom.xml

./eb-java/pom.xml内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.2.3</version>
  </parent>

  <groupId>com.example</groupId>
  <artifactId>BeanstalkJavaExample</artifactId>
  <version>1.0-SNAPSHOT</version>

  <properties>
    <java.version>21</java.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-rest</artifactId>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>

</project>

application.properties

./eb-java/src/main/resources/application.yml内容如下:

server:
  port: 5000

Elastic Beanstalk默认找spring5000端口。

构建spring工程

mvn clean && mvn package -Dmaven.test.skip=true

运行Spring工程

java -jar target/BeanstalkJavaExample-1.0-SNAPSHOT.jar

使用EB CLI部署spring工程

配置Spring工程

Buildfile

创建eb构建应用程序配置文件:./eb-java/Buildfile。内容如下:

build: mvn clean && mvn package -Dmaven.test.skip=true

Procfile

创建eb运行应用程序配置文件:./eb-java/Procfile。内容如下:

web: java -jar target/BeanstalkJavaExample-1.0-SNAPSHOT.jar

创建eb环境并部署

# 切换本地aws环境
export AWS_PROFILE=xxx
export AWS_EB_PROFILE=xxx
# 初始化eb工程
eb init -p corretto-17 java-tutorial --region cn-north-1
eb init
eb create java-env --region cn-north-1
# 我到这一步的时候 EB CLI走不下去了,出现了如下问题,可能是我下载的cli工具是国际云的。
Invalid ARN partition

初始化过程如下图:
eb工程初始化

总结

2025年5月份 EB CLI对于中国云区,支持不太友好,劝退了,我还是回去使用web图形界面吧。

参考


网站公告

今日签到

点亮在社区的每一天
去签到