检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
mycompute[1].network.0.port ] } 配置变量。 创建variables.tf文件,输入以下内容,并保存在当前的执行目录中。您可以根据实际情况修改变量值。 variable "vpc_name" { default = "vpc-basic" } variable
Terraform 配置文件中可以包含多个资源。通过在资源中引用其他资源的属性值,Terraform可以自动推断出资源的依赖关系。然而,某些资源的依赖关系对于Terraform是不可见的,这就需要使用 depends_on 来创建显式依赖。我们可以使用 depends_on 来更
修改任何非依赖性资源。从而使得Terraform可以尽可能高效地构建基础设施,操作人员可以深入了解基础设施中的依赖性。 变更自动化 复杂的变更集可以应用于您的基础设施,而只需最少的人工干预。有了前面提到的执行计划和资源图,您就可以准确地知道Terraform将改变什么,以及改变的顺序,从而避免了许多可能的人为错误。
输入变量 输入变量可以理解为模块的参数,通过关键字 "variable" 进行声明。通过定义输入变量,我们可以无需变更模块的源代码就能灵活修改配置。输入变量的值可以使用默认值,CLI 选项,环境变量等方式来设置。 定义输入变量 按照约定,输入变量通常在名为 variables.tf
Data Source Data Source 可以认为是特殊的Resource,通过关键字 "data" 进行声明。Data Source 用于查询已经存在资源的属性和信息,例如我们可以通过 "Ubuntu 18.04 server 64bit" 的镜像名称查询得到对应镜像的ID及其他属性:
命令行说明 Terraform 支持丰富的命令行操作,本文档仅介绍一些常用的命令, 您可以通过 "terraform" 命令查看完整的命令列表。对于特定的子命令,可以通过 -h / --help 选项获取完整的用法。 $ terraform Usage: terraform [-version]
输出变量 输出变量可以理解为模块的返回值,通过关键字 "output" 进行声明。输出变量是一种对外公开某些信息的方法,既可以在根模块中运行 terraform apply/output 命令输出特定的值,又可以在子模块中将资源的属性值提供给父模块。 声明输出变量 按照约定,输出变量通常在名为
Terraform has been successfully initialized! 在同一个工作目录下,terraform init 命令可以重复执行。我们可以使用 "-upgrade=true" 选项对使用的Provider和Modules进行更新。 $ terraform init -upgrade=true
(必填)存储桶名称 key (必填)对象名称 source (可选)待上传对象的源文件路径 后续操作 您可以将自己的域名与OBS桶访问域名进行绑定,可以实现通过自定义域名访问存储在OBS中的文件。同时也可以配置CDN服务实现加速功能。请参考使用自定义域名托管静态网站。 样例代码 https://github
weicloud_compute_instance表示ECS,huaweicloud_vpc表示VPC等。资源之间的关系可以通过关系型资源进行关联,如我们可以使用 huaweicloud_compute_eip_associate 给ECS分配EIP。 resource "hua
state管理命令 Terraform 在完成资源的创建和修改后,会将资源的状态和属性信息会保存在 terraform.tfstate 文件中。我们可以使用 "terraform state" 相关命令对 state 进行管理。 terraform state list 该命令列出当前st
Terraform支持丰富的内置函数,用于处理字符串、数值计算、加密,类型转换等操作,我们可以通过函数名称进行调用,其语法如下: <函数名称>(<参数1>, <参数2> ...) 本文主要对Terraform中常见的函数进行总结并通过样例说明其用法。您可以通过Terraform 官方文档查看完整的函数支持列表。 字符串函数
provider 在Terraform中,我们可以使用 provider块创建多个配置,其中一个 provider块为默认配置,其它块使用 "alias" 标识为非默认配置。在资源中使用元参数 provider 可以选择非默认的 provider块。例如我们需要在不同的地区管理资源,首先需要声明多个
使用键值对或字符串集合的形式快速地将值填入到对应的属性中,不仅可以优化脚本结构也有利于理解多实例间的关系。 在使用映射类型表达时,我们可以使用 "each.key" 和 "each.value" 来访问映射的键和值。以创建VPC为例,通过 for_each 中的键值对,我们可以灵活配置VPC的名称和CIDR。
本地变量 本地变量可以理解为模块中的临时变量,其作用范围在所声明的模块内,通过关键字 "local" 进行声明。本地变量适用于配置中有重复定义相同值或表达式的场景,可以减少代码冗余,并且易于修改。同时过度使用本地变量会导致变量的实际值被隐藏,代码晦涩,不利于维护,因此建议合理使用本地变量。
或5。Terraform支持多种表达式,包括运算符、条件表达式以及丰富的内置函数。 通过 "terraform console" 命令可以打开一个交互式的控制台,我们可以使用该控制台进行表达式及内置函数的体验和测试。 运算符 运算符是执行特定的数学或逻辑操作的服务,Terraform支持以下类型的运算符:
Metadata说明 Metadata是Terraform支持的内置元参数,可以在 provider,resource,data块中使用。本章节主要介绍 resource块支持的元参数,主要包括: depends_on:用于指定资源的依赖项 count:用于创建多个相同配置的资源
类型标签,可以将 state 文件存储在不同的远端服务中,如AWS S3,HashiCorp Consul,etcd等。 在华为云中使用S3 Backend 由于华为云的OBS (对象存储服务) 兼容AWS S3接口,且S3 Backend支持自定义endpoint,我们可以利用S3