Pemahaman tentang kasus penggunaan umum untuk fungsi built-in Terraform

Tutorial singkat tentang penggunaan Terraform untuk mempelajari dan menerapkan berbagai jenis fungsi bawaan, termasuk Numerik, String, dan Tanggal, dan Waktu di alat IaC ini.







Tim TI dapat menggunakan Terraform HashiCorp untuk menyebarkan dan mengelola cloud dan sumber daya di lokasi. Untuk mengoptimalkan penggunaan alat, pelajari dan instal fitur Terraform.







Administrator dapat menggunakan fungsi Terraform bawaan untuk melakukan berbagai perhitungan yang terkait dengan penerapan dan untuk melakukan operasi seperti encoding dan decoding atau menangkap dan menampilkan stempel waktu. Terraform hanya mendukung fungsi built-in ; fungsi khusus atau yang ditentukan pengguna tidak tersedia.







Gunakan tutorial Terraform ini untuk mempelajari dasar-dasar fitur, serta beberapa cara umum untuk menggunakannya dalam penerapan perusahaan.







Mari kita mulai dengan sintaks



Sintaks fungsi Terraform dimulai dengan nama fungsi, diikuti dengan tanda kurung yang berisi nol hingga beberapa argumen, dipisahkan dengan koma:







name(arg-1, arg-2, … arg-n)
      
      





, , timestamp()



, :







> timestamp()
2019-12-07T07:44:12Z
      
      





, file()



:













Terraform



Terraform , . $ {builtinfunction ()}



, :







resource "myinstance" "web" {
    tags = ["${var.env == "prod" ? var.prod_subnet : var.dev_subnet}"]
}
      
      





Terraform, . Terraform, .







. Terraform environment



, production, AWS (AZs). availzone



, , , us-east-1a



, us-east-1b



us-east-1c



. , , :







variable "environment" {
default = {
    "test" = "us-east-1"
    "prod" = "us-west-2"
  }
}

variable "availzone" {
  description = "Availability Zones Mapping"
  default = {
    "us-east-1" = "us-east-1a,us-east-1b,us-east-1c"
    "us-west-2" = "us-west-2a,us-west-2b,us-east-1c"
  }
}
      
      





AZ, lookup()



, , , (,)



split()



.







, element()



. AZ . $ {}



, , Terraform , .







output "availabiltyzones" {
  value = "${element(split(",", lookup(var.availzone,var.environment.prod)), 1)}"
}
      
      





, :













Terraform



Terraform .













, , , / , :



















Terraform . , title()



, lower()



upper()



:













- , :



















Terraform. , timestamp()



:













formatdate()



, :



















Terraform , . , base64encode('string')



Base64, Azure, Base64 . file()



, Base64encode()



:







resource "azurerm_virtual_machine_extension" "Example" {
  name                 = "MyVM"
  location             = "${azurerm_resource_group.test.location}"
  resource_group_name  = "${azurerm_resource_group.test.name}"
  virtual_machine_name = "${azurerm_virtual_machine.test.name}"
  publisher            = "Microsoft.Azure.Extensions"
  type                 = "CustomScript"
  type_handler_version = "2.0"
  settings = <
      
      





(Collections)







Terraform , , :







length([1,12,31,14,5,2])
length("this is a string")
      
      





, , :














All Articles