鏡像下載、域名解析、時間同步請點擊 阿里巴巴開源鏡像站
使用 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 參數配置,示例如下:
- 在使用 Maven 命令打包時,通過命令
<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
文件中保存賬號信息如下:
- 如果您使用過最新的 aliyuncli 工具並且配置過阿里雲賬號,那麼阿里雲會在您當前 Home 目錄下生成一個
[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 加入鏡像站官方用戶交流群。”