日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Terraform Output 介紹

更新時間:

前面的內容中,我們已經介紹了資源、依賴關系和變量,這節我們將探索輸出值(Output)。

什么是輸出值

輸出值類似于常見的編程語言中的返回值。通過輸出值,您可以在命令行的輸出中查看您創建的基礎設施資源的信息。

輸出值有多個用途。最常見的場景是在 apply 之后在運行日志中打印出根模塊資源的屬性,比如,ECS 實例的大多數詳細信息是在 apply 時計算的,因此只能在創建后進行推斷。

除此之外,輸出值還用于將一個資源生成的信息傳遞給另一個資源。例如,你可以將 ECS 實例的特定屬性的值(如IP地址)提取到另一個需要該信息的資源(如安全組規則)中。

輸出值的語法

輸出值用 output 塊聲明。你可以在 Terraform 配置文件的任何地方聲明輸出值,但推薦的最佳實踐是將它們聲明在名為 outputs.tf 的單獨文件中。

p822994.png

關鍵字 'output' 旁邊的標簽為輸出值的名稱。和變量名稱一樣,輸出值的名稱在當前模塊中必須是唯一的。output塊內可以包含的參數有以下幾種:

  1. value

    這是一個必需參數,向模塊的用戶返回一個值

  2. description

    這是一個可選參數,用于提供輸出目的和預期值的說明。description 常用于文檔描述。

  3. sensitive

    這是另一個可選參數,用于掩蓋資源屬性的值。當需要隱藏一些需要保密的資源屬性(如密碼信息、Access Secret Key)時,此參數很有用。

在如下的例子中,我們為名為 my-vpc 的對象聲明了一個輸出值 vpc_id:

# 創建 VPC
resource "alicloud_vpc" "my-vpc" {
  vpc_name   = "tf-vpc"
  cidr_block = "10.0.0.0/16"
}

output "vpc_id" {
  value = alicloud_vpc.my-vpc.id
}

運行 terraform apply 成功之后,my-vpc 的 ID 將顯示在屏幕上:

截屏2024-07-14 19.56.30.png

除此之外,對于已經創建成功的資源,你可以通過運行 terraform output 命令隨時查詢項目中使用的所有輸出值。

輸出值的最佳實踐

當聲明輸出值的時候,我們提供一下幾條建議:

  1. 僅輸出有用的信息

    僅輸出有用的信息,例如計算出的信息,避免輸出只是重復的變量值或提供的已知信息的值。例如,對于網絡資源,以下計算屬性是有用的:

    1. id,它是資源的標識符

    2. router_id,它是 VPC 創建成功后系統自動創建的路由器的標識符

    3. route_table_id,它是 VPC 創建成功后系統自動創建的路由表的標識符

  2. 和變量一樣,提供有意義的名稱和描述

  3. 將代碼組織起來,將所有輸出值包含在名為outputs.tf的文件中

  4. 標記敏感輸出

    不要嘗試手動加密敏感值,而是依賴于內置的敏感狀態管理來支持。將敏感值設置到輸出值時,要確保這些值被標記為敏感。當一個值被標記為敏感時,該數據將在 terraform plan 或 terraform apply 命令的輸出中將被掩蓋。