Ana içeriğe geç

dtcloud_lb_member (Kaynak)

Bir havuzun tek bir arka uç üyesini yönetir: makine, hizmet verdiği port ve aldığı trafik payı.

Platformun toplu uç noktası yerine üye başına bir kaynak; o uç nokta tüm üye kümesini tek çağrıda değiştirir ve iki kaynağın aynı listeye sahip çıkmasına yol açardı.

Örnek Kullanım​

# Havuzun ağındaki, üye olarak eklenebilecek makineler.
data "dtcloud_lb_vms" "candidates" {
network_id = dtcloud_network.app.id
}

# Üye başına bir kaynak: her biri kendi başına oluşturulur ve silinir.
resource "dtcloud_lb_member" "web" {
for_each = { for vm in data.dtcloud_lb_vms.candidates.vms : vm.name => vm }

lb_id = dtcloud_lb.public.id
pool_id = dtcloud_lb_pool.web.pool_id

name = each.key
compute_server_id = each.value.id
address = each.value.ip_address
protocol_port = 8080
weight = 1
}
not

dtcloud_lb_vms, belirli bir ağda üye olabilecek makineleri adresleriyle birlikte listeler. Kimlik yapıştırmadan for_each ile üye kümesi kurmayı mümkün kılan budur.

Şema​

Zorunlu​

  • address (String) Üyenin IP adresi. Bu değiştirilirse yeni bir kaynak oluşturulur.
  • compute_server_id (String) Bu adresin arkasındaki sanal makinenin kimliği. Bu değiştirilirse yeni bir kaynak oluşturulur.
  • lb_id (String) Yük dengeleyicinin kimliği. Bu değiştirilirse yeni bir kaynak oluşturulur.
  • pool_id (String) Bu üyenin ait olduğu havuzun kimliği. Bu değiştirilirse yeni bir kaynak oluşturulur.

İsteğe Bağlı​

  • backup (Boolean) Bu üyenin yalnızca diğerleri devre dışı kaldığında trafik alıp almayacağı.
  • enabled (Boolean) Üyenin yönetimsel olarak etkin olup olmadığı.
  • monitor_address (String) address'ten farklı olduğunda sağlık denetiminin yokladığı adres.
  • monitor_port (Number) protocol_port'tan farklı olduğunda sağlık denetiminin yokladığı port.
  • name (String) Üyenin adı. Yalnızca yazılabilir: platform saklar ama geri bildirmez; bu yüzden içe aktarılamaz ve sapması görünmez. API'nin bildirdiği ad için vm_name alanına bakın.
  • protocol_port (Number) Üyenin dinlediği port. Verilmediğinde havuzun portu kullanılır. Bu değiştirilirse yeni bir kaynak oluşturulur.
  • timeouts (Block, Optional) (bkz. aşağıdaki iç içe şema)
  • weight (Number) Bu üyenin aldığı göreli trafik payı.

Salt Okunur​

  • id (String) Bu kaynağın kimliği.
  • member_id (String) Üyenin yük dengeleyici ve havuz önekleri olmadan kendi kimliği.
  • state (String) Platformun bildirdiği çalışma durumu.
  • vm_name (String) API'nin bildirdiğine göre bu üyenin arkasındaki sanal makinenin adı.

timeouts için iç içe şema​

İsteğe Bağlı:

  • create (String)
  • delete (String)
  • update (String)

Bilinmesi Gerekenler​

  • Üye listesi yalnızca kimlik, ad, durum ve adres bildirir. weight, denetim geçersiz kılmaları ve backup yalnızca yazılabilir: oluşturma ve güncellemede gönderilir ama hiç geri okunmaz, bu yüzden sapmaları görünmez.
  • name de yalnızca yazılabilir, ama daha ince bir nedenle. Platform onu saklar, ancak liste bunun yerine üyenin arkasındaki makinenin adını bildirir. Bunu name alanına geri okumak her üyeye kalıcı bir fark verirdi; bu yüzden bildirilen değer, doğru olduğu yerde, vm_name altında tutulur.
  • protocol_port oluşturma anında sabitlenir. Bir üyeyi yalnızca portu havuzunkiyle eşleştiğinde içe aktarın; onu hiçbir uç nokta bildirmediği için yapılandırmasında port belirten içe aktarılmış bir üye yeniden kurulur.
  • Bir makine tek bir ağda birden çok adres tutabilir. Hangisinin trafik alacağını address belirler.

Zaman Aşımları​

create, update ve delete varsayılan olarak 15'er dakikadır.

İçe Aktarma​

# <load-balancer-id>:<pool-id>:<member-id>
terraform import dtcloud_lb_member.web 3d372446-4c75-4327-9511-98442456162f:5b2a9c31-7e04-4d88-9c6e-44a2f1d0e7b3:c40d8e19-1b73-4f2a-95cc-0a6b7e3d1c88

compute_server_id dolaylı olarak geri getirilir: aday araması, ağda portu olan her makineyi adresleriyle birlikte listeler ve üyenin adresi bilinir. Bu iki ek çağrıya mal olur ve yalnızca içe aktarmada yapılır.