Terraform语言也就是HCL(HashiCorp Configuration Language),是一种丰富的语言。他的语法结构类似于JSON语法。主要由参数和块构成。

一、参数

ami           = "ami-061eb2b23f9f8839c"instance_type = "t2.micro"

等号前的标识符是参数名称,等号后的表达式是参数的值。

二、代码块

resource "aws_instance" "example-instance" {  ami           = "ami-061eb2b23f9f8839c"  instance_type = "t2.micro"  tags = {      Name = "Example by ChangSha Union"  }}

块具有类型(resource),每一个块类型定义后需要定义多个标签,上述例子定义了 aws_instance和 example-instance 两个标签。特定的块类型可以具有任意数量的标签或者不需要标签名。aws_instance为第三方云资源的关键字,example-instance为自定义资源变量名。

块主体由 { 和 } 字符(大括号)分隔。在块里面可以嵌套其他变量和块。从而创建块及其相关变量的层次结构。

块可以出现在其他外部的terraform文件中。例如:a.tf 定义了某个变量块可以被b.tf引用。

三、标识符

参数名,块类型名以及大多数特定于Terraform的结构(如资源,输入变量)的名称都是标识符。

标识符可以包含字母,数字,下划线(_)和连字符(-)。标识符的第一个字符不能为数字,这和编程语言规则相同。

四、注释

  • 单行或者结尾注释

  • // 单行注释,以替代#
  • / / 多行注释

五、 Terraform VS 传统函数



将Terraform与传统函数(以JavaScript语法为例)比较。input variable相当于函数参数,local value类似于局部变量。而output类似于返回值。

如果您喜欢这篇文章,请考虑关注我。

长沙DevOps联盟 - 关注容器技术,K8S,自动化部署,基础设施架构。

©著作权归作者所有:来自51CTO博客作者mob604756e9ab63的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. Ansible 变量
  2. 解决 Jenkins Artifactory Plugin 在 AIX 上传制品失败的问题
  3. JDK安装及注意事项
  4. C语言——结构体和指针学习
  5. php数据类型的转换与检测、变量的基础知识
  6. C语言——C语言常用关键字总结(新手 还请不吝赐教)(一)
  7. SQL优化小讲堂(七)——合理使用变量
  8. 关于指针
  9. Python实现双因素方法分析(Two-Way)

随机推荐

  1. Android Testing和Instrumentation
  2. Android 文件布局一些细节备忘
  3. android 虚拟按键遮挡布局
  4. Android学习 2 -建立模拟器
  5. 7.Android(安卓)自定义Loader
  6. Android(安卓)升级到android studio 2.2
  7. Android Support v4、v7、v13的区别和应
  8. Android4.4支持使用DevTools对原生Androi
  9. Android MediaStore数据之增删查改剖析
  10. 让Android中的webview支持页面中的文件上