云服务器内容精选

  • 实例化 表1 实例化参数 参数名 参数类型 是否必选 参数描述 base_url str False 模型网关开放的ip和端口,有默认值可以不填。功能类似OpenAI的base_url。 custom_hearders dict False 其他自定义请求头信息。 http_client httpx.client False 自定义的httpx client。 kwargs - False 其他可选参数,如api_key、timeout等。
  • 初始化Rainbow SDK 代码如下: package com.huawei.demo.serviceb.config; import javax.sql.DataSource; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.mapper.MapperScannerConfigurer; import org.springframework.context.EnvironmentAware; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.DependsOn; import org.springframework.context.annotation.Import; import org.springframework.core.Ordered; import org.springframework.core.annotation.Order; import org.springframework.core.env.Environment; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.transaction.support.TransactionTemplate; import com.huawei.nuwa.map.client.NuwaMapClient; import com.huawei.nuwa.map.spring.boot.autoconfigure.NuwaCloudMapAutoConfiguration; import com.huawei.rainbow.jdbc.DbGroupDataSource; import com.huawei.wisesecurity.sts.springboot.security.configuration.StsEncryptablePropertiesConfiguration; /** * Rainbow启动 */ @Configuration @Order(Ordered.HIGHEST_PRECEDENCE) @Import(value = {NuwaCloudMapAutoConfiguration.class, StsEncryptablePropertiesConfiguration.class}) public class ApplicationAutoConfig implements EnvironmentAware { private Environment environment; /** * Rainbow需要依赖STS和Cloud Map启动,创建dataSource * * @param client NuwaMapClient值对象 * @return DataSource 初始化完成的数据源数据源 */ @Bean @DependsOn({"stsBootStrap"}) public DataSource createDataSource(NuwaMapClient client) { DbGroupDataSource dataSource = new DbGroupDataSource(); dataSource.setUseSts(true); dataSource.setAppName(environment.getProperty("wiseDba.appName")); dataSource.setDbGroupKey(environment.getProperty("wiseDba.groupKey")); dataSource.setDbName(environment.getProperty("wiseDba.dbName")); dataSource.init(); return dataSource; } /** * 事务管理创建 * * @param dataSource 数据源 * @return DataSourceTransactionManager 事务管理 */ @Bean public DataSourceTransactionManager createTransaction(DataSource dataSource) { DataSourceTransactionManager transaction = new DataSourceTransactionManager(); transaction.setDataSource(dataSource); return transaction; } @Bean public JdbcTemplate createJdbcTemplate(DataSource dataSource) { return new JdbcTemplate(dataSource); } @Bean("sqlSessionFactoryBean") public SqlSessionFactoryBean createMybatisSqlSessionFactoryBean(DataSource dataSource) { SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean(); sessionFactoryBean.setDataSource(dataSource); // 数据源配置项 org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration(); // 允许jdbc自动生成主键 configuration.setUseGeneratedKeys(true); // 使用列标签代替列名 configuration.setUseColumnLabel(true); // 打开下划线命名自动转换为驼峰命名开关 configuration.setMapUnderscoreToCamelCase(true); sessionFactoryBean.setConfiguration(configuration); return sessionFactoryBean; } @Bean public TransactionTemplate createTransactionTemplate(DataSourceTransactionManager dataSourceTransactionManager) { TransactionTemplate template = new TransactionTemplate(); template.setTransactionManager(dataSourceTransactionManager); return template; } @Bean public MapperScannerConfigurer createMapperScannerConfigurer() { MapperScannerConfigurer configurer = new MapperScannerConfigurer(); configurer.setBasePackage("com.huawei.demo"); configurer.setSqlSessionFactoryBeanName("sqlSessionFactoryBean"); return configurer; } @Override public void setEnvironment(Environment environment) { this.environment = environment;
  • 实例化 表1 实例化参数 参数名 参数类型 是否必选 参数描述 base_url str False 模型网关开放的IP和端口,有默认值可以不填。功能类似OpenAI的base_url。 custom_hearders dict False 其他自定义请求头信息。 http_client httpx.client False 自定义的httpx client。 kwargs - False 其他可选参数,如api_key、timeout等。
  • 实例化 表1 实例化参数 参数名 参数类型 是否必选 参数描述 base_url str False 模型网关开放的ip和端口,有默认值可以不填。功能类似OpenAI的base_url。 custom_hearders dict False 其他自定义请求头信息。 http_client httpx.client False 自定义的httpx client。 kwargs - False 其他可选参数,如api_key、timeout等。
  • 配置Rainbow 修改Rainbow SDK配置,切换SDK数据源,新增Cloud Map配置、STS配置,配置如下: nuwa: sts: serverDomain: 10.33.102.162:8080 configPath: certs/WiseCloudNuwaService/WiseCloudNuwaCloudMapAdminService/WiseCloudNuwaCloudMapAdminService.ini enable: true cloudmap: serverAddr: http://10.33.113.125:8080 namespaceName: cn_dev_default rainbow: db0: datasource: beanName: rainbowDs dataSourceName: xxxx //与运维中心WiseDBA服务SDK配置界面的值保持一致 appName: xxx //业务的服务名 dbGroupKey: xxx //实例名称 dbName: xxxxx //Schema名称 connectionProperties: characterEncoding=utf8;connectTimeout=10000;socketTimeout=10000;autoReconnect=true;useUnicode=true;serverTimezone=Asia/Shanghai useSts: true mybatis: base-package: com.huawei.nuwa.map.demo.consumer.middleware.dao mapper-locations: classpath:mapper/rainbow/*.xml
  • 运维中心SDK类型介绍 运维中心为开发者提供访问凭证管理服务(Access Credential Management Service,简称ACMS)、服务发现(NUWA Cloud Map,简称Cloud Map)、负载均衡(Software/Server Load Balancer,简称SLB)和数据库治理(WiseDBA)的SDK,方便开发者将运维中心的能力快速集成到自己的应用中。 表1 SDK列表 SDK分类 说明 编程语言 下载地址 参考文档 ACMS的SDK:STS SDK STS SDK(Security Token Service,简称STS)服务软件开发工具包是对访问凭据管理服务(ACMS)提供的REST API进行的封装,以简化用户的开发工作。用户直接调用SecurityTokenService SDK提供的接口函数即可实现使用ACMS业务能力的目的。 使用STS SDK即可使用运维中心ACMS的敏感配置项托管和微服务之间请求认证功能。 Java nuwa-open-sdk-1.1.0-20240204093135.zip 完整性校验nuwa-open-sdk-1.1.0-20240204093135.zip.sha256 下载包nuwa-open-sdk-1.1.0-20240204093135.zip中的文件介绍请参见表2。 STS SDK Cloud Map的SDK:Cloud Map SDK Cloud Map SDK服务软件开发工具包是对服务发现(Cloud Map)服务提供的REST API进行的封装,以简化用户的开发工作。用户直接调用Cloud Map SDK提供的接口函数即可实现使用Cloud Map服务业务能力的目的。 Java Cloud Map SDK SLB的SDK:Gray SDK Gray SDK负责业务的负载均衡,Nginx组件通过反向代理实现了业务的负载均衡,通过丰富的扩展功能,可以对HTTP消息定制丰富的控制策略。 使用Gray SDK即可使用运维中心负载均衡(SLB)的灰度管理功能。 Java Gray SDK WiseDBA的SDK:Rainbow SDK Rainbow SDK构建云原生DevOps全流程可信build-in的数据库治理解决方案。使用Rainbow SDK即可使用运维中心的数据库治理(WiseDBA)功能。 提供MySQL/Cassandra/ GaussDB /DRDS全流程设计、开发、发布、运维(管理、治理、诊断)方案。 可信build-in:过程可信,结果可信,接入安全(无人工接入密码),操作(资源高危操作)安全。 Java Rainbow SDK 表2 SDK jar包介绍 文件夹 SDK分类 对应的jar包 nuwa-cse-sdk:适用于基于NUWA框架且不使用spring boot的项目 STS SDK sts-key-sdk-1.1.17.109.jar sts-sdk-base-1.1.17.109.jar cloudsoa-security-1.1.13.100.jar Cloud Map SDK nuwa-cloudmap-config-servicecomb-1.0.12.100.jar nuwa-cloudmap-core-1.0.12.100.jar nuwa-cloudmap-registry-cse3-1.0.12.100.jar nuwa-cloudmap-registry-servicecomb-common-1.0.12.100.jar Gray SDK graysdk-core-1.4.14.500.jar graysdk-cse3-1.4.14.500.jar nuwa-apaas-graysdk-3.1.5.100.jar Rainbow SDK rainbow-proxy-1.2.18.102.jar gpaas-middleware-common-2.2.6.100.jar NUWA基础SDK nuwa-boot-container-3.1.5.100.jar nuwa-core-3.1.5.100.jar nuwa-cse-foundation-3.1.5.100.jar nuwa-share-libs-3.1.5.100.jar nuwa-tenant-sdk-3.1.5.100.jar spring-cloud-sdk:适用于基于Spring Cloud框架的项目 STS SDK sts-key-sdk-1.1.19.100.jar sts-sdk-base-1.1.19.100.jar sts-spring-boot-1.1.19.100.jar cloudsoa-security-1.1.14.101.jar Cloud Map SDK nuwa-cloudmap-core-1.0.12.100.jar nuwa-cloudmap-spring-boot-starter-1.0.12.100.jar spring-cloud-starter-cloudmap-discovery-1.0.12.100.jar Gray SDK 不支持 Rainbow SDK gpaas-jetcd-api-2.0.0.106.jar gpaas-jetcd-v2-2.0.0.106.jar gpaas-middleware-common-2.2.6.100.jar nuwa-gpaas-rainbowproxy-3.2.2.100.jar nuwa-rainbowproxy-spring-boot-starter-3.2.2.100.jar rainbow-api-1.2.18.201.jar rainbow-core-1.2.18.201.jar rainbow-core-drds-1.2.18.201.jar rainbow-core-gaussdb-1.2.18.201.jar rainbow-proxy-1.2.18.201.jar NUWA基础SDK nuwa-boot-container-3.2.2.100.jar nuwa-core-3.2.2.100.jar nuwa-core-spring-boot-starter-3.2.2.100.jar spring-cse-sdk:适用于基于NUWA框架且使用spring boot的项目 STS SDK sts-key-sdk-1.1.19.100.jar sts-sdk-base-1.1.19.100.jar sts-spring-boot-1.1.19.100.jar cloudsoa-security-1.1.14.101.jar Cloud Map SDK nuwa-cloudmap-config-servicecomb-1.0.12.100.jar nuwa-cloudmap-core-1.0.12.100.jar nuwa-cloudmap-registry-cse3-1.0.12.100.jar nuwa-cloudmap-registry-servicecomb-common-1.0.12.100.jar nuwa-cloudmap-spring-boot-starter-3.2.2.100.jar nuwa-gpaas-cloudmap-3.2.2.100.jar Gray SDK graysdk-core-1.4.14.500.jar graysdk-cse3-1.4.14.500.jar nuwa-apaas-graysdk-3.2.2.100.jar nuwa-graysdk-spring-boot-starter-3.2.2.100.jar Rainbow SDK nuwa-gpaas-rainbowproxy-3.2.2.100.jar nuwa-rainbowproxy-spring-boot-starter-3.2.2.100.jar rainbow-proxy-1.2.18.102.jar gpaas-middleware-common-2.2.6.100.jar NUWA基础SDK nuwa-boot-container-3.2.2.100.jar nuwa-core-3.2.2.100.jar nuwa-core-spring-boot-starter-3.2.2.100.jar nuwa-cse-foundation-3.2.2.100.jar nuwa-cse-foundation-spring-boot-starter-3.2.2.100.jar nuwa-tenant-sdk-3.2.2.100.jar tools:configparser为自定义参数解析工具,通过NUWA部署时,解析参数模板,将模板中的参数变量,替换为实际的配置项值,具体使用方式请参见使用configparser工具优化代码。 -
  • AI原生应用引擎SDK介绍 AI原生应用引擎面向开发者提供了一套搭建原生应用的Python SDK,包含了模型调用,知识获取,工具调用等功能。开发者可以使用SDK调用AI原生应用引擎的各种能力,快速构建大模型应用。 AI原生应用引擎SDK获取地址:wiseagent-dev-sdk-python。您也可以参考下载SDK获取AI原生应用引擎SDK并进行完整性校验。 AI原生应用引擎SDK参考文档:AI原生应用引擎SDK API。
  • 类属性 表1 类属性 参数名 参数类型 是否必选 参数描述 input_variables List[str] True 提示语模板所需的变量名称列表 template str True 提示语模板 template_format str True 提示语模板格式,支持f-string、jinja2两种。默认f-string partial_variable dict False 格式化模板的部分变量 validate_template bool False 是否尝试验证模板
  • 接口调用 PromptTemplate.from_template 初始化提示语模板,支持两种占位符格式以及部分变量值的预先填入。 参数说明 表2 参数说明 参数名称 参数类型 是否必选 参数描述 template str True 提示语模板。 template_format str False 提示语模板格式,支持f-string、jinja2两种。默认f-string。 partial_variable dict False 格式化模板的部分变量。 返回值:PromptTemplate object
  • 研发包结构 Service下所有的main.tf文件中的Resource实例不能有重叠,否则会导致资源被覆盖或删除。 图1 研发包结构 表1 研发包结构介绍 文件名 说明 Service(推荐方式) 按云服务维度的资源模板,整个云服务涉及资源的生命周期都在同一个 RFS 资源模板中管理。 MicroService 按微服务维度的资源模板管理,当一个云服务的每个微服务有单独的资源时使用。 envXname 云服务/微服务部署环境,每个环境的RFS包资源都是与环境配套,每个环境都有单独的资源模板。 package.json 固定名称与格式,发布包版本信息,类型,软件包名称,版本。 { "type": "rfstemplate", // 固定 "name": "templatename", // RFS模板名称,服务下唯一 "envid": "envid1", // 云服务的环境ID "version": "1.0.0", // RFS模板版本号 "maintf": "main.tf", // 实际创建资源的TF文件 "variablestf": "variable.tf" // 存储参数变量的TF文件 } main.tf RFS实际使用的模板文件,通过此文件来管理华为云资源。当前支持的华为云资源有CCE、D CS 、DNS、ECS、Kafka、RDS及VPC,模板文件样例分别参考CCE资源RFS模板文件、DCS资源RFS模板文件、DNS资源RFS模板文件、ECS资源RFS模板文件、Kafka资源RFS模板文件、RDS资源RFS模板文件及VPC资源RFS模板文件。 详细的开发规范请参考Terraform文档。 variable.tf RFS资源模板中涉及到的变量值,可能多个云服务变量名称不一致,提取出来单独设置。样例如下: CCE-Name-1234: "CCE-Cluster-ERS" 建议敏感数据不在此文件设置,敏感数据在界面手动输入。
  • DCS资源RFS模板文件 { "terraform": { "required_providers": { "huaweicloud": { "source": "huawei.com/provider/huaweicloud", "version": "1.56.0" } } }, "provider": { "huaweicloud": { "auth_url": "https://iam.cn-north-4.myhuaweicloud.com/v3", "insecure": true, "region": "cn-north-4" } }, "resource": { "huaweicloud_dcs_instance": { "dcs-cx83b": { "charging_mode": "postPaid", "availability_zones": ["cn-north-4a", "cn-north-4a"], "vpc_id": "18b117f8-****-****-****-6d022db472a1", "subnet_id": "bef6af2f-****-****-****-9e78ef03eb6a", "maintain_begin": "18:00:00", "maintain_end": "22:00:00", "engine_version": "5.0", "capacity": 1, "flavor": "redis.ha.xu1.large.r2.1", "enterprise_project_id": "2191bb05-****-****-****-96f098494b8d", "password": "${var.DCS-Password-qvwu}", "name": "dcs-rfs-001", "engine": "Redis" } } }, "variable": { "DCS-Password-qvwu": { "description": "dcs password for dcs-cx83b", "type": "string", "sensitive": true, "nullable": true, "default": null } } }
  • Kafka资源RFS模板文件 { "terraform": { "required_providers": { "huaweicloud": { "source": "huawei.com/provider/huaweicloud", "version": "1.56.0" } } }, "provider": { "huaweicloud": { "auth_url": "https://iam.cn-north-4.myhuaweicloud.com/v3", "insecure": true, "region": "cn-north-4" } }, "resource": { "huaweicloud_dms_kafka_instance": { "kafka-gq8ef": { "manager_password": "${var.Kafka-Manager-Password-nsbl}", "name": "kafka-rfs-001", "charging_mode": "postPaid", "manager_user": "kafka-manager-rfs", "flavor_id": "s6.2u4g.cluster.small", "engine_version": "3.x", "broker_num": 3, "storage_spec_code": "dms.physical.storage.high.v2", "availability_zones": ["cn-north-4a"], "storage_space": 300, "vpc_id": "18b117f8-****-****-****-6d022db472a1", "network_id": "bef6af2f-****-****-****-9e78ef03eb6a", "security_group_id": "32ed0723-****-****-****-7c0fb748d436", "enterprise_project_id": "2191bb05-****-****-****-96f098494b8d", "retention_policy": "time_base" } } }, "variable": { "Kafka-Manager-Password-nsbl": { "description": "Manager Password for kafka-gq8ef", "type": "string", "sensitive": true, "nullable": false, "default": "" } } }
  • RDS资源RFS模板文件 { "terraform": { "required_providers": { "huaweicloud": { "source": "huawei.com/provider/huaweicloud", "version": "1.56.0" } } }, "provider": { "huaweicloud": { "auth_url": "https://iam.cn-north-4.myhuaweicloud.com/v3", "insecure": true, "region": "cn-north-4" } }, "resource": { "huaweicloud_rds_instance": { "rds-instance-yaqsb": { "name": "rds-rfs-001", "charging_mode": "postPaid", "db": { "type": "MySQL", "version": "8.0", "password": "${var.RDS-Password-u6z0}" }, "ha_replication_mode": "async", "volume": { "size": 40, "type": "ULTRAHIGH" }, "vpc_id": "18b117f8-****-****-****-6d022db472a1", "subnet_id": "bef6af2f-****-****-****-9e78ef03eb6a", "security_group_id": "32ed0723-****-****-****-7c0fb748d436", "enterprise_project_id": "2191bb05-****-****-****-96f098494b8d", "availability_zone": ["cn-north-4c", "cn-north-4c"], "flavor": "rds.mysql.c6.large.2.ha" } } }, "variable": { "RDS-Password-u6z0": { "description": "Password for rds-instance-yaqsb", "type": "string", "sensitive": true, "nullable": false, "default": "" } } }
  • CCE资源RFS模板文件 { "terraform": { "required_providers": { "huaweicloud": { "source": "huawei.com/provider/huaweicloud", "version": "1.56.0" } } }, "provider": { "huaweicloud": { "auth_url": "https://iam.cn-north-4.myhuaweicloud.com/v3", "insecure": true, "region": "cn-north-4" } }, "resource": { "huaweicloud_cce_cluster": { "cce-cluster-yfclf": { "vpc_id": "18b117f8-****-****-****-6d022db472a1", "name": "cce-cluster-rfs-001", "cluster_version": "v1.27", "charging_mode": "postPaid", "flavor_id": "cce.s2.small", "container_network_type": "vpc-router", "enterprise_project_id": "2191bb05-****-****-****-96f098494b8d", "subnet_id": "bef6af2f-****-****-****-9e78ef03eb6a" } }, "huaweicloud_cce_node": { "cce-node-pmqnn": { "name": "cce-node-rfs-001", "charging_mode": "postPaid", "flavor_id": "c7.large.2", "os": "Huawei Cloud EulerOS 2.0", "runtime": "containerd", "root_volume": { "size": 50, "volumetype": "SAS" }, "password": "${var.CCE-Node-Password-u9fi}", "cluster_id": "d6eb9020-****-****-****-0255ac1000ac", "availability_zone": "cn-north-4c", "data_volumes": [{ "volumetype": "SAS", "size": 100 }], "storage": { "selectors": [{ "name": "cceUse", "type": "evs", "match_label_count": 1, "match_label_size": 100, "match_label_volume_type": "SAS" }], "groups": [{ "name": "vgpaas", "cce_managed": true, "selector_names": ["cceUse"], "virtual_spaces": [{ "name": "runtime", "size": "90%", "runtime_lv_type": "linear" }, { "name": "kubernetes", "size": "10%", "lvm_lv_type": "linear" }] }] }, "depends_on": ["huaweicloud_cce_cluster.cce-cluster-yfclf"], "subnet_id": "bef6af2f-****-****-****-9e78ef03eb6a" } } }, "variable": { "CCE-Node-Password-u9fi": { "description": "Password for cce-node-pmqnn", "type": "string", "sensitive": true, "nullable": false, "default": "" } } }
  • ECS资源RFS模板文件 { "terraform": { "required_providers": { "huaweicloud": { "source": "huawei.com/provider/huaweicloud", "version": "1.56.0" } } }, "provider": { "huaweicloud": { "auth_url": "https://iam.cn-north-4.myhuaweicloud.com/v3", "insecure": true, "region": "cn-north-4" } }, "resource": { "huaweicloud_compute_instance": { "ecs-qh7h5": { "name": "ecs-rfs-001", "charging_mode": "postPaid", "admin_pass": "${var.ECS-Password-ia2c}", "flavor_id": "s6.small.1", "system_disk_type": "SAS", "availability_zone": "cn-north-4a", "network": { "uuid": "bef6af2f-****-****-****-9e78ef03eb6a" }, "security_group_ids": ["986d4460-****-****-****-f5f237df42c0"], "enterprise_project_id": "2191bb05-****-****-****-96f098494b8d", "system_disk_size": 40, "image_id": "86405805-****-****-****-09f30b497c98" } } }, "variable": { "ECS-Password-ia2c": { "description": "Ecs password for ecs-qh7h5", "type": "string", "sensitive": true, "nullable": true, "default": null } } }