CloudHub のアプリケーションの開発

CloudHub にデプロイするアプリケーションを開発する場合、次の考慮事項を確認してください。

HTTP/HTTPS ホストの指定

HTTP 用 Anypoint Connector (HTTP Connector) を使用する場合、CloudHub 設定でホストアドレスを ​0.0.0.0​ として定義します。 CloudHub は、アプリケーションドメイン URL からの要求をエンドポイントに転送します。 複数のワーカーをデプロイした場合は、受信トラフィックはワーカーに自動的に負荷分散されます。 アプリケーションが拡張されると、ワークロードは自動的にワーカーの間で分散されます。

外部 HTTP/HTTPS ポートの指定

メッセージの受信、イベントのトリガー、Web サービスやユーザーインターフェースの公開のために外部からアクセス可能な HTTP ポートまたは HTTPS ポートがアプリケーションに必要な場合は、予約されているプロパティの ​${http.port}​ または ​${https.port}​ を使用して HTTP リスナーポートを宣言します。CloudHub では、ポート ​${http.port}​ または ​${https.port}​ がプラットフォームサービスによって自動的に割り当てられます。アプリケーションドメインの URL へのポート 80 のトラフィックは、​${http.port}​ に転送され、ポート 443 のトラフィックは ​${https.port}​ に転送されます。

このポートでの複数の CloudHub サービスへのルーティングをサポートするには、公開されている URL 上でそれぞれに一意のパスを設定する必要があります。次に例を示します。

http://0.0.0.0:${http.port}/service/path/one
http://0.0.0.0:${http.port}/service/path/two

デプロイメントオプションの柔軟性

同じ Mule アプリケーションを異なるデプロイメント対象 (オンプレミスサーバーや CloudHub など) にデプロイするには、​「Mule アプリケーションのデプロイ」​を参照してください。

デプロイメント環境の主な違いについては、​「デプロイメントオプション」​を参照してください。

アプリケーションの外部で各デプロイメントのプロパティと変数を定義し、アプリケーションからそれらを参照できます。 たとえば、変数 ​http.port​ や ​https.port​ にローカル値を定義できます。 詳細は、​「プロパティの設定」​を参照してください。

Runtime Manager または Anypoint Platform コマンドラインインターフェースを使用して、これらのプロパティ変数を設定することもできます。

HTTP プロキシ設定を回避する

CloudHub 環境では、Mule アプリケーションはインターネット上で直接対象の HTTP サーバーにアクセスします。ローカル開発環境では、インターネットは HTTP プロキシサーバーを介してのみアクセスできます。

アプリケーションを CloudHub にデプロイしたときにコードを変更しなくて済むように JVM システムプロパティを使用することにより、Mule アプリケーションの HTTP 要求設定でプロキシ設定を追加するのを回避できます。

次の手順を実行します。

  1. Mule 4 アプリケーションの場合は、次のように HTTP 要求設定のタイムアウト設定を入力します。

    • [HTTP Request configuration (HTTP 要求設定)]​ > ​[General (一般)]​ > ​[Connection idle timeout (接続アイドルタイムアウト)]​: 30000

    • [HTTP Request configuration (HTTP 要求設定)]​ > ​[Settings (設定)]​ > ​[Response timeout (応答タイムアウト)]​: 30000

      タイムアウト値は 0 よりも大きい数値に調整してください。空白または 0 のタイムアウト値にすると、接続エラーが発生する場合があります。

  2. ローカル Mule Runtime のコマンドラインに以下を追加します。Anypoint Studio で、​[Run Configurations (実行設定)]​ を変更して次のパラメーターを 1 行として追加します。

-Dhttp.nonProxyHosts="localhost"\-Dhttps.proxyHost={proxy server ip}\-Dhttps.proxyPort={proxy server port}\-Dhttp.proxyHost={proxy server ip}\-Dhttp.proxyPort={proxy server port}\-Djava.net.useSystemProxies=false\-Dcom.ning.http.client.AsyncHttpClientConfig.useProxySelector=false\-Dcom.ning.http.client.AsyncHttpClientConfig.useProxyProperties=true
{proxy server ip}​ と ​{proxy server port}​ を実際の HTTP プロキシサーバーの IP アドレスとポート番号に置き換えます。

ログの設定

CloudHub ログサービスは、アプリケーションのすべてのログメッセージを取得します。 Runtime Manager コンソールの ​[Logging (ログ)]​ タブでログを表示できます。 診断や監査のためにログ内で追加情報を公開するには、​Logger コンポーネント​を使用します。

CloudHub では、アプリケーションを削除すると、コンソールからログデータにアクセスできなくなります。CloudHub では、古いログデータはパージされる前に一定期間アーカイブされるため、必要に応じてデータを復元できます。 詳細は、 MuleSoft ヘルプセンター​でサポートケースを開いてください。

サードパーティライブラリのパッケージ化

CloudHub には、さまざまなプロトコルでの接続やさまざまなデータ形式の変換をサポートするための Anypoint Platform のサービスがあります。 すべての標準 Mule ライブラリは、アプリケーションに含まれていて、使用できます。 別のサードパーティライブラリを含める必要がある場合には、そのライブラリをアプリケーションの JAR ファイルにパッケージできます。 詳細は、​「Mule 4 の概要: アプリケーションのパッケージ化」​を参照してください。

ファイアウォールの内側のリソースへのアクセス

ファイアウォールの内側のリソースにアクセスする必要があるアプリケーションを開発するときには、Anypoint Virtual Private Cloud (Anypoint VPC) を設定して CloudHub ワーカーをホストし、アプリケーションにアクセスするための IPSec トンネルを設定します。

サードパーティ API およびサービスへのアクセス

MuleSoft には、Salesforce、NetSuite、Twitter など、多くのサードパーティアプリケーション用のコネクタが用意されています。 アプリケーションでコネクタを検索および使用する方法については、​「Anypoint Connector の概要」​を参照してください。 また、Anypoint Connector DevKit を使用して、独自のコネクタを作成することもできます。

セキュアプロパティの使用

アプリケーションプロパティをセキュアとしてフラグ付けすると、その値は実行時にユーザーに表示されず、サーバーとコンソール間で渡されなくなります。 詳細は、​「アプリケーションプロパティの保護」​を参照してください。