华为云用户手册

  • 关联关系 表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} #这里要求是数字
  • 模型属性 表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
  • 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
  • 变量定义优先级 您可以自由组合使用上述设置变量的方式。对于复合类型的变量,为了提高可读性并避免转义带来的问题,建议使用变量定义文件来设置。如果为同一个变量分配了多个值,Terraform 将使用最后一个值进行覆盖。Terraform 根据以下顺序加载变量 (根据顺序,后面的源优于前面的源): 环境变量 terraform.tfvars 或 terraform.tfvars.json 文件 *.auto.tfvars 或 *.auto.tfvars.json 文件 命令行中的 -var 和 -var-file 选项
  • 模型属性 表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
  • 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
  • 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的条件即可满足
  • 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_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}
  • blueprint样例 tosca_definitions_version: huaweicloud_tosca_version_1_0 inputs: dcs-name: default: my-dcsinstance dcs-description: default: dcs service dcs-capacity: default: 2 dcs-vpcId: default: 09353759-e408-4b32-aeac-e2b9634eb281 dcs-securityGroupId: default: 07f01d47-11fc-4b9b-bce3-f0f47350ad7a dcs-subnetId: default: 85786d98-06ed-4d33-a85c-572238649029 dcs-password: default: "******" dcs-instanceMode: default: "ha" dcs-engineVersion: default: "5.0" dcs-availablityZone1: dcs-availablityZone2: dcs-specCode: default: "redis.single.xu1.large.2" node_templates: my-dcs: type: HuaweiCloud.DCS.Redis properties: name: {get_input: dcs-name} description: {get_input: dcs-description} capacity: {get_input: dcs-capacity} vpcId: {get_input: dcs-vpcId} securityGroupId: {get_input: dcs-securityGroupId} subnetId: {get_input: dcs-subnetId} password: {get_input: dcs-password} instanceMode: {get_input: dcs-instanceMode} engineVersion: {get_input: dcs-engineVersion} availablityZone1: {get_input: dcs-availablityZone1} availablityZone2: {get_input: dcs-availablityZone2} specCode: {get_input: dcs-specCode}
  • blueprint样例 tosca_definitions_version: huaweicloud_tosca_version_1_0 inputs: securityGroupId: description: 实例所属的安全组ID dbRootPassword: description: 实例的root用户密码 availabilityZone: description: 实例所属的可用区 subnetId: description: 实例所属的子网ID dbVersion: description: 数据库的版本 default: 5.7.21 HAEnable: description: 是否高可用 vpcId: description: 实例所属的VPC ID flavor: description: 实例规格 dataBaseName: description: 用户可访问的数据库名称 dbUserPassword: description: 数据库用户的密码 dbUserName: description: 用户名 node_templates: rds-ins: type: HuaweiCloud.RDS.MySQL properties: dbPort: 3306 backupStrategy: keepDays: 0 endTime: '02:00' startTime: '01:00' securityGroupId: get_input: securityGroupId dbRootPassword: get_input: dbRootPassword volume: volumetype: COMMON size: 100 availabilityZone: get_input: availabilityZone subnetId: get_input: subnetId dataStore: dbtype: MySQL version: get_input: dbVersion HA: replicationMode: semisync enable: get_input: HAEnable vpcId: get_input: vpcId flavor: get_input: flavor rds-db: type: HuaweiCloud.RDS.MySQL.DataBase properties: instanceId: get_reference: rds-ins dataBase: characterSet: utf8 collate: utf8_general_ci name: get_input: dataBaseName metadata: Designer: id: fd1ae0f5-ce98-487e-be2c-828c4b11e676 requirements: - instanceId: node: rds-ins rds-user: type: HuaweiCloud.RDS.MySQL.User properties: instanceId: get_reference: rds-ins dbUser: userPassword: get_input: dbUserPassword name: get_input: dbUserName userDatabase: - name: get_input: dataBaseName requirements: - instanceId: node: rds-ins - dependency: node: rds-db
  • 模型属性 表1 模型定义属性说明 属性 是否必选 描述 instanceId 是 RDS实例ID 参数类型:string 取值约束:1. 需要填写RDS实例ID,即界面上显示的实例ID 2. 可以通过连接RDS实例自动生成get_reference关联关系获取 使用建议:用户自定义 dbUser 是 用户的配置 参数类型:MySQL.DBLinkedUser 默认值:{u'userPassword': u'unset', u'name': u'unset'} 使用建议:在“组成部分”中选择 dbUser 字段根据提示的字段进行扩充填写
  • 关联关系 表2 关联关系说明 关系说明 关联节点 依赖关系 AOS.Batch 依赖关系 DCS.Redis 依赖关系 RDS.MySQL 依赖关系 CCE.Storage.EVS 依赖关系 OBS.Bucket 依赖关系 CCE.Storage.SFS 依赖关系 CCE.ConfigMap 依赖关系 CCE.Job 依赖关系 CCE.Storage.OBS 依赖关系 CCE.DaemonSet 依赖关系 CCE.Secret 依赖关系 CCE.Service 依赖关系 CCE.Ingress 依赖关系 CCE.StatefulSet 依赖关系 CCE.NodePool 依赖关系 CCE.Deployment 依赖关系 CCE.Pod 依赖关系 RDS.PostgreSQL 被包含关系 CCE.Cluster
  • 输出 属性 参数类型 描述 chargeMode 否 按流量计费还是按带宽计费 参数类型:string 取值说明:bandwidth、traffic。不填或者为空时默认是bandwidth 默认值:bandwidth 取值约束:可选值为bandwidth,traffic refName string 所创建Deployment的名称 refLabelsApp string 有状态服务的标签app值
  • blueprint样例 tosca_definitions_version: huaweicloud_tosca_version_1_0 inputs: containername: default: deployment-123 type: string deploymentname: default: deploymenttest type: string image: default: nginx type: string imagePullPolicy: default: IfNotPresent type: string labels: default: mydeployment type: string node_templates: my-deployment: type: HuaweiCloud.CCE.Deployment properties: k8sManifest: apiVersion: 'apps/v1' kind: Deployment metadata: labels: 'cce/appgroup': get_input: labels name: get_input: deploymentname spec: 'replicas:{get_input': 'deploymentname}' selector: matchLabels: 'cce/appgroup': get_input: labels template: metadata: labels: 'cce/appgroup': get_input: labels spec: containers: - image: get_input: image name: get_input: containername imagePullPolicy: get_input: imagePullPolicy
  • 模型属性 表1 模型定义属性说明 属性 是否必选 描述 namespace 否 资源在集群内所在的命名空间 参数类型:string 取值说明:需为集群下有效的namespace,示例:default 取值约束:由小写字母、数字和中划线组成,且必须以字母开头 使用建议:按需在CCE管理控制台-资源管理-命名空间查询选择 k8sManifest 是 用于描述CCE服务创建的kubernetes集群中的Deployment对象 参数类型:dict 取值说明:用户自定义,建议使用公开镜像(上传镜像到镜像仓库,设置类型为公开),建议更新时不要更改metadata下面的名称(name)和标签(labels),spec下面的replicas如果通过get_input获得,需要指定type为integer 使用建议:kubernetes对象原生的yaml文件内容 clusterId 否 资源所属的CCE集群的ID 参数类型:HuaweiCloud.CCE.Cluster.Id 取值说明:已有容器集群的ID或新建集群的ID 取值约束:满足UUID规则,最大64位 使用建议:1.直接填ID:进入CCE管理控制台-资源管理-集群管理,在集群详情页面查看集群ID。2.通过get_reference获取。通过连线到cluster对象以get_reference自动获取
  • 关联关系 表2 关联关系说明 关系说明 关联节点 依赖关系 AOS.Batch 依赖关系 DCS.Redis 依赖关系 RDS.MySQL 依赖关系 CCE.Storage.EVS 依赖关系 OBS.Bucket 依赖关系 CCE.Storage.SFS 依赖关系 CCE.ConfigMap 依赖关系 CCE.Job 依赖关系 CCE.Storage.OBS 依赖关系 CCE.DaemonSet 依赖关系 CCE.Secret 依赖关系 CCE.Service 依赖关系 CCE.Ingress 依赖关系 CCE.StatefulSet 依赖关系 CCE.NodePool 依赖关系 CCE.Deployment 依赖关系 CCE.Pod 依赖关系 RDS.PostgreSQL 被包含关系 CCE.Cluster 关联关系 ULB.LoadBalancer CCE.Service与ULB.LoadBalancer的关联关系: 编写service.yaml时,在metadata中的annotations字段中添加如下语句:kubernetes.io/elb.class: union; spec中的loadBalancerIP需要填写ULB的私网IP,ULB的私网IP可以通过get_attribute方式获取,例如loadBalancerIP: {get_attribute: [ULB.LoadBalancer元素名称, vip_address]}。 通过负载均衡创建service具体可以参考公网访问-四层负载均衡。
  • blueprint样例 tosca_definitions_version: huaweicloud_tosca_version_1_0 inputs: labels: description: 应用实例标签,需和service中的selector参数下设置的标签一致 label: 工作负载 default: test deploymentName: description: 工作负载名称 label: 工作负载 default: deployment-test image: description: 应用镜像地址 label: 工作负载 ingressName: description: ingress名称 label: 入口信息 default: ingress-test host: description: ingress host域名信息 label: 入口信息 default: test.com secretName: description: 密钥名称 label: 入口信息 type: HuaweiCloud.ECS.KeyPair.Name serviceName: description: 服务名称 label: 网络服务 default: service-test servicePort: description: 服务端口 label: 网络服务 default: 8888 type: integer path: description: 应用路由 label: 网络服务 default: /test protocol: description: 服务协议,只能填写TCP或者UDP label: 网络服务 default: TCP targetPort: description: 应用本身开放服务端口 label: 网络服务 default: 8888 type: integer node_templates: my-deployment: properties: k8sManifest: apiVersion: apps/v1 kind: Deployment metadata: labels: app: get_input: labels name: get_input: deploymentName spec: replicas: 1 selector: matchLabels: app: get_input: labels strategy: rollingUpdate: maxSurge: 0 maxUnavailable: 1 type: RollingUpdate template: metadata: labels: app: get_input: labels spec: containers: - image: get_input: image imagePullPolicy: IfNotPresent name: nginx requirements: [] type: HuaweiCloud.CCE.Deployment my-ingress: properties: k8sManifest: apiVersion: extensions/v1beta1 kind: Ingress metadata: annotations: ingress.beta.kubernetes.io/role: data ingress.kubernetes.io/secure-backends: 'false' labels: isExternal: 'true' zone: data name: get_input: ingressName spec: rules: - host: get_input: host http: paths: - backend: serviceName: get_input: serviceName servicePort: get_input: servicePort path: get_input: path tls: - secretName: get_input: secretName hosts: - get_input: host requirements: - dependency: node: my-service type: HuaweiCloud.CCE.Ingress my-service: properties: k8sManifest: apiVersion: v1 kind: Service metadata: name: get_input: serviceName spec: ports: - name: get_input: serviceName port: get_input: servicePort protocol: get_input: protocol targetPort: get_input: targetPort selector: app: get_input: labels sessionAffinity: ClientIP type: ClusterIP requirements: - dependency: node: my-deployment type: HuaweiCloud.CCE.Service
  • 模型属性 表1 模型定义属性说明 属性 是否必选 描述 cleaningAccessPos 是 清洗时访问限制分段ID 参数类型:integer 取值说明:可取1至8的整数。 默认值:8 取值约束:{u'in_range': [1, 8]} 使用建议:数值越大,则在清洗时允许单一源IP新建连接个数和单一源IP连接总个数越大 trafficPos 是 流量分段ID 参数类型:integer 取值说明:可取1至9的整数。 默认值:9 取值约束:{u'in_range': [1, 9]} 使用建议:数值越大,则每秒流量阈值和每秒报文数阈值越大 appType 是 应用类型ID 参数类型:integer 取值说明:可取0或1,使用UDP协议或通用应用的为类型0,使用TCP协议或web应用的类型为1 默认值:1 取值约束:{u'valid_values': [0, 1]} httpRequestPos 是 HTTP请求数分段ID 参数类型:integer 取值说明:可取1至15的整数。 默认值:1 取值约束:{u'in_range': [1, 15]} 使用建议:数值越大,则每秒HTTP请求数阈值越大 floatingIpId 是 用户EIP的ID 参数类型:string 取值说明:支持使用已有或新建弹性公网IP的ID,如果使用新建的,需在模板中的ECS.CloudServer元素中增加publicIP字段或CCE.NodePool元素增加publicIp字段,并增加依赖关系。 使用建议:1、通过get_attribute获取由此模板创建的弹性公网IP的ID 2、在弹性公网IP页面获取已经创建好的IP的ID(https://console.huaweicloud.com/vpc) enableL7 是 是否开启L7层防护 参数类型:boolean 取值说明:true 或 false,如果设置为true,则表示开启L7层防护 默认值:False 使用建议:根据规格按需填写
  • blueprint样例 tosca_definitions_version: huaweicloud_tosca_version_1_0 inputs: ecs-name: default: "my-cloudserver" label: ECS description: "虚机名称" ecs-image: default: "327946b5-e954-42c3-949a-3312688c9269" label: ECS description: "虚机镜像" ecs-flavor: default: "c1.medium" label: ECS description: "虚机规格" ecs-volumetype: default: SATA label: ECS description: "虚机磁盘类型" ecs-count: default: 1 label: ECS description: "虚机数量" az: default: "cn-north-1a" label: ECS description: "所在AZ" subnet-name: default: "my-ecs-subnet2" label: ECS description: "子网名称" subnet-gateway: default: "192.168.1.1" label: ECS description: "子网网关" vpc-name: default: "my-ecs-vpkvc2" label: ECS description: "VPC名称" vpc-cidr: default: "192.168.0.0/16" label: ECS description: "VPC cidr地址" ads-enableL7: type: boolean default: true label: AntiDDos description: "是否启用L7层防护" ads-trafficPos: type: integer default: 9 label: AntiDDos description: "流量分段ID" ads-httpRequestPos: type: integer default: 1 label: AntiDDos description: "HTTP请求数分段ID" ads-cleaningAccessPos: type: integer default: 8 label: AntiDDos description: "清洗时访问限制分段ID" ads-appType: type: integer default: 1 label: AntiDDos description: "应用类型ID" node_templates: my-ecs: type: HuaweiCloud.ECS.CloudServer properties: name: {get_input: ecs-name} instances: {get_input: ecs-count} imageId: {get_input: ecs-image} flavor: {get_input: ecs-flavor} vpcId: {get_attribute: [my-subnet, vpcId]} availabilityZone: {get_input: az} nics: - subnetId: {get_attribute: [my-subnet, refID]} rootVolume: volumeType: {get_input: ecs-volumetype} dataVolumes: - volumeType: SATA size: 100 publicIP: eip: ipType: 5_bgp bandwidth: size: 100 shareType: PER requirements: - nics.subnetId: node: my-subnet my-subnet: type: HuaweiCloud.VPC.Subnet properties: name: {get_input: subnet-name} cidr: {get_input: vpc-cidr} gateway: {get_input: subnet-gateway} dnsList: [114.114.114.115, 114.114.114.114] vpcId: {get_attribute: [my-vpc,refID]} availabilityZone: {get_input: az} requirements: - vpcId: node: my-vpc my-vpc: type: HuaweiCloud.VPC.VPC properties: name: {get_input: vpc-name} cidr: {get_input: vpc-cidr} policies: my-antiddos: type: HuaweiCloud.AntiDDos.Service # 对EIP启用 AntiDDos properties: enableL7: {get_input: ads-enableL7} trafficPos: {get_input: ads-trafficPos} httpRequestPos : {get_input: ads-httpRequestPos} cleaningAccessPos: {get_input: ads-cleaningAccessPos} appType: {get_input: ads-appType} floatingIpId: {get_attribute: [my-ecs, floatingIpId]} targets: [my-ecs] outputs: ecs-id: value: {get_attribute: [my-ecs, refID]} description: "ECS ID" vpc-id: value: {get_attribute: [my-vpc, refID]} description: "VPC ID" subnet-id: value: {get_attribute: [my-subnet, refID]} description: "SUBNET ID"
  • 关联关系 表2 关联关系说明 关系说明 关联节点 包含关系 AOS.Stack 包含关系 CCE.Deployment 包含关系 CCE.Job 依赖关系 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
共100000条