構文リファレンス

ここでは Deployment Manager で使用する構文について説明します。設定やテンプレートにどのような構文を使用するのかについて、このガイドをご参照ください。

設定とテンプレートに使用する構文

基本的な構文

  • resources: これから作成するリソースセット。
    • name: このリソースをインスタンスにしたときの名前。
    • type: リソースのタイプ。これは、compute.v1.instance のような基本タイプと、インポートしたテンプレートの場合があります。サポートされるリソースの完全なリストは、サポートされるリソースタイプに関するドキュメントをご覧ください。
    • properties: このリソースのプロパティ。概要については、テンプレート プロパティをご覧ください。
    • metadata: このリソースの追加の設定。メタデータのフィールド リストをご覧ください。

resources:
- name: vm-instance
  type: compute.v1.instance
  properties:
    machineType: zones/us-central1-a/machineTypes/n1-standard-1
    ...

リファレンス

リファレンスは、設定内の別のプロパティ値を参照する方法です。リファレンスを指定すると 2 つのリソースの間に明示的な依存関係が作成され、リファレンス対象のリソースが作成される前にそのリファレンスが必ず作成されます。たとえば、A というリファレンスに B というリファレンスがある場合、A リファレンスの前に、必ず B リファレンスが作成されます。

リファレンスを宣言するには、次の構文を使用してリファレンスにプロパティ値を設定します。

$(ref.[RESOURCE_NAME].[PATH_TO_PROPERTY])

$(ref.exampleInstance.networkInterfaces[0].natIp)
$(ref.exampleInstance.serviceAccounts[0].email)

リファレンスについて、さらに学習する。

環境変数

環境変数は、デプロイからの特定の情報が自動的に挿入される事前定義の変数です。テンプレートで環境変数を使用すると、繰り返し使用される既知の情報を挿入できます。環境変数は、それぞれのデプロイに固有の値となっているので、同じテンプレートを複数回デプロイするときに、この変数を使用して固有の名前を作成することができます。

利用可能なすべての環境変数については、環境変数をご覧ください。

環境変数の使用方法:

{{ env["deployment"] }} # Jinja

context.env["deployment"] # Python

- type: compute.v1.instance
  name: vm-{{ env["deployment"] }}

テンプレート プロパティ

テンプレートのプロパティは、任意のプロパティとして作成できます。値を直接記述するのではなく、トップレベルの設定にテンプレート プロパティを宣言し、プロパティ値を設定します。テンプレートにプロパティと値を静的な状態で直接設定する方法とは異なります。テンポラリ プロパティを作成するには、次の構文を使用します。

{{ properties["property-name"] }} # Jinja

context.properties["property-name"] # Python

次に、トップレベルの設定または親テンプレートにプロパティ値を設定します。

imports:
- path: vm_template.jinja

resources:
- name: my-vm
  type: vm_template.jinja
  properties:
   property-name: example-value

テンプレートのプロパティについてさらに学習する。

出力

デプロイに関する一定の情報が公開されように、出力セクションに任意のキー/値のペアを定義することができます。キーを提供し、値を設定します。これには静的文字列、プロパティへのリファレンス、テンプレート変数、または環境変数のいずれかを使用します。

  • outputs: リソース プロパティ内にユーザーが呼び出すことができる出力のリストを宣言します。
    • name: 出力プロパティの名前。
    • value: 出力プロパティの値。

resources:
- name: vm-instance
  type: compute.v1.instance
  ...

outputs:
- name: databaseIp
  value: $(ref.vm-instance.networkInterfaces[0].natIp)
- name: databaseName
  value: example-database

出力についてさらに学習する。

メタデータ

metadata セクションには、リソース単位に適用できる特別なメタデータが含まれています。Deployment Manager には、一定の機能を起動する固有のメタデータがあります。たとえば、dependsOn 機能はメタデータ入力に依存します。

Depends on

dependsOn プロパティはリソース間に明示的な依存関係を作成します。たとえば、A リソースが B リソースに依存するように指定すると、A リソースが作成される前に必ず B リソースが作成されます。

metadata: the metadata for this resource
  dependsOn: Any explicit dependencies to another resource.

resources:
- name: vm-instance
  type: compute.v1.instance
  properties:
    machineType: zones/us-central1-a/machineTypes/n1-standard-1
    ...
  metadata:
    dependsOn:
    - persistent-disk-1
    - a-new-network-1

明示的な依存関係についてさらに学習する。

スキーマの構文

スキーマを使用すると、テンプレートに対してユーザーがどのように操作できるかを制御できます。スキーマ ファイルには、次の構文を使用できます。スキーマの詳細

情報

info プロパティは、スキーマに関するメタ情報を格納します。タイトル、バージョン番号、説明などの情報が含まれます。

最低限の条件として、このプロパティではタイトルと説明を指定します。

info:
  title: MongoDB Template
  author: Jane
  description: Creates a MongoDB cluster
  version: 1.0

imports

imports フィールドは、このスキーマを使用するテンプレートに必要な関連ファイルのリストを格納します。imports のリストを備えたスキーマを持つテンプレートをアップロードすると、Deployment Manager によって、imports プロパティに示されたすべてのファイルがテンプレートと一緒にアップロードされているかチェックされます。

imports:
  - path: helper.py
    name: mongodb_helper.py

必須

required フィールドは、スキーマを使用するテンプレートで必要とされるプロパティ フィールドの要素のリストを格納します。この required フィールドに指定されていない要素は、省略可能な要素と判断されます。

required:
  - name

properties:
  name:
    type: string
    description: Name of your Mongo Cluster

  size:
    type: integer
    default: 2
    description: Number of Mongo Slaves

properties

properties フィールドには、このドキュメントの JSON スキーマルールが含まれています。properties フィールドで定義された要素は、テンプレートを使用するユーザーが設定できます。次のように、各プロパティに対し、サポートされているすべての JSON スキーマ検証を使用できます。

  • type(文字列、ブール値、整数、数値など)
  • default
  • minimum / exclusiveMinimum / maximum / exclusiveMaximum
  • minLength / maxLength
  • pattern
  • not X / allOf X, Y / anyOf X, Y / oneOf X, Y

最低限の条件として、このフィールドで type と description を設定し、どのような値がこのプロパティで受け入れられるのか、ユーザーに伝えることをおすすめします。オプションのプロパティについては、default 値も含めることをおすすめします。

検証キーワードのリストについては、JSON スキーマ検証ドキュメントをご覧ください。

properties:
  name:
    type: string
    description: Name of your Mongo Cluster

  size:
    type: integer
    default: 2
    description: Number of Mongo Slaves
    minimum: 1

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud Deployment Manager のドキュメント