雲計算

Maven 部署說明

3.jpg
鏡像下載、域名解析、時間同步請點擊 阿里巴巴開源鏡像站

使用 Maven 將應用部署到 EDAS 需要創建配置文件、賬號文件等,您可以根據實際自定義配置文件、賬號文件的內容。本文將介紹使用 Maven 將應用部署到 EDAS 的配置項說明、指定配置文件說明、賬號配置優先級說明及相關使用示例。

一、配置項

部署應用的配置項可分成三大類:

  • 基本環境(ENV)
  • 應用配置(APP)
  • 存儲配置(OSS)

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

類型 key 是否必須 說明
ENV region_id 應用所在的區域 ID。
endpoint 用於專有云設置 POP 網關接入點。
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 部署分批之間的等待時間,單位為分鐘。默認不等待。
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 的自定義賬號密鑰。

示例一
用戶 A 在 Region 為北京有一個 ID 為 eb20dc8a-xxx 的應用,若需將版本為 1.2 的應用部署在分組 ID 為 06923bb9-xxx分組下,則配置文件如下:

env:
  region_id: cn-beijing
app:
  app_id: eb20dc8a-xxx
  package_version: 1.2
  group_id: 06923bb9-xxx

示例二
用戶 B 需部署一個 ID 為 eb20dc8a-xxx 的應用,並將部署包上傳到自己在北京 Region 的名為 release-pkg 的存儲桶中的 my.war 文件下。OSS 賬號 ID 為 ABC,OSS 賬號密鑰為 1234567890。則配置文件如下:

env:
  region_id: cn-beijing
app:
  app_id: eb20dc8a-xxx
oss:
  region_id: cn-beijing
  bucket: release-pkg
  key: my.war
  access_key_id: ABC
  access_key_secret: 1234567890

二、指定配置文件

指定配置文件的方式有以下兩種:

  • 在任意目錄下新建配置文件,通過設置參數 -Dedas_config={配置文件路徑} 來指定配置文件。
  • 當未設置參數指定配置文件時,Cloud Toolkit 會默認使用被打包的工程根目錄下的 .edas_config.yaml 文件作為配置文件。若被打包的工程為一個 Maven 工程的子模塊,則默認使用該子模塊的根目錄下的 .edas_config.yaml 文件。

注意 如果既存在默認配置文件,也通過參數指定配置文件,Cloud Toolkit 會優先使用參數指定的配置文件。

三、賬號配置及優先級

使用 Cloud Toolkit 將應用部署到雲端時,需要使用阿里雲上的資源。因此在部署應用前,需要設置您的阿里雲賬號信息,確保擁有使用和管理相關資源、應用的權限。目前 Cloud Toolkit 支持多種配置方式,優先級從高到低如下:

說明 當重複配置時,優先級高的配置方式會覆蓋優先級低的配置方式。

  • 使用命令行指定 AccessKeyID 和 AccessKeySecret 參數,有以下兩種方式。

    • 在使用 Maven 命令打包時,通過命令 -Daccess_key_id=xx -Daccess_key_secret=xx 來指定。
    • 在 Pom 文件中配置 Cloud Toolkit 時,插入 AccessKeyID 和 AccessKeySecret 參數配置,示例如下:
<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
  • 使用默認的阿里雲賬號文件。如果沒有通過以上兩種方式指定賬號,那麼 Cloud Toolkit 會使用您曾經配置過的阿里雲賬號進行應用部署。

    • 如果您使用過最新的 aliyuncli 工具並且配置過阿里雲賬號,那麼阿里雲會在您當前 Home 目錄下生成一個 .aliyuncli 目錄,並在 .aliyuncli 目錄下創建 credentials 文件來保存您的賬號信息。以 Mac 系統為例,在 /Users/用戶名/.aliyuncli/credentials 文件中保存賬號信息如下:
[default]
    aliyun_access_key_secret = 1234567890
    aliyun_access_key_id = abc
  • 如果您使用過老的 aliyun 工具並且配置過阿里雲賬號,那麼 aliyun 工具會在您當前 Home 目錄下生成一個 .aliyun 目錄,並且在 .aliyun 目錄下創建一個 config.json 文件來保存您的賬號信息。以 Mac 系統為例,在 /Users/用戶名/.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": ""
}
  • 系統環境變量:若您未採用上述任何一種方式設置賬號文件,Cloud Toolkit 會嘗試通過系統環境變量來獲取 access_key_id 和 access_key_secret 的值(即通過 Java 代碼的 System.getenv("access_key_id")System.getenv("access_key_secret") 來獲取相應的值)。

阿里巴巴開源鏡像站 提供全面,高效和穩定的鏡像下載服務。釘釘搜索 21746399 加入鏡像站官方用戶交流群。”

Leave a Reply

Your email address will not be published. Required fields are marked *