プロパティを使用したアプリケーションの動作の変更

プロパティ​を使用して、実行中のアプリケーションの動作を変更できます。

アプリケーションプロパティは、Mule アプリケーションでプレースホルダーとして動作する変数で、実行時に設定されます。 Runtime Manager でアプリケーションをデプロイ、または既存のアプリケーションを更新するときに、Mule Runtime Engine は ​[Properties (プロパティ)]​ タブで設定される情報を使用してプロパティの変数の値を提供します。

たとえば、ユーザー名が ​${dbUsername}​、パスワードが ​${dbPassword}​ に設定される JDBC Connector を設定できます。 Runtime Manager で、これら 2 つのプロパティをアプリケーションプロパティとして設定できます。

機密情報の場合は、プロパティの値を保護できます。そうすると、Runtime Manager で保存された後、それらの値はコンソールに表示されず、コンソールと CloudHub 2.0 の間で渡されることもありません。 詳細は、「アプリケーションプロパティ値の保護」を参照してください。

Anypoint Runtime Manager またはプロパティファイルでプロパティを設定できます。 アプリケーションのプロパティファイルと Runtime Manager の両方でプロパティを設定してある場合、アプリケーションをデプロイすると、常に Runtime Manager の値がプロファイルファイルの値よりも優先されます。

Runtime Manager でアプリケーションのプロパティを追加する

非公開スペースにデプロイされたアプリケーションにプロパティを読み込む最も簡単な方法は、アプリケーションの ​[Properties (プロパティ)]​ タブでそれらを定義することです。

プロパティを追加する手順は、次のとおりです。

  1. Anypoint Platform から、​[Runtime Manager]​ > ​[Applications (アプリケーション)]​ を選択します。

  2. アプリケーション名をクリックします。

  3. ナビゲーションメニューで ​[Settings (設定)]​ をクリックします。

  4. [Settings (設定)]​ ページで ​[Properties (プロパティ)]​ タブをクリックします。

    アプリケーションの [Settings (設定)] ページにある [Properties (プロパティ)] と [New Key (新しいキー)] および [New Value (新しい値)] 項目
  5. [Table view (テーブルビュー)]​ をクリックします。

    代わりに、​[Text view (テキストビュー)]​ をクリックし、テキスト項目に ​New Key=New Value​ の形式でキー-値ペアを入力することもできます。

  6. [New Key (新しいキー)]​ 項目にプロパティ名を入力します。

  7. [New Value (新しい値)]​ 項目で、プロパティ値を追加します。プロパティ値にスペースが含まれている場合は、​"ApiKey 898jdey1-13232"​ のように引用符で囲みます。

    Chrome のパスワード保存機能が有効化されていて、[Key (キー)] 項目のコンテンツと一致する ​anypoint.mulesoft.com​ のユーザー名が保存されている場合、Chrome はそのユーザー名に関連付けられている保存済みパスワードで [Value (値)] 項目の値を上書きします。 この制約を回避するには、Chrome をシークレットモードで使用するか、または他のブラウザーを使用してください。

    [Table view (テーブルビュー)]​ で、必要に応じて次の操作を実行します。

    • Runtime Manager で値を非表示にするには、​[Protect (保護)]​ をクリックしてから、​[Protect value (値を保護)]​ をクリックして確定します。

      アプリケーションプロパティ値の保護」を参照してください。

    • キーまたは値を変更するには、項目内のテキストを編集します。

    • プロパティを削除するには、​[…​]​ > ​[Delete property (プロパティを削除)]​ をクリックします。

  8. [Apply Changes (変更を適用)]​ をクリックします。

    変更を適用すると、新しい設定が作成され、レプリカが再起動されます。 詳細は、「CloudHub 2.0 にデプロイされたアプリケーションの更新」を参照してください。

例: プロパティを使用した環境変数の設定

アプリケーションの環境変数を設定できます。 プロパティにより、デプロイ先の環境に応じて変わる設定を外部化することができます。 たとえば、ローカルで Mule アプリケーションを使用している場合は、データベースホストを ​0.0.0.0​ に設定する可能性があります。 同じアプリケーションを CloudHub 2.0 にデプロイする場合は、データベースホストを Amazon RDS サーバーなどに設定することがあります。

アプリケーションプロパティを使用して環境変数を設定する手順は、次のとおりです。

  1. Anypoint Platform から、​[Runtime Manager]​ > ​[Applications (アプリケーション)]​ を選択します。

  2. アプリケーション名をクリックします。

  3. ナビゲーションメニューで ​[Settings (設定)]​ をクリックします。

  4. [Settings (設定)]​ ページで ​[Properties (プロパティ)]​ タブをクリックします。

  5. [Text view (テキストビュー)]​ に ​key=value​ の形式で変数を入力して、変数を定義します。

    [Text view (テキストビュー)]​ では、バックスラッシュ文字 (​\​) はエスケープ文字として使用します。 たとえば、キーまたは値内で ​:​ を使用するには、構文で ​\:​ を使用します。 キーまたは値内で ​\​ を使用するには、構文で ​\\​ を使用します。 [Table view (テーブルビュー)]​ の構文には、エスケープ文字は必要ありません。
  6. Mule アプリケーション設定で環境変数を使用します。

プロパティファイルを使用したアプリケーションプロパティの追加

プロパティプレースホルダー YAML ファイルのデプロイ可能なアプリケーションのアーカイブファイルにファイルを含めることで、アプリケーションにプロパティを追加できます。

プロパティの設定」を参照してください。

これらのプロパティは、アプリケーションの起動時に CloudHub 2.0 によってアプリケーションに読み込まれます。

この方法は CloudHub 2.0 でのベストプラクティスではありません (​[Properties (プロパティ)]​ タブの値によってファイル内の同じ名前を持つすべてのプロパティが上書きされるため) が、Mule アプリケーションのオプションを変更することでこの問題を回避できます。

CloudHub 2.0 プロパティによって、デプロイ可能なアーカイブにバンドルされたプロパティが上書きされるのを防ぐには、Mule アプリケーションの ​property-placeholder​ 要素のオプションを変更します。 デフォルト以外のプロパティプレースホルダーオプションの詳細は、 プロパティプレースホルダーオプションに関する Spring のドキュメント​を参照してください。

制限事項

  • 最大 300 個のプロパティを追加できます。

  • プロパティキーとその値は 1024 文字を超えることはできません。

予約されたプロパティ

CloudHub 2.0 では、一部のプロパティが予約されており、これらのプロパティの値は変更できません。 アプリケーションが予約されたプロパティに値を割り当てようとしても、CloudHub 2.0 はその値を使用しません。 代わりに、エラーや例外をスローすることなく、内部で設定されている値を返し、ログに警告メッセージを追加します。

プロパティ 説明

${java.runtime.name}

JVM 名

OpenJDK Runtime Environment

${java.version}

JVM バージョン

1.8.0_342

${java.runtime.version}

ドット (ポイント) リリースを含む JVM バージョン

1.8.0_342​-8u342-b07-0ubuntu1~20.04-b07

${http.port}

HTTP ポート

8081

${https.port}

HTTPS ポート

8081

${http.private.port}

HTTP 非公開ポート

8081

${https.private.port}

HTTPS 非公開ポート

8081

独自の理由により、MuleSoft は予約されたすべての内部プロパティを公開しません。 CloudHub 2.0 ランタイムリリースの更新により、予約されたプロパティが変更される場合があります。