LoginSignup
8
9

More than 5 years have passed since last update.

アプリケーションのversion/ビルド日時をAPIで確認する

Last updated at Posted at 2018-05-20

マイクロサービスで多くのアプリケーションを立ち上げ、CIで自動デプロイ!というイケている現場が増えてきた昨今。とても便利で嬉しく思う反面、管理するアプリケーションが増えその分不安を覚えることも増えてきました。
私が携わっている現場では「自動でデプロイしたアプリケーションが果たして想定通りにデプロイされているのか!?」であったり、「今どのバージョンがデプロイされていたっけ?」という"動いているアプリケーション"に対する不安があがることがありました。
そこで今回はSpring Bootで作成されたアプリケーションにおいて、プロダクションコードに手を加えることなくバージョンを確認する機能を追加する方法を紹介します。

対象読者

  • 以下を利用してwebアプリケーション開発している
    • Spring Boot
    • Maven
  • リリース後のアプリケーションの情報を外部から確認したい

環境

  • Java 8+
  • Spring Boot 2+
  • Maven 3+

使用する機能

以下の機能を組み合わせて実現します。

実装

必要な設定

アプリケーションの設定ファイルに以下を追加します。

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

info:
  application:        # 2.
    name:             @project.build.finalName@
    version:          @project.version@
    build-timestamp:  @maven.build.timestamp@
  1. 公開するManagement Endpoint設定
    • 例では info のみ指定していますが、複数Endpoint設定可能 (例: info, health)
  2. アクセスされた際に返却する情報
    • Key名は自由に命名が可能

確認してみる

今回はサンプルで作成した 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が正しいか

とても容易に実現ができるのでぜひ追加して、チームの不安を取り除いていきましょう!

8
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
9