云服务器内容精选

  • 步骤二:通过IaC发布敏感配置 业务使用Runtime部署并按照IaC规范配置敏感配置项之后,在部署时Runtime会从STS管理台拉取加密配置项,注入到容器的环境变量中,并通过配置渲染工具将敏感配置渲染到业务的配置文件中。 在IaC脚本中的业务配置项配置文件中指定敏感配置项坐标。 此处以在config_records.yaml文件中增加一个名为spring.redis.password的敏感配置项为例。 spring.redis.password: MicroService/{ServiceName}/{MicroServiceName}/spring.redis.password/default 在IaC脚本中的业务配置项属性定义文件中,声明该配置项为敏感配置项。 此处以在config_schema.yaml中声明微服务的敏感业务配置项为例。 type: object properties: spring.redis.password: format: sensitive
  • 背景 Podinfo是一个微模型的Web应用程序,它展示了在Kubernetes中运行微服务的最佳实践,其主要用作于测试和研讨。本章将用podinfo源代码来做创建配置集合的示例。 为了可以更快的、更稳定的持续地交付软件、减少后续维护工作,所以将podinfo的源代码放入GitHub仓库,并通过创建配置集合的方式部署到集群中,通过GitOps能力实现软件自动化部署,具体请参考操作步骤。 创建podinfo源代码仓时,请先注册一个属于自己的GitHub账号,然后将podinfo所有代码fork到自己的GitHub仓库中。 在git仓库中定义交付资源清单文件时,不应包含敏感信息(如数据库连接密钥等)。相关敏感信息应以环境变量、加密存储的Secret等方式进行存储。 图1 Podinfo界面
  • 操作步骤 登录华为云控制台。 在左侧导航栏中选择“分布式云原生”,选择“配置管理”。 在右上角“添加集群”,选择需要启用配置管理功能的目标集群,单击确定。 在集群概览页,选择目标集群,单击“Gitops能力”,查看Gitops插件(名称:集群名称-FluxPlugin)是否安装成功。当插件部署状态显示运行中,表示插件已部署成功。 图2 集群概览页 选择“配置集合”页签,单击创建配置集合。 选择仓库源,如果已有仓库源请参考使用已有仓库源配置,如果需要创建新仓库源,请参考创建新仓库源。
  • 创建新仓库源 单击“创建新仓库源”输入仓库源名称、仓库源URL地址。 输入需要与其同步的代码库分支。 选择数据源验证,以及输入密钥。 选择公有类型的仓库无需进行身份验证,即可提供只读权限。 选择私有类型的仓库,则数据源验证可选择“选择集群secret”和“提供认证信息(SSH)”,两种方式都需要配置的秘钥进行身份验证。 仓库秘钥创建请参考秘钥。 仓库源创建完成后,在“自动同步策略”内输入“配置集合路径”,单击“下一步:信息确认”。 确认配置信息无误后,单击“创建配置集合”;如有问题,单击上一步进行修改。
  • 操作步骤 在微服务业务代码的application.yml文件中配置敏感配置项,样例如下: nuwa: security: config: sensitiveWords: spring.redis.password,org.app.protocol-login.oauth.clientSecret,org.app.jwt-key 启动敏感配置项自动解密。 在微服务的启动类中添加@EnableStsEncryptableProperties注解。
  • 响应示例 状态码: 200 OK { "count" : 1, "forwarding_configs" : [ { "forwarding_type" : "kafka", "kafka_config" : { "kafka_config_id" : "1234567890", "kafka_topics" : [ "v2x-v1-tracks", "v2x-v1-bsm", "v2x-v1-rsi", "v2x-v1-rsm", "v2x-v1-spat", "v2x-v1-edge-flow", "realtime-traffic", "forecast-traffic", "recommended-strategies", "executed-strategies", "strategy-evaluations", "confirmed-event", "traffic-event", "compositive-tracks", "model-data", "request-strategies" ], "brokers" : [ "127.0.0.1:10000" ], "username" : "1234567890", "topic_prefix" : "abc", "status" : "ONLINE", "model_ids" : [ "40f96952-ea2f-4a10-8a92-e641aa1c6e49" ], "created_time" : "2015-12-12T12:12:12Z", "last_modified_time" : "2015-12-13T12:12:12Z" }, "mrs_kafka_config" : { "kafka_config_id" : null, "kafka_topics" : [ "v2x-v1-tracks", "v2x-v1-bsm", "v2x-v1-rsi", "v2x-v1-rsm", "v2x-v1-spat", "v2x-v1-edge-flow", "realtime-traffic", "forecast-traffic", "recommended-strategies", "executed-strategies", "strategy-evaluations", "confirmed-event", "traffic-event", "compositive-tracks", "model-data", "request-strategies" ], "brokers" : [ "127.0.0.1:10000" ], "username" : null, "status" : null, "authentication" : false, "model_ids" : [ "40f96952-ea2f-4a10-8a92-e641aa1c6e49" ], "created_time" : "2015-12-12T12:12:12Z", "last_modified_time" : "2015-12-12T12:12:12Z" } } ] }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 count Integer 参数说明:满足查询条件的记录总数。 最小值:0 最大值:10000 forwarding_configs Array of ForwardingConfig objects 参数说明:转发配置的列表。 数组长度:0 - 50 表5 ForwardingConfig 参数 参数类型 描述 forwarding_type String 参数说明:转发配置的类型。 取值范围:当前仅支持“kafka、mrskafka”。 kafka_config KafkaConfigResponseDTO object 参数说明:Kafka配置信息。 mrs_kafka_config MrsKafkaConfigResponseDTO object 参数说明:mrsKafka配置信息。 表6 KafkaConfigResponseDTO 参数 参数类型 描述 kafka_config_id String 参数说明:每一套Kafka配置的唯一ID。 取值范围:只允许字母、数字、下划线(_)、连接符(-)的组合。 最小长度:1 最大长度:255 kafka_topics Array of strings 参数说明:kafka的主题列表。 取值范围: v2x-v1-tracks:edge上报的车辆轨迹数据 v2x-v1-bsm:车载T-BOX,RSU上报的BSM消息数据 v2x-v1-rsi:RSU,edge上报的RSI消息数据 v2x-v1-rsm: RSU,edge上报的RSM消息数据 v2x-v1-spat:RSU上报的SPAT消息数据 v2x-v1-edge-flow:edge上报的车流量统计信息数据 数组长度:0 - 7 brokers Array of strings 参数说明:Kafka broker列表。 最小长度:1 最大长度:255 数组长度:1 - 255 username String 参数说明:kafka用户名。 取值范围:只允许字母、数字、下划线(_)、连接符(-)的组合。 最小长度:1 最大长度:255 topic_prefix String 参数说明:Topic前缀。 取值范围:长度不超过255,只允许字母、数字、下划线(_)、连接符(-)的组合。 status String 参数说明:一套kafka的连接状态。 取值范围: OFFLINE:离线 ONLINE:在线 枚举值: OFFLINE ONLINE cert_info CertificateInfo object model_ids Array of strings 参数说明:模型ID列表。 user_topics包含model-data时必选,仅支持非系统、分层为gdm的动态模型。 可通过 GET /{project_id}/models 查询模型列表接口获取。 取值范围:仅支持字母,数字以及中划线(-)的组合,长度为36。 数组长度:1 - 10 created_time String 参数说明:创建时间。 格式为yyyy-MM-dd'T'HH:mm:ss'Z' 例如:2015-12-12T12:12:12Z last_modified_time String 参数说明:修改时间。 格式为yyyy-MM-dd'T'HH:mm:ss'Z' 例如:2015-12-12T12:12:12Z 表7 CertificateInfo 参数 参数类型 描述 effective_date String 证书生效日期 expiry_date String 证书失效日期 表8 MrsKafkaConfigResponseDTO 参数 参数类型 描述 kafka_config_id String 参数说明:每一套Kafka配置的唯一ID。 取值范围:只允许字母、数字、下划线(_)、连接符(-)的组合。 最小长度:1 最大长度:255 kafka_topics Array of strings 参数说明:kafka的主题列表。 取值范围: v2x-v1-tracks:edge上报的车辆轨迹数据 v2x-v1-bsm:车载T-BOX,RSU上报的BSM消息数据 v2x-v1-rsi:RSU,edge上报的RSI消息数据 v2x-v1-rsm: RSU,edge上报的RSM消息数据 v2x-v1-spat:RSU上报的SPAT消息数据 v2x-v1-edge-flow:edge上报的车流量统计信息数据 数组长度:0 - 7 brokers Array of strings 参数说明:Kafka broker列表。 最小长度:1 最大长度:255 数组长度:1 - 255 username String 参数说明:mrskafka用户名,若开启安全认证该参数必填。 取值范围:只允许字母、数字、下划线(_)、连接符(-)的组合。 最小长度:0 最大长度:255 status String 参数说明:一套kafka的连接状态。 取值范围: OFFLINE:离线 ONLINE:在线 枚举值: OFFLINE ONLINE authentication Boolean 参数说明:是否开启kerberos安全认证的开关。若开启安全认证则需要先上传kerberos安全认证的凭证。 缺省值:false model_ids Array of strings 参数说明:模型ID列表。 user_topics包含model-data时必选,仅支持非系统、分层为gdm的动态模型。 可通过 GET /{project_id}/models 查询模型列表接口获取。 取值范围:仅支持字母,数字以及中划线(-)的组合,长度为36。 数组长度:1 - 10 created_time String 参数说明:创建时间。 格式为yyyy-MM-dd'T'HH:mm:ss'Z' 例如:2015-12-12T12:12:12Z last_modified_time String 参数说明:修改时间。 格式为yyyy-MM-dd'T'HH:mm:ss'Z' 例如:2015-12-12T12:12:12Z
  • 响应参数 状态码: 200 表7 响应Body参数 参数 参数类型 描述 failed_num Integer 失败数量 channels Array of ChannelResult objects 通道结果 表8 ChannelResult 参数 参数类型 描述 device_id String 设备ID: 好望设备:大小写字母、数字组成,长度范围[8,32],可在设备外壳或者设备web页面上获取 国标设备:由数字组成,长度为20个字符长度,由客户自行设置,其中第11-13位,必须是以下之一132(IPC)、111(DVR)、118(NVR),用来区分设备类型 channel_id String 通道ID: 好望设备:取值范围[0,999] 国标设备:由数字组成,长度为20个字符,由客户自行在设备侧设置,可以在web界面获取 result Result object 结果信息 表9 Result 参数 参数类型 描述 code String 错误编码 msg String 错误信息
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Access-Token 是 String 用户认证AccessToken:从获取用户北向接口认证AccessToken中获取 表3 请求Body参数 参数 是否必选 参数类型 描述 channels 是 Array of SetChannelRecordAlarmPlanReq objects 设置通道录像计划请求体 表4 SetChannelRecordAlarmPlanReq 参数 是否必选 参数类型 描述 device_id 是 String 设备ID: 好望设备:大小写字母、数字组成,长度范围[8,32],可在设备外壳或者设备web页面上获取 国标设备:由数字组成,长度为20个字符长度,由客户自行设置,其中第11-13位,必须是以下之一132(IPC)、111(DVR)、118(NVR),用来区分设备类型 channel_id 是 String 通道ID: 好望设备:取值范围[0,999] 国标设备:由数字组成,长度为20个字符,由客户自行在设备侧设置,可以在web界面获取 stream_type 否 String 码流类型(目前定为主码流,不用传,为后续需求留用) plans 是 Array of SetChannelRecordAlarmPlan objects 录像计划:列表长度范围[1,21] all_day 否 Boolean 是否全程录像:枚举类型,默认为false,如果为true,time_sections省略(不进行校验) 枚举值: true 是 false 否 time_sections 否 Array of TimeSection objects 通道录像计划时间段,取值范围[1,+∞)。如果all_day字段为空或为false,则字段必填 表5 SetChannelRecordAlarmPlan 参数 是否必选 参数类型 描述 alarm_type 是 String 告警类型:枚举类型 枚举值: motion_detection 移动侦测报警 io_event 外部IO输入报警 target_alarm 目标报警 mask_alarm 口罩报警 people_queue_alarm 排队长度报警 people_count_region_alarm 区域人数统计报警 people_count_line_alarm 过线人数统计报警 over_line_alarm 越线检测报警 region_invasion_alarm 区域入侵报警 region_in_alarm 区域进入报警 region_out_alarm 区域离开报警 fast_move_alarm 快速移动报警 linger_alarm 徘徊检测报警 thirdparty_intelligent 第三方告警 face_alarm 人脸告警 abandon_alarm 物品遗留告警 removed_alarm 物品移走告警 electric_bicycle_alarm 电瓶车检测告警 people_leave_station_alarm 人员离岗告警 lift_electric_alarm 电梯电瓶车告警_新 occlusion_alarm 遮挡告警 advance_time 是 Integer 预录时间,取值范围[1,59] after_time 是 Integer 延录时间,取值范围[1,59]。advance_time和after_time相加要不超过60s。 表6 TimeSection 参数 是否必选 参数类型 描述 day_of_week 是 Integer 日期:取值范围[1,7](对应周一~周日) start_time 是 String 录像开始时间:格式为HH:mm:ss,范围为[00:00:00~23:59:59] end_time 是 String 录像结束时间:格式为HH:mm:ss,范围为[00:00:00~23:59:59]
  • 响应参数 状态码: 200 表5 响应Body参数 参数 参数类型 描述 failed_num Integer 设置失败个数 channels Array of ChannelResult objects 通道结果列表 表6 ChannelResult 参数 参数类型 描述 device_id String 设备ID: 好望设备:大小写字母、数字组成,长度范围[8,32],可在设备外壳或者设备web页面上获取 国标设备:由数字组成,长度为20个字符长度,由客户自行设置,其中第11-13位,必须是以下之一132(IPC)、111(DVR)、118(NVR),用来区分设备类型 channel_id String 通道ID: 好望设备:取值范围[0,999] 国标设备:由数字组成,长度为20个字符,由客户自行在设备侧设置,可以在web界面获取 result Result object 结果信息 表7 Result 参数 参数类型 描述 code String 错误编码 msg String 错误信息
  • 响应示例 状态码: 200 设置通道录像参数响应 { "failed_num" : 0, "channels" : [ { "device_id" : "952352LWXT***", "channel_id" : "0", "result" : { "code" : "IVM.0", "msg" : "Success" } }, { "device_id" : "952352DJNR***", "channel_id" : "0", "result" : { "code" : "IVM.0", "msg" : "Success" } } ] }
  • 请求示例 设置通道录像参数请求示例 /v1/2562572829***/devices/channels/record-config { "channel_record_configs" : [ { "device_id" : "952352LWXT***", "channel_id" : "0", "stream_type" : "PRIMARY_STREAM" }, { "device_id" : "952352DJNR***", "channel_id" : "0", "stream_type" : "SECONDARY_STREAM_1" } ] }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Access-Token 是 String 用户认证AccessToken:从获取用户北向接口认证AccessToken中获取 表3 请求Body参数 参数 是否必选 参数类型 描述 channel_record_configs 是 Array of ChannelRecordConfig objects 设置设备通道录像参数:不可为空,长度不可为0 record_type 否 String 录像类型:枚举类型,默认为NORMAL_RECORD。 枚举值: NORMAL_RECORD 标准连续云存 表4 ChannelRecordConfig 参数 是否必选 参数类型 描述 device_id 是 String 设备ID: 好望设备:大小写字母、数字组成,长度范围[8,32],可在设备外壳或者设备web页面上获取 国标设备:由数字组成,长度为20个字符长度,由客户自行设置,其中第11-13位,必须是以下之一132(IPC)、111(DVR)、118(NVR),用来区分设备类型 channel_id 是 String 通道ID: 好望设备:取值范围[0,999] 国标设备:由数字组成,长度为20个字符,由客户自行在设备侧设置,可以在web界面获取 stream_type 否 String 码流类型:枚举类型。不传入时,默认主码流 枚举值: ● PRIMARY_STREAM 主码流 ● SECONDARY_STREAM_1 次码流1 ● SECONDARY_STREAM_2 次码流2
  • 认证方式 当前仅支持添加公有云资源类型的凭证。支持的认证方式参见表1。 表1 公有云认证方式 资源类型 认证方式 说明 公有云 AK/SK 适用于添加华为云、阿里云、AWS、腾讯云等云平台凭证。 配置文件 适用于添加谷歌云平台凭证。配置文件需要上传谷歌云服务账号凭据,该凭证必须为json格式文件,且大小不能超过4KB。 ID/密钥 适用于添加Azure平台凭证。添加凭证所需的信息获取方法请参见如何获取添加Azure凭证所需的信息。 云上凭证的存储有效期为7天,超过7天后,凭证会过期,需要重新输入。
  • GitOps优势 简单易学:Git易于被开发者接受,易于集成,无需额外学习成本。 安全性高:开发者使用GitOps无需任何Kubernetes集群权限,仅需要Git仓库权限,保证集群安全可靠。 可靠性强:提供原生Kubernetes资源、Helm Chart资源、Kustomize等资源交付清单的版本管理,方便用户进行部署应用、增量变化和应用配置的回滚。 应用持续部署:Kubernetes集群和Git仓库中的应用状态自动同步,保持一致,实现应用持续部署。