BT

InfoQ ホームページ ニュース Terraform 0.12がこの夏にリリース予定

Terraform 0.12がこの夏にリリース予定

Leia em Português

ブックマーク

原文(投稿日:2018/08/02)へのリンク

HashiCorpはTerraform 0.12をこの夏にリリースする予定だ。このリリースには、コミュニティから待望されていた改善が含まれている。特に次のような変更が注目される。式の第1級のサポート、for式、条件句だ。新しいバージョンにアップグレードする場合、破壊的な変更になる場合がある。

式の第1級のサポートによってTerraformのスクリプトはシンプルになる。また、この言語に追加の利点を提供する。現在のバージョンでは、式はダブルクォートで囲う必要があり、補間シーケンスとして扱う必要がある。0.12のリリースで、式は言語のネイティブな一部になり、次のように直接的に書けるようになる。

variable "ami" {}

# Terraform 0.11 and earlier
resource "aws_instance" "example" {
   ami = "${var.ami}"
}

# Terraform 0.12
resource "aws_instance" "example" {
   ami = var.ami
}

この変更によって[...]と{...}を使ったlistとmapの構文が式で直接書けるようになる。新しいfor式と一緒に使うとlistとmapの動的なフィルタリングと変換が実現できる。if節を使って結果のフィルタリングもできる。

# Terraform 0.12

output "instance_public_ip_addresses" {
   value = {
      for instance in aws_instance.example:
         instance.id => instance.public
         if instance.associate_public_ip_address
   }
}

条件演算子( … ? … : …)はすでにTerraformにあるが、両方の戻り値が評価されなければならないため利用に限界がある。次のリリースでは、これが修正され、条件演算子は期待通りの動きをする。また、他の大きな改善として、条件演算子がどのような型でも利用できるようになる。

# Terraform 0.12

locals {
   first_id = length(azurerm_virtual_machine.example) > 0 ? azurerm_virtual_machine.example[0].id : ""
}

Terraformの現在のバージョンでは、上の書き方は失敗する。式の結果がどうであれ両方の値を評価するからだ。

Terraformにこのような変更が加わることで構成ファイルの書き直しが必要になる。Terraformのコアチームは破壊的な変更が最小限になるようにしている、と話しているが、アップグレードガイドではバージョン0.12への移行の支援が準備されている。スクリプトの中でTerraformのバージョンを固定することが推奨されている。コアチームは今回のリリースのために構成の変更にフォーカスすることで破壊的な変更を最小限にしつつ、将来の機能についての素早い方向転換も実現できる、と考えている。コアチームは継続して今回の変更についてブログで発信し、今回の変更について、そして、未来の改善についてのコミュニティからのフィードバックを受け付けている。

 
 

Rate this Article

Adoption Stage
Style
 
 

この記事に星をつける

おすすめ度
スタイル

特集コンテンツ一覧

.NETエコシステムの紹介

David Pine 2019年11月7日 午後7時48分

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT

あなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。

Eメールを変更すると確認のメールが配信されます。

会社名:
役職:
組織規模:
国:
都道府県:
新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。