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图形界面吧。

参考

相关推荐
是乐谷3 分钟前
阿里云杭州 AI 产品法务岗位信息分享(2025 年 8 月)
java·人工智能·阿里云·面试·职场和发展·机器人·云计算
python_1361 小时前
web请求和响应
java·spring·github
青岛佰优联创新科技有限公司2 小时前
移动板房的网络化建设
服务器·人工智能·云计算·智慧城市
ciku3 小时前
Spring AI Starter和文档解读
java·人工智能·spring
javadaydayup3 小时前
Apollo 凭什么能 “干掉” 本地配置?
spring boot·后端·spring
夕阳与风馨3 小时前
三分钟搞懂云计算三大模型:SaaS、PaaS、IaaS 是怎么在业务中“各司其职”的?
后端·云计算
耳东哇7 小时前
spring ai-openai-vl模型应用qwen-vl\gpt-文字识别-java
java·人工智能·spring
weixin_307779138 小时前
AWS Lambda解压缩S3 ZIP文件流程
python·算法·云计算·aws
long31617 小时前
java 策略模式 demo
java·开发语言·后端·spring·设计模式
柏油18 小时前
Spring @Cacheable 解读
redis·后端·spring