当前位置: 首页 > news >正文

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的安装。

# 拉代码
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图形界面吧。

参考

  • ebcli开源项目主页
  • 安装 Elastic Beanstalk 命令行界面
  • spring在线创建demo工程页面

相关文章:

  • 西门子S7-1200 MC卡使用方法及故障现象分析
  • NGINX 开源与社区动态:从基石到浪潮,持续演进的生态力量
  • 大语言模型 07 - 从0开始训练GPT 0.25B参数量 - MiniMind 实机训练 预训练 监督微调
  • vue基本介绍
  • 【物联网】基于树莓派的物联网开发【3】——最新镜像下载和烧录
  • 2024东北四省ccpc
  • Python 翻译词典小程序
  • SSTI 刷刷刷个题
  • 游戏引擎学习第281天:在房间之间为摄像机添加动画效果
  • 【ArcGIS技巧】根据地块、界址点图层生成界址线
  • 游戏引擎学习第282天:Z轴移动与摄像机运动
  • 基于WinCC flexible 2008、STEP_7和博途之间的项目移植
  • 2035.5.15 并查集
  • 让AI帮我写一个word转pdf的工具
  • 基于SpringBoot的家政服务系统设计与实现(源码+文档+部署讲解)
  • 五件应该被禁止自行托管的事情(5 Things That Should Be Illegal to Self Host)
  • 车载诊断架构 ---车载总线对于功能寻址的处理策略
  • Apache RocketMQ ACL 2.0 全新升级
  • 每日算法 - 【Swift 算法】Two Sum 问题:从暴力解法到最优解法的演进
  • 《数字藏品社交化破局:React Native与Flutter的创新实践指南》
  • 哈马斯官员:若实现永久停火,可交出加沙地带控制权
  • 车建兴被留置:跌落的前常州首富和红星系重整迷路
  • 美F-35险被胡塞武装击中,损失增大让行动成“烂尾仗”
  • 今年有望投产里程已近3000公里,高铁冲刺谁在“狂飙”?
  • 中央宣传部、全国妇联联合发布2025年“最美家庭”
  • 为何选择上海?两家外企提到营商环境、人才资源……