Cloud Toolkit Maven 插件部署应用到阿里云 EDAS

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 针对 EDAS 开发者,如果当前正在使用 WAR 包或 JAR 包来部署应用,那么就可以通过 Cloud Toolkit Maven 插件部署应用到阿里云 EDAS。

针对 EDAS 开发者,如果当前正在使用 WAR 包或 JAR 包来部署应用,那么就可以通过 Cloud Toolkit Maven 插件部署应用到阿里云 EDAS。

第 1 步 :添加 Maven 依赖

在项目工程的 pom.xml 文件中,添加如下 <build> 依赖

<build>
 <plugins>
     <plugin>
         <groupId>com.alibaba.cloud</groupId>
         <artifactId>toolkit-maven-plugin</artifactId>
         <version>1.0.0</version>
     </plugin>
 </plugins>
</build>

从 Mavan 官方中央仓库 查询最新版本

第 2 步 :设置 yaml 文件

在项目工程的根目录下创建一个 .edas_config.yaml 文件。如果打包工程为 Maven 的子模块,则需要在子模块的根目录下创建该文件,文件内容如下:

env:
  region_id: cn-beijing
app:
  app_id: eb20dc8a-0000-567-1234-5f6a54550453

以上配置项中,region_id 为应用机器所在的区域 ID,app_id 为应用 ID,以上的配置参数为示例参数,请替换成您的应用参数。更多参数请参阅本文文末的更多配置项。

第 3 步:关联 EDAS 账号

在任意目录下新建一个账号文件,使用 yaml 格式配置 Access Key ID 和 Access Key Secret,Access Key ID 和 Access Key Secret 可登录阿里云用户信息管理查看。配置示例如下:

access_key_id: 123456
access_key_secret: 7891011

第 4 步:完成部署

进入您的根目录(如果为 Maven 多模块则进入子模块目录),打包命令:

mvn package toolkit:deploy -Daccess_key_file={账号文件路径}

image

执行以上命令后,看到终端输出上图日志,代表应用已经成功部署到 EDAS 了。

更多配置项

部署应用的配置项可分成三大类:

  • 基本环境(env)
  • 应用配置(app)
  • 存储配置(oss)

目前支持的配置项如下表所示:

类型 key 是否必须 说明
env region_id 应用所在的区域ID
app app_id 应用ID
package_version 部署包的版本。默认为 pom 文件的 version 加上当前机器构建的时间,格式如:"1.0 (2018-09-27 19:00:00)"。
desc 部署的描述
group_id 部署分组 ID。默认为所有分组。
batch 部署分批。默认为 1 批,最大为 5 批。
batch_wait_time 部署分批之间的等待时间,单位为分钟。默认不等待。
buildPackId 如果在创建应用时没有指定运行环境,且没有部署, 原生 Dubbo 或者 Spring Cloud 应用在第一次部署时可以不填。 非原生 Dubbo 或者 Spring Cloud 应在第一次部署时需要指定这个字段。(根据获取容器版本列表接口 ListBuildPackRequest 查询获取)。
componentIds 如果在创建应用时没有指定运行环境,且没有部署, 原生 Dubbo 或者 Spring Cloud 应用在第一次通过 WAR 包部署时,需要通过这个字段指定部署所依赖的 Apache Tomcat 组件的版本。(根据获取组件列表接口 ListComponentsRequest 接口查询获取)。 非原生 Dubbo 或者 Spring Cloud 应用在第一次通过 WAR 包部署时,可以不填。
stage_timeout 展示每个发布单 stage 状态的超时时间,单位为分钟,默认为 5 分钟。如果同时设置了 batch_wait_time,那么此参数在计算时会自动加上 batch_wait_time。在运行时,如果某个 stage 等待时间超过此阈值,那么此插件会自动退出。
oss region_id 目标存储桶所在的区域 ID 。默认使用应用所在的区域 ID 。
bucket 目标存储桶名称。默认使用 EDAS 提供的免费 OSS 存储空间。若指定了 oss 配置,则必须指定 bucket 参数,否则使用 EDAS 自动分配的免费 OSS 存储空间。
key 应用包上传到oss的自定义路径,默认使用 EDAS 提供的免费 OSS 存储空间。 若使用指定的 OSS 存储,则可通过该参数指明包存储路径,同时可以使用以下变量来进行参数化的路径配置 {region_id},{app_id},{version},例如: pkgs/petstore/{version}/store.war 该配置默认为 {region_id}/{app_id}/{version}
access_key_id 应用包上传到 oss 的自定义账号 ID。
access_key_secret 应用包上传到 oss 的自定义账号密钥。

配置示例一:指定分组和部署包的版本

例如我们在北京 region 有一个 ID 为 eb20dc8a-e6ee-4f6d-a36f-5f6a54550453 的应用,希望部署的分组 ID 为 06923bb9-8c5f-4508-94d8-517b692f30b9,部署包版本为 1.2。那么配置如下:

env:
  region_id: cn-beijing
app:
  app_id: eb20dc8a-e6ee-4f6d-a36f-5f6a54550453
  package_version: 1.2
  group_id: 06923bb9-8c5f-4508-94d8-517b692f30b9

配置示例二:指定 OSS 存储

例如我们希望部署一个 ID 为 eb20dc8a-e6ee-4f6d-a36f-5f6a54550453 的应用,并将部署包上传到自己在北京 region 的名为 release-pkg 的存储桶,文件对象名为 my.war,OSS 账号 ID 为 ABC,OSS 账号密钥为 1234567890。那么配置如下:

env:
  region_id: cn-beijing
app:
  app_id: eb20dc8a-e6ee-4f6d-a36f-5f6a54550453
oss:
  region_id: cn-beijing
  bucket: release-pkg
  key: my.war  
  access_key_id: ABC
  access_key_secret: 1234567890

指定配置文件

  • 当未指定配置文件时,此插件会默认使用打包工程的根目录下的.edas_config.yaml文件。如果打包工程为一个 Maven 工程的子模块,那么默认配置文件应该存放在该子模块的根目录下而不是整个 Maven 工程的根目录下。
  • 您也可以通过设置参数 -Dedas_config=xxx 来指定配置文件。
  • 如果既存在默认配置文件,也通过参数指定配置文件,那么此插件会使用参数指定的配置文件。

账号配置及账号优先级说明

当使用此插件部署应用时,您需提供部署应用的阿里云账号密钥对。目前此插件支持多种配置方式,当存在重复配置的情况时,优先级高的配置方式会覆盖优先级低的配置方式。优先级从高到低的配置方式罗列如下:

  • 命令行指定 ak/sk 参数:您可以通过如下任一方式来指定 access_key_id/access_key_secret:

    • 在使用 Maven 命令打包时,通过-Daccess_key_id=xx -Daccess_key_secret=xx来指定。
    • 在 pom 中配置此插件时,配置 ak/sk 参数如下所示:

      <plugin>
        <groupId>com.aliyun</groupId>
        <artifactId>edas-maven-plugin</artifactId>
        <version>2.30.0</version>
        <configuration>
            <accessKeyId>abc</accessKeyId>
            <accessKeySecret>1234567890</accessKeySecret>
        </configuration>
      </plugin>
  • 命令行指定账号文件(推荐):在使用 Maven 命令打包时,通过 -Daccess_key_file={账号文件路径 来指定 yaml 格式的账号文件。例如:

    access_key_id: abc
    access_key_secret: 1234567890
  • 使用默认的阿里云账号文件:如果没有通过以上两种方式指定账号,那么此插件会使用您曾经配置过的阿里云账号进行应用部署。

    • aliyuncli:如果您使用过最新的 aliyuncli 工具并且配置过阿里云账号,那么阿里云会在您当前 Home 目录下生成一个 .aliyuncli 目录,并在 .aliyuncli 目录下创建 credentials 文件来保存您的账号信息。以Mac系统为例,假如系统用户为jack,那么会在 /Users/jack/.aliyuncli/credentials 文件中保存如下信息:

      [default]
      aliyun_access_key_secret = 1234567890
      aliyun_access_key_id = abc

此插件会使用此账号文件作为部署应用的账号。

  • aliyun:如果您使用过老的 aliyun 工具并且配置过阿里云账号,那么 aliyun 工具会在您当前 Home 目录下生成一个 .aliyun 目录,并且在 .aliyun 目录下创建一个 config.json 文件来保存您的账号信息。以Mac系统为例,假如系统用户为jack,那么会在 /Users/jack/.aliyun/config.json 文件中保存账号信息,例如:

    {
      "current": "",
      "profiles": [{
          "name": "default",
          "mode": "AK",
          "access_key_id": "",
          "access_key_secret": "",
          "sts_token": "",
          "ram_role_name": "",
          "ram_role_arn": "",
          "ram_session_name": "",
          "private_key": "",
          "key_pair_name": "",
          "expired_seconds": 0,
          "verified": "",
          "region_id": "",
          "output_format": "json",
          "language": "en",
          "site": "",
          "retry_timeout": 0,
          "retry_count": 0
      }, {
          "name": "",
          "mode": "AK",
          "access_key_id": "abc",
          "access_key_secret": "xxx",
          "sts_token": "",
          "ram_role_name": "",
          "ram_role_arn": "",
          "ram_session_name": "",
          "private_key": "",
          "key_pair_name": "",
          "expired_seconds": 0,
          "verified": "",
          "region_id": "cn-hangzhou",
          "output_format": "json",
          "language": "en",
          "site": "",
          "retry_timeout": 0,
          "retry_count": 0
      }],
      "meta_path": ""
    }
  • 系统环境变量:最后,此插件会尝试通过系统环境变量来获取 access_key_id 和 access_key_secret 的值。即通过 Java 代码的 System.getenv("access_key_id")System.getenv("access_key_secret") 来获取相应的值。



官网
https://toolkit.aliyun.com


TB13bbFavWG3KVjSZPcXXbkbXXa-120-125.jpg

交流群(钉钉)


b35318a3e1a70775eee7dcb295468d50f5d21abb

交流群(微信)





相关实践学习
使用DAS实现数据库自动SQL优化
本场景介绍如何使用DAS实现数据库自动SQL优化。
SpringMVC框架入门
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts2等。 相关的阿里云产品企业级分布式应用服务 EDAS:企业级分布式应用服务 EDAS(Enterprise Distributed Application Service)是一个应用托管和微服务管理的 PaaS 平台,提供应用开发、部署、监控、运维等全栈式解决方案,同时支持 Spring Cloud、Apache Dubbo(以下简称 Dubbo )等微服务运行环境,助力您的各类应用轻松上云。产品详情: https://www.aliyun.com/product/edas&nbsp;
目录
相关文章
|
1天前
|
SQL 分布式计算 数据挖掘
阿里云MaxCompute携手华大基因打造精准医疗应用云平台,十万基因组计算成本降低至1000美金以内
华大基因是中国最领先的基因科技公司,华大基因为消除人类病痛、经济危机、国家灾难、濒危动物保护、缩小贫富差距等方面提供分子遗传层面的技术支持。让我们结合maxcompute的技术特点,看看如何助力华大基因。
397 6
|
6天前
|
弹性计算 负载均衡 容灾
应用阿里云弹性计算:打造高可用性云服务器ECS架构
阿里云弹性计算助力构建高可用云服务器ECS架构,通过实例分布、负载均衡、弹性IP、数据备份及多可用区部署,确保业务连续稳定。自动容错和迁移功能进一步增强容灾能力,提供全方位高可用保障。
172 0
|
6天前
|
弹性计算 API Python
阿里云百炼应用之流程编排
阿里云通义百炼平台流程编排使用教程。
|
6天前
|
存储 监控 前端开发
【专栏】阿里云ARMS前端监控的引入方法,以提升应用质量和稳定性
【4月更文挑战第29天】本文介绍了阿里云ARMS前端监控的引入方法,以提升应用质量和稳定性。该工具通过实时收集和分析用户行为、性能数据,提供错误监测和实时告警。步骤包括注册阿里云账号,创建前端监控项目,获取并嵌入监控代码到页面中,部署并运行,最后查看监控数据。案例和经验分享强调了合理设置监控指标、与其他工具结合以及定期分析数据的重要性。注意保护用户隐私,正确管理监控代码,并解决可能出现的数据不准确和大量错误告警问题。
|
6天前
|
运维 Serverless 应用服务中间件
Serverless 应用引擎产品使用之在阿里云Serverless中函数计算FC nginx 部署上去之后放置静态页面如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
266 0
|
6天前
|
弹性计算 运维 Serverless
Serverless 应用引擎产品使用之在阿里函数计算中,使数据库和阿里云函数计算位于同一个内网中如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
1068 0
Serverless 应用引擎产品使用之在阿里函数计算中,使数据库和阿里云函数计算位于同一个内网中如何解决
|
6天前
|
运维 监控 Serverless
Serverless 应用引擎产品使用之在使用阿里云函数计算部署网站时,网站打开不稳定如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
210 1
|
6天前
|
运维 Serverless API
Serverless 应用引擎产品使用之在阿里云函数计算中通过调用函数如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
308 10
|
6天前
|
运维 文字识别 Serverless
Serverless 应用引擎产品使用之在阿里云函数计算中,需要处理的文件大于100MB如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
153 5
|
6天前
|
运维 Serverless API
Serverless 应用引擎产品使用之在阿里云函数计算中,容器运行过程中的最大内存使用量获取如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
43 2

相关产品

  • 企业级分布式应用服务