情報の参照
多くのリソースは通常、ほかのリソースと連携してシステムを構成します。
例えば、仮想サーバにはシステムボリュームが必要であり、仮想サーバはネットワークに接続しているなどです。
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} ]