Ana içeriğe geç

dtcloud_router (Kaynak)

Sanal bir yönlendiriciyi yönetir: özel ağlara internete çıkış ve birbirlerine erişim veren şey.

Bir yönlendiricinin her zaman bir dış ağ geçidi vardır. Platformda geçitsiz yönlendirici oluşturan bir uç nokta yoktur; bu yüzden external_network_id isteğe bağlı değil zorunludur ve her yönlendirici projenin kotasından bir public adres tüketir.

Bir yönlendiriciye ait olan iki şey burada argüman değildir, çünkü her birinin kendi yaşam döngüsü vardır: ona bağlanan özel ağlar (dtcloud_router_interface) ve statik rotaları (dtcloud_router_static_route).

Örnek Kullanım​

# Dış ağ kimlikle verilmek zorundadır ve platformda hangi ağın dış ağ
# olduğunu belirten bir işaret yoktur — bölgeyi işleten kişiye sorun ya
# da var olan bir yönlendiricinin dış ağ adını dtcloud_routers ile okuyup
# dtcloud_networks içinde arayın.
variable "external_network_id" {
type = string
}

resource "dtcloud_router" "main" {
name = "edge"
external_network_id = var.external_network_id
enable_snat = true
}

resource "dtcloud_network" "app" {
name = "app"
ipam_enabled = true
cidr = "10.0.10.0/24"
}

# Uygulama ağına çıkış yolu verin.
resource "dtcloud_router_interface" "app" {
router_id = dtcloud_router.main.id
network_id = dtcloud_network.app.id
}

Şema​

Zorunlu​

  • external_network_id (String) Yönlendiricinin dışarıya eriştiği dış ağın kimliği. Her yönlendiricinin bir tane vardır. Yerinde değiştirilebilir.
  • name (String) Yönlendiricinin adı. Yerinde değiştirilebilir.

İsteğe Bağlı​

  • enable_snat (Boolean) Geçidin, arkasındaki özel ağlardan gelen trafiği maskeleyip maskelemeyeceği. Yerinde değiştirilebilir.
  • timeouts (Block, Optional) (bkz. aşağıdaki iç içe şema)

Salt Okunur​

  • admin_state_up (Boolean) Yönlendiricinin yönetimsel olarak etkin olup olmadığı.
  • created_at (String) Platformun bildirdiğine göre yönlendiricinin oluşturulma zamanı.
  • description (String) Platformun tuttuğu açıklama. Bu API üzerinden açıklama ayarlamanın bir yolu yoktur; bu yüzden bildirilir ama yönetilmez.
  • external_fixed_ip (List of Object) Dış ağın geçide tahsis ettiği adresler. Oluşturma uç noktası her zaman IPv4 ister ve belirli bir adresi asla kabul etmez; bu yüzden bunlar salt okunurdur. (bkz. aşağıdaki iç içe şema)
  • id (String) Bu kaynağın kimliği.
  • project_id (String) Yönlendiricinin ait olduğu projenin kimliği.
  • status (String) Platformun bildirdiği durum. Kararlı durum ACTIVE'tir.
  • updated_at (String) Yönlendiricinin son değişiklik zamanı.

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

İsteğe Bağlı:

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

external_fixed_ip için iç içe şema​

Salt Okunur:

  • ip_address (String)
  • subnet_id (String)

Bilinmesi Gerekenler​

  • Geçidin adresi istenmez, atanır. external_fixed_ip salt okunurdur: oluşturma dış ağdan bir adres ister ve verileni alır. Bir hizmetin önünde sabit ve bilinen bir public adres gerekiyorsa, yönlendirici geçidi yerine kayan IP kullanın.
  • Dış ağı belirleyen hiçbir şey yok. Ağ listesinde bunun için bir işaret yoktur ve bir bölge, yalnızca biri yönlendirilebilir olan birden çok Physical ağ barındırabilir — yani dtcloud_networks'ü türe göre süzüp ilkini almak, er geç yanlış çıkacak bir tahmindir. Bölgeyi işleten kişiye sorun ya da var olan bir yönlendiricinin dış ağ adını dtcloud_routers ile okuyup o adı dtcloud_networks içinde arayın.
  • Bir yönlendirici bir public adrese mal olur, ayrıca yönlendirici kotasından bir yönlendiriciye ve dış ağda adres alanına. Kalanı dtcloud_project_quotas gösterir.
  • Ad değişikliği ile geçit değişikliği iki ayrı istektir. Platform bunları farklı gövdelerle alır; bu yüzden ikisini tek apply'da değiştirmek iki çağrı gönderir. Bunun planda hiçbir görünürlüğü yoktur.
  • Yeniden başlatma sunulmuyor. Platformun yeniden başlatma eylemi hiçbir iş yapmadan yanıt verir, işi yirmi saniye sonra arka planda yapar ve ne başarıyı ne başarısızlığı bildirir — bir kaynağın tutabileceği bir tutamak yoktur. Ayrıca bir durum değil bir olaydır; dtcloud_vm'in reboot argümanının olmamasının nedeni de aynıdır.
  • Terraform dışında kaldırılan bir geçit geri gelir. external_network_id boş okunur ve bir sonraki plan onu geri koymayı önerir; bu da tam olarak bir planın göstermesi gereken farktır.

Zaman Aşımları​

create, update ve delete varsayılan olarak 10'ar dakikadır. Oluşturma, platform ACTIVE bildirene kadar dönmez; yok etme de yönlendirici çözümlenmeyi bırakana kadar dönmez — böylece bağımlı bir kaynağa henüz trafik taşıyamayan bir yönlendirici verilmez ve yok etme, tuttuğu public adresi ücretlendirilir hâlde bırakmaz.

İçe Aktarma​

terraform import dtcloud_router.main 3f2a1c9e-77b4-4a01-9d3e-2b6c81f4e5a7

Her şey geri gelir. name, external_network_id ve enable_snat bildirilir; bu yüzden içe aktarmanın ardından gelen plan boştur.

Bağlı arayüzler ve statik rotalar yönlendiriciyle birlikte içe aktarılmaz: her birini kendi kaynağı olarak içe aktarın ya da dtcloud_router_interfaces ve dtcloud_router_static_routes ile yönetmeden okuyun.