Cloud Assembly でクラウド テンプレートを作成する場合、リソース タイプ パレットには、サポートされているクラウド アカウントおよび統合エンドポイントのリソース タイプが含まれます。リソース タイプの拡張されたリストに基づいてクラウド テンプレートを作成することが必要になる場合があります。カスタム リソース タイプを作成してデザイン キャンバスに追加し、デザインおよび展開のニーズをサポートするクラウド テンプレートを作成できます。
カスタム リソース名とリソース タイプ
クラウド テンプレート リソース タイプ パレット内では、カスタム リソース名でカスタム リソースを識別します。
カスタム リソースのリソース タイプは Custom. で始まる必要があり、各リソース タイプは一意にする必要があります。たとえば、Active Directory ユーザーを追加するカスタム リソースのリソース タイプとして Custom.ADUser
を設定することができます。テキスト ボックスに Custom. が含まれているかどうかは検証されませんが、この文字列は削除しても自動的に追加されます。
拡張性アクション カスタム リソース
カスタム リソース タイプを使用すると、クラウド テンプレートで拡張性アクションを使用して複雑なアプリケーションを構築できます。たとえば、拡張性アクションと Amazon Web Services および Microsoft Azure のネイティブ統合を使用して、それぞれのサービスと簡単に統合できます。拡張性アクション カスタム リソースを作成するには、カスタム リソース エディタで [基準] オプションをクリックし、[ABX ユーザー定義スキーマ] を選択します。
拡張性アクション カスタム リソース向けのライフサイクル アクション
カスタム リソース向けに拡張性アクションを使用する場合は、次のライフサイクル アクションを定義できます。
- [作成]:この拡張性アクションは、展開の開始時に呼び出されます。
- [読み取り]:この拡張性アクションは、展開されたリソースの最新の状態を取得するために使用されます。
- [更新]:この拡張性アクションは、クラウド テンプレート プロパティが更新されるときに呼び出されます。このアクションは、プロパティが
recreateOnUpdate
でマークされていない場合にのみトリガされます。 - [破棄]:この拡張性アクションは、展開が削除されるときに呼び出されます。
これらのライフサイクル アクションは、既存の拡張性アクションから手動で選択することも、[アクションの生成] を選択して自動的に生成することもできます。[アクションの生成] を選択する場合は、新しい拡張性アクションをどのプロジェクト内に生成するかを指定する必要があります。
vRealize Orchestrator 個のカスタム リソース
Properties
、
Date
、
string
、
number
などのプリミティブ タイプは、カスタム リソース タイプの作成ではサポートされていません。
AD:UserGroup
は、Active Directory ユーザー グループの管理に使用される SDK オブジェクト タイプです。
vRealize Orchestrator のカスタム リソースの外部タイプ
外部タイプ プロパティは、vRealize Orchestrator のカスタム リソースのタイプを定義します。Cloud Assembly のカスタム リソース タイプで作成ワークフローを選択すると、その下に外部タイプのドロップダウンが表示されます。ドロップダウンには、vRealize Orchestrator ワークフローの出力パラメータから選択された外部タイプのプロパティが含まれています。ドロップダウンに含まれる選択されたワークフローの出力プロパティは、VC:VirtualMachine
や AD:UserGroup
などの非アレイの SDK オブジェクト タイプである必要があります。
DynamicTypesManager.getObject()
メソッドを使用して変数が定義されていることを確認します。
カスタム リソース タイプを定義するときは、選択した外部タイプの可用性の範囲も定義します。選択した外部タイプは次のように定義できます。
- プロジェクト間で共有。
- 選択したプロジェクトでのみ使用可能。
定義された範囲ごとに、特定の外部タイプ値を持つ 1 つのカスタム リソース タイプのみを設定できます。たとえば、プロジェクトに外部タイプとして VC:VirtualMachine
を使用するカスタム リソースを作成した場合、同じ外部タイプを使用する同じプロジェクトに対して別のカスタム リソースを作成することはできません。また、同じ外部タイプを使用する 2 つの共有カスタム リソースを作成することもできません。
vRealize Orchestrator ライフサイクル アクションの検証
作成、削除、更新ワークフローをカスタム リソースにライフサイクル アクションとして追加すると、Cloud Assembly は、選択したワークフローに適切な入力および出力プロパティ定義があることを検証します。
- 作成ワークフローには、
SSH:Host
やSQL:Database
などの SDK オブジェクト タイプの出力パラメータが必要です。選択したワークフローが検証で正常と判定されなかった場合、更新または削除ワークフローを追加したり、変更をカスタム リソースに保存したりすることはできません。 - 削除ワークフローには、カスタム リソースの外部タイプと一致する SDK オブジェクト タイプの入力パラメータが必要です。
- 更新ワークフローには、カスタム リソースの外部タイプと一致する SDK オブジェクト タイプの入力および出力パラメータの両方が必要です。
カスタム リソース プロパティ スキーマ
domain
および
location
プロパティが含まれている場合、
[読み取り] アクションでも同じ名前の同じプロパティが返される必要があります。
カスタム リソースのプロパティ スキーマを編集するには、[プロパティ] タブに移動し、[コード] タブまたは [フォーム] タブを使用します。
- [コード]:YAML コンテンツを使用してプロパティ スキーマを編集します。このオプションを選択した場合、プロパティ スキーマは JSON スキーマを使用して定義されます。
- [フォーム]:拡張性アクション カスタム リソースの場合は、[新しいプロパティ] をクリックし、名前、表示名、説明、プロパティ タイプ、デフォルト値を構成して、新しいプロパティを作成します。vRealize Orchestrator カスタム リソースの場合は、[プロパティの削除] をクリックして、必須でないプロパティや非計算プロパティをスキーマで非表示にすることもできます。
Day 2 操作のカスタム申請フォーム
さまざまなタイプのリソース プロパティを追加または変更することにより、カスタム リソースに含まれる Day 2 操作の申請フォームを効率化できます。
たとえば、申請フォームの入力パラメータの値を、展開名やプロジェクト名を取得する vRealize Orchestrator アクションなどの外部ソースにバインドできます。特定の入力パラメータの値を、同じ申請フォームに含まれる他の 2 つのテキストボックスの計算値にバインドすることもできます。
Day 2 操作の申請フォームの検証
Day 2 操作の申請フォームは、外部検証を追加することで検証できます。外部検証を使用すると、検証パラメータが満たされるまで、ユーザーは申請フォームを送信できなくなります。外部検証は、カスタム リソースまたはリソース アクション エディタの [要求パラメータ] ページにある [検証] タブから追加できます。タブを選択したら、[Orchestrator 検証] 要素をキャンバスにドラッグして、検証に使用する vRealize Orchestrator アクションを追加できます。
たとえば、ユーザー パスワードを変更するための Day 2 操作を含むカスタム リソースを作成できます。このような使用事例では、SecureString
タイプを使用する newPassword
および confirmPassword
入力パラメータが含まれている vRealize Orchestrator アクションを追加できます。
if (newPassword != confirmPassword) { return 'passwords are different'; } if (newPassword.lenght < 7) { return 'password must be at least 10 symbols'; } return null;