华为云用户手册

  • 文件操作函数 表7 文件操作函数 函数名称 函数描述 样例 运行结果 abspath 计算文件的绝对路径 abspath("./hello.txt") /home/demo/test/terraform/hello.txt dirname 计算字符串中包含的路径 dirname("foo/bar/baz.txt") foo/bar basename 计算字符串中的文件名 basename("foo/bar/baz.txt") baz.txt file 读取文件并返回文件内容 file("./hello.txt") Hello, cloud! filebase64 读取文件并返回文件内容的base64编码 filebase64("./hello.txt") SGVsbG8sIGNsb3VkIQ==
  • 哈希和加密函数 表6 哈希和加密函数 函数名称 函数描述 样例 运行结果 sha256 计算字符串的SHA256值(16进制) sha256("Hello, cloud!") 0ad167d1e3ac8e9f4e4f7ba83e92d0e3838177e959858631c770caaed8cc5e3a sha512 计算字符串的SHA512值(16进制) sha512("Hello, cloud!") 6eb6ed9fc4edffaf90e742e7697f6cc7d8548e98aa4d5aa74982e5cdf78359e84a3ae9f226313b2dec765bf1ea4c83922dbfe4a61636d585da44ffbd7e900f56 base64sha256 计算字符串的SHA256值,并转换为base64编码 base64sha256("Hello, cloud!") CtFn0eOsjp9OT3uoPpLQ44OBd+lZhYYxx3DKrtjMXjo= base64sha512 计算字符串的SHA512值,并转换为base64编码 base64sha512("Hello, cloud!") brbtn8Tt/6+Q50LnaX9sx9hUjpiqTVqnSYLlzfeDWehKOunyJjE7Lex2W/HqTIOSLb/kphY21YXaRP+9fpAPVg== md5 计算MD5值 md5("hello world") 5eb63bbbe01eeed093cb22bb8f5acdc3 base64sha512("Hello, cloud!")不等于base64encode(sha512("Hello, cloud!")),因为sha512计算的十六进制值结果在Terraform中是Unicode编码格式,并没指定UTF-8实现。
  • 类型转化函数 表4 类型转化函数 函数名称 函数描述 样例 运行结果 toset 将列表类型转换为集合类型 toset(["One", "Two", "One"]) ["One", "Two"] tolist 将集合类型转换为列表类型 toset(["One", "Two", "Three"]) ["One", "Two", "Three"] tonumber 将字符串类型转换为数字类型 tonumber("33") 33 tostring 将数字类型转换为字符串类型 tostring(33) "33"
  • 字符串函数 表1 字符串函数 函数名称 函数描述 样例 运行结果 format 字符串格式化 format("Hello, %s!", "cloud") Hello, cloud! lower 将字符串中的字母转换为小写 lower("HELLO") hello upper 将字符串中的字母转换为大写 upper("hello") HELLO join 使用自定义字符将列表拼接成字符串 join(", ", ["One", "Two", "Three"]) One, Two, Three split 根据分隔符拆分字符串 split(", ", "One, Two, Three") ["One", "Two", "Three"] substr 通过偏移量和长度从给定的字符串中提取一个子串 substr("hello world!", 1, 4) ello replace 把字符串中的str1替换成str2 replace("hello, cloud!", "h", "H") Hello, cloud!
  • blueprint样例 tosca_definitions_version: huaweicloud_tosca_version_1_0 node_templates: nat: type: HuaweiCloud.NAT.Instance properties: subnetId: get_input: nat_subnetId flavor: small vpcId: get_input: nat_vpcId name: get_input: nat_name snatrule: type: HuaweiCloud.NAT.SNatRule properties: subnetId: get_input: snatrule_subnetId floatingIpId: get_input: snatrule_floatingIpId natGatewayId: get_reference: nat requirements: - natGatewayId: node: nat inputs: nat_subnetId: description: Nat网关所属子网的ID。 label: '' nat_vpcId: description: Nat网关所属VPC的ID label: '' nat_name: description: nat的名称 label: '' snatrule_subnetId: description: SNat规则所属子网的ID。 label: '' snatrule_floatingIpId: description: 用户EIP的ID label: ''
  • 模型属性 表1 模型定义属性说明 属性 是否必选 描述 subnetId 是 Nat网关所属子网的ID 参数类型:HuaweiCloud.VPC.Subnet.Id 取值说明:到VPC服务获取Subnet ID或通过连线NAT.Subnet来自动生成 取值约束:满足UUID规则,最大64位 使用建议:1. 将该字段通过get_input函数传入,在AOS界面创建堆栈填写输入参数时可自动选择 2. 通过连线到subnet对象以get_reference方式获取一个新建的subnet的ID flavor 是 Nat网关规格 参数类型:string 默认值:small 取值约束:需符合NAT网关的规格定义 使用建议:规格只能从small,middle,large,xlarge中选择,其他字段无效 vpcId 是 Nat网关所属VPC的ID 参数类型:HuaweiCloud.VPC.VPC.Id 取值说明:支持使用已有或新建虚拟私有云ID。如果使用新建的,需在模板中定义VPC对象并建立依赖关系。建议通过拖拽到VPC内自动生成 取值约束:满足UUID规则,最大64位 使用建议:1. 将该字段通过get_input函数传入,在AOS界面创建堆栈填写输入参数时可自动选择 2. 通过get_reference获取由本堆栈创建的VPC.VPC元素,使用设计器建立依赖关系时会自动指定 3. 在VPC服务界面获取已经创建好的VPC的ID https://console.huaweicloud.com/vpc description 否 Nat网关实例的描述信息 参数类型:string 取值说明:用户自定义 取值约束:长度不超过255,支持英文字母和数字 使用建议:用户自定义 name 是 nat的名称 参数类型:string 取值说明:用户自定义,例如my-nat 取值约束:长度限制为1~64,正则规范要求为[-_a-zA-Z0-9]*$ 使用建议:用户自定义
  • depends_on 在同一个 Terraform 配置文件中可以包含多个资源。通过在资源中引用其他资源的属性值,Terraform可以自动推断出资源的依赖关系。然而,某些资源的依赖关系对于Terraform是不可见的,这就需要使用 depends_on 来创建显式依赖。您可以使用 depends_on 来更改资源的创建顺序或执行顺序,使其在所依赖资源之后处理。depends_on 的表达式是依赖资源的地址列表。例如在远程操作一台E CS 服务器之前,需要为其绑定EIP或配置NAT规则。 resource "huaweicloud_compute_instance" "myinstance" { ... } resource "huaweicloud_vpc_eip" "myeip" { ... } resource "huaweicloud_compute_eip_associate" "associated" { public_ip = huaweicloud_vpc_eip.myeip.address instance_id = huaweicloud_compute_instance.myinstance.id } resource "null_resource" "provision" { depends_on = [huaweicloud_compute_eip_associate.associated] provisioner "remote-exec" { connection { # 通过公网地址访问 ECS host = huaweicloud_vpc_eip.myeip.address ... } inline = [ ... ] } } 父主题: Metadata
  • 资源索引 服务 元素 元素说明 流量清洗 AntiDDos.Service 一种流量清洗服务,可对EIP预防DDos攻击。 应用编排服务 AOS.Batch Batch是一个批处理对象,用于批量创建执行任务、部署等。Batch通过定义包含的子对象及批处理的次数来实现其批量化处理的功能。在所有包含对象的批量化处理操作都执行完成后,Batch才会判定为执行成功。目前Batch支持包含的子对象有CCE.Job、CCE.Deployment和AOS.Stack这三种。 AOS.Stack 华为公有云解决方案部署模板,用于创建AOS服务的堆栈资源,实现AOS支持的各种资源的编排。AOS.Stack模型对应于真实场景的解决方案,可实现解决方案的一键式部署,模型定义好之后可以实现批量复制,助力服务快速上云。 API网关 APIG.API API提供方把API接口配置在API网关中,开放后端能力。API分为两部分,第一部分为面向API使用者的API接口,定义了使用者如何调用这个API;第二部分面向API提供者,由API提供者定义这个API的真实的后端情况,定义了API网关如何去访问真实的后端服务。 APIG.ApiGroup API分组是API的管理单元,一个API分组等同于一个服务入口,创建API分组时,返回一个子 域名 作为访问入口。 APIG.Throttle 流量控制可限制单位时间内API的被调用次数,保护后端服务。当API上线后,系统会默认给每个API提供一个访问控制策略,API提供者可以根据自身API的服务能力及负载情况变更这个访问控制策略。 应用性能管理 APM .AutoScaler APM .AutoScaler用于控制应用的自动弹性伸缩。 APM.Pinpoint APM.Pinpoint策略用于编排含有Pinpoint监控策略的堆栈。堆栈部署成功后,可在监控页面查看对应堆栈下应用的监控组及监控详情。 云容器引擎 CCE.Addon.AutoScaler CCE.Addon.AutoScaler是一款k8s集群自动扩容缩容node节点的插件。 CCE.Cluster CCE.Cluster用于部署华为云PaaS层的kubernetes集群资源。通过该模型创建master节点,可用于纳管和创建slave节点。通过该资源可以为用户提供编排用户应用功能。 CCE.ConfigMap CCE.ConfigMap用于为云容器引擎服务(CCE)的集群创建提供基本配置信息存储服务。ConfigMap中不能包括敏感信息。 CCE.DaemonSet CCE.DaemonSet用于创建kubernetes集群中的DaemonSet对象。目前支持直接使用kubernetes原生yaml文件进行创建。 CCE.Deployment CCE.Deployment用于为云容器引擎服务(CCE)的集群创建kubernetes集群中的Deployment对象。目前AOS支持直接使用kubernetes原生yaml文件进行创建。 CCE.HelmRelease Helm是CCE提供的一种基于K8S的打包规范,CCE.HelmRelease是Helm包的部署实例。 CCE.Ingress CCE.Ingress用于为云容器引擎服务(CCE)的集群创建kubernetes集群中的Ingress对象。目前AOS支持直接使用kubernetes原生yaml文件进行创建。 CCE.Job CCE.Job用于为云容器引擎服务(CCE)的集群创建kubernetes集群中的Job对象。 CCE.NodePool CCE.NodePool用于部署华为云PaaS层kubernetes节点资源。通过创建该资源,方便用户将华为云上 资源编排 在节点上,提供更加强大优质的功能。 CCE.Pod CCE.Pod用于为云容器引擎服务(CCE)的集群创建kubernetes集群中的Pod资源。 CCE.Secret CCE.Secret用于为云容器引擎服务(CCE)的集群创建提供加密信息存储服务。Secret中可包括用户名、密码、证书等敏感配置信息。 CCE.Service CCE.Service用于部署华为云PaaS层的K8S资源对象Service。通过创建Service,可为一组具有相同功能的容器应用提供一个统一的入口地址,并将请求进行负载分发到后端的各个容器应用上。 CCE.StatefulSet CCE.StatefulSet用于为云容器引擎服务(CCE)的集群创建有状态服务。 CCE.Storage.EVS CCE.Storage.EVS对应云容器引擎服务(CCE)存储管理功能中的云硬盘存储卷,该资源需要与CCE集群一起使用。 CCE.Storage.OBS CCE.Storage.OBS对应云容器引擎服务(CCE)存储管理功能中的对象存储卷,该资源需要与CCE集群一起使用。 CCE.Storage.SFS CCE.Storage.SFS对应云容器引擎服务(CCE)存储管理功能中的文件存储卷,该资源需要与CCE集群一起使用。 云容器实例 CCI.ConfigMap CCI.ConfigMap用于创建ConfigMap资源对象。 CCI.Deployment CCI.Deployment用于创建Deployment资源对象。 CCI.Ingress CCI.Ingress用于创建Ingress资源对象。 CCI.Job CCI.Job用于创建Job资源对象。 CCI.Namespace CCI.Namespace用于创建一个Namespace(命名空间)。 CCI.Secret CCI.Secret用于创建一个Secret资源类型,Kubernetes提供了Secret来处理敏感信息。 CCI.Service CCI.Service用于创建一个Service对象。 CCI.StatefulSet CCI.StatefulSet用于创建有状态服务。 CCI.Storage.EVS CCI.Storage.EVS用于在指定的Namespace下创建Persistent Volume Claim(PVC)。 CCI.Storage.SFS CCI.Storage.SFS用于在指定的Namespace下创建文件存储卷。 内容分发网络 CDN.Cache 设置CDN节点上缓存资源的缓存策略。 CDN.Domain 创建加速域名。 CDN.Host 修改回源HOST。回源HOST是CDN节点在回源过程中,在源站访问的站点域名,即http请求头中的host信息。 CDN.Https 设置加速域名HTTPS。通过配置加速域名的HTTPS证书,并将其部署在全网CDN节点,实现HTTPS安全加速。 CDN.PreheatJob 创建预热任务。 CDN.Referer 设置Referer过滤规则。通过设置过滤策略,对访问者身份进行识别和过滤,实现限制访问来源的目的。 CDN.RefreshJob 创建刷新缓存任务。 CDN.Source 修改源站信息。源站IP地址或域名都可以指引CDN节点回源到对应的源站服务器,源站域名不能与加速域名相同。 数据库安全服务 DBSS.Instance DBSS.Instance用于创建数据库安全服务(DBSS)资源。 分布式缓存服务 DCS.Redis 分布式缓存服务(Distributed Cache Service,简称DCS),用于提供即开即用、安全可靠、弹性扩容、便捷管理的在线分布式缓存能力,兼容Redis和Memcached,提供单机、主备、集群等丰富的实例类型,满足用户高并发及快速数据访问的业务诉求。 文档数据库服务 DDS.CommunityReplicaSetOrSingle DDS.CommunityReplicaSetOrSingle元素用于创建副本集实例或者单节点实例。 数据接入服务 DIS.Stream DIS.Stream用于创建华为云通道资源。通过创建该资源,方便用户使用高效采集、传输、分发能力。 弹性云服务器 ECS.CloudServer ECS.CloudServer用于部署华为云IaaS层的弹性云服务器,由CPU、内存、镜像、云硬盘组成的一种可随时获取、弹性可扩展的计算云服务器。 ECS.ServerGroup 通过云服务器组功能,弹性云服务器在创建时,将尽量分散地创建在不同的主机上,提高业务的可靠性。对于现有的弹性云服务器,不支持添加云服务器组操作。 ECS.KeyPair ECS.KeyPair用于创建远程登录身份验证的密钥对。为安全起见,弹性云服务器登录时建议使用密钥方式进行身份验证。 云硬盘 EVS.NonSharedVolume EVS.NonSharedVolume用于部署华为云IaaS层的非共享类型云硬盘。非共享云硬盘可以为云服务器提供高可靠、高性能、规格丰富并且可弹性扩展的块存储服务。 EVS.SharedVolume EVS.SharedVolume用于部署华为云IaaS层的共享类型云硬盘。共享云硬盘是一种支持多个云服务器并发读写访问的数据块级存储设备,具备多挂载点、高并发性、高性能、高可靠性等特点。 函数工作流 服务 FGS.ApigEventMap FGS.ApigEventMap元素用来创建函数工作流服务的APIG触发器资源,APIG触发器依赖API网关服务,需预先开通APIG服务,通过APIG事件触发函数执行。 FGS.CtsEventMap FGS.CtsEventMap元素用来创建函数工作流服务的 CTS 定时触发器资源。CTS触发器依赖 云审计 服务CTS,需要预先开通CTS服务,通过CTS事件触发函数执行。 FGS.DisEventMap FGS.DisEventMap元素用来创建函数工作流服务的DIS触发器资源。DIS触发器依赖数据接入服务DIS,通过DIS事件触发函数执行。创建DIS触发器需开通DIS服务,并为函数配置访问DIS服务的 IAM 委托。 FGS.DmsEventMap FGS.DmsEventMap元素用来创建函数工作流服务的DMS定时触发器资源。DMS触发器依赖分布式消息服务DMS,通过DMS事件触发函数执行。创建DMS触发器需开通DMS服务,并为函数配置访问DMS服务的IAM委托。 FGS.Function FGS.Function用于创建函数工作流服务的函数资源。 FGS.LtsEventMap FGS.LtsEventMap元素用来创建函数工作流服务的LTS触发器资源。LTS触发器依赖 云日志服务LTS ,需开通LTS服务,通过LTS事件触发函数执行。 FGS.ObsEventMap FGS.ObsEventMap元素用来创建函数工作流服务的OBS触发器资源。OBS触发器依赖 对象存储服务 OBS,需预先开通OBS服务,通过OBS事件触发函数执行 FGS.TimerEventMap FGS.TimerEventMap用于创建函数工作流服务的TIMER定时触发器资源。通过TIMER定时触发器,可定时触发函数执行。 FGS.SmnEventMap FGS.SmnEventMap元素用来创建函数工作流服务的 SMN 定时触发器资源。SMN触发器依赖 消息通知 服务SMN,需预先开通SMN服务,通过SMN事件触发函数执行。 企业主机安全 HSS.Instance HSS.Instance元素用来创建企业主机安全服务(HSS)资源。 统一身份认证 服务 IAM.Agency IAM.Agency用于在IAM上创建委托,指定委托账号及对应的权限,委托账号的管理员为用户分配Agent Operator权限后,委托账号的用户即可管理您的资源。 IAM.UserGroup IAM.UserGroup用于创建用户组。 MapReduce服务 MRS .Cluster MRS是一个在华为云上部署和管理Hadoop系统的服务,一键即可部署Hadoop集群。通过MRS.Cluster创建集群,您可指定集群类型用于离线数据分析和流处理任务,也可指定集群中预置的弹性云服务器实例规格、实例数量、数据盘类型(普通IO、高 IO、超高 IO)、要安装的组件(Hadoop、Spark、HBase、Hive、Kafka、Storm等)。您还可以使用引导操作在集群启动前(或后)在指定的节点上执行脚本、安装其他第三方软件或修改集群运行环境等。 NAT网关 NAT.Instance NAT.Instance用于创建NAT网关实例。 NAT.SNatRule NAT.SNatRule用于创建SNatRule规则,设置访问外网的网段。 对象存储服务 OBS.Bucket OBS.Bucket用于部署华为云的对象存储服务的桶资源。对象存储服务提供海量安全、高可靠、低成本的数据存储能力,桶是其存放对象的容器。 关系型数据库 RDS.MySQL 关系型数据库(Relational Database Service,以下简称RDS)是一种基于 云计算平台 的即开即用、稳定可靠、弹性伸缩、便捷管理的在线关系型数据库服务。 RDS.MySQL.DataBase 一个数据库实例可以包含多个由数据库用户创建的数据库,并且可以使用与独立数据库实例相同的客户端工具和应用程序进行访问。该元素的作用便是在指定的RDS实例内创建一个数据库。 RDS.MySQL.User 数据库用户账户用来连接数据库实例,可以控制对客户的数据库实例的访问。以MySQL数据库为例,在创建数据库实例时,已经默认创建名为root的用户账户。 RDS.PostgreSQL 关系型数据库(Relational Database Service,以下简称RDS)是一种基于云计算平台的即开即用、稳定可靠、弹性伸缩、便捷管理的在线关系型数据库服务。 应用管理与运维平台 ServiceStage.Agent ServiceStage.Agent元素是对ServiceStage上原有功能的兼容。该元素在应用编排服务中即将下线,推荐您使用CCE服务的相关资源进行创建,或者使用后续即将上线的AOS.Application元素类型。 ServiceStage.AppGroup ServiceStage.AppGroup元素是对ServiceStage上原有功能的兼容。该元素在应用编排服务中即将下线,推荐您使用CCE服务的相关资源进行创建,或者使用后续即将上线的AOS.Application元素类型。 ServiceStage.ContainerComponent ServiceStage.ContainerComponent元素是对ServiceStage上原有功能的兼容。该元素在应用编排服务中即将下线,推荐您使用CCE服务的相关资源进行创建,或者使用后续即将上线的AOS.Application元素类型。 ServiceStage.Job ServiceStage.Job元素是对ServiceStage上原有功能的兼容。该元素在应用编排服务中即将下线,推荐您使用CCE服务的相关资源进行创建,或者使用后续即将上线的AOS.Application元素类型。 ServiceStage.StatefulApplication ServiceStage.StatefulApplication元素是对ServiceStage上原有功能的兼容。该元素在应用编排服务中即将下线,推荐您使用CCE服务的相关资源进行创建,或者使用后续即将上线的AOS.Application元素类型。 ServiceStage.StatelessApplication ServiceStage.StatelessApplication元素是对ServiceStage上原有功能的兼容。该元素在应用编排服务中即将下线,推荐您使用CCE服务的相关资源进行创建,或者使用后续即将上线的AOS.Application元素类型。 弹性文件服务 SFS.FileSystem 弹性文件服务,提供按需扩展的高性能文件存储,可供云上多个弹性云服务器共享访问。 消息通知服务 SMN.Subscription SMN.Subscription用于创建消息通知服务的订阅。 SMN.Topic SMN.Topic用于创建消息通知服务的主题。 共享型负载均衡 ULB.Healthmonitor 共享型负载均衡下的健康检查,一个Pool对应一个健康检查,一个健康检查管理多个弹性云服务器,支持对健康检查进行增加删除。 ULB.Listener 共享型负载均衡下的监听器,一个loadBalancer可对应多个监听器,支持对监听器进行增加、删除。 ULB.LoadBalancer ULB.LoadBalancer资源部署的是华为云PaaS层资源对象LoadBalancer(共享型)。通过创建LoadBalancer(共享型),可以为一组具有相同功能的容器应用提供一个统一的入口地址,并将请求进行负载分发到后端的各个容器应用上。LoadBalancer(共享型)适用于访问量较大的web业务,提供基于域名和URL的路由均衡能力,实现更加灵活的业务转发。与经典型负载均衡相比,提供了更丰富的HTTP和HTTPS转发能力,同时在转发性能和稳定性上也有较大提升。 ULB.Member 共享型负载均衡下的弹性云服务器,一个Pool可以对应多个弹性云服务器。支持对云服务器进行增加删除。 ULB.Pool 共享型负载均衡下的弹性云服务器组,一个Listener可以对应多个弹性云服务器组,并且可以对弹性云服务器组进行增加删除。一个弹性云服务器组管理多个云服务器。 VPC终端节点 VPCEndpoint.Endpoint VPCEndpoint.Endpoint元素用于创建终端节点。终端节点在VPC和终端节点服务之间提供连接通道。 VPCEndpoint.EndpointService VPCEndpoint.EndpointService元素用于创建终端节点服务。终端节点服务指将云服务或用户私有服务配置为VPC终端节点支持的服务。 虚拟私有云 VPC.EIP VPC.EIP用于创建弹性公网IP。弹性公网IP是基于互联网上的静态IP地址,将弹性公网IP地址和子网中关联的弹性云服务器绑定和解绑,可以实现VPC中的弹性云服务器通过固定的公网IP地址与互联网互通。 VPC.FirewallGroup 防火墙组是逻辑上的分组,对一个或多个子网的访问控制策略系统,根据与子网关联的入站/出站规则,判断数据包是否被允许流入/流出关联子网。 VPC.FirewallPolicy.Egress 出方向网络ACL策略,属于ACL组的成员,策略里面可以包含多个ACL规则。 VPC.FirewallPolicy.Ingress 入方向网络ACL策略,属于ACL组的成员,策略里面可以包含多个ACL规则。 VPC.FirewallRule VPC.FirewallRule元素可创建华为公有云产品中的网络ACL规则,用于进行子网的访问控制。 VPC.SecurityGroup 安全组是逻辑上的分组,为同一个VPC内具有相同安全保护需求并相互信任的弹性云服务器提供访问策略。 VPC.SecurityGroupRule 安全组规则是为弹性云服务器等添加的访问策略,以实现访问控制。 VPC.Subnet VPC.Subnet用于创建华为公有云产品虚拟私有云网络中的子网。 VPC.VIP VPC.VIP用于创建虚拟IP(一个未分配给真实云服务器网卡的IP地址)。用户可以通过虚拟IP访问此云服务器。 VPC.VPC VPC.VPC用于创建华为公有云产品中的虚拟私有云网络。 漏洞扫描服务 VSS.WebScan 漏洞扫描 服务(VSS)集Web漏洞扫描、操作系统漏洞扫描、资产内容合规检测、配置基线扫描、弱密码检测五大核心功能,自动发现网站或服务器暴露在网络中的安全风险,为云上业务提供多维度的安全检测服务,满足合规要求,让安全弱点无所遁形。 Web应用防火墙 WAF.Service Web应用防火墙(WAF)对网站业务流量进行多维度检测和防护,结合深度机器学习智能识别恶意请求特征和防御未知威胁,阻挡诸如 SQL注入或跨站脚本等常见攻击,避免这些攻击影响Web应用程序的可用性、安全性或消耗过度的资源,降低数据被篡改、失窃的风险。
  • 模型属性 表1 模型定义属性说明 属性 是否必选 描述 dbPort 否 访问实例的端口 参数类型:integer 取值说明:[2100, 9500],该字段目前无效。 默认值:3306 取值约束:{u'in_range': [2100, 9500]} 使用建议:按需在端口范围内填写 availabilityZone 是 实例所属的可用区 参数类型:HuaweiCloud.ECS.AvailabilityZone.Name 取值说明:待创建云服务器所在的可用区,需要指定可用区(AZ)的名称,例如cn-north-1a。 取值约束:根据所属区域选择。 使用建议:1. 将该字段通过get_input函数传入,通过在AOS界面创建资源栈填写输入参数时时可自动选择 2. 各Region的可用区请参见:https://developer.huaweicloud.com/endpoint。 name 否 实例名称 参数类型:string 取值说明:用户自定义 默认值:"" 取值约束:1. 4位到64位之间,必须以字母开头,不区分大小写可以包含字母、数字、中划线或者下划线,不能包含其他的特殊字符。 2. 同一租户下,同类型的实例名唯一。 使用建议:用户自定义 dataBase 否 实例自带数据库的配置 参数类型:MySQL.DataBase 默认值:{u'characterSet': u'utf8', u'name': u'unset', u'collate': u'utf8_general_ci'} 使用建议:在“组成部分”中选择 dataBase 字段根据提示的字段进行扩充填写 paramsGroupId 否 实例的参数组Id 参数类型:HuaweiCloud.RDS.ParamsGroup.Id 使用建议:建议设置成get_input形式,从下拉列表中选择;也支持填写一个默认参数组Id,默认值需要从RDS页面获取 securityGroupId 是 实例所属的安全组ID 参数类型:HuaweiCloud.VPC.SecurityGroup.Id 取值说明:到VPC服务获取安全组ID或通过连线VPC.SecurityGroup自动生成。 使用建议:1. 将该字段通过get_input函数传入,通过在AOS界面创建资源栈填写输入参数时时可自动选择 2. 通过get_reference获取由本资源栈创建的VPC.SecurityGroup,使用设计器建立依赖关系时会自动指定 3. 在VPC服务界面中获取已创建好的安全组的ID,详见https://console.huaweicloud.com/vpc dbUser 否 实例自带用户的配置 参数类型:MySQL.DBUser 默认值:{u'userPassword': u'unset', u'name': u'unset'} 使用建议:在“组成部分”中选择 dbUser 字段根据提示的字段进行扩充填写 dbRootPassword 是 实例的root用户密码。参数非空,由大小写字母、数字和特殊符号~!@#%^*-_=+?组成,长度8~32位,非弱密码。 参数类型:password 取值说明:用户自定义 取值约束:1. 参数必须写入inputs内,通过get_input的方式传入 2. 参数非空,由大小写字母、数字和特殊符号~!@#%^*-_=+?组成,长度8~32位,非弱密码。 使用建议:建议定义为get_input方式获取,以保证安全性,避免明文密码 volume 是 实例使用的数据盘信息 参数类型:RDS.Volume 默认值:{u'volumetype': u'COMMON', u'size': 100} 使用建议:在“组成部分”中选择 volume 字段根据提示的字段进行扩充填写 timeZone 否 所在地时区(只支持包周期资源栈,按需资源栈暂不支持该属性设置) 参数类型:string 取值说明:不选择时,各个引擎时区如下:MySQL国内站、国际站默认为UTC时间。PostgreSQL国内站、国际站默认为UTC时间。选择填写时,取值范围为UTC-12:00~UTC+12:00,且只支持整段时间,如UTC+08:00,不支持UTC+08:30。 取值约束:{u'valid_values': [u'UTC-12:00', u'UTC-11:00', u'UTC-10:00', u'UTC-09:00', u'UTC-08:00', u'UTC-07:00', u'UTC-06:00', u'UTC-05:00', u'UTC-04:00', u'UTC-03:00', u'UTC-02:00', u'UTC-01:00', u'UTC', u'UTC+01:00', u'UTC+02:00', u'UTC+03:00', u'UTC+04:00', u'UTC+05:00', u'UTC+06:00', u'UTC+07:00', u'UTC+08:00', u'UTC+09:00', u'UTC+10:00', u'UTC+11:00', u'UTC+12:00']} 使用建议:将该字段通过get_input函数传入,通过在AOS界面创建资源栈填写输入参数时可自动选择 backupStrategy 是 实例备份策略 参数类型:RDS.BackupStrategy 默认值:{u'keepDays': 0, u'endTime': u'02:00', u'startTime': u'01:00'} 取值约束:用户按规格选择定义 subnetId 是 实例所属的子网ID 参数类型:HuaweiCloud.VPC.Subnet.Id 取值说明:使用已有或创建的子网ID。如果使用新建的,需在模板中定义子网对象并建立依赖关系。建议通过连线VPC.Subnet来自动生成 取值约束:所填子网必须为与VPC关联对应 使用建议:1. 将该字段通过get_input函数传入,通过在AOS界面创建资源栈填写输入参数时可自动选择 2. 通过get_reference获取由本资源栈创建的VPC.Subnet,使用设计器建立依赖关系时会自动指定 3. 在VPC服务界面中获取已创建好的子网的ID,参见https://console.huaweicloud.com/vpc。 slaveAvailabilityZone 否 HA实例备机所属的可用区 参数类型:HuaweiCloud.ECS.AvailabilityZone.Name 取值说明:待创建云服务器所在的可用区,需要指定可用区(AZ)的名称,例如cn-north-1a。 取值约束:根据所属区域选择,参见https://developer.huaweicloud.com/endpoint。 使用建议:1. 将该字段通过get_input函数传入,通过在AOS界面创建资源栈填写输入参数时时可自动选择 2. 各Region的可用区请参见:https://developer.huaweicloud.com/endpoint。 dataStore 是 数据库信息 参数类型:MySQL.DataStore 默认值:{u'dbtype': u'MySQL', u'version': u'5.7'} 使用建议:在“组成部分”中选择 dataStore 字段根据提示的字段进行扩充填写 HA 是 实例的高可用配置 参数类型:RDS.HA.Mysql 默认值:{u'replicationMode': u'semisync', u'enable': u'unset'} 使用建议:在“组成部分”中选择 HA 字段根据提示的字段进行扩充填写 vpcId 是 实例所属的VPC ID 参数类型:HuaweiCloud.VPC.VPC.Id 取值说明:支持使用已有或新建私有云ID。 如果使用新建的,需在模板中定义vpc对象并建立依赖关系。建议通过拖拽到VPC内自动生成。 取值约束:满足uuid的生成规则 使用建议:1. 将该字段通过get_input函数传入,通过在AOS界面创建资源栈填写输入参数时可自动选择 2. 通过get_reference获取由本资源栈创建的VPC.VPC元素,使用设计器建立依赖关系时会自动指定 3. 在VPC服务界面获取已经创建好的VPC的ID,参见https://console.huaweicloud.com/vpc flavor 是 实例规格 参数类型:HuaweiCloud.RDS.Flavor.Id 取值说明:待创建的数据库实例的规格,根据实例规格及用户project生成。 取值约束:不同Project所获取的FlavorID不一致,同时需要与所用的数据库类型、版本配套。资源规格编码,例如:rds.mysql.m1.xlarge。其中,rds代表RDS产品,mysql代表数据库引擎,m1.xlarge代表性能规格,为高内存类型。带"rr"的表示只读实例规格,反之表示单实例和HA实例规格。 使用建议:建议通过RDS API先获取,参考: https://support.huaweicloud.com/api-rds/rds_06_0002.html
  • 模型说明 关系型数据库(Relational Database Service,以下简称RDS)是一种基于云计算平台的即开即用、稳定可靠、弹性伸缩、便捷管理的在线关系型数据库服务。 RDS具有完善的性能监控体系和多重安全防护措施,并提供专业的数据库管理平台, 让用户能够在云中轻松设置、操作和扩展关系型数据库。通过RDS控制台,用户几乎可以执行所有必需任务而无需编程,简化运营流程,减少日常运维工作量,从而专注于应用开发和业务发展。
  • blueprint样例 tosca_definitions_version: huaweicloud_tosca_version_1_0 node_templates: rdsms528: type: HuaweiCloud.RDS.MySQL properties: dataStore: dbtype: MySQL version: '5.7' dbPort: 3306 vpcId: get_input: rdsms528_vpcId securityGroupId: get_input: rdsms528_securityGroupId availabilityZone: get_input: rdsms528_availabilityZone dbRootPassword: get_input: rdsms528_dbRootPassword volume: volumetype: COMMON size: 100 backupStrategy: keepDays: 0 endTime: '02:00' startTime: '01:00' subnetId: get_input: rdsms528_subnetId flavor: get_input: rdsms528_flavor HA: replicationMode: semisync enable: get_input: rdsms528_HA_enable inputs: rdsms528_vpcId: description: 实例所属的VPC ID label: '' rdsms528_securityGroupId: description: 实例所属的安全组ID label: '' rdsms528_availabilityZone: description: 实例所属的可用分区 label: '' rdsms528_dbRootPassword: description: '实例的root用户密码。参数非空,由大小写字母、数字和特殊符号~!@#%^*-_=+?组成,长度8~32位,非弱密码。' label: '' rdsms528_subnetId: description: 实例所属的子网ID label: '' rdsms528_flavor: description: 实例规格 label: '' rdsms528_HA_enable: description: 是否高可用 label: ''
  • blueprint样例 tosca_definitions_version: huaweicloud_tosca_version_1_0 inputs: delpoy1: default: false type: boolean delpoy2: default: true type: boolean delpoy3: default: true type: boolean description: default: nginx stack type: string template-id1: default: 370f60c6-afc2-e08a-d1c4-fd33bd58b785 type: string template-id2: default: 753c30cf-3b3b-cd63-f7f0-1550d058eaac type: string template-id3: default: 2fdd9e05-1406-15d4-7b35-1274a036bcfb type: string images: default: 192.168.0.249:20202/op_svc_servicestage_88b899/nginx:latest type: string node_templates: stackone: type: HuaweiCloud.AOS.Stack properties: deploy: {get_input: delpoy1} description: {get_input: description} templateId: {get_input: template-id1} inputs: images: {get_input: images} requirements: - dependency: node: stacktwo stacktwo: type: HuaweiCloud.AOS.Stack properties: deploy: {get_input: delpoy2} description: {get_input: description} templateId: {get_input: template-id2} inputs: images: {get_input: images} myport: {get_attribute: [stackthree,nginx-NodePort]} requirements: - dependency: node: stackthree stackthree: type: HuaweiCloud.AOS.Stack properties: deploy: {get_input: delpoy3} description: {get_input: description} templateId: {get_input: template-id3} inputs: image: {get_input: images}
  • 关联关系 表2 关联关系说明 关系说明 关联节点 依赖关系 CCE.Service 依赖关系 EVS.NonSharedVolume 依赖关系 CCE.Deployment 依赖关系 ServiceStage.Agent 依赖关系 SMN.Topic 依赖关系 CCI.Storage.EVS 依赖关系 VPC.VIP 依赖关系 APM.AutoScaler 依赖关系 ServiceStage.AppGroup 依赖关系 FGS.DmsEventMap 依赖关系 VPC.FirewallPolicy.Ingress 依赖关系 VPC.EIP 依赖关系 CDN.Source 依赖关系 RDS.MySQL.User 依赖关系 CCE.Ingress 依赖关系 CDN.Cache 依赖关系 CCI.ConfigMap 依赖关系 DIS.Stream 依赖关系 CCI.Namespace 依赖关系 CCE.Addon.AutoScaler 依赖关系 VPC.FirewallRule 依赖关系 CCE.Cluster 依赖关系 SFS.FileSystem 依赖关系 CDN.RefreshJob 依赖关系 EVS.SharedVolume 依赖关系 CCI.Job 依赖关系 AOS.Stack 依赖关系 FGS.TimerEventMap 依赖关系 NAT.Instance 依赖关系 FGS.ObsEventMap 依赖关系 OBS.Bucket 依赖关系 APIG.ApiGroup 依赖关系 AOS.Batch 依赖关系 CCE.Secret 依赖关系 CCE.Storage.EVS 依赖关系 CCE.Storage.SFS 依赖关系 CCE.HelmRelease 依赖关系 FGS.ApigEventMap 依赖关系 RDS.MySQL.DataBase 依赖关系 CCE.NodePool 依赖关系 IAM.UserGroup 依赖关系 CCI.Deployment 依赖关系 CDN.Domain 依赖关系 MRS.Cluster 依赖关系 CCE.StatefulSet 依赖关系 VPCEndpoint.Endpoint 依赖关系 CCI.Ingress 依赖关系 CCE.Job 依赖关系 CCI.Secret 依赖关系 APIG.API 依赖关系 FGS.LtsEventMap 依赖关系 ServiceStage.ContainerComponent 依赖关系 CCI.Storage.SFS 依赖关系 VPC.FirewallGroup 依赖关系 CCI.StatefulSet 依赖关系 CCE.DaemonSet 依赖关系 RDS.PostgreSQL 依赖关系 ECS.KeyPair 依赖关系 ServiceStage.StatelessApplication 依赖关系 ServiceStage.StatefulApplication 依赖关系 IAM.Agency 依赖关系 FGS.CtsEventMap 依赖关系 DDS.CommunityReplicaSetOrSingle 依赖关系 FGS.DisEventMap 依赖关系 APIG.Throttle 依赖关系 CCE.Pod 依赖关系 DCS.Redis 依赖关系 CDN.Https 依赖关系 VPC.VPC 依赖关系 CDN.PreheatJob 依赖关系 CDN.Referer 依赖关系 ECS.CloudServer 依赖关系 SMN.Subscription 依赖关系 VPC.Subnet 依赖关系 CCE.ConfigMap 依赖关系 FGS.Function 依赖关系 VPC.FirewallPolicy.Egress 依赖关系 CCI.Service 依赖关系 CCE.Storage.OBS 依赖关系 ServiceStage.Job 依赖关系 CDN.Host 依赖关系 ECS.ServerGroup 依赖关系 RDS.MySQL 依赖关系 VPCEndpoint.EndpointService 依赖关系 FGS.SmnEventMap 被包含关系 CCE.Cluster
  • 模型属性 表1 模型定义属性说明 属性 是否必选 描述 inputs 是 嵌套的堆栈所需要的输入信息 参数类型:dict 取值说明:自定义的结构体 默认值:{} 取值约束:一个模板最多可定义60个inputs输入。 description 否 堆栈描述信息 参数类型:string 取值说明:用户自定义 默认值:"" 取值约束:文本字符串,长度为[0, 1024]。 failureStrategy 否 失败策略 参数类型:string 取值说明:DoNothing、Rollback。无动作和回滚,默认为无动作 默认值:DoNothing deploy 否 应用是否部署 参数类型:boolean 取值说明:true、false。如果设置为false,则应用将不部署(包括应用所包含的软件组件、依赖的主机资源等)。 默认值:True clusterId 否 用户创建存储关联的集群Id 参数类型:HuaweiCloud.CCE.Cluster.Id 取值约束:满足UUID规则,最大64位 使用建议:1.直接填ID:进入CCE管理控制台-资源管理-集群管理,在集群详情页面查看集群ID 2.通过get_reference获取。通过连线到cluster对象以get_reference自动获取 templateId 是 创建堆栈所依赖的模板ID 参数类型:string 取值说明:已有的模板id,可在AOS管理控制台-模板市场-公共模板 取值约束:文本字符串,长度[0, 64]
  • blueprint样例 tosca_definitions_version: huaweicloud_tosca_version_1_0 inputs: availabilityZone: description: 可用区 size: description: 云硬盘大小 default: 10 volumeType: description: 云硬盘类型 default: SATA name: description: 云硬盘名称 default: my-evs node_templates: my-evs: type: HuaweiCloud.EVS.SharedVolume properties: size: get_input: size availabilityZone: get_input: availabilityZone volumeType: get_input: volumeType name: get_input: name outputs: evs-id: description: 云服务器的ID value: get_attribute: - my-evs - volumeIDs
  • 模型属性 表1 模型定义属性说明 属性 是否必选 描述 availabilityZone 是 可用区 参数类型:HuaweiCloud.ECS.AvailabilityZone.Name 取值约束:按需选择,注意如果备份ID字段backupId不为空时,填写的AZ必须与备份所在AZ相同 使用建议:1. 将该字段通过get_input函数传入,通过在AOS界面创建资源栈填写输入参数时时可自动选择。2. 各Region的可用区请参见:https://developer.huaweicloud.com/endpoint。 description 否 云硬盘描述信息 参数类型:string 取值说明:用户自定义 取值约束:{u'max_length': 255} volumeType 是 云硬盘类型 参数类型:HuaweiCloud.EVS.Volume.Type.Name 取值说明:可选值为: SSD,SAS,SATA。“SSD”为超高IO云硬盘,“SAS”为高IO云硬盘,“SATA”为普通IO云硬盘。从快照创建云硬盘时,volumeType字段必须和快照源云硬盘保持一致。 使用建议:用户根据规格按需填写,了解不同磁盘类型的详细信息,请参见https://support.huaweicloud.com/productdesc-evs/zh-cn_topic_0044524691.html。 name 否 云硬盘名称 参数类型:string 取值说明:用户自定义, 如share 取值约束:正则规范要求:{"regex":"^[-_a-zA-Z0-9\u4e00-\u9fa5]*$","min_length":1,"max_length":64} 使用建议:用户自定义 passthrough 否 创建云硬盘的设备类型,即metadata.hw:passthrough 参数类型:string 取值说明:默认false,false表示云硬盘的设备类型为VBD (虚拟块存储设备 , Virtual Block Device)类型,即为默认类型,VBD只能支持简单的SCSI读写命令。true表示云硬盘的设备类型为SCSI类型,即允许ECS操作系统直接访问底层存储介质。支持SCSI锁命令。 取值约束:true或者false 使用建议:参考EVS服务资料:https://support.huaweicloud.com/api-evs/evs_04_2003.html backupId 否 云硬盘备份ID 参数类型:string 取值说明:使用云硬盘已有的备份ID。不支持同时使用“snapshotId”和“backupId”这两个字段。从备份创建云硬盘时为必选。 取值约束:满足uuid的生成规则 size 是 云硬盘大小 参数类型:integer 取值说明:云硬盘大小,单位为GB。系统盘:1GB-1024GB,数据盘:10GB-32768GB,创建空白云硬盘和从镜像/快照创建云硬盘时,size为必选,且云硬盘大小不能小于镜像/快照大小。从备份创建云硬盘时,size为可选,不指定size时,云硬盘大小和备份大小一致。 默认值:40 取值约束:{u'in_range': [10, 32768]} 使用建议:用户根据实际需求自定义。 snapshotId 否 云硬盘快照ID 参数类型:string 取值说明:使用云硬盘使用云硬盘已有的快照ID,指定该参数表示创建云硬盘方式为从快照创建云硬盘。不支持同时使用“snapshotId”和“backupId”这两个字段。 取值约束:满足uuid的生成规则
  • lifecycle 每个资源实例都具有创建 、更新和销毁三个阶段,在一个资源实例的生命周期过程中都会经历其中的2至3个阶段。通过元参数 lifecycle 可以对资源实例的生命周期过程进行改变,lifecycle 支持以下参数: create_before_destroy 默认情况下,当需要改变资源中不支持更新的参数时,Terraform会先销毁已有实例,再使用新配置的参数创建新的对象进行替换。当您将 create_before_destroy 参数设置为 true 时,Terraform将先创建新的实例,再销毁之前的实例。这个参数可以适用于保持业务连续的场景,由于新旧实例会同时存在,需要提前确认资源实例是否有唯一的名称要求或其他约束。 lifecycle { create_before_destroy = true } prevent_destroy 当您将 prevent_destroy 参数设置为true时,Terraform将会阻止对此资源的删除操作并返回错误。这个元参数可以作为一种防止因意外操作而重新创建成本较高实例的安全措施,例如数据库实例。如果要删除此资源,需要将这个配置删除后再执行 destroy 操作。 lifecycle { prevent_destroy = true } ignore_changes 默认情况下,Terraform plan/apply 操作将检测云上资源的属性和本地资源块中的差异,如果不一致将会调用更新或者重建操作来匹配配置。您可以用 ignore_changes 来忽略某些参数不进行更新或重建。ignore_changes 的值可以是属性的相对地址列表,对于 Map 和 List 类型,可以使用索引表示法引用,如 tags["Name"],list[0] 等。 resource "huaweicloud_rds_instance" "myinstance" { ... lifecycle { ignore_changes = [ name, ] } } 此时,Terraform 将会忽略对 name 参数的修改。除了列表之外,您也可以使用关键字 all 忽略所有属性的更新。 resource "huaweicloud_rds_instance" "myinstance" { ... lifecycle { ignore_changes = all } } 父主题: Metadata
  • 变量引用 在编写模板时,通常会使用到变量引用的特性,像写函数一样,引用一个已定义好的变量或引用其他对象的成员变量。在AOS模板中也是一样的,您也可以引用其他已有的值。 为了使模板写作更加通顺,根据被引用的对象,将引用方法分为: 引用输入:使用get_input方式。 引用元素属性:使用get_attribute或get_reference方式。 引用映射表:使用get_in_map方式。 把这些引用方式也叫做“内置函数”。内置函数除了引用还有很多其他函数,详情请参见表1。 表1 AOS的内置函数 内置函数名 描述 get_input 用于获取模板文件中inputs区域中定义的输入参数的值。 get_attribute 用于获取模板中定义的其他元素初始化后的结果。 get_reference 是get_attribute的简化方式。当要获取得到的属性信息是以id或name结尾时,将处理替换为get_attribute的refID或refName方式。 get_in_map 用于获取映射表中的内容。 条件函数 用于定义元素是否需要部署,包括cond_eq、cond_not、cond_and、cond_or和cond_if base64_encode 用于对字符串进行base64编码。 concat 用于将描述字段转换成字符串并进行拼接,支持内嵌get_attribute、get_input函数。 split 一般多与select/get_list_length配合使用。其主要使用场景如下: 将一个字符串拆分成一组字符串,以便从结果字符串列表中获取特定元素。 直接使用结果字符串数组。 select 用于从一个数组结构中获取指定下标的对象。一般多与split配合使用。 get_list_length 用于计算一个数组结构的元素个数。一般多与split配合使用。 父主题: 内置函数
  • 数字转成字符串 很多情况下,定义的变量是一个字符串,但同时需要引用此变量既作为字符串,又作为数字。例如,端口号在作为ENV环境变量时,要求其值是字符串类型,而在作为应用微服务属性时,要求其值为数字。 针对上述问题,有如下两种方式可解决: 方式一:定义两个变量 定义PORT-i, PORT-s两个变量,PORT-s是字符串,PORT-i是数字。这种方法虽然可以直截了当的解决问题,但效果并不是很好。因为带入了重复,从而使模板的可维护性和易用性变差。 方式二:使用concat内置函数 通过concat内置函数将多个小字符串拼接为一个更长、更完整的字符串。concat内置函数的参数可以是任意类型的变量,支持将数字和字符串混合拼接。示例如下: 首先定义变量: magento-EPORT: type: integer default: 32080 其次在ULR时需要为字符串: name: MAGENTO_URL value: concat: - "http://" - {get_input: magento-EIP} - ":" - {get_input: magento-EPORT} #这里直接将数字转为字符串了 再次在微服务属性时需要为数字: serviceSpec: ports: - port: {get_input: magento-container-port} nodePort: {get_input: magento-EPORT} #这里要求是数字
  • blueprint样例 tosca_definitions_version: huaweicloud_tosca_version_1_0 inputs: cciss1pe_namespace: description: 资源在集群内所在的命名空间 label: '' node_templates: cciss1pe: type: HuaweiCloud.CCI.StatefulSet properties: k8sManifest: kind: StatefulSet spec: replicas: 1 serviceName: statefulsettest3 template: spec: imagePullSecrets: - name: default-secret containers: - image: 'nginx:stable-alpine-perl' name: ll-test resources: requests: cpu: 4 memory: 8Gi limits: cpu: 4 memory: 8Gi metadata: labels: app: ll-test selector: matchLabels: app: ll-test apiVersion: 'apps/v1' metadata: labels: app: ll-test name: statefulsettest3 namespace: get_input: cciss1pe_namespace
  • 模型属性 表1 模型定义属性说明 属性 是否必选 描述 k8sManifest 是 kubernetes的StatefulSet对象的原生的manifest 参数类型:dict 取值说明:用户自定义,建议使用公开镜像(上传镜像到镜像仓库,设置类型为公开),建议更新时不要更改metadata下面的名称(name)和标签(labels),spec下面的replicas如果通过get_input获得,需要指定type为integer 取值约束:不可为空 使用建议:用户自定义,参考文档:https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/ namespace 是 资源在集群内所在的命名空间 参数类型:HuaweiCloud.CCI.Namespace.Name 取值说明:需为集群下有效的namespace,示例:default 取值约束:由小写字母、数字和中划线组成,且必须以字母开头 使用建议:按需在CCI服务控制台-资源管理-命名空间查询选择
  • 关联关系 表2 关联关系说明 关系说明 关联节点 依赖关系 RDS.MySQL 依赖关系 CCI.Secret 依赖关系 CCI.Job 依赖关系 CCI.StatefulSet 依赖关系 CCI.Storage.EVS 依赖关系 DCS.Redis 依赖关系 CCI.Service 依赖关系 CCI.Deployment 依赖关系 CCI.Storage.SFS 依赖关系 CCI.ConfigMap 依赖关系 RDS.PostgreSQL 依赖关系 CCI.Ingress 依赖关系 AOS.Batch 依赖关系 OBS.Bucket 被包含关系 CCI.Namespace
  • 变量定义优先级 您可以自由组合使用上述设置变量的方式。对于复合类型的变量,为了提高可读性并避免转义带来的问题,建议使用变量定义文件来设置。如果为同一个变量分配了多个值,Terraform 将使用最后一个值进行覆盖。Terraform 根据以下顺序加载变量 (根据顺序,后面的源优于前面的源): 环境变量 terraform.tfvars 或 terraform.tfvars.json 文件 *.auto.tfvars 或 *.auto.tfvars.json 文件 命令行中的 -var 和 -var-file 选项
  • blueprint样例 inputs: apiName: default: api321b apigroupName: default: test_group321b throttleName: default: throttle321 node_templates: throttle1: type: HuaweiCloud.APIG.Throttle properties: name: get_input: throttleName remark: test throttle of aos plugin apiCallLimits: 10 appCallLimits: 7 userCallLimits: 9 timeInterval: 100 timeUnit: MINUTE api-group1: properties: name: get_input: apigroupName remark: test group of aos plugin type: HuaweiCloud.APIG.ApiGroup api1: properties: authType: NONE backendApi: remark: test backend reqMethod: GET reqProtocol: HTTP reqUri: '/test/{aaa}' timeout: 10000 urlDomain: 192.145.47.226:12346 backendType: HTTP cors: false groupId: get_attribute: - api-group1 - refID matchMode: NORMAL name: get_input: apiName remark: test api of aos plugin reqMethod: GET reqProtocol: HTTP reqUri: '/test/{aaa}' strategyId: get_attribute: - throttle1 - refID requirements: - groupId: node: api-group1 - strategyId: node: throttle1 type: HuaweiCloud.APIG.API tosca_definitions_version: huaweicloud_tosca_version_1_0
  • 模型属性 表1 模型定义属性说明 属性 是否必选 描述 mockInfo 否 mock后端详情 参数类型:APIG.MockInfo 取值说明:详见datatype定义 默认值:{} 使用建议:无 reqMethod 是 API的请求方式 参数类型:string 取值说明:支持Method类型包括:GET, POST, PATCH, DELETE, OPTIONS, PUT, HEAD, ANY 默认值:GET 取值约束:可取"GET", "POST", "DELETE", "PUT", "PATCH", "HEAD", "OPTIONS", "ANY" 使用建议:无 name 是 API分组的名称 参数类型:string 取值说明:用户自定义 取值约束:长度为3 - 64位的字符串,字符串由中文、英文字母、数字、_ 组成,且以英文字母开头 使用建议:无 backendType 是 后端类型 参数类型:string 取值说明:HTTP:web后端,FUNCTION:函数工作流,MOCK:模拟的后端 默认值:HTTP 取值约束:可取"HTTP", "FUNCTION", "MOCK" 使用建议:无 remark 否 API描述 参数类型:string 取值说明:API描述,字符长度不超过255 取值约束:长度不超过255 使用建议:无 backendApi 否 web后端详情 参数类型:APIG.BackendApi 取值说明:详见datatype定义 默认值:{u'reqUri': u'unset', u'reqMethod': u'GET', u'urlDomain': u'unset', u'reqProtocol': u'HTTP'} 使用建议:无 groupId 是 API所属的API分组 参数类型:HuaweiCloud.APIG.ApiGroup.Id 取值说明:支持使用已有或新建API分组。如果使用新建的,需在模板中定义API分组对象并建立依赖关系。建议通过拖拽到API分组内自动生成 使用建议:1. 将该字段通过get_input函数传入,在AOS界面创建堆栈填写输入参数时可自动选择2. 通过get_reference获取由本堆栈创建的APIG.ApiGroup元素,使用设计器建立依赖关系时会自动指定3. 在APIG服务界面获取已经创建好的API分组ID reqUri 是 API的访问地址 参数类型:string 取值说明:API的访问地址 取值约束:长度不超过255 使用建议:需要服从URI规范 authType 是 API的认证方式 参数类型:string 取值说明:NONE:无认证,APP:APP认证,IAM:IAM认证 默认值:IAM 取值约束:可取NONE,APP,IAM 使用建议:推荐使用IAM认证方式 matchMode 是 API的匹配方式 参数类型:string 取值说明:SWA:前缀匹配,NORMAL:正常匹配(绝对匹配) 默认值:NORMAL 取值约束:可取"SWA", "NORMAL" 使用建议:无 cors 是 是否支持跨域访问 参数类型:boolean 取值说明:true-支持跨域访问;false-不支持跨域访问 默认值:False 使用建议:从安全角度考虑,一般不建议开启跨域访问,除非业务需要 funcInfo 否 函数计算后端详情 参数类型:APIG.FuncInfo 取值说明:详见datatype定义 默认值:{u'functionUrn': u'', u'invocationType': u'async'} 使用建议:无 type 是 API类型 参数类型:string 取值说明:public-公有API,private-私有API 默认值:public 取值约束:可取"public", "private" 使用建议:无 strategyId 否 API所使用的流程策略 参数类型:string 取值说明:支持使用已有或新建流控策略。如果使用新建的,需在模板中定义API策略对象并建立依赖关系。建议通过拖拽连接API与API策略对接实现 使用建议:1. 将该字段通过get_input函数传入,在AOS界面创建堆栈填写输入参数时可自动选择2. 通过get_reference获取由本堆栈创建的APIG.Throttle元素,使用设计器建立依赖关系时会自动指定3. 在APIG服务界面获取已经创建好的API流控ID reqProtocol 是 API的协议类型 参数类型:string 取值说明:支持 HTTP 和 HTTPS 两种,HTTP-仅支持HTTP协议;HTTPS-仅支持HTTPS协议;BOTH-同时支持两种协议 默认值:HTTP 取值约束:可取""HTTP", "HTTPS", "BOTH" 使用建议:如果涉及敏感信息的传递,建议使用HTTPS
  • cond_not 对计算结果求反,一般用于嵌套其他条件函数。 表2 cond_not 语法 参数说明 返回值 cond_not: cond cond:条件表达式,可以为布尔值、来自get_input的布尔变量或嵌套的cond_eq、cond_not等条件函数。 条件表达式计算结果为true时,返回false;结果为false时,返回true。 通过cond_not判断输入参数是否为期望值示例如下: inputs: a: type: boolean default: true conditions: matchA: cond_not: {get_input: a}
  • cond_eq 判断相等条件是否满足,一般用于判断输入参数与预期是否一致。 表1 cond_eq 语法 参数说明 返回值 cond_eq: [cond1, cond2] cond1:条件1,可以为数字、字符串、布尔值或来自get_input变量。 cond2:条件2,可以为数字、字符串、布尔值或来自get_input变量。 cond1与cond2一致时,返回true;否则返回false。 通过cond_eq判断输入参数是否为期望值示例如下: inputs: a: type: string default: 10 conditions: matchA: cond_eq: [{get_input: a}, 10]
  • cond_if If条件是一个三元表达式,主要用于对属性进行赋值,一般用于node_templates的属性结构中。 表5 cond_if 语法 参数说明 返回值 cond_if: [condition, value_true, value_false] condition:条件名称,需要定义在conditions段中。 value_true:条件满足时的赋值。 value_false:条件不满足时的赋值。 条件满足时,返回value_true;条件不满足时,返回value_false。
  • cond_and 判断连续多个条件是否都满足,一般用于多重判断条件下,至少要有2个条件,最多支持10个条件。 表3 cond_and 语法 参数说明 返回值 cond_and: [cond1, cond2...condn] cond1:条件1,可以为布尔值、来自get_input的布尔变量或嵌套的cond_eq、cond_not等条件函数。 cond2:条件2,可以为布尔值、来自get_input的布尔变量或嵌套的cond_eq、cond_not等条件函数。 condn:条件n(3≤n≤10),可选,根据实际需求定义,参数类型同cond1、cond2。 当所有参数条件都满足时,返回为true;否则返回false。 通过cond_and判断组合条件是否满足示例如下: inputs: a: type: integer default: 10 b: type: string default: debug conditions: matchAnd: cond_and: [{cond_eq: [{get_input: a}, 10]}, {cond_eq: [{get_input: b}, debug]}] #条件1满足,条件2满足,matchAnd的条件才满足
  • cond_or 判断多个条件中任一条件满足即可。一般用于多重判断条件下,至少要有2个条件,最多支持10个条件。 表4 cond_or 语法 参数说明 返回值 cond_or: [cond1, cond2...condn] cond1:条件1,可以为布尔值、来自get_input的布尔变量或嵌套的cond_eq、cond_not等条件函数。 cond2:条件2,可以为布尔值、来自get_input的布尔变量或嵌套的cond_eq、cond_not等条件函数。 condn:条件n(3≤n≤10),可选,根据实际需求定义,参数类型同cond1、cond2。 任一条件满足时,即返回为true;所有条件都不满足时,返回false。 通过cond_or判断组合条件是否满足示例如下: inputs: a: type: integer default: 10 b: type: string default: debug conditions: matchOr: cond_or: [{cond_eq: [{get_input: a}, 8]}, {cond_eq: [{get_input: b}, debug]}] #条件1不满足,条件2满足,matchOr的条件即可满足
共100000条