知識庫 / Spring / Spring Cloud RSS 訂閱

Spring Cloud CLI 入門指南

Spring Cloud
HongKong
5
02:13 PM · Dec 06 ,2025

1. 引言

本文將介紹 Spring Boot Cloud CLI(以下簡稱 Cloud CLI)。該工具為 Spring Boot CLI 提供了一組命令行增強功能,有助於進一步抽象和簡化 Spring Cloud 部署。

Cloud CLI 於 2016 年年末推出,允許使用命令行、yml 配置文件和 Groovy 腳本快速自動配置和部署標準 Spring Cloud 服務。

2. 安裝準備

Spring Boot Cloud CLI 1.3.x 需要 Spring Boot CLI 1.5.x,請確保從 Maven 中央倉庫 (安裝説明) 獲取最新版本的 Spring Boot CLI,以及從 Maven 倉庫 (官方 Spring 倉庫) 獲取最新版本的 Cloud CLI!

為了確保 CLI 已安裝並準備好使用,只需運行:

$ spring --version

在驗證 Spring Boot CLI 安裝後,請安裝 Cloud CLI 的最新穩定版本:

$ spring install org.springframework.cloud:spring-cloud-cli:1.3.2.RELEASE

然後驗證 Cloud CLI:

$ spring cloud --version

高級安裝功能可以在官方 Cloud CLI 頁面找到!

3. 默認服務和配置

CLI 提供七個核心服務,可以通過單行命令進行運行和部署。

要啓動 Cloud Config 服務器,請訪問 http://localhost:8888

$ spring cloud configserver

為了啓動 Eureka 服務器,請訪問 http://localhost:8761

$ spring cloud eureka

為了在 http://localhost:9095 上啓動 H2 服務器,

$ spring cloud h2

要啓動 Kafka 服務器,請訪問 http://localhost:9091

$ spring cloud kafka

為了在 http://localhost:9411 上啓動 Zipkin 服務器:

$ spring cloud zipkin

為了在 http://localhost:9393 上啓動 Dataflow 服務器,

$ spring cloud dataflow

為了在 http://localhost:7979 上啓動 Hystrix 儀表盤:

$ spring cloud hystrixdashboard

當前運行的雲服務列表:

$ spring cloud --list

便捷的幫助命令:

$ spring help cloud

欲瞭解有關這些命令的更多詳細信息,請查看官方 博客

4. 使用 YML 定製雲服務

通過雲 CLI 可部署的每個服務都可以通過相應命名的 .yml 文件進行配置:

spring:
  profiles:
    active: git
  cloud:
    config:
      server:
        git:
          uri: https://github.com/spring-cloud-samples/config-repo

這構成了一個簡單的配置文件,我們可以用來啓動 Cloud Config Server。

例如,我們可以指定 Git 倉庫作為 URI 來源,並在發出 ‘spring cloud configserver’ 命令時自動克隆和部署。

Cloud CLI 在底層使用 Spring Cloud Launcher。這意味着 Cloud CLI 支持大多數 Spring Boot 配置機制。此處 是 Spring Boot 屬性的官方列表。

Spring Cloud 配置遵循 ‘spring.cloud…’‘ 約定。Spring Cloud 和 Spring Config Server 的設置可以在此 鏈接 中找到。

我們還可以直接將多個模塊和服務指定到 cloud.yml 中:

spring:
  cloud:
    launcher:
      deployables:
        - name: configserver
          coordinates: maven://...:spring-cloud-launcher-configserver:1.3.2.RELEASE
          port: 8888
          waitUntilStarted: true
          order: -10
        - name: eureka
          coordinates: maven:/...:spring-cloud-launcher-eureka:1.3.2.RELEASE
          port: 8761

cloud.yml允許添加自定義服務或模塊,並使用Maven和Git倉庫。

5. 運行自定義 Groovy 腳本

自定義組件可以使用 Groovy 編寫,並由於 Cloud CLI 可以編譯和部署 Groovy 代碼,因此可以高效地部署。

以下是一個最小的 REST API 實現示例:

@RestController
@RequestMapping('/api')
class api {
 
    @GetMapping('/get')
    def get() { [message: 'Hello'] }
}

假設腳本已保存為 rest.groovy,我們可以這樣啓動我們的最小服務器:

$ spring run rest.groovy

手抖PING http://localhost:8080/api/get 應該會顯示:

{"message":"Hello"}

6. 加密/解密

Cloud CLI 還提供了一個用於加密和解密(位於 org.springframework.cloud.cli.command 包中)的工具,可以直接通過命令行使用,也可以間接通過將值傳遞給 Cloud Config Server 端點使用。

讓我們設置它並查看如何使用它。

6.1. 部署

Cloud CLI 和 Spring Cloud Config Server 都使用 <em><span>org.springframework.security.crypto.encrypt.*</span></em><span> 用於處理加密和解密命令。

因此,兩者都需要 Oracle 提供的 JCE Unlimited Strength Extension,訪問鏈接:http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

6.2. 通過命令加密和解密

要通過終端加密 'my_value',請執行以下操作:

$ spring encrypt my_value --key my_key

文件路徑可以替換為鍵名(例如上方的 <em >my_key</em >),通過使用“@”後跟路徑來實現(通常用於 RSA 公鑰)。

$ spring encrypt my_value --key @${WORKSPACE}/foos/foo.pub

my_value‘ 將現在被加密為類似於:

c93cb36ce1d09d7d62dffd156ef742faaa56f97f135ebd05e90355f80290ce6b

此外,它還將存儲在名為 <em my_key</em> 的鍵下內存中。這允許我們通過命令行將 <em my_key</em> 解密回 <em my_value</em>

$ spring decrypt --key my_key

我們現在也可以在配置的 YAML 或 properties 文件中使用加密值,當該文件被加載時,Cloud Config Server 會自動解密它。

encrypted_credential: "{cipher}c93cb36ce1d09d7d62dffd156ef742faaa56f97f135ebd05e90355f80290ce6b"

6.3. 使用配置服務器進行加密和解密

Spring Cloud Config Server 暴露了 RESTful 端點,用於存儲密鑰和加密值對,這些值可以存儲在 Java 安全存儲或內存中。

有關如何正確設置和配置您的 Cloud Config Server 以接受 對稱加密非對稱加密 的信息,請參閲我們的文章或官方 文檔

配置完成後,使用 ‘spring cloud configserver‘ 命令啓動 Spring Cloud Config Server 後,您將能夠調用其 API。

$ curl localhost:8888/encrypt -d mysecret
//682bc583f4641835fa2db009355293665d2647dade3375c0ee201de2a49f7bda
$ curl localhost:8888/decrypt -d 682bc583f4641835fa2db009355293665d2647dade3375c0ee201de2a49f7bda
//mysecret

7. 結論

我們在此重點介紹了 Spring Boot Cloud CLI 的介紹。欲瞭解更多信息,請參閲官方 文檔

user avatar
0 位用戶收藏了這個故事!
收藏

發佈 評論

Some HTML is okay.