get_attr

get_attr 関数では、インスタンス化したリソースのattributeの値を参照できます。

リソースタイプに定義されているattributeの名前を指定します。

get_attr:
  - <resource ID>
  - <attribute name>
  - <key/index 1>
  - <key/index 2>
  - ...
Element Required Description
<resource ID> Yes Resources Sectionで定義したリソースのIDを指定します。
<attribute name> Yes 値を参照したいattributeの名前を指定します。リソースタイプに定義されているattributeの名前を使用できます。
<key/index 1,2,..> No attributeがリストまたはハッシュの場合にデータを取得するためのキーまたはインデックスを指定します。

get_attr 関数の指定例

resources:
  my_instance:
    type: OS::Nova::Server

outputs:
  instance_ip:
    description: IP address of the deployed compute instance
    value: { get_attr: [my_instance, first_address] }
  instance_private_ip:
    description: Private IP address of the deployed compute instance
    value: { get_attr: [my_instance, networks, private, 0] }

この例では、'networks' attribute は以下のようなデータを保持しています。

{"public": ["2001:0db8:0000:0000:0000:ff00:0042:8329", "1.2.3.4"],
"private": ["10.0.0.1"]}

上記の例では、outputsセクションのinstance_private_ipの値は"10.0.0.1"になります。