检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
常见函数 HCL支持丰富的内置函数,用于处理字符串、数值计算、加密,类型转换等操作,您可以通过函数名称进行调用,其语法如下: <函数名称>(<参数1>, <参数2> ...) 本文主要对HCL中常见的函数进行总结并通过样例说明其用法。您可以通过Terraform 官方文档查看完整的函数支持列表。
条件函数 条件函数通常用于定义元素是否需要部署,包括cond_eq、cond_not、cond_and、cond_or和cond_if。除了cond_if函数外,其他条件函数只允许在conditions段内定义使用。cond_if函数除了在conditions段内定义使用外,还可
内置函数 变量引用 get_input get_attribute get_reference get_in_map 条件函数 base64_encode concat split select get_list_length 父主题: 模板简介
把这些引用方式也叫做“内置函数”。内置函数除了引用还有很多其他函数,详情请参见表1。 表1 AOS的内置函数 内置函数名 描述 get_input 用于获取模板文件中inputs区域中定义的输入参数的值。 get_attribute 用于获取模板中定义的其他元素初始化后的结果。 get_reference
get_in_map 如果模板中定义了映射表,可以在node_templates和outputs的属性段中,通过get_in_map的方法获取映射表中的内容。 语法 get_in_map: [map_name, top_level_key, second_level_key] 参数说明
中定义的输入参数的值。除此之外还可以引用系统伪参数,详情请参见系统伪参数。 语法 get_input: [paramName ] 参数说明 表1 参数说明 参数 是否必填 描述 paramName 是 在模板文件的inputs区域中定义的输入参数的名称。 返回值 对应参数的值。 示例
例如,从虚拟机的结果中获取一个IP,从APP的结果中获取一个监听Port,并在模板的输出中打印出最终的、直观的访问http地址。 字符串拼接是一个内置函数,concat用于将描述字段转换成字符串并进行拼接,支持内嵌get_attribute、get_input函数。 当前版本,仅
当需要从一个数组结构中获取指定下标的对象时,可以使用select函数。一般多与split配合使用。 语法 select: [index, list] 参数说明 表1 参数说明 参数 参数说明 index 下标,用于获取数组中的指定元素,如果下标不在数组支持的范围内,将会报错。 list 数组结构,不能为空。
description: 云服务器的规格 label: '' ecs_imageId: description: 云服务器使用的镜像ID label: '' ecs_nics_0_subnetId: description: 待创建云服务器的网卡信息。
sourceString 原始字符串,可以来自get_input变量。 原始字符串将根据分隔符进行分组。 返回值 拆分的字符串数组。 示例 通过split进行字符串的分组。 inputs: source: default: "a,b,c,d,e,f,g" node_templates:
get_list_length 当需要计算一个数组结构的元素个数时,可以使用get_list_length函数。一般多与split配合使用。 语法 get_list_length: list 参数说明 表1 参数说明 参数 参数说明 list 数组结构。 返回值 数组的长度。 示例 通过get_list_length获取数组的长度。
用户在模板中自定义的资源名称。 attributeName 是 您想要获取的资源特定属性名称。属性名称详见元素对象的输出章节outputs。当模板中定义的属性名称不存在时,将返回空。 目前大部分元素仅支持获取refID和refName。 refID:资源创建后所生成的唯一标识。 refName:资源的名称。
参数 是否必填 参数说明 elementName 是 在blueprint文件的node_templates区域中定义的元素名称。 返回值 对应参数的值。 示例 通过get_reference获取相关联的元素的动态属性值。 node_templates: my-first-vpc:
直接编辑函数代码块,使用特殊符号'|'保留函数代码块中的回车和空格。YAML书写规范请参考:http://yaml.org/spec/1.2/spec.html 默认值:"" 取值约束:如果采用在线编辑的方式上传函数代码,代码大小不能超过10K。如果代码较大,建议obs的方式,将
DmsEventMap 模型说明 FGS.DmsEventMap元素用来创建函数工作流服务的DMS定时触发器资源。DMS触发器依赖分布式消息服务DMS,通过DMS事件触发函数执行。创建DMS触发器需开通DMS服务,并为函数配置访问DMS服务的IAM委托。 模型属性 表1 模型定义属性说明 属性 是否必选
DisEventMap 模型说明 FGS.DisEventMap元素用来创建函数工作流服务的DIS触发器资源。DIS触发器依赖数据接入服务DIS,通过DIS事件触发函数执行。创建DIS触发器需开通DIS服务,并为函数配置访问DIS服务的IAM委托。 模型属性 表1 模型定义属性说明 属性 是否必选
CtsEventMap元素用来创建函数工作流服务的CTS定时触发器资源。CTS触发器依赖云审计服务CTS,需要预先开通CTS服务,通过CTS事件触发函数执行。 模型属性 表1 模型定义属性说明 属性 是否必选 描述 operations 是 支持审计的服务操作 参数类型:dict 取
使用建议:将该字段通过get_input函数传入,在AOS界面创建资源栈填写输入参数时可自动获取 topicName 是 订阅的SMN主题名称 参数类型:string 取值说明:该字段从已创建的SMN主题中获取 使用建议:将该字段通过get_input函数传入,在AOS界面创建资源栈填写输入参数时可自动获取
模型说明 FGS.TimerEventMap用于创建函数工作流服务的TIMER定时触发器资源。通过TIMER定时触发器,可定时触发函数执行。 模型属性 表1 模型定义属性说明 属性 是否必选 描述 name 是 TIMER触发器的名称 参数类型:string 取值说明:用户自定义
LtsEventMap元素用来创建函数工作流服务的LTS触发器资源。LTS触发器依赖云日志服务LTS,需开通LTS服务,通过LTS事件触发函数执行。 模型属性 表1 模型定义属性说明 属性 是否必选 描述 groupName 是 LTS日志组名称 参数类型:string 取值说明:该字段从已创建的LTS日志组中获取