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

Resource 介紹

更新時間:

什么是資源

在 Terraform 領域,資源是基礎設施元素,例如 ECS 實例和 OSS Bucket,這些元素可以通過 Terraform 代碼進行配置。現實世界中的基礎設施包含多種資源和資源類型,Terraform 使用每個阿里云服務的 API 來部署你的資源,包括ECS 實例、ECS 實例部署模板、安全組、VPC 網絡、防火墻規則、VPN、路由表、數據庫和負載均衡器等。

資源聲明的語法

資源在 .tf 文件中定義,建議將相似類型的資源放在一個目錄中,并在 main.tf 文件中定義資源。

image.png

在這個示例中,main.tf 是根配置文件:

  • resource

    resource 塊用于聲明單個基礎設施對象

  • resource_type

    resource_type 標識要創建的資源類型,每個資源類型取決于在 Terraform provider 塊中聲明的提供商,提供商是提供一組資源類型的插件

  • resource_name

    resource_name 是對資源類型在當前配置目錄下的標識,并不是實際基礎設施的名稱,同一個資源類型在當前目錄下的所有配置中,resource_name 不能重復

  • 資源參數

    資源參數使用表達式來聲明資源的屬性。一些資源參數是資源創建時的必填參數,其他的為可選參數。屬性可以用于定義與資源相關的任何高級功能。

在同一個 Terraform 配置文件中包含多個相同或不同類型的資源,這些資源甚至可以跨多個提供商。

image (16).png

這里,第一個 resource 塊聲明了 VPC 網絡,另一個聲明了交換機。兩個資源都在同一個 main.tf 文件中。這個例子展示了一個名為 main-vpc 的 VPC 資源,其類型是 alicloud_vpc;一個名為 main-vswitch 的交換機資源,其類型時 alicloud_vswitch。

alicloud_vpc 塊所有參數是可選的,其中 cidr_block 可選的原因是其存在一個默認值,即當在配置文件中不顯示定義時,提供商或者 VPC 服務后端將會默認生成一個值作為這個參數的值。

對于 alicloud_vswitch 塊,vpc_id,cidr_block,zone_id 都是必填參數,其他的都是可選參數。

需要注意的是,資源參數取決于資源類型,即不同的資源類型對應的資源參數相差很大。alicloud_vpc 包括如 vpc_name,cidr_blcok 等參數,而 alicloud_vswitch 包括 vswitch_name,cidr_block,zone_id,vpc_id 等參數。

屬性參數引用

當從一個資源塊訪問另一個資源屬性時,使用格式:<resource_type>.<resource_name>.<attribute>

在上述例子中,當創建交換機時,vswitch 需要所屬 VPC 網絡的網絡 ID。網絡 ID 是 alicloud_vpc 塊的計算資源屬性,即在 VPC 創建時由服務端生成。alicloud_vswitch 資源塊使用從 alicloud_vpc 塊創建的網絡 ID,對應的使用格式是:alicloud_vpc.main_vpc.id。

需要注意的是,這種方法只有當相關的資源定義在同一根配置目錄的文件中時才能使用。

資源定義考慮事項

在定義資源塊時,有一些重要的因素需要考慮:

  1. resource_name 必須唯一

    聲明的資源通過其類型和名稱在當前配置目錄中進行標識,因此,資源名稱(resource_name)在所屬的配置目錄中必須是唯一的。

    image (17).png

  2. resource_type 不能自定義

    資源類型是與提供商關聯的關鍵字,不能由用戶自定義。一個 OSS Bucket 與阿里云 Provider 相關聯,并由關鍵字 alicloud_oss_bucket 進行定義,任何其他 OSS Bucket 的定義在運行 terraform plan 或 terraform apply 時都會導致錯誤。

    image (18).png

  3. 所有配置參數必須包含在資源塊體內,即大括號之間

    基礎設施元素及其相關屬性在資源塊中定義。

    image (19).png

  4. 所有必填參數必須設置

    如果配置中未定義所有必需參數,Terraform 配置將無法成功執行 plan 和 apply。

    image (20).png