通过API检查应用版本/构建日期

最近,在微服務的概念下,越来越多的应用程序通过持续集成自动部署的方式进行开发。这种方式非常方便和令人高兴,但同时也带来了对于管理这些应用程序的担忧,因为应用程序的增多意味着不安全感的增加。

我曾经参与的项目中,存在着对于”正在运行的应用程序”的担忧,比如:这些自动部署的应用程序是否按照预期成功部署?现在部署了哪个版本的应用程序?
因此,今天我来介绍一种在使用Spring Boot创建的应用程序中,在不修改生产代码的情况下,如何添加一个版本确认的功能。

undefined

目标读者

    • 以下を利用してwebアプリケーション開発している

Spring Boot
Maven

リリース後のアプリケーションの情報を外部から確認したい

环境

    • Java 8+

 

    • Spring Boot 2+

 

    Maven 3+

使用功能

通过结合以下功能来实现。

    • Application Info Actuator

info actuator | spring.io

Springプロパティの拡張機能

automatic-expansion-maven | spring.io

org.springframework.boot:spring-boot-starter-parentを使用していることで利用可能

实施

必需的设置 de

在应用程序的配置文件中添加以下内容。

management:
  endpoints:
    web:
      exposure:
        include: info # 1.

info:
  application:        # 2.
    name:             @project.build.finalName@
    version:          @project.version@
    build-timestamp:  @maven.build.timestamp@
    1. 管理端点配置公开

在示例中仅指定了info,但可以同时配置多个端点(例如:info、health)

返回的信息在访问时

键名可以自由命名

我会查一下确认

我将在此次的示例项目spring-boot-automatic-expansion-maven中进行确认。
启动应用程序后,访问Spring Boot Actuator的info路径/actuator/info。

% curl http://localhost:8080/actuator/info
{
    "application": {
        "name":"spring-boot-automatic-expansion-maven-0.0.1-SNAPSHOT",
        "version":"0.0.1-SNAPSHOT",
        "build-timestamp":"2018-05-20T13:41:45Z"
    }
}

我能成功获取到期待的应用程序的信息。

总结

    • プロダクションコードに手を加えることなく実現が可能

 

    • 以下のタイミングで確認ができる

リリースしたアプリケーションのversionが正しいか
テストするアプリケーションのversionが正しいか

非常易于实现,希望你能考虑加入,并消除团队的不安!

广告
将在 10 秒后关闭
bannerAds