網頁

2021/10/31

Terraform HCL配置語言簡介 configuration language intro

Terraform的配置內容是以Terraform語言撰寫,簡介如下。


Terraform使用HashiCorp Configuration Language(HCL)語法格式來宣告基礎建設的resources配置稱為Terraform configuration。Terraform configuration是用來告訴Terraform如何管理基礎建設資源的配置文件,一份完整的配置可能由多個目錄和配置檔(.tf)組成。


Terraform語言包含以下基本要素:

  • Block - 表示一個物件內容的容器,由block type、零或多個lable及body組成。body裡面又可包含arguments及nested blocks。
  • Arguments - 在block中設定值的名稱。
  • Expressions - 表示一個值,可以參照及結合其他值。

<BLOCK TYPE> "<BLOCK LABEL>" "<BLOCK LABEL>" {
  # Block body
  <IDENTIFIER> = <EXPRESSION> # Argument
}

例如下面是一個block,type為resource;兩個labels分別為"aws_vpc""main";arguments為cidr_block,值為var.base_cidr_block

resource "aws_vpc" "main" {
  cidr_block = var.base_cidr_block
}

Block type除了resource還有其他type,例如datavariablelocalsmodule等。

Block type定義後接的labels,例如resource 後面要有兩個labels;而type的種類則定義了body中有哪些arguments,例如aws_vpc定義了cidr_block這個必要的argument。

Terraform配置是描述結果而非步驟的宣告式(declarative)語言,因此配置中的block順序不重要,其只考慮resources間的相互關係以此決定執行時的順序。


沒有留言:

張貼留言