Ein kurzes Tutorial zur Verwendung von Terraform zum Erlernen und Anwenden der verschiedenen Arten von integrierten Funktionen, einschließlich Numerisch, Zeichenfolge, Datum und Uhrzeit in diesem IaC-Tool.
IT-Teams können mit Terraform von HashiCorp Cloud- und lokale Ressourcen bereitstellen und verwalten. Lernen Sie die Terraform-Funktionen kennen und installieren Sie sie, um Ihre Werkzeugnutzung zu optimieren.
Administratoren können integrierte Terraform-Funktionen verwenden, um verschiedene Berechnungen im Zusammenhang mit der Bereitstellung durchzuführen und Vorgänge wie das Codieren und Decodieren oder das Erfassen und Anzeigen von Zeitstempeln auszuführen . Terraform unterstützt nur integrierte Funktionen . Spezielle oder benutzerdefinierte Funktionen sind nicht verfügbar.
In diesem Terraform-Lernprogramm lernen Sie die Grundlagen von Funktionen sowie einige gängige Methoden zu deren Verwendung in Unternehmensbereitstellungen kennen.
Beginnen wir mit der Syntax
Terraforming Funktion Syntax beginnt mit dem Funktionsnamen, gefolgt von Klammern Null auf mehrere Argumente enthalten, die durch Kommas getrennt:
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 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")
, , :
