检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
基本语法 RFS配置语言兼容HCL语法,具有配置简单,可读性强等特点,并且兼容JSON语法。本文主要介绍HCL语言的基本语法及常见函数。 RFS配置语言主要由参数(Argument),块(Block),表达式(Experssion)和函数(Functions)组成。 参数 (Argument)
输入变量 输入变量可以理解为模块的参数,通过关键字 "variable" 进行声明。通过定义输入变量,您可以无需变更模块的源代码就能灵活修改配置。输入变量的值可以使用默认值,CLI 选项,环境变量等方式来设置。 定义输入变量 按照约定,输入变量通常在名为 variables.tf
count 默认情况下,Terraform的 resource块只配置一个资源。当需要创建多个相同的资源时,如果配置多个独立的 resource块就显得很冗余,且不利于维护。可以使用 count 或 for_each 参数在同一个 resource块中管理多个相同的资源。在同一个
for_each for_each 在功能上与 count 相似,for_each 使用键值对或字符串集合的形式快速地将值填入到对应的属性中,不仅可以优化脚本结构也有利于理解多实例间的关系。 在使用映射类型表达时,您可以使用 "each.key" 和 "each.value" 来
Extension使用 使用Extension注意: 1.在zip压缩包根目录下新建.extension文件夹 2.".extension"文件夹下新建后缀名为.rfs.json的扩展文件,当前只支持扩展功能写在单个文件中 父主题: Extension
输出变量 输出变量可以理解为模块的返回值,通过关键字 "output" 进行声明。输出变量是一种对外公开某些信息的方法,既可以在根模块中运行 terraform apply/output 命令输出特定的值,又可以在子模块中将资源的属性值提供给父模块。 声明输出变量 按照约定,输出变量通常在名为
本地变量 本地变量可以理解为模块中的临时变量,其作用范围在所声明的模块内,通过关键字 "locals" 进行声明。本地变量适用于配置中有重复定义相同值或表达式的场景,可以减少代码冗余,并且易于修改。同时过度使用本地变量会导致变量的实际值被隐藏,代码晦涩,不利于维护,因此建议合理使用本地变量。
depends_on 在同一个 Terraform 配置文件中可以包含多个资源。通过在资源中引用其他资源的属性值,Terraform可以自动推断出资源的依赖关系。然而,某些资源的依赖关系对于Terraform是不可见的,这就需要使用 depends_on 来创建显式依赖。您可以使用
lifecycle 每个资源实例都具有创建 、更新和销毁三个阶段,在一个资源实例的生命周期过程中都会经历其中的2至3个阶段。通过元参数 lifecycle 可以对资源实例的生命周期过程进行改变,lifecycle 支持以下参数: create_before_destroy 默认情
Data Source Data Source Data Source 可以认为是特殊的Resource,通过关键字 "data" 进行声明。Data Source 用于查询已经存在资源的属性和信息,例如可以通过 "Ubuntu 18.04 server 64bit" 的镜像名称查询得到对应镜像的ID及其他属性:
Metadata说明 Metadata是Terraform支持的内置元参数,可以在 provider,resource,data块中使用。本章节主要介绍 resource块支持的元参数,主要包括: depends_on:用于指定资源的依赖项 count:用于创建多个相同配置的资源
Provider Provider Terraform的配置文件以 ".tf" 或".tf.json"结尾,主要由provider,resource,data source和变量组成。 每个 Provider 代表一个服务提供商,Terraform 通过插件机制与Provider进行交互。Provider通过关键字
取值说明:"true", "false" 取值约束:1. 此处填写的HA参数必须与规格参数一致。 2. 注意此处应填写字符串格式的参数,而在使用yaml格式模板的时候需要加上双引号,因为yaml格式默认将 true/false 两个值认为是布尔类型 使用建议:如果实例规格的名称中有HA参数,则此处需要填写true,反之为false
表达式 表达式用于引用或计算配置中的值,最简单的表达式是文字表达式,如 "hello world" 或5。Terraform支持多种表达式,包括运算符、条件表达式以及丰富的内置函数。 通过 "terraform console" 命令可以打开一个交互式的控制台,您可以使用该控制台进行表达式及内置函数的体验和测试。
参数预加载 参数预加载支持输入参数时请求云服务api获取预加载选项,当前支持以下六种api接口: 表1 支持的api接口说明 属性 描述 hwc:ecs:flavors ECS的Flavor hwc:vpc:myVpcs VPC列表 hwc:vpc:mySubnets Subnet子网列表
ter对象以get_reference自动获取 templateId 是 创建堆栈所依赖的模板ID 参数类型:string 取值说明:已有的模板id,可在AOS管理控制台-模板市场-公共模板 取值约束:文本字符串,长度[0, 64] 关联关系 表2 关联关系说明 关系说明 关联节点
Deployment和AOS.Stack这三种。 模型属性 表1 模型定义属性说明 属性 是否必选 描述 items 是 定义包含的子元素模板 参数类型:AOS.BatchItem数组 取值说明:用户自定义 取值约束:数组格式,至少1个对象,最多10个 使用建议:用户自定义,可参照https://support
Resource Resource 是Terraform中最重要的元素,通过关键字 "resource" 进行声明。Provider中支持的云服务都有一个或多个资源与之对应,如huaweicloud_compute_instance表示ECS,huaweicloud_vpc表示V
多语义化 参数多语言支持对variable的参数名字、描述和类型进行词条翻译,当前支持zh_cn、en_us两种语义 i18n中示例如下: "i18n": { "zh_cn": [ { "variable_name":
Basic.LabelSelector 字段说明 表1 字段说明 属性 是否必选 参数类型 描述 values 是 string LabelSelector值 key 是 string LabelSelector键 op 是 string LabelSelector操作类型, 可取