天天看點

Maven 部署說明

Maven 部署說明

鏡像下載下傳、域名解析、時間同步請點選

阿裡巴巴開源鏡像站

使用 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 目标存儲桶所在的區域 ID 。預設使用應用所在的區域 ID 。
bucket 目标存儲桶名稱。預設使用 EDAS 提供的免費 OSS 存儲空間。若指定了 OSS 配置,則必須指定 bucket 參數,否則使用 EDAS 自動配置設定的免費 OSS 存儲空間。
應用包上傳到 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

    /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 加入鏡像站官方使用者交流群。”