プロパティを使用してみよう

今回はMuleを扱う上で必須のテクニックともいえるプロパティの使い方について、一から記載していきたいと思います。

スポンサーリンク

プロパティを扱うための2つの方法

Muleフロー上でプロパティを扱うためには主に3つの方法があります。

  • Global Property
  • プロパティファイルからConfiguration propertiesで取り込み
  • Runtime ManagerのProperties

Global Properyは一番シンプルな定義方法です。複数のプロパティ情報を一括で管理する場合は、プロパティファイルを使用するのがおすすめです。Runtime Manager上で定義するプロパティについては、環境情報など、デプロイした環境によって変動する値を管理するのにおすすめです。

上記3つの方法について、それぞれ簡単に使い方を記載していきたいと思います。

Global Propertyを使ってプロパティを定義する

まずはGlobal Propertyを使用して、プロパティを定義してみます。

Global ElementsからCreateでGlobal ConfigrationsからGlobal Propertyを選択しましょう。

Global Propertyの設定

Name(key名)とValue(値)を入力すれば、これで使用することができます。

プロパティの定義

このプロパティを参照する場合は、「${key名}」を指定することで参照できます。こんな感じの書き方です。

${key名}
プロパティの参照

Dataweave式から参照する場合は、以下のようにプロパティを取得します。

Mule::p('key名')
Dataweaveからプロパティの参照

Global Propertyを定義することで、フロー内のどの場所からも参照することが可能なので、使用する場面は多いかと思います。

プロパティが多い時はファイル化しよう

Global Propertyを使用したプロパティ定義方法を上記に記載しましたが、Global Propertyが複数個あった場合、その度にGlobal Propertyを作成しないといけないという手間も生まれてしまいます。

その手間を省くために、複数のプロパティを1つのファイルにまとめてプロパティファイル化してしまう方法があります。

プロパティファイルの作成

まずはプロパティファイルを作成します。プロジェクトの「src/main/resourcess」の下にファイルを作成します。使用する拡張子としては、YAML 設定ファイル (​.yaml​) とプロパティ設定ファイル (​.properties​) のいずれかを使用します。今回はYAML 設定ファイル (​.yaml​)を使用します。

プロパティファイルの作成

YAML設定ファイルは階層的に記載することができるので、グループ分けがしやすくて記載もシンプルなので見やすく書きやすいです。

プロパティファイルの記載内容

プロパティファイルの取り込み

作成したプロパティファイルを取り込んでみましょう。

Global ElementsからCreateでGlobal ConfigrationsからConfiguration propertiesを選択しましょう。

Configuration prperties

ファイルを指定するダイアログが表示されるので、先ほど作成したconfig.yamlを選択しましょう。

Configuration propertiesからプロパティファイル取り込み

これでプロパティファイルを使用することができます。参照方法はGlobal Propertyの時と同じです。yamlファイルが階層的に記載されているので、階層間の区切りはピリオドを使用します。

プロパティの参照

Runtime Managerからプロパティを定義

プロパティはRuntime Manager上からも定義することが可能です。Runtime ManagerのPropertiesのタブからプロパティを定義する欄があるため、こちらにプロパティ情報を記載できます。

Runtime ManagerのProperties

ここで重要なのが、Global Propertyと同じkey名のプロパティがあれば、Runtime Managerのプロパティが上書きされるため、デプロイ環境などで変動値がある場合は、こちらのRuntime ManagerのPropertiesから管理するといいでしょう。

よく使用される使い方

Global PropertyとConfiguration propertiesを使用してプロパティファイルの取り込みと参照を実施しましたが、基本線は複数まとめて使用できるConfiguration propertiesを軸に使用していくといいかと思います。

ただ、Muleにおいては、環境ごとに変わる接続情報などの設定があり、環境ごとに設定を分けるケースが多いです。そんな時に使用される方法として、環境情報をGlobal Propertyに持たせて、その環境情報に応じて参照するプロパティファイルを分けるといった方法です。

具体的なやり方として、まずGlobal Propertyに環境情報を示すプロパティ値を持たせます。このGlobal Propertyに設定する値はデフォルト値になります。実際はRuntime Managerで設定したものが適用されるため、Runtime Managerで未設定だった場合はこちらが適用されます。

環境変数をGlobal Propertyに定義

RuntimeManagerをデプロイする時に、プロパティを設定します。こちらもGlobal Propertyで定義した同名のkey値「env」を定義してください。実際はこちらの値が上書きされます。

プロパティファイルには環境別にファイルを用意します。ファイル名には環境情報を示す文字列(下記でいう「dev」「prod」の部分)が入るようにしてください。

環境ごとにプロパティファイルを分ける

Configuration propertiesでファイル名を指定する際、ただファイル名を直接指定するのではなく、環境情報部分をGlobal Propertyに置き換えます。これにより、Global Propertyの環境情報が変わった場合、ファイル名も切り替わることができます。

envの値については、Runtime Managerでプロパティ設定することができるため、環境に応じてdevなのかprodなのかを設定することができます。

次回、プロパティファイルの暗号化

プロパティの使い方についてはざっと上記に述べたような形になります。この状態でも使うことができますが、プロパティ情報には中には接続情報や機密情報などの重要かつ見られたくない情報などを含むケースも多いため、セキュリティ名で少し工夫が必要です。次回はプロパティファイルを暗号化してセキュリティ面を強化して使用してみたいと思います。

MuleSoft
スポンサーリンク

コメント