Deployment Manager との統合

Deployment Manager には、Deployment Manager サービスでサードパーティ API を登録する機能があります。Deployment Manager で API をタイプ プロバイダとして登録すると、Deployment Manager を使用して、API からのリソースを設定のタイプとしてデプロイできるようになります。

このドキュメントは、サードパーティ API を Deployment Manager に統合するプロセスを 1 ページにまとめたものです。このページにはプロセスの各ステップに関する包括的な手順ではなく、概要と、詳細に関する補足リンクが記載されています。このページで API を追加するプロセスの詳細を取得し、ステップごとの手順に関する詳細なドキュメントを参照できます。

API が Deployment Manager と統合可能かどうか判断する

Deployment Manager は、Deployment Manager と統合しようとする API が存在することを前提としています。詳細は以下のとおりです。

  • Deployment Manager は RESTful API を前提としています。これは API が作成、読み取り、更新、削除(CRUD)メソッドとの REST に似たインターフェースを公開するということです。
  • すべてのパスパラメータとクエリ パラメータが正常に解決されます。API のすべてのパスパラメータとクエリ パラメータはリソースの本文の一部として存在するか、API のすべてのメソッドに存在する必要があります。これで Deployment Manager は、ユーザーがパラメータを指定するときにパラメータを一致させることができます。
  • API の記述子ドキュメント エンドポイントにアクセスできる必要があります。Deployment Manager が API の記述子ドキュメントを取得する HTTP リクエストを作成するため、Deployment Manager がアクセス可能な場所に記述子ドキュメントをホストする必要があります。ドキュメントは一般公開されているか、基本認証によって保護されている必要があります。
  • 前の記述に関連して、API には基本認証があるか、Google Kubernetes Engine または Google Cloud Endpoints で実行されている API は、プロジェクトのサービス アカウントからのアクセス トークンを使用する OAuth 2.0 認証をサポートします。詳細については、認証をご覧ください。
  • API が複雑な場合、Deployment Manager に明確とは言えない API 動作を処理する方法を伝えるため、オプションを追加して構成することが必要な場合があります。

詳細については、API 要件のドキュメントをご覧ください。

API を Deployment Manager に追加する

API が上記の要件に適合することを確認したら、API をタイプ プロバイダ リソースとして追加します。API 記述子ドキュメントを指定する必要があります。さらに任意で拡張オプションを使用して追加の API オプションを指定することもできます。API をタイプ プロバイダとして追加すると、その API のすべてのリソースが Deployment Manager に公開され、ユーザーが Deployment Manager を使用して、リソースを作成、更新、削除できるようになります。

API に簡単に認識できない特定の API パターンがあると、API リクエストを適切に処理できるように、Deployment Manager に対する入力マッピングの指定も必要になります。詳細については、拡張 API オプションをご覧ください。

設定ファイルでタイプ プロバイダを呼び出す

API が Deployment Manager に登録すると、構成でのタイプとして API リソースを呼び出すことで、API リソースを作成できるようになります。

たとえば、タイプ プロバイダを example-directory-api として、person という API リソースを作成する場合、以下のように構成にタイプを指定できます。

resources:
- name: Jane
  type: my-project/example-directory-api:person
  properties:
  - name: Jane
    website: www.example.com
    ...

比較のため、Google API を呼び出し、API リソースを作成する同じプロセスを以下に示します。

resource:
- name: example-instance
  type: compute.v1.instance
  properties:
  - machineType: n1-standard-1
    ...

次のステップ