Terraform, cloud altyapısını güvenli ve verimli bir şekilde hazırlayan ve yöneten açık kaynaklı bir araçtır. Terraform'u kullanarak ENS (Edge Node Service) kaynaklarını yönetebilirsiniz. Bu kılavuzda, Terraform kullanarak bir ENS EIP kaynağının nasıl oluşturulacağı gösterilmektedir.
Örnek kod, tek tıklamayla dağıtımı destekler. Terraform'u kurmadan örnek kodu çevrimiçi olarak dağıtmak için Run in Terraform Explorer bağlantısını kullanın.
Ön koşullar
Örnek kodu çalıştırmadan önce aşağıdaki öğeleri hazırlayın. Seçtiğiniz çalışma zamanı ortamı, kimlik bilgilerini kendinizin yapılandırıp yapılandırmayacağınızı belirler:
RAM kullanıcısı ve AccessKey çifti — Alibaba Cloud hesabı tüm kaynaklar üzerinde izinlere sahiptir ve kimlik bilgilerinin sızması önemli risklere yol açar. (Önerilir) Bir Resource Access Management (RAM) kullanıcısı kullanın ve bu RAM kullanıcısı için bir AccessKey çifti oluşturun. Daha fazla bilgi için bkz. RAM kullanıcısı oluşturma ve AccessKey oluşturma.
-
ENS izinleri — RAM kullanıcısına ENS kaynaklarını yönetmesine olanak tanıyan AliyunENSFullAccess iznini verin. Daha fazla bilgi için bkz. RAM kullanıcı izinlerini yönetme. Aşağıdaki ilke belgesi, örnek kodun gerektirdiği izinleri açıklar:
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "ens:*", "Resource": "*" } ] } -
Terraform çalışma zamanı ortamı — Aşağıdaki yöntemlerden herhangi birini kullanarak bir Terraform çalışma zamanı ortamı hazırlayın:
(Önerilir) Terraform Explorer içinde Terraform kullanma: Alibaba Cloud, çevrimiçi bir Terraform çalışma zamanı ortamı sağlar. Terraform'u kurmanıza gerek yoktur. Çevrimiçi olarak oturum açın ve Terraform'u kullanın. Bu seçenek, Terraform'u hızlıca denemek ve hata ayıklamak istediğiniz maliyetsiz senaryolar için uygundur. Bu konudaki tek tıklamayla dağıtım bağlantısı, örnek kodu bu ortamda açar.
Terraform ile kaynak oluşturma: Alibaba Cloud Cloud Shell, önceden yüklenmiş Terraform bileşenleri ve önceden yapılandırılmış kimlik bilgileriyle birlikte gelir; böylece Terraform komutlarını doğrudan Cloud Shell'de çalıştırabilirsiniz. Bu seçenek, Terraform'a hızlı ve düşük maliyetli erişim istediğiniz senaryolar için uygundur.
-
Terraform'u yükleme ve yapılandırma: Bu seçenek, ağ bağlantısının zayıf olduğu veya özelleştirilmiş bir geliştirme ortamına ihtiyaç duyduğunuz senaryolar için uygundur.
Seçtiğiniz seçenek ne olursa olsun, Terraform sürümünün v0.12.28 veya üzeri olduğundan emin olun. Yüklü sürümü kontrol etmek için
terraform --versionkomutunu çalıştırın.
Bu örnekteki bazı kaynaklar ücrete tabidir. Artık ihtiyaç duymadığınızda kaynakları hemen serbest bırakın. Talimatlar için bu konunun Kaynakları temizleme bölümüne bakın.
Kullanılan kaynaklar
alicloud_ens_eip: bir ENS EIP kaynağı oluşturur.
Terraform kullanarak kaynakları entegre etme
Bu bölümde, ENS EIP kaynağını bir Terraform yapılandırma dosyasında tanımlar ve ardından yapılandırmayı uygularsınız.
-
Bir çalışma dizini oluşturun ve ardından içinde
main.tfadlı bir yapılandırma dosyası oluşturun. main.tf, dağıtılacak kaynakları tanımlayan ana Terraform dosyasıdır.variable "name" { default = "terraform-example" } # Create an ENS EIP resource. resource "alicloud_ens_eip" "default" { # (Optional) The description of the EIP. description = "EipDescription_autotest" # (Optional, computed) The peak bandwidth of the EIP. Default value: 5. Valid values: 5 to 10000. bandwidth = "5" # (Optional, forces new resource) The Internet service provider. isp = "cmcc" # (Required, forces new resource) The billing method of the EIP. Valid value: PayAsYouGo (pay-as-you-go). payment_type = "PayAsYouGo" # (Required, forces new resource) The ID of the ENS edge zone. ens_region_id = "cn-chenzhou-telecom_unicom_cmcc" # (Optional) The name of the EIP. eip_name = var.name # (Required, forces new resource) Valid value: 95BandwidthByMonth. internet_charge_type = "95BandwidthByMonth" } -
Terraform çalışma zamanı ortamını başlatmak için aşağıdaki komutu çalıştırın:
terraform initInitializing the backend... Initializing provider plugins... - Reusing previous version of hashicorp/alicloud from the dependency lock file - Using previously-installed hashicorp/alicloud v1.231.0 Terraform has been successfully initialized! You may now begin working with Terraform. Try running "terraform plan" to see any changes that are required for your infrastructure. All Terraform commands should now work. If you ever set or change modules or backend configuration for Terraform, rerun this command to reinitialize your working directory. If you forget, other commands will detect it and remind you to do so if necessary. -
Bir yürütme planı oluşturmak ve değişiklikleri önizlemek için aşağıdaki komutu çalıştırın:
terraform plan -
ENS EIP kaynağını oluşturmak için aşağıdaki komutu çalıştırın:
terraform applyyesgirin ve Enter tuşuna basın. Komutun tamamlanmasını bekleyin. Aşağıdaki çıktı, ENS EIP kaynağının oluşturulduğunu gösterir.
Sonucu doğrulama
ENS EIP kaynağının varlığını aşağıdaki yollardan biriyle onaylayın.
Run the terraform show command
Terraform'un oluşturduğu kaynakların ayrıntılarını sorgulamak için aşağıdaki komutu çalıştırın:
terraform show
Log on to the ENS console
Kaynak oluşturulduktan sonra, oluşturduğunuz ENS EIP kaynağını görüntülemek üzere ENS konsolu üzerinden oturum açın.

Kaynakları temizleme
Terraform kullanarak oluşturduğunuz veya yönettiğiniz kaynaklara artık ihtiyaç duymadığınızda, bunları serbest bırakmak için aşağıdaki komutu çalıştırın:
terraform destroy
terraform destroy hakkında daha fazla bilgi için bkz. Yaygın Terraform komutları.
Tam örnek
Aşağıdaki yapılandırma, bir ENS EIP kaynağı oluşturmaya yönelik eksiksiz örnek koddur. Yerel bir çalışma zamanı ortamı hazırlamadan dağıtmak için Run in Terraform Explorer bağlantısını kullanın.
Örnek kod
variable "name" {
default = "terraform-example"
}
# Create an ENS EIP resource.
resource "alicloud_ens_eip" "default" {
# (Optional) The description of the EIP.
description = "EipDescription_autotest"
# (Optional, computed) The peak bandwidth of the EIP. Default value: 5. Valid values: 5 to 10000.
bandwidth = "5"
# (Optional, forces new resource) The Internet service provider.
isp = "cmcc"
# (Required, forces new resource) The billing method of the EIP. Valid value: PayAsYouGo (pay-as-you-go).
payment_type = "PayAsYouGo"
# (Required, forces new resource) The ID of the ENS edge zone.
ens_region_id = "cn-chenzhou-telecom_unicom_cmcc"
# (Optional) The name of the EIP.
eip_name = var.name
# (Required, forces new resource) Valid value: 95BandwidthByMonth.
internet_charge_type = "95BandwidthByMonth"
}
Daha fazla örnek için More complete examples adresine gidin ve ilgili hizmetin klasörünü açın.