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

弃用

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

问题

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

EB CLI安装

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

bash 复制代码
# 拉代码
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

验证安装工具软件版本

bash 复制代码
# 查看eb版本
eb --version
# 查看java版本
java -version
# 查看maven版本
mvn -v

创建一个极简Spring工程

bash 复制代码
mkdir eb-java
cd eb-java

Application.java

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

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内容如下:

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 复制代码
<?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内容如下:

yaml 复制代码
server:
  port: 5000

Elastic Beanstalk默认找spring5000端口。

构建spring工程

bash 复制代码
mvn clean && mvn package -Dmaven.test.skip=true

运行Spring工程

bash 复制代码
java -jar target/BeanstalkJavaExample-1.0-SNAPSHOT.jar

使用EB CLI部署spring工程

配置Spring工程

Buildfile

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

bash 复制代码
build: mvn clean && mvn package -Dmaven.test.skip=true

Procfile

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

bash 复制代码
web: java -jar target/BeanstalkJavaExample-1.0-SNAPSHOT.jar

创建eb环境并部署

bash 复制代码
# 切换本地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

初始化过程如下图:

总结

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

参考

相关推荐
一定要AK8 小时前
Spring 入门核心笔记
java·笔记·spring
凯尔萨厮8 小时前
创建SpringWeb项目(Spring2.0)
spring·mvc·mybatis
牛奶咖啡1311 小时前
DevOps自动化运维实践_ansible-playbook的应用
自动化·云计算·ansible·devops·playbook·playbook的常见使用示例·playbook变量主机命令
咕噜签名-铁蛋14 小时前
腾讯云ICP备案工商信息不匹配解决办法
云计算·腾讯云
凯尔萨厮14 小时前
Spring学习笔记(基于配置文件)
spring
bobasyu14 小时前
Claude Code 源码笔记 -- queryLoop
java·笔记·spring
计算机学姐14 小时前
基于SpringBoot的高校竞赛管理系统
java·spring boot·后端·spring·信息可视化·tomcat·mybatis
砍材农夫15 小时前
spring-ai 第七模型介绍-向量模型
java·人工智能·spring
我叫张土豆16 小时前
Spring AI 集成 MCP 服务踩坑实录:SSE 与 Streamable HTTP 协议的兼容性深度剖析
人工智能·spring·http