情報の参照

多くのリソースは通常、ほかのリソースと連携してシステムを構成します。

例えば、仮想サーバにはシステムボリュームが必要であり、仮想サーバはネットワークに接続しているなどです。

Heatテンプレートでは、依存先のリソース情報(ID等)を直接記述することができますが、「サンプルシステム構成 Heatテンプレート例」のように同時にリソースを作成する場合は、その情報を記述することができません。

そこで各関数を使用することで、リソース情報やパラメータを作成するリソースに反映させるように定義することができます。

※関数についての詳細は「Intrinsic Functions」を参照してください。

以下に、get_resource関数を使用して、仮想サーバとネットワークを同時に作成する場合に、仮想サーバをネットワークに接続させる例を示します。

resources:
  network:
    type: OS::Neutron::Net

  subnet:
    type: OS::Neutron::Subnet
    properties:
      network_id: { get_resource: network }

  port:
    type: OS::Neutron::Port
    properties:
      network_id: { get_resource: network }
      fixed_ips:
        - subnet_id: { get_resource: subnet }

  server:
    type: OS::Nova::Server
    properties:
      networks: ["port": {get_resource: port} ]