爆款云主机低至25.83元/年
查看详情

活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 云聚517 · 好价翼起拼 NEW 爆款云主机低至25.83元/年,参与拼团享更多优惠,拼成得额外优惠券
  • 安全隔离版OpenClaw NEW OpenClaw云服务器专属“龙虾“套餐低至1.5折起
  • 聚力AI赋能 天翼云大模型专项 大模型特惠专区·Token Plan 轻享包低至9.9元起
  • 青云志云端助力计划 NEW 一站式科研助手,海外资源安全访问平台,助力青年翼展宏图,平步青云
  • 企业出海解决方案 NEW 助力您的业务扬帆出海,通达全球!
  • 天翼云信创专区 NEW “一云多芯、一云多态”,国产化软件全面适配,国产操作系统及硬件芯片支持丰富
  • 中小企业服务商合作专区 国家云助力中小企业腾飞,高额上云补贴重磅上线
  • 云上钜惠 爆款云主机全场特惠,2核4G只要1.8折起!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

息壤智算

领先开放的智算服务平台,提供算力、平台、数据、模型、应用“五位一体”智算服务体系,构建全流程的AI基础设施能力
AI Store
  • 算力市场
  • 模型市场
  • 应用市场
公共算力服务
  • 裸金属
  • 定制裸金属
训推服务
  • 模型开发
  • 训练任务
  • 服务部署
星辰TokenHub
  • 模型广场
  • 体验中心
  • 服务接入
应用托管
  • 应用实例
科研助手
  • 科研智能体
  • 科研服务
  • 开发机
  • 并行计算
大模型
  • DeepSeek-V4-Flash
  • GLM-5.1
  • Qwen3.5-122B-A10B
  • DeepSeek-V3.2(旗舰版)
  • GLM-5(正式版)
智算一体机
  • 智算一体机
智能体引擎
  • 智能体引擎
可信数据空间
  • 可信数据空间
模型适配专家服务
  • 模型适配专家服务
算力服务商
  • 入驻算力服务商

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场进入AI Store创新解决方案公有云生态专区智云上海应用生态专区
建站工具
  • 新域名服务
  • SSL证书
  • 翼建站
企业办公
  • 安全邮箱
  • WPS 365 天翼云版
  • 天翼企业云盘(标准服务版)
灾备迁移
  • 云管家2.0
  • 翼备份(SaaS版)

定价

协助您快速了解云产品计费模式、价格详情,轻松预估上云成本
价格计算器
  • 动态测算产品价格
定价策略
  • 快速了解计费模式

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼信创云专区
  • 信创云专区
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
培训与认证
  • 天翼云学堂
  • 天翼云认证
开源社区
  • 魔乐社区
  • OpenTeleDB

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 服务保障
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家
我要反馈
  • 建议与反馈
  • 用户体验官
信息公告
  • 客户公告

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2026智能云生态大会
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 息壤智算
  • 产品
  • 解决方案
  • 应用商城
  • 定价
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      电信云云主机_相关内容
      • 查询服务器详情页基线检测列表
        接口功能介绍 以主机维度基线事件列表 接口约束 此功能为收费功能。确认已经购买系统配额,并且开启基线扫描配置。如果没有购买配额,可按照页面提示进行购买。如果没有开启防护,请在服务器列表页开启机器防护 URI POST /v1/sca/event/host// 路径参数 参数 是否必填 参数类型 说明 示例 下级对象 currentNum 是 Integer pageSize 是 Integer Query参数 无 请求参数 请求头header参数 参数 是否必填 参数类型 说明 示例 下级对象 ContentType 是 String ContentType application/json 请求体body参数 参数 是否必填 参数类型 说明 示例 下级对象 scaName 否 String 基线名称 Unix系统基线检测 agentGuid 是 String agentGuid testagentguid 响应参数 参数 参数类型 说明 示例 下级对象 error String 返回码 CTCSSCN000000:成功 CTCSSCN000001:失败 CTCSSCN000003:用户未签署协议,安全卫士系统无法正常使用 CTCSSCN000004:鉴权错误 CTCSSCN000005:用户没有付费版配额,功能不可用 CTCSSCN000000 message String 返回信息 success returnObj Object 返回对象 returnObj traceId String traceId asaadasd11111 statusCode String 状态码 200成功 200 表 returnObj 参数 参数类型 说明 示例 下级对象 total Integer 总数 100 list Array of Objects 结果集 list pageNum Integer 当前页 1 pageSize Integer 每页的数量 10 表 list 参数 参数类型 说明 示例 下级对象 id String 业务id 一级列表[基线模板文件名] 二级列表[agentGuid] 三级列表[检测id] CtyunLinuxBenchmarkTemplate.json failed Integer 检测项未通过数 1 itemTotal Integer 检测项总数 1 file String 基线检测文件名 CtyunLinuxBenchmarkTemplate.json passed Integer 检测项通过数 1 totalChecks Integer 检测项总数 1 strategyId Integer 策略id 1 timestamp String 扫描时间 20200101 00:00:00 scaId Integer 基线模板id 1 name String 基线模板名称 天翼云Linux操作系统安全配置基线 agentGuid String agentGuid testagentguid riskInfo Array of Objects 风险信息,按等级分类统计 [{"riskLevel":1,"riskCount":1}] riskInfo 表 riskInfo 参数 参数类型 说明 示例 下级对象 riskLevel Integer 风险等级 1低危 2中危 3高危 1 riskCount Integer 风险数量 1
        来自:
        帮助文档
        服务器安全卫士(原生版)
        API参考
        API
        2022-10-20
        基线检测
        查询服务器详情页基线检测列表
      • 在科研助手使用Qwen3进行科研服务
        本文介绍了如何在科研助手中使用Qwen3模型服务。 概述 阿里巴巴开源新一代通义千问模型Qwen3,参数量仅为DeepSeekR1的1/3,成本大幅下降,性能全面超越R1、OpenAIo1等全球顶尖模型,登顶全球最强开源模型。Qwen3是国内首个“混合推理模型”,“快思考”与“慢思考”集成进同一个模型,对简单需求可低算力“秒回”答案,对复杂问题可多步骤“深度思考”,大大节省算力消耗。 当前在科研助手的社区镜像中,我们已经为您提前部署好了完整的服务,模型参数覆盖8b、14b、32b、235b,方便您即刻体验,开箱即用。 前置说明 1. 该文档为在科研助手中使用Qwen3模型服务。 2. 本产品中的模型由第三方主体提供,尽管天翼云公司已尽最大努力进行识别和维护,但仍无法保证模型的可用性。请客户按照该产品的服务协议使用该产品,做好甄别并对自行选择的服务负责. 环境准备 步骤1:进入科研助手控制台,点击左上角,切换“科研版”; 步骤2:点击当前科研版"概览"页,点击快捷入口【找应用】,进入应用商城; 步骤3:在“应用商城”中,找到名为“Qwen3全参数模型”的镜像,点击【使用此镜像】,进入开发机购买界面; 步骤4:在购买页面中,【基础信息】【主机规格】一栏,用户可以按照如下配置选择: 说明 目前镜像支持的可用区有:福州6、贵阳2、中卫4; 中卫4支持运行235b,其余可用区可以运行8b、14b、32b。 配置 算力型号 可用区 说明 ::: 最低配置 NVIDIA A10 福州6 推荐配置 GPU.gn4.2xl1 贵阳2 最高配置 NVIDIA A100 40G 中卫4 可运行235b 这里以可用区贵阳2的GPU.gn4.2xl为例,可以看到,【镜像框架】中框架版本已默认选好【社区镜像】的“openwebuiqwen3pubdataset”,其余【计费模式】、【可用区】等可按照实际需要选择。 步骤5:点击【确认订单】,完成开发机创建并启动。
        来自:
        帮助文档
        科研助手
        最佳实践
        在科研助手使用Qwen3进行科研服务
      • IP如何提升DDoS防护能力?
        本小节介绍公网IP如何增强DDoS防护能力。 IP 如何提升DDoS防护能力? 若您的公网 IP 频繁遭遇 DDoS 攻击,持续超出 DDoS 基础防护阈值并触发平台防护封堵,可通过以下两种方式强化 DDoS 安全防护能力,降低再次被封堵的风险: 一、购买并配置 DDoS 高防产品(推荐) 天翼云和第三方合规厂商均提供有DDoS高防产品,一般可提供高防IP隐藏业务IP、大流量攻击防护和攻击源分析能力,您可选择天翼云或其他第三方DDoS高防产品防护自身在天翼云的业务IP免受DDoS攻击。以天翼云举例,如天翼云“DDoS高防IP”、天翼云“DDoS高防(边缘云版)”等。 业务 IP 接入高防防护后,将由高防 IP 替代其暴露在公网,攻击者仅能针对高防 IP 发起攻击;攻击流量会在高防资源池完成清洗过滤,仅正常业务流量回注至您的业务 IP,该流量通常不会超出 IP 的DDoS防护阈值,可有效避免触发 DDoS封堵。 同时请注意:若业务IP历史存在攻击,可能已被攻击者获知,即使配置DDoS高防,攻击者有可能绕过高防IP对业务IP直接发起攻击,若攻击流量过大,仍会超过DDoS防护阈值,触发封禁,因此建议在配置高防的同时,同步更换业务IP并限制仅能被高防IP访问,实现业务IP隐藏。具体购买和配置请咨询DDoS高防产品对应产品厂商。 二、配置安全组(仅特定业务场景适用) 在绑定公网 IP 的云主机上配置安全组策略,仅允许指定 IP 和端口访问业务 IP,可在公网层面实现 IP 隐藏。该方式仅适用于无需对公网全面开放的业务(如组织内部跨公网访问场景),绝大多数面向公网的业务不适用此方案。 重要提示:若原业务 IP 已被攻击者获知,即便配置安全组使攻击者无法探活,仍可能遭受盲目攻击;攻击流量直达 IP 所在网络后,若流量超出基础防护阈值,依然会触发DDoS封堵。因此建议配置安全组的同时,同步更换业务 IP。
        来自:
        帮助文档
        DDoS基础防护
        常见问题
        IP如何提升DDoS防护能力?
      • 产品基本概念
        本章节介绍了云硬盘备份产品的基本概念,包括备份,策略,增强备份,即时恢复等。 备份策略 备份策略指的是对备份对象执行备份操作时,预先设置的策略,策略包括备份策略的名称、备份任务的调度计划和备份数据的保留策略。其中调度计划包括备份执行的频率,备份执行的时间点,备份数据的保留策略包括备份数据的保存时间或保存数量。通过将云硬盘绑定到备份策略,可以为云硬盘执行自动备份。 备份 备份即一个备份对象执行一次备份任务产生的备份数据,包括备份对象恢复所需要的全部数据。备份可以通过一次性备份和周期性备份两种方式产生。 云硬盘备份提供两种配置方式,一次性备份和周期性备份。一次性备份是指用户手动创建的一次性备份任务。周期性备份是指用户通过创建备份策略并绑定云主机的方式创建的周期性备份任务。 一次性备份的备份名称支持用户自定义,也可以采用系统自动生成的名称。一次性备份产生的备份名称为“backupxxxx”。 周期性备份的备份名称由系统自动生成。周期性备份产生的备份名称为“autobkxxxx”。 即时恢复 即时恢复特性支持备份快速恢复磁盘数据和备份快速创建新磁盘,恢复磁盘数据和备份创建新磁盘的时间相较于特性启用之前将大大缩短。 云硬盘产生的历史备份(特性上线前产生的备份)不支持即时恢复。如需使用即时恢复特性,需要手工执行一次全量备份,同时在创建备份时勾选“全量备份”参数,该全量备份及其后续的增量备份方可支持即时恢复。具体操作请参见“创建云硬盘备份”。在即时恢复特性上线前未进行过备份的云硬盘,在特性上线后在创建备份时无需勾选“全量备份”参数,产生的备份即支持即时恢复特性。 产生过历史备份或特性上线前未进行过备份的云硬盘,在特性上线后创建成功的自动备份,不支持即时恢复特性。如需使用即时恢复特性,仍需手工执行一次全量备份。
        来自:
        帮助文档
        云硬盘备份 VBS
        产品简介
        云硬盘备份的相关概念
        产品基本概念
      • Java调用示例
        1. com.ffcs.ebp.ebpsdk.common.Response plaintext package com.ffcs.ebp.ebpsdk.common; import java.util.Map; public class Response { private int statusCode; private String body; private Map headers; public int getStatusCode() { return statusCode; } public void setStatusCode(int statusCode) { this.statusCode statusCode; } public String getBody() { return body; } public void setBody(String body) { this.body body; } public Map getHeaders() { return headers; } public void setHeaders(Map headers) { this.headers headers; } } 2. com.ffcs.ebp.ebpsdk.YunSign plaintext package com.ffcs.ebp.ebpsdk; import com.ffcs.ebp.ebpsdk.common.Response; import org.apache.commons.lang.StringUtils; import org.apache.http.Header; import org.apache.http.HttpEntity; import org.apache.http.client.config.AuthSchemes; import org.apache.http.client.config.CookieSpecs; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.; import org.apache.http.config.Registry; import org.apache.http.config.RegistryBuilder; import org.apache.http.conn.socket.ConnectionSocketFactory; import org.apache.http.conn.socket.PlainConnectionSocketFactory; import org.apache.http.conn.ssl.NoopHostnameVerifier; import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; import org.apache.http.util.EntityUtils; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; import java.io.; import java.net.URLEncoder; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.security.KeyManagementException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.cert.X509Certificate; import java.text.SimpleDateFormat; import java.util.; public class YunSign { private String url; private String body; private String ak; private String sk; private String uuId; private int temp; private String contentType; private String queryStr; private Map headerMap; private String afterQuery; public YunSign(String url, String ak, String sk, String uuId, String body, int temp, String contentType, String queryStr, Map headerMap) { this.url url; if(body.equals("{}")){ body ""; } this.body body; this.ak ak; this.sk sk; this.uuId uuId; this.temp temp; this.contentType contentType; this.queryStr queryStr; this.headerMap headerMap; } public Response toDo(String method, int connectTimeout, int connectionRequestTimeout, int socketTimeout) { Response response null; method method.toUpperCase(); switch (method) { case "POST": response doPost(connectTimeout, connectionRequestTimeout, socketTimeout); break; case "GET": if (StringUtils.isNotEmpty(this.body)) { response sendJsonByGetReq(connectTimeout, connectionRequestTimeout, socketTimeout); } else { response doGet(connectTimeout, connectionRequestTimeout, socketTimeout); } break; case "DELETE": if (StringUtils.isNotEmpty(this.body)) { response sendJsonByDeleteReq(connectTimeout, connectionRequestTimeout, socketTimeout); } else { response doDelete(connectTimeout, connectionRequestTimeout, socketTimeout); } break; case "PUT": response doPut(connectTimeout, connectionRequestTimeout, socketTimeout); break; case "PATCH": response doPatch(connectTimeout, connectionRequestTimeout, socketTimeout); break; case "HEAD": response doHead(connectTimeout, connectionRequestTimeout, socketTimeout); break; } return response; } private String getSign(Date eopDate) { String calculateContentHash getSHA256(body); //报文原封不动进行sha256摘要 // System.out.println("calculateContentHash:" + calculateContentHash); SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); SimpleDateFormat DATEFORMATTER new SimpleDateFormat("yyyyMMdd"); String singerDate TIMEFORMATTER.format(eopDate); String singerDd DATEFORMATTER.format(eopDate); //header的key按照26字母进行排序, 以&作为连接符连起来 try { String CampmocalHeader String.format("ctyuneoprequestid:%sneopdate:%sn", this.uuId, singerDate); String sigture CampmocalHeader + "n" + this.afterQuery + "n" + calculateContentHash; // System.out.println("sigture:" + sigture); byte[] ktime HmacSHA256(singerDate.getBytes(), sk.getBytes()); // System.out.println("ktime:" + HexUtils.bytes2Hex(ktime)); byte[] kAk HmacSHA256(ak.getBytes(), ktime); // System.out.println("kAk:" + HexUtils.bytes2Hex(kAk)); byte[] kdate HmacSHA256(singerDd.getBytes(), kAk); // System.out.println("kdate:" + HexUtils.bytes2Hex(kdate)); String Signature Base64.getEncoder().encodeToString(HmacSHA256(sigture.getBytes("UTF8"), kdate)); // System.out.println("Signature:" + Signature); String signHeader String.format("%s Headersctyuneoprequestid;eopdate Signature%s", ak, Signature); // System.out.println("signHeader:" + signHeader); return signHeader; } catch (Exception e) { e.printStackTrace(); } return null; } / 在调用SSL之前需要重写验证方法,取消检测SSL 创建ConnectionManager,添加Connection配置信息 @return HttpClient 支持https / private static CloseableHttpClient sslClient() { try { // 在调用SSL之前需要重写验证方法,取消检测SSL X509TrustManager trustManager new X509TrustManager() { @Override public X509Certificate[] getAcceptedIssuers() { return null; } @Override public void checkClientTrusted(X509Certificate[] xcs, String str) { } @Override public void checkServerTrusted(X509Certificate[] xcs, String str) { } }; SSLContext ctx SSLContext.getInstance(SSLConnectionSocketFactory.TLS); ctx.init(null, new TrustManager[]{trustManager}, null); SSLConnectionSocketFactory socketFactory new SSLConnectionSocketFactory(ctx, NoopHostnameVerifier.INSTANCE); // 创建Registry RequestConfig requestConfig RequestConfig.custom().setCookieSpec(CookieSpecs.STANDARDSTRICT) .setExpectContinueEnabled(Boolean.TRUE).setTargetPreferredAuthSchemes(Arrays.asList(AuthSchemes.NTLM, AuthSchemes.DIGEST)) .setProxyPreferredAuthSchemes(Arrays.asList(AuthSchemes.BASIC)).build(); Registry socketFactoryRegistry RegistryBuilder. create() .register("http", PlainConnectionSocketFactory.INSTANCE) .register("https", socketFactory).build(); // 创建ConnectionManager,添加Connection配置信息 PoolingHttpClientConnectionManager connectionManager new PoolingHttpClientConnectionManager(socketFactoryRegistry); CloseableHttpClient closeableHttpClient HttpClients.custom().setConnectionManager(connectionManager) .setDefaultRequestConfig(requestConfig).build(); return closeableHttpClient; } catch (KeyManagementException ex) { throw new RuntimeException(ex); } catch (NoSuchAlgorithmException ex) { throw new RuntimeException(ex); } } public Response doGet(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse response null; Response result new Response(); try { // 通过址默认配置创建一个httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); //创建HttpGet远程连接实例 HttpGet httpGet; if (StringUtils.isNotEmpty(this.afterQuery)) { httpGet new HttpGet(this.url + "?" + this.afterQuery); } else { httpGet new HttpGet(this.url); } // 设置请求头信息,鉴权 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpGet.setHeader("ContentType", this.contentType); httpGet.setHeader("ctyuneoprequestid", this.uuId); httpGet.setHeader("EopAuthorization", getSign(eopDate)); httpGet.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpGet.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpGet.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 设置配置请求参数 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 请求超时时间 .setSocketTimeout(socketTimeout)// 数据读取超时时间 .build(); // 为httpGet实例设置配置 httpGet.setConfig(requestConfig); // 执行get请求得到返回对象 response httpClient.execute(httpGet); // 通过返回对象获取返回数据 HttpEntity entity response.getEntity(); // 通过EntityUtils中的toString方法将结果转换为字符串 result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(response.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : response.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! response) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response sendJsonByGetReq(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { Response result new Response(); CloseableHttpClient client null; CloseableHttpResponse response null; try { // 通过址默认配置创建一个httpClient实例 if (temp 0) {//绕过SSL client sslClient(); } else { client HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建HttpGetWithEntity远程连接实例 HttpGetWithEntity httpGetWithEntity; if (StringUtils.isNotEmpty(this.afterQuery)) { httpGetWithEntity new HttpGetWithEntity(this.url + "?" + this.afterQuery); } else { httpGetWithEntity new HttpGetWithEntity(this.url); } // 配置请求参数实例 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 设置连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 设置连接请求超时时间 .setSocketTimeout(socketTimeout)// 设置读取数据连接超时时间 .build(); // 为HttpGetWithEntity实例设置配置 httpGetWithEntity.setConfig(requestConfig); // 设置请求头 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpGetWithEntity.setHeader("ContentType", this.contentType); httpGetWithEntity.setHeader("ctyuneoprequestid", this.uuId); httpGetWithEntity.setHeader("EopAuthorization", getSign(eopDate)); httpGetWithEntity.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpGetWithEntity.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpGetWithEntity.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); HttpEntity httpEntity new StringEntity(body, Charset.forName("UTF8")); httpGetWithEntity.setEntity(httpEntity); //执行请求操作,并拿到结果(同步阻塞) response client.execute(httpGetWithEntity); //获取结果实体 HttpEntity entity response.getEntity(); result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(response.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : response.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! response) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! client) { try { client.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response doPost(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse httpResponse null; Response result new Response(); try { // 创建httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建httpPost远程连接实例 HttpPost httpPost; if (StringUtils.isNotEmpty(this.afterQuery)) { httpPost new HttpPost(this.url + "?" + this.afterQuery); } else { httpPost new HttpPost(this.url); } // 配置请求参数实例 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 设置连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 设置连接请求超时时间 .setSocketTimeout(socketTimeout)// 设置读取数据连接超时时间 .build(); // 为httpPost实例设置配置 httpPost.setConfig(requestConfig); // 设置请求头 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpPost.setHeader("ContentType", this.contentType); httpPost.setHeader("ctyuneoprequestid", this.uuId); httpPost.setHeader("EopAuthorization", getSign(eopDate)); httpPost.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpPost.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpPost.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 为httpPost设置封装好的请求参数 StringEntity data new StringEntity(body, Charset.forName("UTF8")); httpPost.setEntity(data); // httpClient对象执行post请求,并返回响应参数对象 httpResponse httpClient.execute(httpPost); // 从响应对象中获取响应内容 HttpEntity entity httpResponse.getEntity(); result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(httpResponse.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : httpResponse.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! httpResponse) { try { httpResponse.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response doPut(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse httpResponse null; Response result new Response(); try { // 创建httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建HttpPut远程连接实例 HttpPut httpPut; if (StringUtils.isNotEmpty(this.afterQuery)) { httpPut new HttpPut(this.url + "?" + this.afterQuery); } else { httpPut new HttpPut(this.url); } // 配置请求参数实例 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 设置连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 设置连接请求超时时间 .setSocketTimeout(socketTimeout)// 设置读取数据连接超时时间 .build(); // 为httpPost实例设置配置 httpPut.setConfig(requestConfig); // 设置请求头 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(20321900,01,05); httpPut.setHeader("ContentType", this.contentType); httpPut.setHeader("ctyuneoprequestid", this.uuId); httpPut.setHeader("EopAuthorization", getSign(eopDate)); httpPut.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpPut.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpPut.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 为httpPost设置封装好的请求参数 StringEntity data new StringEntity(body, Charset.forName("UTF8")); httpPut.setEntity(data); // httpClient对象执行post请求,并返回响应参数对象 httpResponse httpClient.execute(httpPut); // 从响应对象中获取响应内容 HttpEntity entity httpResponse.getEntity(); result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(httpResponse.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : httpResponse.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! httpResponse) { try { httpResponse.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response doPatch(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse httpResponse null; Response result new Response(); try { // 创建httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建HttpPatch远程连接实例 HttpPatch httpPatch; if (StringUtils.isNotEmpty(this.afterQuery)) { httpPatch new HttpPatch(this.url + "?" + this.afterQuery); } else { httpPatch new HttpPatch(this.url); } // 配置请求参数实例 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 设置连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 设置连接请求超时时间 .setSocketTimeout(socketTimeout)// 设置读取数据连接超时时间 .build(); // 为httpPost实例设置配置 httpPatch.setConfig(requestConfig); // 设置请求头 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpPatch.setHeader("ContentType", this.contentType); httpPatch.setHeader("ctyuneoprequestid", this.uuId); httpPatch.setHeader("EopAuthorization", getSign(eopDate)); httpPatch.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpPatch.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpPatch.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 为httpPost设置封装好的请求参数 StringEntity data new StringEntity(body, Charset.forName("UTF8")); httpPatch.setEntity(data); // httpClient对象执行post请求,并返回响应参数对象 httpResponse httpClient.execute(httpPatch); // 从响应对象中获取响应内容 HttpEntity entity httpResponse.getEntity(); result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(httpResponse.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : httpResponse.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! httpResponse) { try { httpResponse.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response doDelete(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse response null; Response result new Response(); try { // 通过址默认配置创建一个httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建httpGet远程连接实例 HttpDelete httpDelete; if (StringUtils.isNotEmpty(this.afterQuery)) { httpDelete new HttpDelete(this.url + "?" + this.afterQuery); } else { httpDelete new HttpDelete(this.url); } // 设置请求头信息,鉴权 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpDelete.setHeader("ContentType", this.contentType); httpDelete.setHeader("ctyuneoprequestid", this.uuId); httpDelete.setHeader("EopAuthorization", getSign(eopDate)); httpDelete.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpDelete.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpDelete.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 设置配置请求参数 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 请求超时时间 .setSocketTimeout(socketTimeout)// 数据读取超时时间 .build(); // 为httpGet实例设置配置 httpDelete.setConfig(requestConfig); // 执行get请求得到返回对象 response httpClient.execute(httpDelete); // 通过返回对象获取返回数据 HttpEntity entity response.getEntity(); // 通过EntityUtils中的toString方法将结果转换为字符串 result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(response.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : response.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! response) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response sendJsonByDeleteReq(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse response null; Response result new Response(); try { // 通过址默认配置创建一个httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建httpGet远程连接实例 HttpDeleteWithBody delete; if (StringUtils.isNotEmpty(this.afterQuery)) { delete new HttpDeleteWithBody(this.url + "?" + this.afterQuery); } else { delete new HttpDeleteWithBody(this.url); } // 设置请求头信息,鉴权 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); delete.setHeader("ContentType", this.contentType); delete.setHeader("ctyuneoprequestid", this.uuId); delete.setHeader("EopAuthorization", getSign(eopDate)); delete.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { delete.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : delete.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); HttpEntity httpEntity new StringEntity(body, Charset.forName("UTF8")); delete.setEntity(httpEntity); // 设置配置请求参数 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 请求超时时间 .setSocketTimeout(socketTimeout)// 数据读取超时时间 .build(); // 为httpGet实例设置配置 delete.setConfig(requestConfig); // 执行get请求得到返回对象 response httpClient.execute(delete); // 通过返回对象获取返回数据 HttpEntity entity response.getEntity(); // 通过EntityUtils中的toString方法将结果转换为字符串 result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(response.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : response.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! response) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response doHead(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse response null; Response result new Response(); try { // 通过址默认配置创建一个httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建httpHead远程连接实例 HttpHead httpHead; if (StringUtils.isNotEmpty(this.afterQuery)) { httpHead new HttpHead(this.url + "?" + this.afterQuery); } else { httpHead new HttpHead(this.url); } // 设置请求头信息,鉴权 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpHead.setHeader("ContentType", this.contentType); httpHead.setHeader("ctyuneoprequestid", this.uuId); httpHead.setHeader("EopAuthorization", getSign(eopDate)); httpHead.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpHead.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpHead.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 设置配置请求参数 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 请求超时时间 .setSocketTimeout(socketTimeout)// 数据读取超时时间 .build(); // 为httpHead实例设置配置 httpHead.setConfig(requestConfig); // 执行head请求得到返回对象 response httpClient.execute(httpHead); // 通过返回对象获取返回数据 HttpEntity entity response.getEntity(); // 通过EntityUtils中的toString方法将结果转换为字符串 result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(response.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : response.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! response) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } private String toHex(byte[] data) { StringBuilder sb new StringBuilder(data.length 2); byte[] var2 data; int var3 data.length; for (int var4 0; var4 2) { String encodeStr null; encodeStr URLEncoder.encode(s[1], "UTF8"); str s[0] + "" + encodeStr; afterQuery afterQuery + str; } else { String encodeStr ""; str s[0] + "" + encodeStr; afterQuery afterQuery + str; } } else { String[] s str.split(""); if (s.length > 2) { String encodeStr URLEncoder.encode(s[1], "UTF8"); str s[0] + "" + encodeStr; afterQuery afterQuery + "&" + str; } else { String encodeStr ""; str s[0] + "" + encodeStr; afterQuery afterQuery + "&" + str; } } } } } catch (Exception e) { e.printStackTrace(); } return afterQuery; } } 3. HexUtils.java plaintext package com.ffcs.ebp.ebpsdk; public class HexUtils { private static final char[] HEXES { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; / byte数组 转换成 16进制小写字符串 / public static String bytes2Hex(byte[] bytes) { if (bytes null bytes.length 0) { return null; } StringBuilder hex new StringBuilder(); for (byte b : bytes) { hex.append(HEXES[(b >> 4) & 0x0F]); hex.append(HEXES[b & 0x0F]); } return hex.toString(); } / 16进制字符串 转换为对应的 byte数组 / public static byte[] hex2Bytes(String hex) { if (hex null hex.length() 0) { return null; } char[] hexChars hex.toCharArray(); byte[] bytes new byte[hexChars.length / 2]; // 如果 hex 中的字符不是偶数个, 则忽略最后一个 for (int i 0; i headerMap new HashMap<>(); // headerMap.put("queryMetricDataInfo", "{"regionId":"cnsz1","dim":"instanceid,98cdcc8a8e544788ab9cc94ccee429c7","filter":"average","from":"1658473040","to":"1658473040","metricName":"netbitRecv","namespace":"AGT.ECS","period":"1"},"platform":"3"}"); // headerMap.put("platform", "3"); // headerMap.put("consoleUrl", " // headerMap.put("UserAgent", "3333433"); // headerMap.put("XForwardedFor", "1231313"); // headerMap.put("regionId", "100054c0416811e9a6690242ac110002"); // headerMap.put("prodInstId","9dcaf0157c604100af79bdb8271527bc"); //请求地址 String url " //query参数(?后面拼接的参数。没有就不填) aaaa&bbbb String queryStr "regionID41f64827xxxxxxxxxffa3a5deb5d15d"; //body参数(没有就不填) String body ""; //APPID String ak "9f82cacd3f8235c66edfs5e899f098e6"; //appkey String sk "MlgzESz430hJgTzA4lkjuJvDMMLTqwBQRicVqV62VM"; String uuId UUID.randomUUID().toString(); //连接超时 int connectTimeout 35000; //连接请求超时 int connectionRequestTimeout 35000; //socket超时 int socketTimeout 60000; YunSign yunSign new YunSign(url, ak, sk, uuId, body, temp, contentType, queryStr, headerMap); Response response yunSign.toDo(method, connectTimeout, connectionRequestTimeout, socketTimeout); System.out.println("应答头部 "); for (Map.Entry entry : response.getHeaders().entrySet()) { System.out.println(entry.getKey().toString() + ":" + entry.getValue().toString()); } System.out.println(); System.out.println("请求结果 "); System.out.println(response.getBody()); } }
        来自:
        帮助文档
        对象存储 ZOS
        API参考
        API(OpenAPI)
        如何调用API
        Java调用示例
      • 操作系统类
        本章节主要介绍物理机的操作系统类的问题。 物理机操作系统是否有图形界面? 当前提供的Linux操作系统是命令行界面,用户如果需要可以自己设置图形管理。或者订制专属物理机镜像。 物理机操作系统自带上传工具吗? 物理机操作系统没有自带的上传工具,需要用户自行安装和配置,例如FTP。 如何设置物理机的静态主机名? 问题描述 Linux物理机的静态主机名来源于创建物理机时,通过控制台注入的用户自定义名称。可以使用控制台或hostname命令更改物理机的主机名,但如果重启物理机,将自动还原为控制台上注入的用户自定义名称。 使用hostname命令修改Linux物理机的主机名后,如果您希望修改后的主机名在物理机关机、重启后仍然生效,需要将其写入相应的配置文件中,使之永久生效。 假设使用hostname 命令修改后的主机名为 newhostname 。 步骤 1 修改配置文件“/etc/hostname”。 1.执行以下命令,编辑配置文件“/etc/hostname”。 sudo vim /etc/hostname 2.将配置文件中的主机名替换为修改后的主机名newhostname。 3.执行以下命令,保存并退出文件。 :wq 步骤 2 对于RHEL/CentOS/Fedora 6操作系统,需要修改配置文件“/etc/sysconfig/network”。 1.执行以下命令,编辑配置文件“/etc/sysconfig/network”。 sudo vim /etc/sysconfig/network 2.修改涉及“HOSTNAME”的参数值,将其设置为修改后的主机名newhostname。 HOSTNAMEnewhostname 3.执行以下命令,保存并退出文件。 :wq 步骤 3 修改配置文件“/etc/cloud/cloud.cfg”。 1.执行以下命令,编辑配置文件“/etc/cloud/cloud.cfg”。 sudo vim /etc/cloud/cloud.cfg 2.按需选择如下两种方法,修改配置文件。 方法一 :修改或添加“preservehostname”参数项。 如果文件“/etc/cloud/cloud.cfg”中已有参数项“preservehostname: false”,将其修改为“preservehostname: true”即可。 如果文件“/etc/cloud/cloud.cfg”中没有该参数项,需要在“cloudinitmodules”模块前,添加语句preservehostname: true。 方法二 :删除或者注释如下语句。 updatehostname 3.执行以下命令,保存并退出文件。 :wq 步骤 4 修改物理机网络配置脚本“bmsnetworkconfig.conf”。 “bmsnetworkconfig.conf”的配置参数“enablepreservehostname”默认为False,表示每次单板复位自动刷新主机名。将其修改为True即可关闭该功能。 1.编辑网络配置脚本“bmsnetworkconfig.conf”,将参数项“enablepreservehostname”设置为True。 首先进入配置文件目录: cd /opt/huaw/networkconfig sed i 's/enablepreservehostname./enablepreservehostname True/g' bmsnetworkconfig.conf 步骤 5 对于SUSE系列操作系统,还需要修改配置文件“/etc/sysconfig/network/dhcp”。 1.执行以下命令,编辑配置文件“/etc/sysconfig/network/dhcp”。 sudo vim /etc/sysconfig/network/dhcp 2.将参数项“DHCLIENTSETHOSTNAME”设置为no,保证每次dhcp服务不会自动分配主机名。 DHCLIENTSETHOSTNAME"no" 3.执行以下命令,保存并退出文件。 :wq 步骤 6 执行以下命令,重启物理机。 sudo reboot 步骤 7 执行以下命令,验证静态主机名的修改是否永久生效。 sudo hostname 如果回显的内容是修改后的主机名newhostname,表示主机名修改成功,永久生效。
        来自:
        帮助文档
        物理机 DPS
        常见问题
        操作系统类
      • 虚拟主机用户权限管理
        介绍分布式消息服务RabbitMQ虚拟主机权限管理内容。 场景描述 在RabbitMQ中,虚拟主机(Virtual Hosts, vhosts)是一种逻辑隔离机制,允许单个 RabbitMQ 实例划分为多个独立的环境。每个虚拟主机都有自己的交换机、队列、绑定和权限设置。虚拟主机的用户权限管理,支持对每个用户配置三种权限,分别是配置权限、写权限、读权限,用户在未配置这三种权限之前,无法访问对应的虚拟主机。三个权限的详情如下: 配置权限:允许用户创建、修改或删除交换器(Exchange)、队列(Queue)和绑定关系。 写权限:允许用户向交换器发布消息。 读权限:允许用户消费队列中的消息或获取队列状态。 权限配置 在RabbitMQ中,虚拟主机的用户权限配置,采用的是正则表达式匹配方式, 只有满足正则表达式的资源才有权限。比如配置写权限为:".",表示该用户可以向虚拟主机下全部的交换器发布消息。配置写权限为:"^$”,表示该用户不允许向任何交换器发布消息。配置写权限为:"^exchange.",表示该用户可以向虚拟主机下以"exchange"开头的交换器发布消息。 最佳实践 1. 登录管理控制台。 2. 进入RabbitMQ管理控制台。 3. 在实例列表页在操作列,目标实例行点击“管理”。 4. 进入具体的实例管理页面,点击Vhost管理,在vhost列表页,针对指定的vhost,点击vhost进入具体的权限管理页: 5. 在具体的权限管理页,点击新建,选择指定用户,配置权限为"."、"."、".",则该用户拥有对虚拟主机下全部资源的配置权限、写权限和读权限: 6. 点击权限列表的操作列的“修改”或“删除”按钮,可以修改或删除对应用户的权限:
        来自:
        帮助文档
        分布式消息服务RabbitMQ
        用户指南
        虚拟主机管理
        虚拟主机用户权限管理
      • 卸载cuDNN加速库
        本文为您介绍卸载cuDNN加速库的操作方法。 cuDNN无独立卸载程序,需通过删除复制到CUDA目录的专属文件完成卸载,卸载前需先关闭所有依赖cuDNN的程序,且建议在卸载CUDA 工具包前执行本操作,避免文件残留或占用。 前置说明 关闭所有使用cuDNN的程序。 在Linux操作系统中卸载cuDNN 如果您在创建GPU云主机时自动安装了cuDNN加速库,使用的是复制头文件与库文件到CUDA目录完成部署,无独立卸载程序,因此只需精准删除cuDNN相关文件即可完成卸载。本章节以默认CUDA路径/usr/local/cuda为例。 1. 先查询cuDNN文件 plaintext ls l /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn.so 2>/dev/null 2. 删除cuDNN核心文件 plaintext sudo rm rf /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn.so 3. 刷新系统库缓存 plaintext sudo ldconfig 4. 验证卸载成功 plaintext ls /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn.so 2>/dev/null echo "cuDNN has been completely uninstalled" 出现“cuDNN has been completely uninstalled”表明已经卸载完成。 在Windows操作系统中卸载cuDNN 本章适用于通过zip包安装的cuDNN加速库的卸载操作。卸载逻辑的核心是精准删除这些复制到CUDA中的cuDNN专属文件,不影响CUDA本身,以Windows Server 2016 x8664系统、CUDA 11.4.0版本、cuDNN8.8.1版本为例进行cuDNN加速库的卸载。 以管理员身份打开CMD并按以下步骤操作。 1. 确认CUDA路径。 plaintext echo %CUDAPATH% 2. 查询并删除CUDA的bin、include、libx64目录中的cudnn开头的文件。 查询命令如下 plaintext dir /s /b "%CUDAPATH%bincudnn.dll"&dir /s /b "%CUDAPATH%includecudnn.h"&dir /s /b "%CUDAPATH%libx64cudnn.lib" 确认查询结果无误后请执行以下命令删除cuDNN文件。 plaintext del /f /s /q "%CUDAPATH%bincudnn.dll" & del /f /s /q "%CUDAPATH%includecudnn.h" & del /f /s /q "%CUDAPATH%libx64cudnn.lib" 3. 验证卸载成功。 再次查询CUDA路径下的cuDNN头文件,执行后无任何文件路径输出表明卸载完成。 plaintext dir /s /b "%CUDAPATH%bincudnn.dll" & dir /s /b "%CUDAPATH%includecudnn.h" & dir /s /b "%CUDAPATH%libx64cudnn.lib"
        来自:
        帮助文档
        GPU云主机
        用户指南
        驱动及工具包的安装
        手动卸载Tesla驱动、工具包及加速库
        卸载cuDNN加速库
      • 网络安全产品推荐
        DDoS基础防护 DDoS基础防护功能介绍 DDoS基础防护产品依托天翼云资源池网络,在公网IP遭受DDoS攻击时免费提供一定DDoS防护阈值,在阈值内尽可能确保IP可用。当IP遭受的DDoS攻击峰值超过IP的DDoS防护阈值时,会对IP所在服务器和网络的稳定性造成影响,根据用户协议,IP会进入封禁状态。 DDoS基础防护封禁阈值计算方式 DDoS基础防护依托天翼云资源池网络,为公网IP免费提供一定DDoS防护阈值,该阈值与公网IP带宽规格、公网IP绑定资产类型和公网IP所在资源池相关。 IP带宽越大,分配的网络资源就会越多,能对抗的DDoS攻击峰值越高,DDoS防护阈值越大。 IP绑定的资产类型属于负载型的资产时,如ELB、WAF等,相较于IP绑定到ECS云主机资产或未绑定资产,负载型资产本身分配的网络资源较多,能对抗的DDoS攻击峰值更高,DDoS防护阈值更大。 资源池内所有EIP遭受的DDoS攻击最终都会对资源池网络造成影响,为防止资源池网络整体产生波动,资源池会设定一个DDoS防护阈值作为资源池防护的底线。该阈值被同一时间所有受攻击的IP均分,例如当多个IP同时被攻击时,受攻击的多个IP会均分该阈值。 公网IP的DDoS防护阈值为IP带宽DDoS防护阈值,IP资产类型DDoS防护阈值,IP资源池DDoS防护阈值中取最小值,因任意类型的阈值超限均会对IP所在资源池、服务器或网络产生稳定性影响,具体计算公式如下。计算结果为理论底线数值,当IP所在服务器和资源池网络畅通时,DDoS基础防护会尽可能为IP提供更高的DDoS防护阈值。 公网IP的DDoS防护阈值 MIN(IP带宽DDoS防护阈值,IP资产类型DDoS防护阈值,资源池DDoS防护阈值/同一时间遭受DDoS攻击的IP数量)。 其中IP带宽防护阈值具体计算方式如下表。 IP带宽范围 IP带宽DDoS防护阈值 IP带宽≤200Mbps 2Gbps 200Mbps<IP带宽≤500Mbps 5Gbps 500Mbps<IP带宽 8Gbps 其中IP资产类型防护阈值具体计算方式如下表。 IP绑定资产类型 IP资产类型DDoS防护阈值 ELB、NAT、VPN 8Gbps vcpu(核数)≥4规格VM 5Gbps vcpu(核数)2规格VM 2Gbps vcpu(核数)1规格VM 1Gbps 其中IP资源池防护阈值具体计算方式如下表。 资源池 IP资源池DDoS防护阈值 默认 15Gbps/同一时间遭受DDoS攻击的IP数量
        来自:
        帮助文档
        弹性云主机 ECS
        安全合规
        网络安全
        网络安全产品推荐
      • 冻结/到期处理措施
        本文介绍云主机备份存储库冻结或到期的影响以及处理方法。 按需计费资源冻结 如果用户账户出现欠费,按需计费模式的云资源将被冻结进入欠费保留期,您将不能正常访问及使用云资源。保留期内云资源的业务中断,但对于您存储在云资源中的数据予以保留。欠费保留期内的云资源仍持续按需计费,此期间用户可以进行账号充值,充值时系统将会自动优先扣除欠费金额。充值成功至账户未欠费状态后,云资源的冻结状态将自动解除,相应云资源可恢复业务。若欠费保留期结束后用户账户仍没有充值成功,云资源将被释放,业务数据将无法恢复。 注意 欠费保留期的时长为15天。 资源冻结、解冻、欠费保留期到期时对业务的影响 资源冻结:存储库状态变为“已冻结”,限制资源的访问和使用,存储在存储库中的数据予以保留,欠费冻结保留期内的存储库不会按照已绑定的备份策略执行备份创建任务。 资源解冻:存储库状态更新,解除限制资源的访问和使用。但是需要您自行检查资源是否可以正常使用。 欠费保留期到期:销毁存储库,销毁存储在存储库中的数据。 资源使用建议 按需计费模式的存储库进入欠费保留期后将影响资源的正常使用,为避免因为账户欠费影响您的业务和数据,建议您开通帐户可用额度预警功能,并关注账户欠费等相关通知信息,以便及时充值,以确保帐户余额充足。 资源进入保留期后,您将不能正常访问及使用云服务(资源冻结),但对于您存储在云服务中的数据予以保留。 包年包月资源到期 在包年包月计费模式的云资源将要到期时,天翼云会以邮件的方式通知客户,如用户需继续使用,则可联系客户经理执行续订操作或自行在控制台续订存储库,续订规则请参见续订规则说明。如果用户未主动续订或者虽然开通了自动续订但自动续订失败,天翼云将发送资源超期提醒邮件,并且此时资源将进入保留期,保留期内云资源的业务中断,但对于您存储在云资源中的数据予以保留。保留期内用户可以续订资源,续订成功后云资源可恢复业务。保留期结束后云资源将被释放,业务数据将无法恢复。 注意 资源保留期的时长为15天。
        来自:
        帮助文档
        云主机备份 CSBS
        计费说明
        冻结/到期处理措施
      • 手动配置Agent(Windows,可选)
        本文主要介绍 手动配置Agent(Windows,可选) 操作场景 用户成功安装Agent插件后,推荐您采用“修复插件配置”方式配置Agent。如果“修复插件配置”不成功或其他原因导致无法配置Agent,你可以采用本章节提供的手工方式配置Agent。 约束与限制 Windows类型BMS暂不支持安装Agent。 前提条件 已成功安装Agent插件。 操作步骤 1. 登录ECS。 2. 打开telescopewindowsamd64bin文件夹下的conf.json文件。 3. 配置如下参数,参数说明请参见下表。 plaintext { "InstanceId":"", "ProjectId": "", "AccessKey": "", "SecretKey": "", "RegionId": "cnhz1", "ClientPort": 0, "PortNum": 200 } 表 公共配置参数 参数 说明 InstanceId ECS ID,可通过登录管理控制台,在弹性云主机ECS列表中查看。 说明 InstanceId可不用配置,保持"InstanceId":"",即可,若需要配置,需要遵循如下两条原则: l 该资源ID需保证全局唯一性,即同一个RegionID下Agent使用的InstanceId不能相同,否则系统可能会出现异常。 l InstanceId必须与实际的ECS或BMS资源ID一致,否则云监控服务界面将看不到对应ECS或BMS资源操作系统监控的数据。 ProjectId ProjectId可不用配置,保持"ProjectId": "",即可。若需要配置,请参考已下获取方式。 项目ID,获取方式如下: 登录管理控制台,单击右上角“用户名”,选择“我的凭证”; 在项目列表中,查看ECS或BMS资源对应的所属区域的项目ID。 AccessKey/SecretKey 访问密钥,获取方式如下: 登录管理控制台,单击右上角“用户名”,选择“我的凭证 > 管理访问密钥”; l 如已有访问密钥,查看创建时下载保存的credentials.csv文件中,获取文件中记录的Key值即可; l 如未创建,则通过“新增访问密钥”可创建新的访问密钥,妥善保存credentials.csv文件,并获取文件中记录的Key值。 须知 l 为了安全考虑,建议该用户为IAM用户,并且权限仅为CES Administrator和LTS Administrator 。 l 配置的AccessKey必须在“我的凭证 > 管理访问密钥”列表中,否则将鉴权失败,云监控服务界面看不到操作系统监控数据。 RegionId 区域ID,例如:ECS或BMS资源所属区域为“杭州”,则RegionID为“cnhz1”。 ClientPort Agent占用的起始端口号。 说明 默认为0,表示随机占用。11023为系统保留端口,建议不要配置。 PortNum Agent占用的范围的个数。 说明 默认为200,若ClientPort配置5000,则表示在50005199端口中随机占用。 4. 等待几分钟后,当插件状态为“运行中”并且监控状态开启时,说明Agent已安装成功并开始采集细粒度监控指标。
        来自:
        帮助文档
        云监控服务
        用户指南
        主机监控
        在ECS中安装配置Agent(Windows)
        手动配置Agent(Windows,可选)
      • 变更实例规格
        本小节介绍云堡垒机变更实例规格。 当云堡垒机的资产规格不能满足需求时,可对云堡垒机实例进行资产规格升级,扩大纳管的资产数上限、增加数据盘容量(即版本、资产规格、存储扩容)。 支持跨版本变更实例的资产规格。例如,由标准版10资产升级到企业版20资产。 系统影响 变更规格过程大约需要10分钟,变更规格期间云堡垒机系统不可用,业务中断,但不影响主机资源运行。建议用户不要登录云堡垒机系统进行操作,以免重要数据丢失影响使用。 约束限制 只有2.0及以上版本的堡垒机支持提升规格。 仅支持云堡垒机升级,暂不支持降级。 不支持升级实例类型(不支持由单机版升级到主备版)。若需要升级实例类型,请先备份相关数据,退订单机版后重新订购主备版。 前提条件 已获取管理控制台的登录账号与密码。 实例已绑定EIP,且EIP可用。 实例的状态为“已关机”时支持变更规格。 计费样例 计费场景: 某用户于2025/01/01购买了一个云堡垒机实例,购买时长1年(在包月总价基础上享受85折优惠),规格如下: 实例类型:单机版 版本:标准版 资产规格:10资产 使用一段时间后,用户发现当前规格无法满足业务需要,于2025/10/01进行升级(还剩3个月到期),需要升级的规格如下: 实例类型:单机版 版本:企业版 资产规格:20资产 计费分析: 新配置价格高于老配置价格,执行升级操作时,您需要支付新老配置的差价。 计算公式:升级费用(新配置价格旧配置价格)剩余周期优惠折扣 本示例中,相关参数如下: 旧配置价格:10资产标准版,标准资费650元/个/月 新配置价格:20资产企业版,标准资费1280元/个/月 剩余周期:3个月 优惠折扣:享受85折优惠 说明 若实例升级时仍在原包年周期内,则升级差价可继续享受原有的包年折扣。 代入公式可得,执行升级时需要支付的费用为:(1280650)×3×0.851606.5元 注意 本样例仅供参考,实际需支付的费用请以云堡垒机(原生版)控制台展示为准。
        来自:
        帮助文档
        云堡垒机(原生版)
        计费说明
        计费说明(一类节点)
        变更实例规格
      • 创建协议服务
        协议服务提供标准 NFS 协议访问 HPFS 文件系统的能力,本文介绍创建协议服务的场景说明和操作步骤。 场景说明 当创建文件系统后,如您需要使用弹性云主机 ECS 或 CPU 物理机来挂载该文件系统,您需要创建协议服务,使用 VPC 或 VPCE 挂载地址挂载到云服务器上。 操作步骤 1. 登录天翼云控制中心,单击管理控制台左上角的,选择地域。 2. 选择“存储>并行文件服务 HPFS”,进入并行文件服务的控制台页面。 3. 点击目标文件系统,进入文件系统详情页,点击协议服务页签,即可进入协议服务页面。 4. 单击“创建协议服务”按钮,进入创建页面,根据需求及界面提示进行选择并点击创建: 参数 说明 文件系统 所属文件系统的 ID。 协议服务规格 只支持通用型。 协议类型 导出协议类型 NFS,默认支持 NFSv3 和 NFSv4。 注意 这里的协议类型选择,不影响文件系统本身协议类型为 HPFSPOSIX,相当于同时提供两种协议访问通道。 选择网络 选择协议服务使用的虚拟私有云(VPC),需要与要挂载的云服务器 VPC 网络相同,才能保证网络互通,实现文件的挂载访问。 创建后不可修改,若当前地域没有虚拟私有云,点击“创建虚拟私有云”,创建完成后刷新可选择新建的 VPC。 如您是在地域资源池使用,则还需选择 NFS 协议使用的子网(SUBNET)网络。 注意 一个文件系统可以创建多个协议服务; 同一个文件系统,创建的不同协议服务,不能绑定同一个 VPC; 不同的文件系统,创建的不同协议服务,可以绑定同一个 VPC。 终端节点 开启后本服务将为您创建免费的终端节点(VPCE),自动连接并行文件的协议服务。 创建 VPCE 后将返回该 VPC 专属的挂载地址,通常需要 1~3 分钟。如果您删除了终端节点,则 VPCE 的挂载地址将会失效。 开启终端节点后,需选择NFS协议使用的子网(SUBNET)网络,仅支持选择普通子网。 描述 协议服务的描述信息,可根据需求添加备注。 5. 协议服务为异步创建,创建完成后,可在协议服务列表页刷新,即可看到对应的协议服务信息。
        来自:
        帮助文档
        并行文件服务 HPFS
        用户指南
        协议服务
        创建协议服务
      • 数据盘扩展磁盘分区和文件系统
        本文将为您介绍如何在Linux环境下为数据盘扩展磁盘分区和文件系统。 扩大原有分区 (MBR分区与GPT分区) 本示例以“CentOS 7.6 64bit”操作系统为例,原有数据盘/dev/vdb已有分区/dev/vdb1,容量为10GB,且已在控制台将该数据盘扩容至20GB。本示例介绍如何将新增的10GB容量划分至已有的MBR分区或GPT分区/dev/vdb1内。 1. 输入 growpart命令,检查此云主机是否已安装growpart扩容工具。若出现图中回显信息,则说明已经安装,无需手动安装。 注意 若没有图示信息,请执行命令“yum install cloudutilsgrowpart”手动安装growpart工具。 2. 执行命令 fdisk l,查看磁盘的分区信息,回显信息如图所示: 3. 执行命令 df TH,查看数据盘分区/dev/vdb1的容量,回显信息如图所示: 从图中看出,磁盘分区/dev/vdb1容量为10GB,但是磁盘/dev/vdb的容量为20GB,需要扩容磁盘分区/dev/vdb1的空间。 4. 执行命令 growpart /dev/vdb 1,指定数据盘待扩容的分区,数据盘为/dev/vdb,分区的编号为1,通过growpart进行扩容,回显信息如图所示: 5. 执行命令 resize2fs /dev/vdb1,将原有分区/dev/vdb1的文件系统进行扩充。回显信息如图所示: 说明 当磁盘分区文件系统为xfs格式时,需要使用xfsgrowfs 磁盘分区扩容。 当磁盘分区文件系统为ext格式时,需要使用resize2fs 磁盘分区扩容。 6. 执行命令 df TH,查看扩容后数据盘分区“/dev/vdb1”的容量,回显信息如图所示: 此时数据盘分区/dev/vdb1的容量已经扩容至20GB。 若需要设置开机自动挂载磁盘分区,请参见设置开机自动挂载磁盘。
        来自:
        帮助文档
        云硬盘 EVS
        用户指南
        扩容云硬盘
        Linux扩展磁盘分区和文件系统
        数据盘扩展磁盘分区和文件系统
      • 查询服务器详情
        参数 参数类型 说明 示例 下级对象 custName String 主机名称 test hostName String 实例名称 test displayName String 实例名称 test agentGuid String agentGuid test azName String 所在az test publicIp String 公网IP ipAddress String 私网IP 192.168.1.1 regionName String 所在区域 test stateName String 防护状态 防护中 guardStatus Object 防护状态 guardStatus createDate String 创建日期 20200101 00:00:00 expireDate String 过期时间 20200101 00:00:00 bgGroupName String 所属分组 事业部/产品线 osType String 操作系统 Windows/Linux Linux osTypeCode String 操作系统 Windows/Linux Linux agentInfo Object agent信息 agentInfo startTime String 启动时间 20200101 00:00:00 serverGroup String 云主机组 test safeGroup String 安全组 test registrationTime String 注册时间 20200101 00:00:00 expireTime String 过期时间 20200101 00:00:00 notSupportVulFixReason String 不支持漏洞修复的原因 不支持漏洞修复的原因 notSupportVulFixCode Integer 不支持漏洞修复的原因编码 0支持修复 1机器已删除,不支持修复 2该漏洞类型不支持修复 3基础版不支持漏洞修复,请升级至企业版或旗舰版 4漏洞修复功能灰度中暂时不支持修复 5agent版本低不支持修复,请升级 6下发修复命令异常,不支持修复 7服务器上没有yum/apt命令 8服务器上yum/apt命令当前不可用 9服务器无法连接软件源 10服务器无法连接微软官方服务器 11Agent已离线,不支持修复 12系统仅支持扫描,暂不支持自动修复 0 supportVulFix Integer 是否支持漏洞修复,0不支持修复 1支持修复 0 containerName String 镜像名称 test diskNum Integer 磁盘数量 0 netNum Integer 网卡数量 0 vpcName String vpc名称 test serialNumber String 序列号 test memTotal String 总内存量,单位GB 0 systemLoad Integer 系统负载 0 usageRate String cpu使用率 0.36 productName String 设备型号 test cpuInfoList Array of Objects CPU信息 cpuInfoList diskInfoList Array of Objects 磁盘信息 diskInfoList netInfoList Array of Objects 网卡信息 netInfoList osNameVersion String 如centos 7.6 操作系统名称及版本 centos 7.6 agentVersion String 如v4.11.1 agent版本 v4.11.1 proxyAddress String 代理地址,安装agent时,用户可配置自己的代理服务,转发agent请求到安全卫士到后台 169.254.169.254 表 netInfoList
        来自:
        帮助文档
        服务器安全卫士(原生版)
        API参考
        API
        2022-10-20
        服务器列表
        查询服务器详情
      • 视频上传
        云点播上传视频流程介绍。 综述 云点播主要通过控制台和SDK/API两种方式完成视频上传。 前提条件 已开通云点播。 云点播至少创建了一个点播实例。 操作步骤 控制台上传 1. 登陆云点播控制台。 2. 在左侧导航栏找到【媒体库】。 3. 在左上角找到【上传视频】按钮,点击弹出对话框。 4. 点击【选择视频】或将本机视频以鼠标拖放的形式放置在对话框中。 5. 在【视频处理】选项处,可以选择【直接上传】(仅上传不处理)或【上传的同时对视频进行处理】。 6. 【可选】如选择了【上传的同时对视频进行处理】,您可在弹出的下级交互窗口选择合适的处理方式,包括转码、水印和封面截图。其中【转码模版】处可以选择自定义或系统预设模版。当您同时勾选多个转码模版时,云点播会按照多个模版的配置,同时转码生成多份文件。您也可以在【水印模版】处选择合适的水印模版,该水印模版将针对上面所有转码模版生效。当勾选了【截取首帧做封面】时,云点播会默认取视频第一个关键帧作为该视频的封面图。如需更换封面,可参考【点播模式】【视频截图】中的相关描述。 7. 完成以上配置后,点击【开始上传】即可开始上传文件。 注意 1. 在此界面上传的所有文件权限默认继承该点播实例的存储桶权限。 2. 点播模式下,控制台上传入口会检查上传文件的扩展名,如不是界面上显示支持的格式文件,则默认不会上传。 3. 通过浏览器界面上传文件,由于浏览器限制和上传主机的硬件配置情况,可能会出现过大或数量过多的文件引起页面崩溃的问题。因此从该入口上传文件时,请勿一次性上传过多的文件。建议单文件最大容量不超过4GB,一批次文件数量不超过100个。 4. 在上传过程中,请勿关闭该上传页面,否则会导致上传中断,产生数据碎片。 5. 您可以在上传过程中查看【上传中】标签卡,查询上传进度。当存在上传中断遗留的数据碎片,也将在此处显示。您可以手工删除,或者放置超过7天由系统自动清除。
        来自:
        帮助文档
        云点播
        用户指南
        点播模式
        视频上传
      • 日志备份下载与清理
        合并下载 1. 在天翼云官网首页的顶部菜单栏,选择产品 > 数据库 > 关系型数据库 > 关系数据库MySQL版 ,进入关系数据库MySQL产品页面。然后单击管理控制台 ,进入概览页面。 2. 在左侧导航栏,选择MySQL > 实例管理,进入实例列表页面。然后在顶部菜单栏,选择区域和项目。 3. 在实例列表中,单击目标实例名称,进入基本信息页面。 4. 单击备份恢复 ,进入基础备份列表页签。 5. 单击日志合并下载页签。 您可以在合并任务列表中,查看已经合并的任务和文件。 6. 单击创建合并任务 ,配置合并时间段 ,然后单击确定。 在合并任务列表中,您可以看到正在初始化的合并任务。等待任务完成后,单击合并任务名称左侧的下拉框,查看并下载已合并的日志文件。 注意 合并的日志文件会占用空间,因此产生费用,您可在下载后手动进行删除,如未删除系统将会在24小时后将清理合并后的Binlog文件,故请及时下载所需的文件。 如选择内网下载,则将链接复制,使用wget ' 公网下载方式的临时下载地址链接有效时间为1小时。 日志备份清理 1. 在天翼云官网首页的顶部菜单栏,选择产品 > 数据库 > 关系型数据库 > 关系数据库MySQL版 ,进入关系数据库MySQL产品页面。然后单击管理控制台 ,进入概览页面。 2. 在左侧导航栏,选择MySQL > 实例管理,进入实例列表页面。然后在顶部菜单栏,选择区域和项目。 3. 在实例列表中,单击目标实例名称,进入基本信息页面。 4. 找到备份空间使用量一栏,点击日志备份清理按钮。 5. 根据可清理时间段,选择待清理的时间节点,单击确定。 系统将会删除您所选择时间节点之前的所有Binlog文件。 注意 删除Binlog文件可释放部分备份空间,但同时会影响您恢复至任意时间点的功能,建议通过备份空间扩容来满足备份空间不足的需求。 删除Binlog操作为异步任务,单击确定进行删除操作后,您在几分钟后刷新界面,即可看到相关文件已被清理,时间和清理的文件大小有关。
        来自:
        帮助文档
        关系数据库MySQL版
        用户指南
        备份与恢复
        Binlog下载与清理
        日志备份下载与清理
      • 配置多因子认证
        管理员配置手机令牌认证 1. 管理员登录云堡垒机系统。 2. 选择“用户 > 用户管理”,进入用户管理页面。 3. 找到已绑定手机令牌的用户,单击用户登录名,进入用户详情页面。 4. 在“用户配置”区域,单击“编辑”,弹出用户的登录配置窗口。 5. 勾选“手机令牌”多因子认证项。 6. 单击“确定”,完成用户配置。 用户再次登录系统时,手机令牌登录认证生效。 配置USBKey登录 uToken是基于USBKey实现的OTP动态密码技术。配置USBKey认证后,登录系统时需接入USBKey,登录页面自动识别唯一关联USBKey,输入相应PIN码,才能通过身份认证。 约束限制 目前云堡垒机可识别世纪龙脉、北京CA和吉大正元厂商的USBKey,不同的厂商USBKey不能相互识别登录认证。需根据申购的USBKey3.5.6 配置USB Key厂商厂商。 一个USBKey仅能签发给一个用户使用。 前提条件 已申购USBKey,并在本地安装对应的USBKey驱动。 配置USBKey认证 1. 管理员登录云堡垒机系统。 2. 选择“用户 > 用户管理”,进入用户管理页面。 3. 找到目标用户,单击用户登录名,进入用户详情页面。 4. “用户配置”区域,单击“编辑”,弹出用户的登录配置窗口。 5. 勾选“USBKey”多因子认证项。 6. 单击“确定”,完成用户多因子认证配置。 签发USBKey 1. 管理员登录云堡垒机系统。 2. 选择“用户 > USBKey”,进入USBKey列表页面。 3. 单击“签发”,新建签发USBKey。 4. 配置“关联用户”,选择已经开启USBKey多因子认证的用户。 签发USBKey参数说明 参数 说明 :: USBKey USBKey商品标识码。 关联用户 选择已配置“USBKey”多因子认证的用户帐号。 PIN码 USBKey厂商提供,与“USBKey”一一对应的唯一识别码。 5. 单击“确定”,在USBKey列表查看已签发USBKey信息。 关联用户登录云堡垒机系统时,连接签发的USBKey到本地主机,登录界面会自动识别USBKey,选择对应的USBKey,并输入PIN码,即可完成USBKey登录认证。 配置动态令牌登录 动态口令是基于事件同步的令牌实现的OTP动态密码技术。配置动态令牌认证后,登录系统时需输入静态密码和6位硬件令牌动态密码,才能通过身份认证。
        来自:
        帮助文档
        运维安全中心(云堡垒机)
        用户指南
        系统登录
        配置多因子认证
      • 路由设置
        本文向您介绍企业版VPN中路由设置的常见问题。 如何理解VPN连接中的对端网关和对端子网? 对端网关和对端子网是两个相对的概念,在建立VPN连接时,从云的角度出发,VPC网络就是本地子网,创建的VPN网关就是本地网关,与之对接的用户侧网络就是对端子网,用户侧的网关就是对端网关。 对端网关IP就是用户侧网关的公网IP,对端子网指需要和VPC子网互联的子网。 Console界面在哪添加VPN远端路由? 云端在VPN连接创建时会自动下发到达远端子网的路由,无需手动配置。 ECS主机多网卡是否需要添加去往线下网络的路由? 如果客户使用主网卡与线下网络建立了VPN,不需要添加路由。 如果客户使用非主网卡与线下网络建立了VPN,需要添加去往线下网段的路由指向非主网卡的网关。 什么是NQA 什么是NQA 网络质量分析(Network Quality Analysis,NQA)是一种实时的网络性能探测和统计技术,可以对响应时间、网络抖动、丢包率等网络指标进行统计。NQA能够实时监视网络服务质量,在网络发生故障时进行有效的故障诊断和定位。 为什么需要NQA 随着运营商增值业务的开展,用户和运营商对QoS(Quality of Service)的相关要求越来越高,特别是在传统的IP网络承载语音和视频业务后,运营商与客户之间签订SLA(Service Level Agreement)成为普遍现象。 为了让用户看到承诺的带宽是否达到需求,运营商需要提供相关的时延、抖动、丢包率等相关的统计参数,以及时了解网络的性能状况。传统的网络性能分析方法(如Ping、Tracert等)已经不能满足用户对业务多样性和监测实时性的要求。NQA可以实现对网络运行状况的准确测试,输出统计信息。NQA可以监测网络上运行的多种协议的性能,使网络运营商能够实时采集到各种网络运行指标,例如:HTTP的总时延、TCP连接时延、DNS解析时延、文件传输速率、FTP连接时延、DNS解析错误率等。通过对这些指标进行控制,网络运营商可以为用户提供不同等级的网络服务。同时,NQA也是网络故障诊断和定位的有效工具。
        来自:
        帮助文档
        VPN连接
        常见问题
        企业版VPN
        路由设置
      • 操作类
        本章节会介绍关系型数据库在使用和操作时遇到的常见问题。 可以通过创建模板的方式创建实例吗 目前不支持实例模板。可通过备份恢复功能将备份文件恢复到新实例上。 云数据库如何进行主备切换 关系型数据库(Relational Database Service,简称RDS)服务提供高可用类型,推荐您选择主备模式。 故障切换 也叫计划外的切换。当主机出现故障时,系统会在1~5分钟内自动切换到备机,主备实例的连接IP不变,整个过程无需人工干预。切换过程中不可访问,需要您设置好程序跟关系型数据库服务的自动重连,避免因为切换导致服务不可用。 手动切换 也叫计划内的切换。当实例运行正常时,用户可以自主手动触发主备切换,以满足业务需求。 步骤1 登录管理控制台。 步骤2 单击管理控制台左上角的,选择区域和项目。 步骤3 选择“数据库 > 关系型数据库”。进入关系型数据库信息页面。 步骤4 在“实例管理”页面,选择指定的主备实例,单击实例名称,进入实例的“基本信息”页面。 步骤5 在“基本信息”页面中“数据库信息”模块的“实例类型”处,单击“主备切换”。 您也可以在“基本信息”页面,单击“实例拓扑图”模块的。进行主备切换。 注意 主备切换可能会造成几秒或几分钟的服务闪断(闪断时间与复制时延有关),并有可能在主备同步时延过大的情况下,导致少量数据丢失。 主备切换后,请注意对业务进行预热,避免业务高峰期出现阻塞。 在“主备切换”弹框,单击“是”进行主备实例的切换。 在“复制状态”为“正常”的情况下,复制时延大于300s,主备切换任务无法下发。 主备切换成功后,单击“返回实例列表”,用户可以在“实例管理”页面对其进行查看和管理。 切换过程中,状态显示为“主备切换中”。 在实例列表的右上角,单击刷新列表,可查看到主备切换完成后,实例状态显示为“正常”。
        来自:
        帮助文档
        关系数据库MySQL版
        常见问题
        操作类
      • 操作类
        本章节介绍操作数据库时的常见问题有哪些及解决办法。 可以通过创建模板的方式创建实例吗 目前不支持实例模板。可通过备份恢复功能将备份文件恢复到新实例上。 云数据库如何进行主备切换 关系型数据库(Relational Database Service,简称RDS)服务提供高可用类型,推荐您选择主备模式。 故障切换 也叫计划外的切换。当主机出现故障时,系统会在1~5分钟内自动切换到备机,主备实例的连接IP不变,整个过程无需人工干预。切换过程中不可访问,需要您设置好程序跟关系型数据库服务的自动重连,避免因为切换导致服务不可用。 手动切换 也叫计划内的切换。当实例运行正常时,用户可以自主手动触发主备切换,以满足业务需求。 步骤1 登录管理控制台。 步骤2 单击管理控制台左上角的,选择区域和项目。 步骤3 选择“数据库 > 关系型数据库”。进入关系型数据库信息页面。 步骤4在“实例管理”页面,选择指定的主备实例,单击实例名称,进入实例的“基本信息”页面。 步骤5 在“基本信息”页面中“数据库信息”模块的“实例类型”处,单击“主备切换”。 您也可以在“基本信息”页面,单击“实例拓扑图”模块的。进行主备切换。 注意 主备切换可能会造成几秒或几分钟的服务闪断(闪断时间与复制时延有关),并有可能在主备同步时延过大的情况下,导致少量数据丢失。 主备切换后,请注意对业务进行预热,避免业务高峰期出现阻塞。 在“主备切换”弹框,单击“是”进行主备实例的切换。 在“复制状态”为“正常”的情况下,复制时延大于300s,主备切换任务无法下发。 主备切换成功后,单击“返回实例列表”,用户可以在“实例管理”页面对其进行查看和管理。 切换过程中,状态显示为“主备切换中”。 在实例列表的右上角,单击刷新列表,可查看到主备切换完成后,实例状态显示为“正常”。
        来自:
        帮助文档
        关系数据库PostgreSQL版
        常见问题
        操作类
      • 会话
        本节主要介绍会话。 紧急Kill会话 您可以在以下场景使用Kill会话功能: 紧急救助通道:在实例的连接数达到上限,无法正常登录时,该功能提供了一个特殊连接通道,可以查看和执行Kill会话的操作。 历史急救日志:查看您在急救通道执行过的Kill操作历史记录。 前提条件 GaussDB(for MySQL)5.6的内核版本要大于等于5.6.43.3,5.7的内核版本要大于等于5.7.25.3。 不支持ECS自建库,不支持创建中、冻结、异常实例。 请务必在紧急情况下使用该功能,您的Kill操作将会以日志的形式被记录下来。 当您的实例能够通过DAS正常登录时,请勿使用该功能,您可以登录实例,通过实时会话功能执行相关操作。 rdsadmin、rdsbackup、rdsmetric、rdsRepl等敏感用户的会话禁止Kill。 当CPU或者连接数打满的情况下,kill会话请求有一定概率会下发超时,此时请重新下发kill会话请求。 操作步骤 1、登录管理控制台。 单击管理控制台左上角的,选择区域和项目。 单击页面左上角的,选择“数据库 > 数据管理服务 DAS”,进入数据管理服务页面。 在左侧的导航栏中单击“DBA智能运维 > 实例列表”页签,进入DBA智能运维实例列表页面。 在实例列表页面右上角,按照引擎、实例名称或者实例IP筛选实例。 选择所需实例,单击“详情”,进入DBA智能运维总览页面。 在“会话”页签下选择“紧急Kill会话”,会话列表默认按照会话持续时间倒叙排列会话信息。 选择待Kill的会话,单击“Kill会话”。 在“Kill实例会话”弹窗中确认会话信息,单击“是”。 单击“历史急救日志”页签,您可获取在急救通道执行过的Kill操作信息。 实时会话 实时会话功能提供当前数据库会话快照查询,并支持排序过滤展示。可基于用户、访问主机、库等多维度快速过滤识别到自定义慢SQL会话、活跃会话等。Kill会话能应对紧急实例恢复,保障数据库的可用性。
        来自:
        帮助文档
        数据管理服务
        用户指南
        DBA智能运维
        GaussDB(for MySQL)
        会话
      • 用户管理
        参数 说明 登录名 自定义登录系统的用户名。 创建后不可修改,且系统内“登录名”唯一不能重复。 认证类型 选择登录系统的认证方式。 本地:系统默认方式,即通过系统自身的帐号管理系统进行身份认证。 AD域:通过Windows AD域服务器对用户进行身份认证。 LDAP:通过LDAP协议,由第三方认证服务器对用户进行身份认证。 RADIUS:通过RADIUS协议,由第三方认证服务器对用户进行身份认证。 Azure AD:基于SAML配置,由Azure平台对登录用户进行身份认证。 若需启用AD域、LDAP、RADIUS、Azure AD远程认证方式的用户,需先在系统配置远程认证服务器信息,详细操作请参见:远程认证管理。 域名 “认证类型”选择“Azure AD”时,需要配置此项。 需输入在Azure平台用户注册时的后缀。 密码/确认密码 仅“认证类型”选择“本地”时,需要配置用户登录系统的密码。 可自定义生成密码,也可随机生成密码。 认证服务器 仅“认证类型”选择“AD域”和“LDAP”时,需要选择服务器名称。 姓名 自定义用户姓名。 用户帐号使用人员的姓名,便于区分不同的用户。 手机 输入手机号码。 用户帐号系统预留手机号码,用于手机短信登录或找回密码。 邮箱 输入邮箱地址。 用户帐号系统预留邮箱地址,用于通过邮箱接收系统消息通知。 角色 选择用户的角色,一个用户仅能配置一个角色。 缺省情况下,系统角色包括部门管理员、策略管理员、审计管理员和运维员。 部门管理员:负责部门管理,除“用户管理”和“角色管理”模块之外,部门管理员拥有其他全部模块的配置权限。 策略管理员:负责策略权限的配置,拥有“用户组管理”、“资源组管理”和“访问策略管理”等模块的配置权限。 审计管理员:负责系统和运维数据的审计,拥有“实时会话”、“历史会话”和“系统日志”等模块的配置权限。 运维员:系统普通用户和资源操作人员,拥有“主机运维”、“应用运维”和“授权工单”模块的操作访问权限。 自定义的角色:仅admin可自定义新角色或编辑默认角色的权限范围,详细介绍请见:角色管理。 所属部门 选择用户所属部门组织。如何创建系统部门,请参见:系统部门。 用户描述 (可选)对用户情况的简要描述。
        来自:
        帮助文档
        运维安全中心(云堡垒机)
        用户指南
        系统用户
        用户管理
      • 如何排查404/502/504错误?
        现象二 访问网站时,返回的不是“现象一”所示的页面,而是其他的404页面。 原因 :网站页面不存在或已删除。 解决办法 :请排查网站问题。 502 Bad Gateway 现象:完成WAF配置之后网站访问正常,但过一段时间,访问页面返回502,或者大概率出现502。 说明 如果您的网站不是部署在云上,建议您咨询服务器服务商,该服务器是否存在默认的防护拦截并要求服务商解除默认拦截。 这种情况一般有三种原因: 原因一 原因:您的网站使用了其他的安全防护软件(如360、安全狗、云锁或云盾等安全防护软件),这些软件把WAF的回源IP当成了恶意IP,拦截了WAF转发的请求,导致不能正常访问。 解决办法: 将WAF的回源IP网段添加到防火墙(硬件或软件)、安全防护软件、业务限速模块的白名单中。 原因二 原因:网站的后端配置了多个服务器,其中某个源站不通。 按以下方法检测源站配置是否正确: 1. 登录管理控制台,单击页面上方的“服务列表”,选择“安全 > Web应用防火墙(独享版)”,进入Web应用防火墙控制界面。 2. 在左侧导航树中选择“网站设置”,进入“网站设置”页面。 3. 在目标域名所在行的“防护网站”列中,单击目标域名,进入域名基本信息页面。 4. 在“服务器信息”栏中,单击编辑图标,进入“修改服务器信息”页面,确保对外协议、源站协议、源站地址、端口等信息配置正确。 5. 在主机上执行curl命令检测各个源站是否能正常访问。 curl kvv xx.xx.xx.xx代表源站服务器的源站IP地址,yy代表源站服务器的源站端口,xx.xx.xx.xx和yy必须是同一个服务器的源站地址和端口。 如果显示“connection refused”表示源站不通,不能正常访问网站。按以下方法处理: 检测服务器是否运行正常,如果运行不正常,请尝试重启服务器。 将WAF的回源IP网段添加到防火墙(硬件或软件)、安全防护软件、业务限速模块的白名单中。
        来自:
        帮助文档
        Web应用防火墙(独享版)
        常见问题
        业务中断排查
        如何排查404/502/504错误?
      • 调整参数以优化性能
        本页介绍了文档数据库服务常用调整参数以优化性能的示例。 数据库参数是数据库系统运行的关键配置信息,设置不合适的参数值可能会影响业务。列举了部分重要参数说明。 如需通过控制台界面修改参数值,请参见参数组管理。 connPoolMaxConnsPerHost 作用:设置每个主机的最大连接数。适当增加连接池的大小可以提高并发处理能力。 默认值:600 cursorTimeoutMillis 作用:设置游标的超时时间,可以根据查询模式和数据访问模式调整,以避免游标过期导致查询中断。 默认值:600000 failIndexKeyTooLong 作用:控制索引键过长时是否拒绝创建索引。如果索引键超过16MB的限制,可以设置为false,允许创建超过限制的索引。 默认值:true operationProfiling.mode 作用:启用操作性能分析,并设置其模式,以收集慢查询和所有查询的性能信息。 默认值:slowOp storage.engine 作用:选择MongoDB的存储引擎,可以选择WiredTiger或MMAPv1。WiredTiger通常在性能和存储方面更优越。 默认值:wiredTiger storage.journal.enabled 作用:启用或禁用日志记录,如果对性能要求较高,可以考虑禁用日志记录。 默认值:true storage.syncPeriodSecs 作用 :设置数据同步到磁盘的间隔时间。较小的值可以增加数据的耐久性,但可能影响写入性能。 storage.wiredTiger.engineConfig.directoryForIndexes 作用:设置WiredTiger引擎的索引目录,可以优化索引性能。 wiredTigerConcurrentWriteTransactions 作用:设置并发写事务的数量,以提高并发性能。 默认值:128 wiredTigerConcurrentReadTransactions 作用:设置并发读事务的数量,以提高并发性能。 默认值:128 operationProfiling.slowOpThresholdMs 作用:设置慢查询的时间阈值,超过该时间的查询将被记录下来,以便性能分析和优化。 默认值:100 storage.wiredTiger.engineConfig.cacheSizeGB 作用:设置WiredTiger缓存的大小,以充分利用内存资源提高查询性能。 注意 在进行参数调优时,需要根据应用程序的实际情况和需求来选择适当的参数值。对于每个参数的影响和最佳设置,需要在测试环境中进行实验和性能测试,以便确定最适合你的环境和应用程序的配置。另外,文档数据库服务的版本和部署架构也会影响参数的选择和调整。建议在进行参数调优时仔细阅读官方文档和最佳实践指南。
        来自:
        帮助文档
        文档数据库服务
        用户指南
        性能调优
        调整参数以优化性能
      • 会话
        本节主要介绍会话。 紧急Kill会话 您可以在以下场景使用紧急Kill会话功能: 紧急救助通道:在实例的连接数达到上限,无法正常登录时,该功能提供了一个特殊连接通道,可以查看和执行Kill会话的操作。 历史急救日志:查看您在急救通道执行过的Kill操作历史记录。 使用须知 不支持ECS自建库,不支持创建中、异常实例。 RDS for MySQL5.6的内核版本要大于等于5.6.43.3,5.7的内核版本要大于等于5.7.25.3。 请务必在紧急情况下使用该功能,您的Kill操作将会以日志的形式被记录下来。 当您的实例能够通过DAS正常登录时,请勿使用该功能,您可以登录实例,通过实时会话功能执行相关操作。 rdsadmin、rdsbackup、rdsmetric、rdsRepl等敏感用户的会话禁止Kill。 当CPU或者连接数打满的情况下,kill会话请求有一定概率会下发超时,此时请重新下发kill会话请求。 操作步骤 1、登录管理控制台。 单击管理控制台左上角的,选择区域和项目。 单击页面左上角的,选择“数据库 > 数据管理服务 DAS”,进入数据管理服务页面。 在左侧的导航栏中单击“DBA智能运维 > 实例列表”页签,进入DBA智能运维实例列表页面。 在实例列表页面右上角,按照引擎、实例名称筛选实例。 选择所需实例,单击“详情”,进入DBA智能运维总览页面。 在“会话”页签下选择“紧急Kill会话”,会话列表默认按照会话持续时间倒叙排列会话信息。 选择待Kill的会话,单击“Kill会话”。 在“Kill实例会话”弹窗中确认会话信息,单击“是”。 单击“历史急救日志”页签,您可获取在急救通道执行过的Kill操作信息。 实时会话 实时会话功能提供当前数据库会话快照查询,并支持排序过滤展示。可基于用户、访问主机、库等多维度快速过滤识别到自定义慢SQL会话、活跃会话等。Kill会话能应对紧急实例恢复,保障数据库的可用性。
        来自:
        帮助文档
        数据管理服务
        用户指南
        DBA智能运维
        MySQL
        会话
      • 设置容器启动命令
        runningacommandinashell " ")。 容器的生命周期与启动命令的生命周期一致,即启动命令执行完成后容器的生命周期结束。 下面将以启动一个nginx 为例,介绍容器启动命令典型的三个使用场景: 示例代码如下: nginx c nginx.conf 场景一:容器的“运行命令”和“运行参数”均作设置,界面截图如下: 运行命令和运行参数均设置 所生成的YAML样例如下: command: nginx args: 'c' nginx.conf 场景二:仅设置容器的“运行命令”,界面截图如下: 仅设置运行命令 说明: 运行命令中前后要加英文双引号"",若不加则会按照空格将命令拆分成多条执行。 所生成的YAML样例如下: command: nginx c nginx.conf args: 场景三:仅设置容器的“运行参数”,界面截图如下: 仅设置运行参数 说明: 如果运行命令没有添加到系统路径中,可以使用/bin/sh来执行命令,命令需要加英文双引号""。 所生成的YAML样例如下: command: /bin/sh args: 'c' '"nginx c nginx.conf"' 步骤 3 您可以通过如下方式检查或修改YAML: 创建工作负载时,在“高级设置”步骤中,单击右侧的“YAML创建”。 工作负载创建完成后,在工作负载列表中,单击工作负载名称后的“更多 > 编辑YAML”。 工作负载创建完成后,进入工作负载详情页面,单击右上角的“编辑YAML”。 设置容器启动命令YAML样例 本节以nginx为例,说明通过kubectl设置容器启动命令的方法。 前提条件 请参见通过kubectl操作CCE集群配置kubectl命令,使弹性云主机连接集群。 操作步骤 参见通过kubectl命令行创建无状态工作负载或通过kubectl命令行创建有状态工作负载时,容器启动命令的参数设置如下所示,详细请参见kubernetes官方文档。 apiVersion: extensions/v1beta1 kind: Deployment metadata: name: nginx spec: replicas: 1 selector: matchLabels: app: nginx strategy: type: RollingUpdate template: metadata: labels: app: nginx spec: containers: image: nginx command: sleep '3600'
        来自:
        帮助文档
        云容器引擎
        用户指南
        旧版UI
        工作负载
        容器设置
        设置容器启动命令
      • 事件样例
        以下提供云审计服务所收集事件的两个页面样例,并对其中常用的观察点进行了描述,以方便用户更直观的理解事件信息。其他服务所产生的事件可参照以下样例理解。 创建弹性云主机实例 json { "time": "2016/12/01 11:07:28 GMT+08:00", "user": { "name": "aaa/opservice", "id": "f2fe9fac63414a35a7d03108d5f1ea73", "domain": { "name": "aaa", "id": "1f9b9ba51f6b4061bd5c1736b28469f8" } }, "request": { "server": { "name": "asconfig15f1XWO68TFC", "imageRef": "b2b2c7dcbbb04d6b81ddf0904023d54f", "flavorRef": "m1.tiny", "personality": [], "vpcid": "e4c374b93675482c9b814acd59745c2b", "nics": [ { "subnetid": "fff8913288d44e5b9e27d9001167d24f", "nictype": null, "ipaddress": null, "binding:profile": null, "extradhcpopts": null } ], "adminPass": "", "count": 1, "metadata": { "opsvcuserid": "26e96eda18034ae9a44130bacb967b96" }, "availabilityzone": "az1.dc1", "rootvolume": { "volumetype": "SATA", "extendparam": { "resourceSpecCode": "SATA" }, "size": 40 }, "datavolumes": [], "securitygroups": [ { "id": "dd597fd7d1194994a22c891fcfc54be1" } ], "keyname": "KeyPair3e51" } }, "response": { "status": "SUCCESS", "entities": { "serverid": "42d39b4a19b74ee2b01ba9f1353b4c54" }, "jobid": "4010b39d58b855980158b8574b270018", "jobtype": "createSingleServer", "begintime": "20161201T03:04:38.437Z", "endtime": "20161201T03:07:26.871Z", "errorcode": null, "failreason": null }, "servicetype": "ECS", "resourcetype": "ecs", "resourcename": "asconfig15f1XWO68TFC", "resourceid": "42d39b4a19b74ee2b01ba9f1353b4c54", "sourceip": "", "tracename": "createSingleServer", "tracestatus": "normal", "tracetype": "SystemAction", "apiversion": "1.0", "recordtime": "2016/12/01 11:07:28 GMT+08:00", "traceid": "4abc3a67b77311e684128f0ed3cc97c6" } 在以上信息中,可以重点关注如下字段: "time":记录了事件发生的时间,本例中为12月1日上午11点07分28秒。 "user":记录了操作用户的信息,本例中操作用户为企业帐户(domain字段)aaa下的用户(name字段)aaa。 "request":记录了创建ECS服务器的请求,可以抽取该ECS服务器的简单信息,如name为asconfig15f1XWO68TFC,资源id为e4c374b93675482c9b814acd59745c2b。 "response":记录了创建ECS服务的返回结果,可以抽取其中的关键信息,如创建结果(status字段)为Success,错误码(errorcode字段)和失败原因(failreason字段)均为空(null)。
        来自:
        帮助文档
        云审计
        用户指南
        云审计服务事件参考
        事件样例
      • 操作类
        本章介绍天翼云关系型数据库在操作中的常见问题及解决办法。 可以通过创建模板的方式创建实例吗 目前不支持实例模板。可通过备份恢复功能将备份文件恢复到新实例上。 云数据库如何进行主备切换 关系型数据库(Relational Database Service,简称RDS)服务提供高可用类型,推荐您选择主备模式。 故障切换 也叫计划外的切换。当主机出现故障时,系统会在1~5分钟内自动切换到备机,主备实例的连接IP不变,整个过程无需人工干预。切换过程中不可访问,需要您设置好程序跟关系型数据库服务的自动重连,避免因为切换导致服务不可用。 手动切换 也叫计划内的切换。当实例运行正常时,用户可以自主手动触发主备切换,以满足业务需求。 步骤 1 登录管理控制台。 步骤 2 单击管理控制台左上角的,选择区域和项目。 步骤 3 选择“数据库 > 关系型数据库”。进入关系型数据库信息页面。 步骤 4 在“实例管理”页面,选择指定的主备实例,单击实例名称,进入实例的“基本信息”页面。 步骤 5 在“基本信息”页面中“数据库信息”模块的“实例类型”处,单击“主备切换”。 您也可以在“基本信息”页面,单击“实例拓扑图”模块的。进行主备切换。 注意 主备切换可能会造成几秒或几分钟的服务闪断(闪断时间与复制时延有关),并有可能在主备同步时延过大的情况下,导致少量数据丢失。 主备切换后,请注意对业务进行预热,避免业务高峰期出现阻塞。 在“主备切换”弹框,单击“是”进行主备实例的切换。 在“复制状态”为“正常”的情况下,复制时延大于300s,主备切换任务无法下发。 主备切换成功后,单击“返回实例列表”,用户可以在“实例管理”页面对其进行查看和管理。 切换过程中,状态显示为“主备切换中”。 在实例列表的右上角,单击刷新列表,可查看到主备切换完成后,实例状态显示为“正常”。
        来自:
        帮助文档
        关系数据库SQL Server版
        常见问题
        操作类
      • 以OpenTelemetry方式接入
        在监控Go应用之前,您需要通过客户端将应用数据上报至APM服务端。本文介绍如何通过OpenTelemetry Go SDK上报Go应用数据。 前提条件 完成vpce接入。 背景信息 OpenTelemetry Go SDK提供了Go语言的分布式链路追踪能力,您可以直接使用OTLP gRPC或者HTTP协议向APM服务端上报数据。 接入步骤 1. 添加OpenTelemetry Go依赖。 plaintext package main import ( "context" "flag" "go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace" "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp" "go.opentelemetry.io/otel" "go.opentelemetry.io/otel/baggage" "go.opentelemetry.io/otel/exporters/otlp/otlptrace" "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp" "go.opentelemetry.io/otel/sdk/resource" sdktrace "go.opentelemetry.io/otel/sdk/trace" semconv "go.opentelemetry.io/otel/semconv/v1.17.0" "go.opentelemetry.io/otel/trace" "io" "log" "net/http" "net/http/httptrace" "time" ) 2. 查看接入点信息。 应用列表的接入指引会根据您所在资源池提供“通过 HTTP 上报数据”和“通过 gRPC 上报数据”的ENDPOINT(天翼云vpc网络接入点)、鉴权TOKEN信息。 3. 初始化OpenTelemetry Go SDK。 (注意需将token和endpoint替换成相应地域的接入点信息。) 注意 需将token和endpoint替换成相应地域的接入点信息。 方式1:使用HTTP协议上报数据。 plaintext func initProvider() func() { ctx : context.Background() auth : map[string]string{ "xctgauthorization": " ", // 替换成token信息 } path : flag.String("path", "/v1/traces", "path") traceClient : otlptracehttp.NewClient( otlptracehttp.WithEndpoint(" "), // 替换成otel http的上报地址。 otlptracehttp.WithURLPath(path), otlptracehttp.WithHeaders(auth), otlptracehttp.WithInsecure()) otlptracehttp.WithCompression(1) log.Println("start to connect to server") traceExp, err : otlptrace.New(ctx, traceClient) handleErr(err, "Failed to create the collector trace exporter") res, err : resource.New(ctx, resource.WithFromEnv(), resource.WithProcess(), resource.WithTelemetrySDK(), resource.WithHost(), resource.WithAttributes( // 在APM控制台显示的服务名称。 semconv.ServiceNameKey.String("otelgoclientdemo"), // 在APM控制台显示的主机名称。 semconv.HostNameKey.String("yourhostname"), // 在APM控制台显示的服务端地址。 semconv.NetSockHostAddr("serviceaddr"), // 在APM控制台显示的客户端地址。 semconv.NetSockPeerAddr("clientaddr"), ), ) handleErr(err, "failed to create resource") bsp : sdktrace.NewBatchSpanProcessor(traceExp) tracerProvider : sdktrace.NewTracerProvider( sdktrace.WithSampler(sdktrace.AlwaysSample()), sdktrace.WithResource(res), sdktrace.WithSpanProcessor(bsp), ) otel.SetTracerProvider(tracerProvider) return func() { cxt, cancel : context.WithTimeout(ctx, time.Second) defer cancel() if err : traceExp.Shutdown(cxt); err ! nil { otel.Handle(err) } } } 方式2:使用gRPC协议上报数据。 plaintext func initProviderGrpc() func() { ctx : context.Background() auth : map[string]string{ "xctgauthorization": " ", //接入流程里面获取token信息 } traceClient : otlptracegrpc.NewClient( otlptracegrpc.WithInsecure(), otlptracegrpc.WithEndpoint(" "), //替换成grpc接入信息 otlptracegrpc.WithHeaders(auth), otlptracegrpc.WithDialOption(grpc.WithBlock())) log.Println("start to connect to server") traceExp, err : otlptrace.New(ctx, traceClient) handleErr(err, "Failed to create the collector trace exporter") res, err : resource.New(ctx, resource.WithFromEnv(), resource.WithProcess(), resource.WithTelemetrySDK(), resource.WithHost(), resource.WithAttributes( // 在APM控制台显示的服务名称。 semconv.ServiceNameKey.String("otelgoclientdemoprovider"), // 在APM控制台显示的主机名称。 semconv.HostNameKey.String("yourhostname"), // 在APM控制台显示的服务端地址。 semconv.NetSockHostAddr("serviceaddr"), // 在APM控制台显示的客户端地址。 semconv.NetSockPeerAddr("clientaddr"), ), ) handleErr(err, "failed to create resource") bsp : sdktrace.NewBatchSpanProcessor(traceExp) tracerProvider : sdktrace.NewTracerProvider( sdktrace.WithSampler(sdktrace.AlwaysSample()), sdktrace.WithResource(res), sdktrace.WithSpanProcessor(bsp), ) otel.SetTracerProvider(tracerProvider) return func() { cxt, cancel : context.WithTimeout(ctx, time.Second) defer cancel() if err : traceExp.Shutdown(cxt); err ! nil { otel.Handle(err) } } } 4. client端上报例子。 plaintext func sendReq(url string, ctx context.Context) { // 构造一个trace client client : http.Client{ Transport: otelhttp.NewTransport( http.DefaultTransport, otelhttp.WithClientTrace(func(ctx context.Context) httptrace.ClientTrace { return otelhttptrace.NewClientTrace(ctx) }), ), } tr : otel.Tracer("example/client") err : func(ctx context.Context) error { ctx, span : tr.Start(ctx, "say hello", trace.WithAttributes(semconv.PeerService("ExampleService"))) defer span.End() ctx httptrace.WithClientTrace(ctx, otelhttptrace.NewClientTrace(ctx)) req, : http.NewRequestWithContext(ctx, "GET", url, nil) res, err : client.Do(req) if err ! nil { panic(err) } , err io.ReadAll(res.Body) res.Body.Close() return err }(ctx) if err ! nil { log.Fatal(err) } } func doClient(url string, ctx context.Context) { // 不断请求数据 for { sendReq(url, ctx) time.Sleep(3 time.Second) } } func main() { shutdown : initProvider() defer shutdown() url : flag.String("server", " "server url") flag.Parse() bag, : baggage.Parse("usernamexxx") ctx : baggage.ContextWithBaggage(context.Background(), bag) doClient(url, ctx) } 5. 服务端上报例子。 plaintext func handler() { uk : attribute.Key("username") //加点属性 helloHandler : func(w http.ResponseWriter, req http.Request) { ctx : req.Context() //继续调用下一个服务最终效果是client》hello》hello1 sendReq(" ctx) } helloHandler1 : func(w http.ResponseWriter, req http.Request) { ctx : req.Context() span : trace.SpanFromContext(ctx) bag : baggage.FromContext(ctx) span.AddEvent("handling this...", trace.WithAttributes(uk.String(bag.Member("username").Value()))) , io.WriteString(w, "Hello, world!n") } otelHandler : otelhttp.NewHandler(http.HandlerFunc(helloHandler), "Hello") otelHandler1 : otelhttp.NewHandler(http.HandlerFunc(helloHandler1), "Hello1") http.Handle("/hello", otelHandler) http.Handle("/hello1", otelHandler1) } func main() { flag.Parse() shutdown : initProvider() defer shutdown() handler() err : http.ListenAndServe(":" + serverPort, nil) //nolint:gosec // Ignoring G114: Use of net/http serve function that has no support for setting timeouts. if err ! nil { log.Fatal(err) } } 6. 通过以上步骤,最后就在APM控制台的应用列表页面选择目标应用,查看监控数据。
        来自:
        帮助文档
        应用性能监控 APM
        快速入门
        接入Go应用
        以OpenTelemetry方式接入
      • 集群内访问(ClusterIP)
        操作场景 集群内访问表示工作负载暴露给同一集群内其他工作负载访问的方式,可以通过“集群内部域名”访问。 集群内部域名格式为“ . .svc.cluster.local: ”,例如“nginx.default.svc.cluster.local:80”。 访问通道、容器端口与访问端口映射如下图所示。 图集群内访问 工作负载创建时设置 您可以在创建工作负载时通过CCE控制台设置Service访问方式,如下: 步骤 1 参考创建无状态负载(Deployment)、创建有状态负载(StatefulSet)或创建守护进程集(DaemonSet),在“工作负载访问设置”步骤,单击“添加服务”。 访问类型:选择“集群内访问 ( ClusterIP )”。 Service 名称:自定义服务名称,可与工作负载名称保持一致。 端口配置: − 协议:请根据业务的协议类型选择。 − 容器端口:工作负载程序实际监听的端口,需用户确定。nginx程序实际监听的端口为80。 − 访问端口:容器端口映射到集群虚拟IP上的端口,用虚拟IP访问工作负载时使用,端口范围为165535,可任意指定。 步骤 2 单击“下一步”进入“高级设置”页面,直接单击“创建”。 步骤 3 单击“查看工作负载详情”,在“访问方式”页签下获取访问地址,例如10.247.74.100:8080。 工作负载创建完成后设置 您可以在工作负载创建完成后对Service进行配置,此配置对工作负载状态无影响,且实时生效。具体操作如下: 步骤 1 登录CCE控制台,在左侧导航栏中选择“工作负载 > 无状态负载 Deployment”,在工作负载列表页单击要设置Service的工作负载名称。 步骤 2 在“Service”页签,单击“添加Service”。 步骤 3 在“添加Service”页面,访问类型选择“集群内访问 ( ClusterIP )”。 步骤 4 设置集群内访问参数。 Service 名称:自定义服务名称,可与工作负载名称保持一致。 集群名称:工作负载所在集群的名称,此处不可修改。 命名空间:工作负载所在命名空间,此处不可修改。 关联工作负载:要添加Service的工作负载,此处不可修改。 端口配置: − 协议:请根据业务的协议类型选择。 − 容器端口:工作负载程序实际监听的端口,需用户确定。nginx程序实际监听的端口为80。 − 访问端口:容器端口映射到集群虚拟IP上的端口,用虚拟IP访问工作负载时使用,端口范围为165535,可任意指定。 步骤 5 单击“创建”。工作负载已添加“集群内访问 ( ClusterIP )”的服务。 验证访问方式 步骤 1 在管理控制台首页,单击“计算 > 弹性云主机”。 步骤 2 在弹性云主机页面,找到同一VPC内任意一台云服务器,并确认连接到访问地址中IP与端口的安全组是开放的。 步骤 3 登录工作负载所在集群的任意节点。 步骤 4 使用curl命令访问工作负载验证工作负载是否可以正常访问。您可以通过IP或者域名的方式来验证。 方式一:通过IP 地址验证。 curl 10.247.74.100:8080 其中10.247.74.100:8080为步骤3中获取的访问地址。 回显如下表示工作负载可正常访问。 Welcome to nginx! body { width: 35em; margin: 0 auto; fontfamily: Tahoma, Verdana, Arial, sansserif; } Welcome to nginx! If you see this page, the nginx web server is successfully installed and working. Further configuration is required. For online documentation and support please refer to Thank you for using nginx. 方式二:进入容器,在容器内通过域名验证。 curl nginx.default.svc.cluster.local:8080 其中nginx.default.svc.cluster.local为步骤3中获取的域名访问地址。 回显如下表示工作负载可正常访问。 Welcome to nginx! body { width: 35em; margin: 0 auto; fontfamily: Tahoma, Verdana, Arial, sansserif; } Welcome to nginx! If you see this page, the nginx web server is successfully installed and working. Further configuration is required. For online documentation and support please refer to Thank you for using nginx. 更新Service 您可以在添加完Service后,更新此Service的端口配置,操作步骤如下: 步骤 1 登录CCE控制台,在左侧导航栏中选择“资源管理 > 网络管理”,在Service页签下,选择对应的集群和命名空间,单击需要更新端口配置的Service后的“更新”。 步骤 2 在“更新Service”页面,访问类型选择“集群内访问 ( ClusterIP )”。 步骤 3 更新集群内访问参数。 Service 名称:您创建的Service名称,此处不可修改。 集群名称:工作负载所在集群的名称,此处不可修改。 命名空间:工作负载所在命名空间,此处不可修改。 关联工作负载:要添加Service的工作负载,此处不可修改。 端口配置: − 协议:请根据业务的协议类型选择。 − 容器端口:工作负载程序实际监听的端口,需用户确定。nginx程序实际监听的端口为80。 − 访问端口:容器端口映射到集群虚拟IP上的端口,用虚拟IP访问工作负载时使用,端口范围为165535,可任意指定。 步骤 4 单击“更新”,工作负载已更新Service。
        来自:
        帮助文档
        云容器引擎
        用户指南
        旧版UI
        网络管理
        Service
        集群内访问(ClusterIP)
      • IPv4/IPv6双栈网络应用场景及资源规划
        本文向您介绍IPv6网络应用场景及资源规划。 如果您的ECS规格支持IPv6,那么您可以使用IPv4/IPv6双栈网络。 不同区域、不同可用区支持IPv6双栈的ECS规格不同。查询ECS规格是否支持IPv6,请参考弹性云主机 > 产品介绍 > 实例规格。 图IPv4/IPv6双栈网络应用场景及资源规划 表IPv4/IPv6双栈网络应用场景及资源规划 应用场景 场景示例 条件 子网网段类型 ECS IPv4内网通信 在ECS上部署应用,需要与其他系统(比如数据库)之间使用IPv4进行内网互访。 实例未绑定弹性公网IP。 IPv4网段 IPv4私网地址:支持IPv4内网通信。 IPv4公网通信 在ECS上部署应用,需要与其他系统(比如数据库)之间使用IPv4进行公网互访。 实例绑定弹性公网IP。 IPv4网段 IPv4私网地址:支持IPv4内网通信。 IPv4公网地址:支持IPv4公网通信。 IPv6内网通信 在ECS上部署应用,需要与其他系统(比如数据库)之间使用IPv6进行内网互访。 VPC的子网开启IPv6。 创建ECS时,网络配置如下: 规格:选择支持IPv6网络的ECS规格。 VPC和子网:选择已开启IPv6的子网及子网所属的VPC。 选择“自动分配IPv6地址”。 共享带宽:暂不配置。 IPv4网段 IPv6网段 IPv4私网地址+IPv4弹性IP:实例绑定IPv4弹性IP,支持IPv4公网通信。 IPv4私网地址:实例不绑定IPv4弹性IP,支持IPv4内网通信。 IPv6地址:IPv6地址不加入共享带宽,支持IPv6内网通信。 IPv6公网通信 搭建IPv6网络,使ECS可以访问公网上的IPv6服务。 VPC的子网开启IPv6。 创建ECS时,网络配置如下: 规格:选择支持IPv6网络的ECS规格。 VPC和子网:选择已开启IPv6的子网及子网所属的VPC。 选择“自动分配IPv6地址”。 共享带宽:选择一个共享带宽。 IPv4网段 IPv6网段 IPv4私网地址+IPv4弹性IP:实例绑定IPv4弹性IP,支持IPv4公网通信。 IPv4私网地址:实例不绑定IPv4弹性IP,支持IPv4内网通信。 IPv6地址+共享带宽:同时支持IPv6公网通信和IPv6内网通信。
        来自:
        帮助文档
        弹性IP EIP
        用户指南
        IPv6弹性IP
        IPv4/IPv6双栈网络应用场景及资源规划
      • 1
      • ...
      • 166
      • 167
      • 168
      • 169
      • 170
      • ...
      • 184
      跳转至
      推荐热词
      天翼云运维管理审计系统天翼云云服务平台云服务备份云日志服务应用运维管理云手机云电脑天翼云云hbase数据库电信云大数据saas服务电信云大数据paas服务轻量型云主机天翼云客户服务电话应用编排服务天翼云云安全解决方案云服务总线CSB天翼云服务器配置天翼云联邦学习产品天翼云云安全天翼云企业上云解决方案天翼云产品天翼云视频云存储

      天翼云最新活动

      云聚517 · 好价翼起拼

      爆款云主机低至25.83元/年,参与拼团享更多优惠,拼成得额外优惠券

      安全隔离版OpenClaw

      OpenClaw云服务器专属“龙虾“套餐低至1.5折起

      聚力AI赋能 天翼云大模型专项

      大模型特惠专区·Token Plan 轻享包低至9.9元起

      青云志云端助力计划

      一站式科研助手,海外资源安全访问平台,助力青年翼展宏图,平步青云

      企业出海解决方案

      助力您的业务扬帆出海,通达全球!

      天翼云信创专区

      “一云多芯、一云多态”,国产化软件全面适配,国产操作系统及硬件芯片支持丰富

      中小企业服务商合作专区

      国家云助力中小企业腾飞,高额上云补贴重磅上线

      云上钜惠

      爆款云主机全场特惠,2核4G只要1.8折起!

      产品推荐

      弹性云主机 ECS

      物理机 DPS

      多活容灾服务 MDR

      弹性伸缩服务 AS

      天翼云CTyunOS系统

      训推服务

      AI Store

      星辰TokenHub运营服务平台

      一站式智算服务平台

      推荐文档

      天翼云进阶之路①:Linux / windows 系统修改远程端

      术语解释

      扩容磁盘

      • 7*24小时售后
      • 无忧退款
      • 免费备案
      • 专家服务
      售前咨询热线
      400-810-9889转1
      关注天翼云
      • 旗舰店
      • 天翼云APP
      • 天翼云微信公众号
      服务与支持
      • 备案中心
      • 售前咨询
      • 智能客服
      • 自助服务
      • 工单管理
      • 客户公告
      • 涉诈举报
      账户管理
      • 管理中心
      • 订单管理
      • 余额管理
      • 发票管理
      • 充值汇款
      • 续费管理
      快速入口
      • 天翼云旗舰店
      • 文档中心
      • 最新活动
      • 免费试用
      • 信任中心
      • 天翼云学堂
      云网生态
      • 甄选商城
      • 渠道合作
      • 云市场合作
      了解天翼云
      • 关于天翼云
      • 天翼云APP
      • 服务案例
      • 新闻资讯
      • 联系我们
      热门产品
      • 云电脑
      • 弹性云主机
      • 云电脑政企版
      • 天翼云手机
      • 云数据库
      • 对象存储
      • 云硬盘
      • Web应用防火墙
      • 息壤智算平台
      • CDN加速
      热门推荐
      • 云服务备份
      • 边缘安全加速平台
      • 全站加速
      • 安全加速
      • 云服务器
      • 云主机
      • 智能边缘云
      • 应用编排服务
      • 微服务引擎
      • 共享流量包
      更多推荐
      • web应用防火墙
      • 密钥管理
      • 等保咨询
      • 安全专区
      • 应用运维管理
      • 云日志服务
      • 文档数据库服务
      • 云搜索服务
      • 数据湖探索
      • 数据仓库服务
      友情链接
      • 中国电信集团
      • 天翼云国际站
      • 189邮箱
      • 天翼企业云盘
      • 天翼云盘
      ©2026 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
      公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
      • 用户协议
      • 隐私政策
      • 个人信息保护
      • 法律声明
      备案 京公网安备11010802043424号 京ICP备 2021034386号