内容は次のとおりです。
ブループリントは、必要な相互に関連するクラウド・リソースのセットを記述するために使用します。建築で使用するブループリントと同様に、このブループリントでは、リソースの構築方法ではなく、リソースを相互に動作させるための構成方法など、必要な事項が記述されます。たとえば、ブループリントでは、コンポーネントを作成する順序は記述されません。これは、ブループリントのオーケストレーション・ロジックによって、リソース間の依存関係に基づいて決定されます。
例として、Weblogic Serverインスタンス、アプリケーション、データベースなどの相互作用するクラウド・リソースのセットを作成するとします。そのためには、まずデータベースおよびWeblogic Serverインスタンスを作成してアプリケーションをデプロイし、Weblogic Serverでデータベースへの接続に使用されるJEEデータソースを作成する必要があります。
これらの操作はすべて、Enterprise Managerのセルフ・サービス・ポータルから手動で実行できます。WebLogic Serverおよびデータベースの作成をリクエストして、両方の作成が完了するのを待機します。作成リクエストのステータスを定期的にチェックします。WebLogic Serverが作成された後、アプリケーションをデプロイできます。WebLogic Serverとデータベースの両方が作成された後、JEEデータソースを作成できます。
または、このプロセスを自動化するために、4つのクラウド・リソースを記述するブループリントを使用できます。これを行うには、ブループリントのインスタンス化をリクエストし、ブループリントで必要な入力パラメータ値を指定します。ブループリントは、リソースの作成を開始し、必要なリソースが作成されるとすぐに依存リソースが自動的に作成されるように作成プロセスをモニターします。
この章の残りの部分では、既存のブループリントのデプロイ方法や独自のブループリントの記述方法など、ブループリントの概念について説明します。ブループリントの詳細は、「クラウド・ブループリントおよびブループリントのリファレンス」でも参照できます。
ブループリントは、サービス・インスタンスの作成を自動化するのに使用できます。EM_SSA_USER
は、次のような様々な理由でブループリントを使用できます。
複数のサービス・インスタンスおよび関連クラウド・リソースから構成される1つのアプリケーションを作成するため。
このようなインスタンスのセットを複数回作成するため。
他のEM_SSA_USERS
のためにインスタンスの作成を容易にするため。
インスタンスのセットを作成するのに必要な、手動でやり取りする手順を省くため
他のユーザーが確認したり変更できるテキスト表現を作成するため。
要するに、ブループリントを使用すると、サービス・インスタンスのセットの作成を自動化できます。
たとえば、企業の品質保証チームは、Webアプリケーションのテストに必要なリソースを割り当てたり、解放する必要があります。Enterprise Manager Cloud Self Serviceアプリケーションを使用してサービス・インスタンスを手動で作成するかわりに、このタスクの実行にブループリントを使用できます。1人のユーザーがブループリントを作成し、これにより、すべてのQAエンジニアはブループリントを呼び出して数個の入力パラメータ値を入力するだけで済み、この作業の後、リソースが作成されます。各ユーザーは、ブループリント・プロセッサにより表示される各リソースの作成ステータスを確認できます。
簡素化および一貫性の課題への、ブループリントを使用した対処について、別の例で説明します。あるITショップには、8つの入力パラメータを受け入れる1つのサービス・テンプレートがあります。特定のユーザー・グループについて、それらの8つのパラメータのうち6つに同じ値のセットを使用する必要があります。単純なブループリントでは、2つのパラメータを受け入れ、テンプレートを使用して他の6つパラメータを矛盾なく定義してインスタンスを作成します。
この項で説明する概念は、Enterprise Manager Cloudの概念です。これらはブループリントの一部として導入されるのではなく、ブループリントによって使用される概念です。これらの概念はブループリントの基本となっているため、ここで要約します。
OracleクラウドAPI: OracleクラウドAPI (「クラウドAPIの概要」を参照)は、IaaS、MWaaSおよびDBaaSのコンシューマに対して、Oracleのソリューション・スタックに基づいたRESTfulプログラミング・インタフェースを定義します。ブループリント・プロセッサでは、ブループリントによって指定された内容に基づいて、クラウド・リソースを作成する場合に、OracleクラウドAPIを使用します。
Oracleクラウド・リソース・モデル: Oracleクラウド・リソース・モデル(「クラウドのリソース・モデル」を参照)には、OracleクラウドAPIを経由して操作できるリソースのタイプについて詳細に記述されており、かつ、各タイプについて、その属性と、リソース・タイプのインスタンスに対して実行できる操作の両方について、詳細に記述されています。
クラウド・リソースのタイプと属性: クラウド・リソース・モデルは、uri (それぞれのURI)やresource_status (READYやCREATINGなどの値を持つ)など、すべてのクラウド・リソースに共通な属性セットを指定します。このモデルは、一連のクラウド・リソース・タイプとその属性も定義します。次のリソース・タイプについては、このマニュアルで後述します。
DbPlatformInstance: テンプレートを使用してデータベース・プラットフォーム・インスタンスが作成されます。これには、zone (DBaaSインスタンスの場所)やparams (ユーザー名とパスワードを指定)などの属性があります。
JavaPlatformInstance: テンプレートを使用して、JEEサーバー・インスタンスも作成されます。DbPlatformInstanceと同様に、JavaPlatformInstanceにはzoneなどの属性があります。MWaaS固有の属性の例として、application_instance_deploymentsをあげることができ、これは、インスタンスにデプロイされるすべてアプリケーションを特定します。
ApplicationInstanceDeployment: JavaPlatformInstanceへのアプリケーション・デプロイメントを表すリソース・タイプです。
Datasource: JavaPlatformInstanceのデータソースを表すリソース・タイプです。これはJavaPlatformInstance内に含まれ、DatabaseInstanceを参照します。
リソースの包含: クラウド・リソースは他のリソースを含めることができます。たとえば、JavaPlatformInstanceのDatasourceは、JavaPlatformInstanceに含まれ、テンプレートにはそのテンプレートを使用して作成されたすべてのサービス・インスタンスが含まれます。
作成するすべてのリソースは、親クラウド・リソースに含まれます。ブループリント内の各リソース定義の一環として、リソースのコンテナを特定します。
一般的に、1つのブループリントで、作成する1つ以上のクラウド・リソースを記述します。ユーザーは、ブループリントによって記述されたリソースを作成するために、ブループリントをデプロイし、そのときに、ブループリントによって使用されるすべての入力パラメータ値を指定します。各リソースを作成するために、ブループリントによって属性値が指定されますが、これらの属性値は、ハードコーディングされるか、ブループリントの入力パラメータから提供されるか、または他のリソースから収集されます。すべてのリソースをインスタンス化するときに、ブループリント・システムによって、リソースの依存関係が判別され、ブループリントで記述されているインスタンスを正しく作成するために必要な、リソースの作成または構成(またはその両方)の順序が、これを使用して決定されます。
入力パラメータ: ブループリントでは、入力パラメータを定義できます。各パラメータ定義では、名前、データ型およびデフォルト値などのオプション仕様を指定します。ブループリントをデプロイするユーザーは、デフォルト値を持たないすべてのパラメータの値を指定する必要があります。
リソース: ブループリントのリソースにより、クラウド・リソースの構成方法が定義されます。リソースによって、一連の属性および新規に作成されたリソースが含まれる親クラウド・リソースが指定されます。ブループリント内の各リソースには、ブループリント内で一意の名前を付ける必要があります。
出力: 出力が指定されると、ブループリントのデプロイメントの完了時に、指定された値が表示されます。出力パラメータを使用して、JEEアプリケーション・デプロイメントのURLをエンド・ユーザーに通知するなどの目的で、デプロイメント時に派生した情報を表示できます。
固有関数: ブループリント言語には、事前定義済の一連の関数(後で説明)が含まれます。
名前付きリテラル: プログラミングの便宜上、ブループリントにはDataセクションを含めることができます。これは、一般的にリテラル値のシンボリック名を指定するために使用されます。
依存関係: ブループリントのデプロイメントは、可能な場合は複数のリソースを同時に作成して行われますが、他のリソースに依存するリソースは、依存先のリソースが作成されるまで作成できません。このような依存関係は暗黙的な場合が多いですが、ブループリントの処理により依存関係が特定され、全体的な手順がオーケストレートされます。
前提条件:
ブループリント・ファイルがあること。
ブループリント・プロセッサ・ソフトウェアがインストールされていること。
ブループリント・ファイルは、作成者がブループリント言語を使用して必要なものを記述しているテキスト・ファイルです。ブループリント・プロセッサを実行してブループリントをデプロイします。たとえば、Windowsでは次のようなコマンドを使用します。
bp_processor.py myfile.yml -u myname –c https://myhost/em/cloud
この例では、–u
オプションでEnterprise ManagerユーザーIDを指定します。ここでパスワードを指定しないと、ブループリント・ファイルの実行時に要求されます。–c
オプションは、クラウドURLの指定に使用します。コマンドライン・オプションは、この他にも多数あります。サポートされるオプションの説明を表示するには、次のように入力します
bp_processor.py deploy -h
ブループリントをデプロイする場合、実行時ロジックで入力パラメータを処理し、リソースの作成をオーケストレートします。可能な場合は、これを並列して実行します。また、進捗をモニターして、ユーザーに逐次通知します。表示される出力は、ブループリントおよび環境によって異なります。次の例では、Weblogic Server、アプリケーション、データベースおよびJEEデータソースをデプロイするブループリントを使用しています。このブループリントの実行による出力から、ブループリント処理の手順がわかります。
C:\Users\myname\Dropbox\Code\blueprints>bp_processor.py xyzApp.yml -c https://... -g deployment_report ... Cloud user id: ssa_user1 Password:
上で入力したコマンドでは、クラウドURL (-c
オプションを使用)およびオプションのデプロイメント・レポートの格納先ディレクトリ(-g
オプションを使用)を指定しています。その後、処理の続行を求められたのに従い、資格証明を入力しました。
Blueprint Processor - Invocation Summary ---------------------------------------- Cloud URI: https://... User: ssa_user1 Blueprint file: xyzApp.yml Timeout: 90 minutes, 0 seconds Refresh frequency: 15 seconds Inputs: Pause points: (none) Debug logging: False Instance name: default_instance_name Graphical report dir: deployment_report Versions: Blueprint processor: 12.1.0.5, 10-Oct-2012 Cloud protocol: 10001 14:24:59 INFO: Connecting to cloud: https://....
注意: 対応しているオプションを指定していないため、起動サマリーのほとんどの情報には使用されているデフォルト値が反映されています。
使用しているブループリントで入力パラメータを定義しているため、値の指定を要求されます。
Input Parameter Value Entry --------------------------- Zone to use for db (Zone1): Password to use for db (welcome1):
この例では、[Enter]を押してゾーンZone1
のデフォルト値を受け入れた後、パスワードを入力しました。
必要な情報をすべて指定すると、ブループリント・プロセッサによってリソースの作成および進捗のモニタリングが開始されます。これは、縦タイムラインで表されるため、進捗を確認できます。作成される各リソースは、1つの列で表されます。各リソースの状態遷移が発生するにつれて、縦タイムラインの対応する列に表されます。
最初に、すべての可能な状態のリストが短縮形とともに出力されます。状態には、処理フェーズおよび各フェーズの結果が反映されます。
14:25:03 INFO: 14:25:03 INFO: Resource State Timeline 14:25:03 INFO: ----------------------- 14:25:03 INFO: State Key: 14:25:03 INFO: e : Evaluating 14:25:03 INFO: ep: Evaluation pending. (See right side for pendee) 14:25:03 INFO: es: Evaluation succeeded, creation requested 14:25:03 INFO: EF: Evaluation failed 14:25:03 INFO: c : Creating 14:25:03 INFO: CF: Creation failed 14:25:03 INFO: CS: Creation succeeded. State = READY 14:25:03 INFO:
リソース定義を処理する最初のステップは、リソースを記述する定義の式を評価することです(状態キー: e)。場合によっては、表を遅延させる必要があります(状態キー: ep)。すべての評価が完了すると、作成リクエストが作成され(状態キー: c)、そのリソースの処理は正常に完了します(状態キー: CS)。状態キーが出力された後に、リソース作成タイムラインが表示されます。
14:25:03 INFO: MyApp 14:25:03 INFO: / 14:25:03 INFO: / MyDB 14:25:03 INFO: / / 14:25:03 INFO: / / MyDS 14:25:03 INFO: / / / 14:25:03 INFO: / / / MyWebServer 14:25:03 INFO: / / / / 14:25:03 INFO: --------------------- 14:25:03 INFO: | | | | e | 14:25:04 INFO: | | | | es | 14:25:10 INFO: | | | | c | 14:25:10 INFO: | | e | | . | 14:25:12 INFO: | | es | | . | 14:25:17 INFO: | | c | | . | 14:25:17 INFO: | | . | e | . | 14:25:17 INFO: | | . | ep | . | Awaiting creation of MyWebServer 14:25:17 INFO: | e | . | | . | 14:25:17 INFO: | ep | . | | . | Awaiting creation of MyWebServer 14:25:33 INFO: | | . | | . | 14:25:50 INFO: | | . | | . | ..... 14:41:18 INFO: | | . | | . | 14:41:33 INFO: | | . | | CS | 14:41:33 INFO: | | . | |====| 14:41:44 INFO: | | . | ep | | Awaiting creation of MyDB 14:41:57 INFO: | es | . | | | 14:42:00 INFO: | c | . | | | 14:42:17 INFO: | . | . | | | .... 14:44:44 INFO: | . | . | | | 14:45:16 INFO: | CS | . | | | 14:45:16 INFO: |====| . | | | 14:45:32 INFO: | | . | | | 14:45:47 INFO: | | . | | | 14:54:17 INFO: | | . | | | 14:54:17 INFO: | | CS | | | 14:54:17 INFO: | |====| | | 14:54:18 INFO: | | | es | | 14:54:19 INFO: | | | c | | 14:54:33 INFO: | | | CS | | 14:54:33 INFO: | | |====| | 14:54:33 INFO: --------------------- 14:54:33 INFO: 14:54:33 INFO:
タイムラインが縦に表示され、4つリソースはMyApp、MyDB、MyDS、およびMyWebServerであることがわかります。
MyWebServerリソース定義が最初に評価されます(状態キー: e)。この評価に成功すると、作成プロセスが開始されます(状態キー: c)。並行して、MyDBリソースが評価され、作成プロセスが起動されます。次に、MyDSリソースが評価され、ブループリント・プロセッサによってMyWebServerリソースが作成されるまで評価を完了できないと判断されます。同じプロセスがMyAppリソースにも当てはまります。MyDBおよびMyWebServerリソースが正常に作成されると(状態キー: CS)、MyAppおよびMyDSリソースの作成プロセスを続行できます。
次に、このブループリント例の出力セクションが処理されます。
14:54:33 INFO: Output Processing 14:54:33 INFO: ----------------- 14:54:33 INFO: 14:54:33 INFO: Output values specified: 1 14:54:49 INFO: Value of URL: {u'ms_1': u'http://...} 14:54:49 INFO:
前述の例では、ブループリントでURLという1つの出力値を指定し、値はhttps://…で表されています。
すべてのリソースが正常に作成されると、ブループリント・プロセッサによって結果が要約されます。これには、リクエストされた各リソースの処理サマリーの他、各リソースおよび実行全体の時間情報が含まれます。
14:54:49 INFO: Blueprint Processing Summary 14:54:49 INFO: ---------------------------- 14:54:49 INFO: 14:54:49 INFO: Resource State Summary: 14:54:49 INFO: MyWebServer: READY 14:54:49 INFO: URI: /em/cloud/jaas/javaplatforminstancerequest/163 14:54:49 INFO: Cloud resource state: READY 14:54:49 INFO: Timing info: 14:54:49 INFO: Creation start: 14:25:04 14:54:49 INFO: Creation end: 14:41:33 14:54:49 INFO: Duration: 16 minutes, 29.6 seconds 14:54:49 INFO: MyDB: READY 14:54:49 INFO: URI: /em/cloud/dbaas/dbplatforminstance/byrequest/164 14:54:49 INFO: Cloud resource state: READY 14:54:49 INFO: Timing info: 14:54:49 INFO: Creation start: 14:25:12 14:54:49 INFO: Creation end: 14:54:17 14:54:49 INFO: Duration: 29 minutes, 5.7 seconds 14:54:49 INFO: MyDS: READY 14:54:49 INFO: URI: /em/cloud/jaas/datasourcerequest/QA_app_DS@201 14:54:49 INFO: Cloud resource state: READY 14:54:49 INFO: Timing info: 14:54:49 INFO: Creation start: 14:54:18 14:54:49 INFO: Creation end: 14:54:33 14:54:49 INFO: Duration: 0 minutes, 15.3 seconds 14:54:49 INFO: MyApp: READY 14:54:49 INFO: URI: /em/cloud/jaas/applicationinstancedeploymentrequest/myApp@181 14:54:49 INFO: Cloud resource state: READY 14:54:49 INFO: Timing info: 14:54:49 INFO: Creation start: 14:41:57 14:54:49 INFO: Creation end: 14:45:16 14:54:49 INFO: Duration: 3 minutes, 18.9 seconds 14:54:49 INFO: 14:54:49 INFO: Timing Summary (seconds): 14:54:49 INFO: Client-side CPU time: 0 minutes, 6.474 seconds 14:54:49 INFO: Elapsed time: 14:54:49 INFO: Processing time: 29 minutes, 58.0 seconds 14:54:49 INFO: Paused time: 0 minutes, 1.9 seconds 14:54:49 INFO: Total elapsed time: 29 minutes, 59.9 seconds 14:54:49 INFO: 14:54:49 INFO: Graphical Report Generation 14:54:49 INFO: ------------------------------- 14:54:49 INFO: 14:55:37 INFO: Graphical report generated: deployment_report/bp_report.html C:\Users\myname\Dropbox\Code\blueprints>
この項では、より複雑なブループリントの例を順を追って示すことによって、ブループリント概念の使用および構文について説明します。ブループリントを作成する計画がない場合は、この項をスキップできます。
クラウド・ブループリントでは、一連の必要なクラウド・リソースを指定し、テキスト・ファイルによってこれらのリソースを表現します。ブループリントでは、判読が簡単なデータ構造テキストの標準であるYAMLを使用しています。
YAMLは、XMLやJSONと同様に、標準的な表記法です。JSONと同様に、YAMLは、リスト、ディクショナリおよびネストによる情報の表現に使用されます。これらの概念は、すべてのブループリント・セマンティックを取り込むのに十分です。
ブループリントは、複数のセクションを含んだドキュメントと考えることができます。最も単純で実用的なブループリントでは、Resourcesセクションと1つのリソースのみを指定します。この例では、リソースはテンプレートにより定義されるデータベースです。
Resources MyDB: Type: application/oracle.com.cloud.common.DbPlatformInstance+json Container: ... (refers to db template) Properties: ... (provides properties of db)
前述のブループリントでは、MyDBという名前のブループリント・リソースを定義しています。Typeエントリでは、クラウド・リソース・モデルAPIで定義されている、データベースのメディア・タイプを指定しています。Containerエントリでは、新規に作成されたオブジェクトが含まれる親クラウド・リソースを定義しています。(「クラウドのリソース・モデル」でも説明していますが、すべてのクラウド・リソースはこれらのリソースを既存のコンテナに追加することで作成されます)。これはデータベース・サービス・インスタンスであるため、サービスを作成するために使用されるデータベース・テンプレートを介して作成されます。コンテナの指定方法については後述するため、ここでは省略形を使用しています。同様に、このテンプレートで必要とされるデータは、後述するPropertiesエントリで指定されます。次に、Inputsセクションを追加します。
Inputs: DbZone: Type: String DefaultValue: Zone1 Prompt: Zone to use for db DbPassword: Type: String DefaultValue: welcome1 Prompt: Password to use for db Sensitive: True Resources: MyDB: Container: ... Properties: ...
ユーザーがこのブループリントのデプロイメントをリクエストするときは、DbZoneパラメータの値を指定するか、ブループリントで指定されているデフォルト(Zone1)を使用します。ユーザーが指定した入力パラメータ値は、ブループリントの他の部分でも使用でき、特に、リソースの作成に必要な属性値を提供するために使用できます。詳細については後述します。
ブループリントでは、作成するクラウド・リソースを記述するために、ブループリント・リソースを使用します。各ブループリント・リソースについて、クラウド・リソース・モデルで必要とされる情報が提供されます。
次のブループリントでは、データベース・サービス・インスタンスを作成するための単一のリソースを指定しています。
MyDB: Type: application/oracle.com.cloud.common.DbPlatformInstance+json Container: ... Properties: zone: ... name: jbName params: username: app_user password: change_me
ブループリント内の各リソース定義では、名前、リソースの追加先コンテナおよび作成対象の特性を指定するために使用するプロパティが指定されています。この場合、次のようになります。
ブループリント・リソース定義の名前はMyDBです。この名前は、ブループリント全体で使用され、たとえば、ブループリントをデプロイしているユーザーに各リソースの進捗を通知する場合に使用されます。より複雑な場合においては、この名前はブループリント内の他の場所で参照できます。
Containerエントリでは、新規リソースの追加先となるコンテナのURIが指定されています。データベース・サービス・インスタンスを作成するには、必要なデータベースの種類に対応するサービス・テンプレートを特定します。(この方法は、固有関数のトピックについて説明するときに示します。)
Propertiesエントリでは、リソースの作成に必要な値が指定されています。この場合、モデルにはzone、nameおよびparamsプロパティの指定が必要です。これらは、インスタンスを作成するゾーン、名前および選択されたテンプレートで必要な名前/値のペアを指定します。
データに基づいて動作するために、ブループリントでは、固有関数の使用がサポートされています。f_で始まる名前のすべての関数は、引数のリストを使用して呼び出されます。前述の例を引き続き使用すると、2つの固有関数を使用して、必要なコンテナおよび必要なゾーンのURIを返します。
Resources: MyDB: Type: application/oracle.com.cloud.common.DbPlatformInstance+json Container: f_getTemplateURI: - Small Database Service Template_automation_VIMAL_si - dbaas Properties: zone: f_getZoneURI: ... name: jbName params: username: app_user password: ...
示されているとおり、f_getTemplateURI
関数では、テンプレートの名前とサービス・タイプの2つの引数を使用します。現在サポートされているサービス・タイプは、dbaas、jaasおよびiaas (Database-、Java-、およびInfrastructure-as-a-Service)です。f_getZoneURI
はf_getTemplateURI
と類似していますが、対象はゾーンです。その他の固有関数については後で説明します。関数の完全セットは、「クラウド・ブループリントおよびブループリントのリファレンス」で説明しています。
前述のブループリントの例に対して、ここで2つのパラメータを追加して使用します。このようにすることによって、ブループリントをデプロイするユーザーは、使用するゾーンとパスワードを指定できます。
Inputs: DbZone: Type: String DefaultValue: Zone1 Prompt: Zone to use for db DbPassword: Type: String DefaultValue: welcome1 Prompt: Password to use for db Sensitive: True Resources: MyDB: Type: application/oracle.com.cloud.common.DbPlatformInstance+json Container: f_getTemplateURI: - Simple DB Template - dbaas Properties: zone: f_getZoneURI: - f_path: - "Inputs.DbZone.Value" - dbaas params: username: app_user password: f_path: - 'Inputs.Password.Value'
Inputsセクションでは、2つの入力パラメータを定義し、パラメータの値は、f_path
固有関数を経由してアクセスされます。f_path
関数は、パス式の評価に使用され、ブループリント内の任意のデータや、アクセス権がある任意のクラウド・リソース・データにアクセスします。この例では、パス式はネストされた属性にアクセスするために単にドット演算子を使用しており、初めにブループリントのInputs属性(Inputsセクション)にアクセスし、その中からUserId属性にアクセスし、その中からValue属性にアクセスしています。
ブループリントによって複数のデータベースが作成され、ユーザーにユーザー名とパスワードの入力を要求しないようにするとします。さらに、後でパスワードを変更しやすいようにブループリントをコーディングします。手続き型言語では、意図を文書化するために名前付きリテラルを使用し、コードの先頭でこれを変更できるようにします。ブループリント内では、Dataセクションを使用してこれを実現しています。
Data: QADBCreds: user: sysman password: sysman Resources: MyDB1: Type: application/oracle.com.cloud.common.DbPlatformInstance+json Container: f_getTemplateURI: - Small Database Service Template_automation_VIMAL_si - dbaas Properties: zone: f_getZoneURI: - f_path: - "Inputs.DbZone.Value" - dbaas params: username: f_path: - “Data.QADBCreds.user" password: f_path: - “Data.QADBCreds.password" name: jbName MyDB2: Container: ...
前述の例では、Dataセクションが、前に示したInputsと同じ方法で、path関数を経由してトラバースできるYAML構造になっていることがわかります。
次のより複雑な例では、これを使用したデータベースおよびアプリケーションの作成方法を示します。これを行うには、ブループリントで次の4つのクラウド・リソースを指定します。
データベース・サービス・インスタンス
Javaサービス・インスタンス
Javaサービス・インスタンスのデータソース
Javaサービス・インスタンスのアプリケーション
新しい構成メンバーは下記で強調表示されています。
Inputs: DbZone: Type: String DefaultValue: Zone1 Prompt: Zone to use for db DbPassword: Type: String DefaultValue: welcome1 Prompt: Password to use for db Sensitive: True Macros: # Return a name with unique (date-time) suffix # The one argument is a 'name' string f_myDescriptiveName: - 1 - f_concat: - arg_1 - '_' - f_path: - f_path: - 'Info.time_suffix' Resources: MyDB: Type: application/oracle.com.cloud.common.DbPlatformInstance+json Container: f_getTemplateURI: - Small Database Service Template_automation_VIMAL_si - dbaas Properties: zone: f_getZoneURI: - f_path: - "Inputs.DbZone.Value" - dbaas params: username: app_user password: f_path: - "Inputs.DbPassword.Value" name: jbName MyWebServer: Container: f_getTemplateURI: - PS4_LowHeapTemplate - jaas Properties: name: f_myDescriptiveName: - jb_pf zone: f_getZoneURI: - Zone1 - jaas MyDS: Type: application/oracle.com.cloud.jaas.DataSource Container: f_getResourceURI: - MyWebServer Properties: name: QA_app_DS jndi_name: - jndi_1 - jndi_2 jdbc_driver: oracle.jdbc.OracleDriver database_type: Oracle database_connect_string: f_concat: - 'jdbc:oracle:thin:@' - f_getResourceAttr: - MyDB - connect_string username: app_user password: f_path: - "Inputs.DbPassword.Value" MyApp: Type: application/oracle.com.cloud.jaas.ApplicationInstanceDeployment Container: f_getResourceURI: - MyWebServer Properties: application_instance_component: f_getAppCompURI: - jbcomponent - SSA_USER1 - name: myApp Outputs: URL: Description: URL of the deployed app Value: f_getResourceAttr: - MyApp - http_application_invocation_url
繰り返し実行する構成メンバーの順序がある場合、マクロ展開を使用してブループリントの可読性を改善できます。マクロを使用すると、ロジックをカプセル化することも可能であり、たとえば、1つの場所でロジックを変更して、それを参照するすべてのコードに影響を及ぼすことができます。このブループリントの例では、f_myDescriptiveName
というマクロを定義しています。このマクロでは1つの文字列パラメータを使用し、_ (アンダースコア)と現在時刻の文字列表現を付加します。
この例では、主要な新機能として、作成されたリソースの属性を参照できることを示しています。たとえば、データソースのクラウド・リソース・モデルでは、その値がデータソースの作成に必要なdatabase_connect_string属性が定義されます。この文字列の内容はデータベースが作成されるまで取得できないため、ブループリントの作成者はこの内容を事前に知ることができないことは明らかです。かわりに、ブループリントの作成者は、固有関数を使用して新しく作成されたデータベースの必要なプロパティを参照します。(各DatabasePlatformInstanceは、connect_stringプロパティを公開します。)これを行うために、データ・ソースでは、f_getResourceAttr固有関数を経由して、JDBCConnectStringの値を指定します。
MyDS: ... Properties: ... database_connect_string: f_concat: - 'jdbc:oracle:thin:@' - f_getResourceAttr: - MyDB - connect_string
この場合、f_getResourceAttr
関数は、MyDBリソースが作成されるのを待機し、MyDBリソースのconnect_stringプロパティの値を返します。同様に、データソースの作成を完了するためには、最初に作成されたJavaPlatformInstanceにこのデータソースを追加する必要があるため、JavaPlatformInstanceのURIを参照する必要があります。
MyDS: ... Container: f_getResourceURI: - MyWebServer
この場合、f_getResourceURI
関数は、MyWebServerリソースが作成されるのを待って、そのURIを返します。(データソースをMyWebServerに追加するのに加え、ApplicationInstanceDeploymentも追加する必要があるため、両方に同じ手法が使用されます。)
注意: f_path
関数を使用しても同じ効果を実現できますが、f_getResourceAttr
では、リソースの作成が成功し、そのステータスがREADYになるのを待って、その属性の取得を試みます。
一般的には、ブループリントのリソースは別のリソースを参照でき、ブループリントのオーケストレーションはこのような依存関係を構成し、可能な場合はリソースが並行して作成されます。
ブループリント・プロセッサは、ブループリントのグラフィック表示が含まれるHTMLレポートも生成できます。これは、ブループリントの全体構造とブループリント・エンティティの関係を理解するのに役立ちます。また、レポートには、ブループリントのデプロイ結果を含めることができます。
次のサンプル・レポートは、「ブループリントのデプロイメント処理」で説明したブループリントの例に対するものです。レポートの最初の部分に、実行のサマリーが表示されます。
図55-1 ブループリント・レポートのタイトル
次のグラフィック表示では、2つのタイプの矢印が使用されています。1つは、包含を表します。たとえば、WebLogic Server内へのデータソースの包含などです。もう1つは、ブループリントの要素間でデータがどのように使用されるかを表します。ブループリント・デプロイメントが成功すると、すべてのリソースのステータスはREADY(緑)になり、リソースをクリックできます。これは、別のレポート・セクションにリンクしており、作成時の属性の値を確認できます。
図55-2 ブループリントのグラフィック表示
この後に、グラフィック表記規則を説明する凡例が表示されます。
図55-3 ブループリントの凡例
最後に、作成された各リソースのサマリーが表示されます。(グラフィック表示のリソース定義をクリックすると、選択したリソースのリソース・サマリーが直接表示されます。)
図55-4 ブループリントによって作成されたクラウド・リソース - I
図55-5 ブループリントによって作成されたクラウド・リソース - II
これで、クラウド・ブループリントの紹介は終わりです。次の機能を含む多くの機能は、「クラウド・ブループリントおよびブループリントのリファレンス」でのみ説明しています。
ブループリント・マクロ。クラウドおよびブループリントの参照用パス式。ブレークポイントの設定およびブループリントのデバッグ。ヒント、アドバイスおよびよくある質問。