活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 安全隔离版OpenClaw NEW OpenClaw云服务器专属“龙虾“套餐低至1.5折起
  • 青云志云端助力计划 NEW 一站式科研助手,海外资源安全访问平台,助力青年翼展宏图,平步青云
  • 出海产品促销专区 NEW 爆款云主机低至2折,高性价比,不限新老速来抢购!
  • 天翼云信创专区 NEW “一云多芯、一云多态”,国产化软件全面适配,国产操作系统及硬件芯片支持丰富
  • 中小企业服务商合作专区 国家云助力中小企业腾飞,高额上云补贴重磅上线
  • 云上钜惠 爆款云主机全场特惠,2核4G只要1.8折起!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

息壤智算

领先开放的智算服务平台,提供算力、平台、数据、模型、应用“五位一体”智算服务体系,构建全流程的AI基础设施能力
AI Store
  • 算力市场
  • 模型市场
  • 应用市场
  • MCP市场
公共算力服务
  • 裸金属
  • 定制裸金属
训推服务
  • 模型开发
  • 训练任务
  • 服务部署
模型推理服务
  • 模型广场
  • 体验中心
  • 服务接入
应用托管
  • 应用实例
科研助手
  • 科研智能体
  • 科研服务
  • 开发机
  • 并行计算
大模型
  • DeepSeek-V3.1
  • DeepSeek-R1-0528
  • DeepSeek-V3-0324
  • Qwen3-235B-A22B
  • Qwen3-32B
智算一体机
  • 智算一体机
模型适配专家服务
  • 模型适配专家服务
算力服务商
  • 入驻算力服务商

应用商城

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

定价

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

合作伙伴

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

开发者

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

支持与服务

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

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 息壤智算
  • 产品
  • 解决方案
  • 应用商城
  • 定价
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      文档中心

      物理机 DPS

      物理机 DPS

      • 物理机 DPS

      无数据

        • 产品动态
        • DeepSeek专题
        • DeepSeek专题导航
        • 图解:DeepSeek与公有云深度融合
        • 从基础设施到智能中枢:DeepSeek如何重塑公有云服务价值链
        • 高性能GPU云主机助力DeepSeek深度应用
        • 天翼云SD-WAN与DeepSeek超强联动,开启云上高效互联新时代
        • 实践指南:DeepSeek驱动高效能云生态
        • GPU云主机/弹性云主机:零基础搭建DeepSeek云端环境指南
        • GPU物理机:物理机搭建DeepSeek指南
        • 昇腾 910B 物理机使用Galaxy镜像部署DeepSeek指南(单机版)
        • 昇腾 910B 物理机使用Galaxy镜像部署DeepSeek指南(多机版)
        • 昇腾 910B 物理机使用Galaxy镜像嵌入式模型部署指南
        • NVIDIA GPU物理机使用Galaxy镜像部署DeepSeek指南(单机版)
        • NVIDIA GPU 物理机使用Galaxy镜像部署DeepSeek指南(多机版)
        • SD-WAN跨境:SD-WAN助力DeepSeek模型定向加速
        • 智算容器:云容器引擎与DeepSeek融合实践
        • 函数计算:天翼云函数计算与DeepSeek大模型
        • Q&A:典型问题解析与策略应对
        • 产品简介
        • 产品定义
        • 产品优势
        • 产品应用场景
        • 物理机镜像
        • 镜像概述
        • 物理机类型与支持的操作系统版本
        • 标准裸金属
        • 弹性裸金属
        • 云硬盘
        • 网络
        • 安全
        • 身份认证与访问控制
        • 主机监控
        • 区域和可用区
        • 物理机与其他服务的关系
        • 产品支持和使用限制
        • 支持列表
        • 使用限制
        • 产品规格
        • 实例概述
        • 通用型
        • 计算型
        • 大数据型
        • GPU型
        • 国产化型
        • 购买指南
        • 计费说明
        • 实例到期的影响
        • 包周期按量互转
        • 快速入门
        • 注册账号
        • 创建物理机
        • 登录物理机
        • 部署应用环境
        • 释放物理机
        • 用户指南
        • 实例
        • 创建物理机
        • 创建指南
        • 通过私有镜像创建物理机
        • 批量设置有序的实例名称或主机名称
        • 查看物理机信息
        • 登录物理机
        • 登录方式概述
        • 登录Linux物理机
        • 登录Windows物理机
        • 管理物理机
        • 物理机开机/关机/重启操作
        • 物理机重装操作系统
        • 物理机重置密码操作
        • 物理机实例名称修改操作
        • 物理机续订/释放操作
        • GPU驱动安装说明
        • Ubuntu操作系统安装NVIDIA GPU驱动
        • CentOS操作系统安装NVIDIA GPU驱动
        • 镜像
        • 通过物理机创建系统盘私有镜像
        • 通过镜像文件制作系统盘私有镜像
        • 功能说明
        • 制作镜像文件
        • 概述
        • 准备环境
        • 制作系统盘私有镜像
        • 类CTyunOS私有镜像制作
        • 类Ubuntu私有镜像制作
        • Windows私有镜像制作
        • 镜像格式转换及分区文件生成
        • 常用GPU镜像-关闭及禁用防火墙操作文档
        • 磁盘
        • 磁盘类型概述与挂载/卸载/扩容
        • 初始化数据盘
        • 初始化数据盘场景及磁盘分区形式介绍
        • 初始化Windows数据盘(Windows 2019)
        • 初始化Linux数据盘(fdisk)
        • 初始化Linux数据盘(parted)
        • 容量大于2TB,初始化Linux数据盘(parted)
        • 容量大于2TB,初始化Windows数据盘(Windows 2012)
        • 配置RAID
        • 云盘随实例释放
        • 网络
        • 弹性IP
        • 弹性IP概述
        • 绑定弹性IP
        • 解绑弹性IP
        • 修改弹性IP的带宽
        • 虚拟私有云
        • 虚拟私有云概述
        • 绑定虚拟IP至物理机
        • 修改私有IP地址
        • 安全
        • 创建和管理企业项目
        • 统一身份认证IAM
        • 统一身份认证IAM介绍
        • 通过IAM用户控制资源访问
        • 资源位置与调整资源配额
        • API参考
        • API使用说明
        • 最佳实践
        • 物理机监控最佳实践
        • 介绍说明
        • 物理机面板查看
        • 云监控面板查看
        • 创建告警规则
        • 弹性裸金属ORACLE RAC搭建最佳实践
        • 介绍说明
        • 资源规划
        • 资源创建
        • 云网络资源创建
        • 云硬盘资源创建
        • 物理机资源创建
        • Oracle软件配置安装
        • 系统环境配置
        • Oracle RAC安装前准备
        • Oracle Grid集群管理软件安装
        • 使用ASMCA配置数据盘分组
        • Oracle Database软件安装
        • Oracle数据库初始化
        • 智算场景NVIDIA GPU镜像组件的安装指南
        • 物理机搭建DeepSeek指南
        • 昇腾 910B 物理机使用Galaxy镜像部署DeepSeek指南(单机版)
        • 昇腾 910B 物理机使用Galaxy镜像部署DeepSeek指南(多机版)
        • 昇腾 910B 物理机使用Galaxy镜像嵌入式模型部署指南
        • NVIDIA GPU物理机使用Galaxy镜像部署DeepSeek指南(单机版)
        • NVIDIA GPU 物理机使用Galaxy镜像部署DeepSeek指南(多机版)
        • 昇腾 910B 物理机通过benchmark测试推理性能的操作指南
        • NVIDIA GPU A800(80G)物理机双机部署指南
        • 通过EvalScope测试推理性能的操作指南
        • 昇腾 910B 物理机部署Qwen3指南(单机版)
        • 昇腾 910B 物理机大EP推理方案部署指南
        • 昇腾 910B 物理机部署MinerU2.1指南
        • Linux mdadm 软RAID阵列创建与管理指南
        • Linux LVM 镜像逻辑卷创建与故障恢复指南
        • CUDA Samples 编译指导
        • NVIDIA GPU 物理机常见问题处理指南
        • 常见问题
        • 通用类
        • 实例类
        • 计费类
        • 密码类
        • 登录类
        • 网络和安全类
        • 磁盘类
        • 操作系统类
        • 故障排除
        • Linux系统常见启动问题
        • Linux系统启动时,Grub报错找不到设备
        • Linux系统启动时,dracut报错某分区找不到,无法系统并进入紧急模式
        • Linux系统启动时,报错无法挂载根分区
        • 用户升级CentOS系统内核后,无法连接服务器
        • 修改SSH端口后,无法通过SSH远程连接服务器
        • 物理机数据盘的分区挂载失败
        • 国产化弹性裸金属网络优化配置
        • 视频专区
        • 文档下载
        • 用户使用手册
        • 相关协议
        • 产品服务协议
        • 产品服务等级协议
        • 关于弹性云主机、物理机产品中麒麟、统信镜像无License使用的声明
          无相关产品

          本页目录

          帮助中心物理机 DPS
          Python调用示例
          更新时间 2023-03-08 17:34:50
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          最近更新时间: 2023-03-08 17:34:50
          分享文章
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          #!/usr/bin/env python
          # -*- coding: utf8 -*-
          import urllib
          import requests
          import json
          import hashlib
          import base64
          import hmac
          import datetime
          import uuid
          import sys
          
          file = False
          if sys.version_info.major == 2:
              from urllib import quote
              VERSION = '2'
          else:
              VERSION = '3'
              from urllib.parse import quote
          
          METHOD_GET = 'GET'
          METHOD_POST = 'POST'
          AK = '#######'
          SK = '#######'
          
          DOMAIN = 'https://ebm-global.ctapi.ctyun.cn'
          
          PARAMS = {
              'regionID': '200000001704',  # 资源池id
              'azName': 'cn-gx-nn23-gxnn1A-public-ctcloud',
          }
          
          def hmac_sha256(secret, data):
              if type(secret) == bytes:
                  secret = bytearray(secret)
              else:
                  secret = bytearray(secret, 'utf8')
              data = bytearray(data, 'utf8')
              return hmac.new(secret, data, digestmod=hashlib.sha256).digest()
          
          
          def base64_of_hmac(data):
              return base64.b64encode(data)
          
          
          def get_request_uuid():
              return str(uuid.uuid1())
          
          
          def get_sorted_str(data, method):
              """
              鉴权用的参数整理
              :param data: dict 需要整理的参数
              :return: str
              """
              sorted_data = sorted(data.items(), key=lambda item: item[0])
              str_list = map(lambda x_y: '%s=%s' % (x_y[0], x_y[1]), sorted_data)
              return '&'.join(str_list)
          
          
          def build_sign(query_params, body_params, eop_date, request_uuid, method):
              """
              计算鉴权字段
              :param query_params: dict get请求中的参数
              :param body_params: dict post请求中的参数
              :param eop_date: str 请求时间,格式为:'%Y%m%dT%H%M%SZ'
              :return: str
              """
              body_str = ""
              if not file:
                  body_str = json.dumps(body_params) if body_params else ''
              if method == METHOD_POST:
                  if file:
                      body_digest = hashlib.sha256(body_params).hexdigest()
                      # print ('body_params               +'+body_params+'                  body_params')
                      # print ('body_digest               +'+body_digest+'                  body_digest')
                  else:
                      if isinstance(body_params, dict):
                          body_digest = hashlib.sha256(json.dumps(body_params).encode('utf-8')).hexdigest()
                      else:
                          body_digest = hashlib.sha256(body_params.encode('utf-8')).hexdigest()
              else:
                  body_digest = hashlib.sha256(body_str.encode('utf-8')).hexdigest()
              # 请求头中必要的两个参数
              header_str = 'ctyun-eop-request-id:%s\neop-date:%s\n' % (request_uuid, eop_date)
              # url中的参数,或get参数
              query_str = encodeQueryStr(get_sorted_str(query_params, method))
              signature_str = '%s\n%s\n%s' % (header_str, query_str, body_digest)
              print_log(repr('signature_str is: %s' % signature_str))
              sign_date = eop_date.split('T')[0]
          
              # 计算鉴权密钥
              k_time = hmac_sha256(SK, eop_date)
              k_ak = hmac_sha256(k_time, AK)
              k_date = hmac_sha256(k_ak, sign_date)
          
              signature_base64 = base64_of_hmac(hmac_sha256(k_date, signature_str))
              # 构建请求头的鉴权字段值
              sign_header = '%s Headers=ctyun-eop-request-id;eop-date Signature=%s' % (AK, signature_base64.decode('utf8'))
              print("sign_header             :" + sign_header)
              return sign_header.encode('utf8')
          
          
          def get_sign_headers(query_params, body, method, content_type):
              """
              获取鉴权用的请求头参数
              :param query_params: dict get请求中的参数
              :param body: dict post请求中的参数
              :return:
              """
              now = datetime.datetime.now()
              eop_date = datetime.datetime.strftime(now, '%Y%m%dT%H%M%SZ')
              request_uuid = get_request_uuid()
              headers = {  # 三个鉴权用的参数
                  'Content-type': content_type,
                  'ctyun-eop-request-id': request_uuid,
                  'Eop-Authorization': build_sign(query_params=query_params, body_params=body, eop_date=eop_date,
                                                  request_uuid=request_uuid, method=method),
                  'Eop-date': eop_date,
              }
              return headers
          
          
          def get(url, query="", params=None, header_params=None):
              return execute(url, query, method=METHOD_GET, params=params, header_params=header_params)
          
          
          def post(url,query="", params=None, header_params=None, content_type='application/json;charset=UTF-8'):
              return execute(url,query, method=METHOD_POST, params=params, header_params=header_params,
                             content_type=content_type)
          
          
          def execute(url, query, method, params=None, header_params=None, content_type='application/json;charset=UTF-8'):
              if 'application/x-www-form-urlencoded' in content_type:
                  if VERSION == '2':
                      params = urllib.urlencode(params)
                  else:
                      params = urllib.parse.urlencode(params)
              params = params or {}
              header_params = header_params or {}
              if method == METHOD_GET:
                  query_params, body = (params, {})
              else:
                  query_params = {}
                  if len(query) > 0:
                      for q in query.split('&'):
                          query_params[q.split("=")[0]] = q.split("=")[1]
                  body = params
              headers = get_sign_headers(query_params, body, method, content_type)
              headers.update(header_params)
              headers.update(
                  {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/110.0"}
              )
          
              url = url + "?" + encodeQueryStr(query)
              print_log('url: %s' % url)
              print_log('请求方式: %s' % method)
              print_log('请求头:\n %s' % headers)
              print_log('请求参数:\n %s' % params)
              print_log('请求参数类型:\n %s' % type(params))
              requests.packages.urllib3.disable_warnings()
              if method == METHOD_GET:
                  res = requests.get(url, params=params, headers=headers, verify=False)
              else:
                  if 'application/x-www-form-urlencoded' in content_type:
                      res = requests.post(url, data=params, headers=headers, verify=False)
                  elif 'multipart/form-data' in content_type:
                      res = requests.post(url, data=params, headers=headers, verify=False)
                  else:
                      res = requests.post(url, json=params, headers=headers, verify=False)
          
              print_log('返回状态码: %s' % res.status_code)
              print_log('返回: %s' % res.json())
              return res
          
          def print_log(log_info):
              now = datetime.datetime.now()
              log_info = '[%s]: %s' % (str(now), log_info)
              print(log_info)
          
          def encodeQueryStr(query):
              afterQuery = ""
              if (len(query) != 0):
                  param = query.split("&")
                  param.sort()
                  for str in param:
                      if (len(afterQuery) < 1):
                          s = str.split("=")
                          if (len(s) <= 2):
                              encodeStr = quote(s[1])
                              str = s[0] + "=" + encodeStr
                              afterQuery = afterQuery + str
                          else:
                              encodeStr = ""
                              str = s[0] + "=" + encodeStr
                              afterQuery = afterQuery + str
                      else:
                          s = str.split("=")
                          if (len(s) >= 2):
                              encodeStr = quote(s[1])
                              str = s[0] + "=" + encodeStr
                              afterQuery = afterQuery + "&" + str
                          else:
                              encodeStr = ""
                              str = s[0] + "=" + encodeStr
                              afterQuery = afterQuery + "&" + str
          
              return afterQuery
          
          ### BaseGet
          def doBaseGet(uri, params={}, header_params=None):
              url = DOMAIN + uri
              params.update(PARAMS)
              get(url, params=params, header_params=header_params)
          
          
          ###DeviceTypeList
          def doDeviceTypeList():
              print_log('doDeviceTypeList')
              uri = '/v4/ebm/device-type-list'
              params = {}
              doBaseGet(uri, params=params, header_params=None)
           
          doDeviceTypeList()
          
          文档反馈

          建议您登录后反馈,可在建议与反馈里查看问题处理进度

          鼠标选中文档,精准反馈问题

          选中存在疑惑的内容,即可快速反馈问题,我们会跟进处理

          知道了

          搜索 关闭
          ©2026 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
          公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
          备案 京公网安备11010802043424号 京ICP备 2021034386号
          ©2026天翼云科技有限公司版权所有
          京ICP备 2021034386号
          备案 京公网安备11010802043424号
          增值电信业务经营许可证A2.B1.B2-20090001
          用户协议 隐私政策 法律声明