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

参考

相关推荐
卓怡学长1 小时前
w181springboot机场乘客服务系统
java·数据库·spring boot·spring·intellij-idea
@HNUSTer5 小时前
基于 GEE 的 LST 降尺度建模——利用 Sentinel-2 和 SRTM 提升 Landsat 热红外分辨率至 10 米
云计算·数据集·遥感大数据·gee·云平台·随机森林回归模型·多源遥感与随机森林回归
wzq11_6665 小时前
云计算运维学习day22——Ansible-Roles
运维·学习·云计算
卓怡学长5 小时前
w192基于springboot教务管理系统
java·数据库·spring boot·spring·maven·intellij-idea
手握风云-6 小时前
Spring Cloud:分布式系统的“粘合剂”(六)
后端·spring·spring cloud
AI_小站15 小时前
刚面完百度的 Agent 开发岗,我才发现:世界就是个巨大的草台班子
java·开发语言·人工智能·spring·百度·langchain
翼龙云_cloud16 小时前
亚马逊云渠道代理商:VPC 教程 利用 EC2 自建 NAT 实例降低私有子网出网成本
网络·云计算·aws
yunlaodacom17 小时前
腾讯云国际版(云老大):TKE Service有Endpoint,为什么请求还是进不了Pod
云计算·腾讯云
Dawn-bit17 小时前
Linux网络进阶:TCP三次握手和四次挥手与TCP连接状态
linux·服务器·网络·tcp/ip·云计算·智能路由器
晓晓_za89866818 小时前
Geo 优化源码蒸馏词机制:地域词库构建与匹配逻辑详解
运维·tcp/ip·spring·缓存·ci/cd