第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何獲取 terraform 提供程序中的資源名稱

如何獲取 terraform 提供程序中的資源名稱

Go
RISEBY 2023-08-07 14:33:25
我嘗試獲取 HCL 中配置的資源名稱,但需要自定義提供程序的 go 代碼中的值。resource "example_server" "bob" {  name = "server"}在 golang 代碼中我想用作bobd.SetId() 的值func resourceExsampleServerCreate(d *schema.ResourceData, meta interface{}) error {  // do some stuff   d.SetId("bob")}計(jì)劃是用bob變量替換 的硬編碼值;)
查看完整描述

1 回答

?
慕斯709654

TA貢獻(xiàn)1840條經(jīng)驗(yàn) 獲得超5個贊

聲明標(biāo)頭中給出的資源名稱用于 Terraform 自己的跟蹤,并且不可用于提供程序代碼。

造成這種情況的一個重要原因是,所討論的名稱本身沒有用:它僅在完整資源實(shí)例地址的上下文中有用,在本例中是有用的,但在更實(shí)際的配置中可能會更復(fù)雜,example_server.bob例如example_server.bob[0],module.foo.example_server.bobmodule.foo["bar"].example_server.bob[15], 等

如果由 表示的遠(yuǎn)程對象類型需要遠(yuǎn)程系統(tǒng)中的example_server唯一名稱,則建模的方法是為資源聲明一個參數(shù)(通常稱為,但您可以將其命名為對相關(guān)系統(tǒng)有意義的任何名稱)并具有用戶選擇將其設(shè)置為:name

resource "example_server" "bob" {
  name = "bob"}

用戶可能決定將這兩個名稱設(shè)置為與我上面顯示的相同,但在實(shí)際配置中很少合適,因?yàn)橥ǔ?code>name屬于遠(yuǎn)程系統(tǒng)中比 Terraform 配置中的資源名稱更廣泛的命名空間,因此用戶將希望將其設(shè)置為包含一些附加上下文的名稱,以確保適當(dāng)?shù)奈ㄒ恍?,以避免單?dú)配置和同一配置中單獨(dú)模塊之間的沖突。

如果您想使用 name 參數(shù)值作為 id 那么您可以將其復(fù)制過來:

  d.SetId(d.Get("name"))

這是在不為每個對象分配代理鍵,而是使用對象的唯一名稱作為唯一標(biāo)識符的系統(tǒng)中表示對象的常見選擇。

Terraform 在每次應(yīng)用后將您返回的數(shù)據(jù)與保存的狀態(tài)快照中的完整資源地址相關(guān)聯(lián),因此作為提供程序開發(fā)人員,您根本不需要擔(dān)心資源地址:Terraform 將為您提供上次返回的任何數(shù)據(jù)以便您可以用它來計(jì)劃下一步的操作。


查看完整回答
反對 回復(fù) 2023-08-07
  • 1 回答
  • 0 關(guān)注
  • 118 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號