このトピックでは、ユーザー提供のサービスインスタンスを作成および更新する方法について説明します。
注意事項:この記事は、Cloud Foundry Documentaion User-Provided Service Instances (last updated: May 13, 2017)の独自の翻訳とコメントです。 内容を保証するものではありません。
コメント: Bluemixでもユーザー提供サービスを利用することができます。また、Bluemixコンソール画面から、バインド/アンバインドができ、アプリケーションにVCAP変数として与えることができます。具体的なユーザー提供サービスの実装例は Bluemix Pythonマイクロサービスの開発へ投稿しました。
概要
ユーザーが提供するサービス・インスタンスにより、開発者はマーケット・プレイスでは利用できないサービスをCloud Foundry上で動作するアプリケーションで使用できます。
ユーザー提供のサービス・インスタンスを使用して、サービス資格情報をアプリケーションに供給したり、アプリケーション・ログのストリームをsyslog互換コンシューマにトリガすることができます。 これらの2つの機能は、単独で、または同時に使用することができます。
作成されると、ユーザー提供のサービス・インスタンスは、マーケット・プレイスを通じて作成されたサービス・インスタンスのように動作します。 リスティング、名前変更、削除、バインディング、およびバインド解除の詳細については、「サービス・インスタンスとアプリケーション・バインディングの管理」を参照してください。
ユーザー提供のサービスインスタンスを作成する
cf create-user-provided-serviceの別名は cf cups です。
アプリにサービス資格情報を供給する
開発者が、Cloud Foundryの外部で管理されているOracleデータベースと通信するためのURL、ポート、ユーザー名、およびパスワードを取得したとします。 開発者は、カスタム環境変数を手動で作成して、これらの資格情報を使用してアプリケーションを構成することができます(もちろん、これらの資格情報をアプリケーションにハードコードすることはありません)。
ユーザーが提供するサービス・インスタンスにより、使い慣れたアプリケーション・バインディング操作と、Cloud Foundryがマーケット・プレイスサービス(VCAP_SERVICES)の資格情報を自動的に配信するために使用する同じアプリケーション実行環境変数を使用して、開発者がアプリケーションを構成できます。
cf cups SERVICE_INSTANCE -p '{"username":"admin","password":"pa55woRD"}'
対話モードでサービス・インスタンスを作成するには、カンマで区切ったパラメータ名のリストとともに-pオプションを使用します。 cf CLIは、各パラメータ値の入力を求めるプロンプトを表示します。
cf cups SERVICE_INSTANCE -p "host, port, dbname, username, password"
ユーザー提供のサービス・インスタンスが作成されると、1つまたは複数のアプリケーションに資格情報を配信するには、「アプリケーション・バインディング」を参照してください。
アプリ・ログをサービスにストリームする
ユーザーが提供するサービスインスタンスにより、開発者はアプリケーションログを市場で入手できないsyslog互換アグリゲーションサービスまたはアナリティクスサービスにストリーミングできます。 syslogプロトコルの詳細については、RFC 5424およびRFC 6587を参照してください。
-lオプションを使用してサービスのURLを指定して、ユーザー提供のサービスインスタンスを作成します。
cf cups SERVICE_INSTANCE -l syslog://example.log-aggregator.com
アプリケーション・ログをサービスにストリームするには、ユーザー提供のサービス・インスタンスをアプリケーションにバインドします。
アプリのプロキシ
ユーザが提供するサービスインスタンスにより、開発者はアプリケーション要求を事前処理のためにルートサービスにプロキシすることができます。 ルートサービスのユーザー提供サービスインスタンスを作成するには、-rオプションを使用してルートサービスのURLを指定します。
$ cf create-user-provided-service my-user-provided-route-service -r https://my-route-service.example.com
Creating user provided service my-user-provided-route-service in org my-org / space my-space as user@example.com...
OK
注:ユーザー提供サービスを作成する場合、指定されたルートサービスURLはhttpsでなければなりません。
ユーザー提供のルート・サービスに要求をプロキシするには、サービス・インスタンスをルートにバインドする必要があります。 詳細については、「ルートサービスを使用したアプリケーション要求の管理」を参照してください。
ユーザー提供のサービスインスタンスを更新する
cf update-user-provided-serviceを使用すると、ユーザ提供サービスのインスタンスの属性を更新できます。 新しい資格情報が古い資格情報を上書きし、提供されていないパラメータが削除されます。
update-user-supplied-serviceのエイリアスはuupsです。