CAPI API を作成する
既存の CAPI API がプロバイダーの CAPI インターフェイスと統合されていない場合は、API を作成できます。リソースブロックのステップは、操作が実行されるときに API メソッドを呼び出すことができます。
始める前に
- 必要なロール:admin
- デフォルトの CAPI API を調べ、作成しているプロバイダーと製品が存在していないことを確認します。
- プロバイダーに対する REST 呼び出しの作成方法を理解できるように、クラウドプロバイダー API に精通しておいてください。プロバイダー API に渡すことができるヘッダー、認証要件、エンドポイント、およびデータに精通していない場合は、独自の CAPI コンポーネントをビルドできません。
このタスクについて
このトピックでは、CAPI API を作成する手順について説明します。また、CAPI、リソースブロック、詳細計画、および認証情報マッピングの構成についても説明します。
手順
- クラウドアドミンポータルで、 デザイン > クラウド API.
- [API] タブをクリックします。
- [新規] をクリックします。
-
フォームフィールドに入力します (テーブルを参照)。
フィールド 説明 クラウド API わかりやすい名前を入力します。 インターフェイス 必要な操作を提供する既存のインターフェイスから選択します。 コネクター コネクターが、すぐに利用可能で、変更できない Java コネクターである場合、[スクリプトコネクター (Script Connector)] がこのフィールドに表示されます。これらのスクリプトコネクターを変更する必要はありません。 製品 プロバイダーの一部である製品を選択します。製品はのリソースタイプが CMDB に含まれています。 バージョン この API を識別するバージョン番号を指定します。この API が最初のバージョンの場合は、1.0 を入力します。同じ API の複数のバージョンを作成し、リソースブロックの操作ステップで特定のバージョンを参照できます。 スクリプト化 このフィールドは、[インターフェイス] の値が [スクリプトコネクター (Script Connector)] の場合に選択されます。 スクリプトタイプ スクリプトの言語を選択します。 注:JavaScript をお勧めします。メソッドマッパーは、Javascript で書かれた MID サーバー スクリプトインクルードを使用します。
ExecuteScriptOnInstance 説明 この API の説明を入力します。 -
必要なすべての操作が [CAPI メソッドマッパー] 関連リストに表示されていることを確認します。
[CAPI メソッドマッパー] リストの操作は、選択したインターフェイスの操作と同じです。これらはこの API にバインドされます。リストに対して操作を追加することも削除することもできません。一部の操作、特に Azure 操作は、API の実際の実装を実行する MID サーバー スクリプトインクルードを使用します。このスクリプトには、AWS や Azure などのプロバイダーの REST API の呼び出しが含まれます。この API はプロバイダーのドキュメントに記されています。
-
CAPI メソッドマッパーのスクリプトインクルードを表示するには、次の手順を実行します。
-
関連リストの歯車アイコン (歯車アイコン) をクリックし、[要求スクリプト] フィールドを [選択済み] 列に追加して [OK] をクリックします。
これで MID サーバー スクリプトインクルードがメソッドマッパーのリストに表示されます。 -
スクリプトの名前をクリックすると、スクリプトインクルードが表示されます。
この例では、CreateNode 操作は azure-compute-1.0-CreateNode スクリプトインクルードを使用します。このスクリプトインクルードには、次のコードが含まれます。
createNode(); function createNode(){ var acp = new AzureComputeVirtualMachine(this.parameters, this.headers); //this passes the parameters and headers into the AzureComputeVirtualMachine script include. var vm = acp.createVirtualMachine(); return vm; }このコードは、デフォルトで クラウドプロビジョニングとガバナンス アプリケーションで使用できる AzureComputeVirtualMachine スクリプトインクルードを呼び出すことに注意してください。ここには、仮想マシンに対する Azure への API 呼び出しがすべて含まれます。
-
-
必要な認証情報をクラウドプロバイダーに渡す API 設定の上書きを作成します。
また、クラウドプロバイダー REST API に必要なヘッダー情報を渡す必要があります。インスタンスがクラウドプロバイダー API に REST 呼び出しを行うときに認証情報データが含まれないので、API 設定の上書きが必要です。
ヒント:どの API 設定の上書きを作成するかわからない場合は、CAPI に存在する類似の API を調べ、同じ上書きを使用します。たとえば、AWS ストレージなどの API を作成する場合は、AWS Block Storage や AWS Compute などの他の AWS API を確認してください。- [API 設定の上書き] 関連リストで、[新規] をクリックします。
-
ルックアップアイコンをクリックし、既存の設定パラメーターを選択します。
デフォルトで、[ID] や [認証情報] など、多くの役立つパラメーターが用意されています。
-
上書き値を入力します。
静的値を設定するか、
$(CloudCredential.attribute_name)の形式でシステムから値をプルできます。CloudCredentialの部分は認証情報ストアからロックを解除します。attribute_nameの部分は、取得しようとしている特定の認証情報、エイリアス、またはエンドポイント URL に依存する属性です。次に移動した場合 接続と資格情報 > 認証情報 で AWS 認証情報を開くと、[ Access Key ID ] フィールドを右クリックして、アクセスキーが格納されている [Credentials] テーブル内の列の名前を確認できます。この場合、アクセスキーはaccess_key列に格納されます。したがって、上書き値は $(CloudCredential.access_key) でなければなりません。
-
API 設定の上書きで使用する設定パラメーターを作成する必要がある場合は、以下の手順に従います。
- [API 設定の上書き] フォームで、[設定パラメーター] フィールドのルックアップアイコンをクリックします。
-
[設定パラメーター] ウィンドウで [新規] をクリックし、フォームに入力します。
フィールド 説明 設定パラメーター名 内容を端的に表す名前を入力します。 デフォルト値 オプションのデフォルト値を設定します。 エンドポイント このフィールドは読み取り専用です。 説明 役立つ説明を入力します。 設定データタイプ データのタイプを選択します。 - 文字列
- DateTime
- 日付
- 長
- パスワード
- ブール
設定タイプ 設定のタイプを選択します。 - ヘッダー:この値を使用して、ヘッダーとして上書き値を渡します。API の一部として MID サーバー スクリプトインクルードがあり、
this.headersをパラメーターとして使用する場合、上書き値はプロバイダー API に渡されます。 - 設定
- URI 設定
-
必要に応じて、クラウドプロバイダー API に対して操作を実行するスクリプトインクルードを変更します。
-
クラウド API フォームの [CAPI メソッドマッパー] 関連リストで、CAPI インターフェイス操作の横にある情報アイコン (
) をクリックします。
CAPI インターフェイス操作名自体をクリックしないでください。 - [レコードを開く] をクリックします。
-
操作フォームで、次のフィールド値を変更できます。
フィールド 説明 エンドポイント操作 デフォルトの [スクリプトを実行] エンドポイント操作をそのまま使用します。 サポートバージョン 通常は、この値を変更する必要がありません。 API の異なるバージョンでメソッドマッパーを使用するように、サポートバージョンを変更します。デフォルトでは、メソッドマッパーは、所属する API と同じバージョン番号に設定されます。
-
[要求スクリプト] フィールドで、プレースホルダー MID サーバー スクリプトインクルードの横にある情報アイコン (
) をクリックして変更します。
-
スクリプトインクルードフォームで、スクリプトを作成します。
次の JavaScript 例では、Azure ロードバランサーを一覧表示します。役に立つコメントをメモしてください。
getResourceInfo(); function getResourceInfo() { var anpi = new AzureLoadBalancer(this.parameters, this.headers); //this calls the 'AzureLoadBalancer' MID サーバー script include, which in turn //calls the 'AzureCloudAPIBase' script include, both of which //are already in your instance by default. //The 'AzureCloudBase' script include runs a query for resources of a given type in a //specified region. var items = anpi.listResourcesByRegionOrIDs(); //This function is in the 'AzureCloudAPIBase' script include. It calls the Azure API. return items; }この操作に提供される上書きは、クライアント ID、テナント ID、シークレットキー、エンドポイント URL など、Azure がロードバランサーを検索するために必要なものです。Google Cloud 統合の例については、MID サーバー JAR ファイルも必要です。
- [送信] をクリックします。
- 各操作のスクリプトインクルードを変更します。
-
クラウド API フォームの [CAPI メソッドマッパー] 関連リストで、CAPI インターフェイス操作の横にある情報アイコン (