本 skill 实现从竞品(阿里云/华为云)配置清单自动对标生成腾讯云报价单的完整能力。覆盖 CVM 云服务器、CBS 云硬盘、CLB 负载均衡、EIP 弹性公网 IP、COS 对象存储、MySQL、Redis、安全产品、大数据产品等全品类,所有价格均基于腾讯云官方 API 验证或官方文档确认。
支持的竞品来源:
ecs. 开头s/c/m/r/e 等华为云系列前缀开头用户提供竞品(阿里云或华为云)的应用清单 Excel 文件,通常包含以下信息:
脚本会自动检测竞品来源并选择对应的机型映射逻辑。
使用 pandas 读取 Excel:
import pandas as pd
df_ecs = pd.read_excel(input_file, sheet_name='ECS')
df_app = pd.read_excel(input_file, sheet_name='应用')
阿里云机型映射规则:
| 阿里云实例规格族 | 腾讯云对标机型 | 说明 |
|---|---|---|
| :--- | :--- | :--- |
| 通用型(ecs.g系列等) | SA9 标准型 | AMD EPYC Turin,通用场景 |
| 共享型(ecs.u1系列) | BF1 蜂驰型 | 高性价比,适合轻量负载 |
| 共享型 u1(8核64G配比) | MA9 内存型 | 1:8 高内存配比场景 |
| 高主频型(ecs.hfr系列) | MA9 内存型 | AMD EPYC Turin-Dense |
华为云机型映射规则:
> 华为云规格族命名: {系列前缀}{代次}.{规格大小}.{内存配比},如 c6.2xlarge.4(计算增强型第6代 8核32G)。系列前缀决定映射目标。
| 华为云规格族系列 | 腾讯云对标机型 | fallback | 说明 |
|---|---|---|---|
| :--- | :--- | :--- | :--- |
| s 系列(通用计算型,如 s7, s6) | SA9 标准型 | SA9 → BF1 | 通用场景,SA9 不可用时降级 BF1 |
| c 系列(通用计算增强型,如 c7, c6) | SA9 标准型 | SA9 → BF1 | 计算密集场景 |
| m/r/e 系列(内存优化型,如 m7, r6) | MA9 内存型 | 固定 MA9 | 内存密集场景 |
| t 系列(突发性能型) | BF1 蜂驰型 | 固定 BF1 | 轻量负载 |
| d/i 系列(存储密集/超高IO型) | SA9 标准型 | SA9 → BF1 | 存储密集场景 |
> 华为云 fallback 机制: 当首选机型(如 SA9)在目标地域通过 API 查询不可用时,自动降级到 fallback 列表中的下一个机型(如 BF1)。此 fallback 仅对华为云来源生效,阿里云来源的机型映射逻辑保持固定不变。
定价模型(通过 InquiryPriceRunInstances API 验证):
> 重要:以下单价必须从腾讯云官方 API(InquiryPriceRunInstances)或官方定价页面验证,严禁使用第三方网站价格。
> ⚠️ 地域差异警告:以下线性公式仅在上海/北京地域验证为0误差。广州、香港等其他地域的 CVM 定价与上海不同,必须通过 InquiryPriceRunInstances API 实时查询目标地域的实际价格。特别是 BF1 蜂驰型,地域价差可达 +36%(香港)或 -10%(广州)。
| 机型 | CPU单价(元/核/月) | 内存单价(元/G/月) | 验证方式 | 适用地域 |
|---|---|---|---|---|
| :--- | :--- | :--- | :--- | :--- |
| SA9 | 34.2 | 17.1 | API验证7个配置0误差 | 上海/北京 |
| BF1 | 28.8 | 14.4 | API验证(ap-shanghai-5) | 仅上海/北京 |
| MA9 | 34.2 | 12.317 | API精确值反推,误差<0.03元 | 上海/北京 |
> 广州/香港等地域: 上述公式不适用,必须通过 API 查询。已知差异示例:广州 BF1.2XLARGE32 纯实例价 622.08(上海为 691.2,低 10%),香港 BF1.2XLARGE32 纯实例价 937.44(上海为 691.2,高 36%)。
MA9 优先使用 API 精确价格表:
| 配置 | API精确价格(元/月) |
|---|---|
| :--- | :--- |
| MA9.MEDIUM16 (2核16G) | 265.47 |
| MA9.LARGE32 (4核32G) | 530.93 |
| MA9.2XLARGE64 (8核64G) | 1061.87 |
| MA9.4XLARGE128 (16核128G) | 2123.73 |
实例规格命名规则:
MEDIUM=2核, LARGE=4核, 2XLARGE=8核, 4XLARGE=16核, 8XLARGE=32核
格式: {机型}.{CPU前缀}{内存GB}
示例: SA9.LARGE16 = SA9 4核16G
CVM 定价流程(API 优先):
> 核心原则: 当环境变量中存在 TENCENTCLOUD_SECRET_ID / TENCENTCLOUD_SECRET_KEY 时,必须优先通过 InquiryPriceRunInstances API 查询每个 CVM 配置在目标地域的实际刊例价(含系统盘和数据盘)。仅当 API 不可用时,才退化使用以下线性公式估算,并在输出中标注"估算值,未经API验证"。对于非上海/北京地域,禁止使用线性公式,必须 API 查询。
兜底计算公式(仅限上海/北京地域 API 不可用时):
def calc_cvm_price(cpu, mem, model):
if model == 'SA9':
return cpu * 34.2 + mem * 17.1
elif model == 'BF1':
return cpu * 28.8 + mem * 14.4
elif model == 'MA9':
# 优先使用API精确价格
api_prices = {(2,16): 265.47, (4,32): 530.93, (8,64): 1061.87, (16,128): 2123.73}
if (cpu, mem) in api_prices:
return api_prices[(cpu, mem)]
return cpu * 34.2 + mem * 12.317
磁盘类型对标规则:
> ⚠️ 地域差异警告:以下磁盘单价适用于中国内地地域(上海、广州、北京等)。境外地域(香港、新加坡等)单价不同,必须通过 InquiryPriceRunInstances(含磁盘参数)或 InquiryPriceCreateDisks API 查询。已知香港地域差异:CLOUD_BSSD=0.75、CLOUD_SSD=1.1、CLOUD_HSSD=1.5(均为元/GiB/月)。
| 阿里云磁盘类型 | 腾讯云对标类型 | 内地单价(元/GiB/月) | 香港单价(元/GiB/月) | 来源 |
|---|---|---|---|---|
| :--- | :--- | :--- | :--- | :--- |
| ESSD Entry | 通用型SSD云硬盘 (CLOUD_BSSD) | 0.5 | 0.75 | API验证 |
| ESSD PL0 | 通用型SSD云硬盘 (CLOUD_BSSD) | 0.5 | 0.75 | API验证 |
| ESSD PL1 | SSD云硬盘 (CLOUD_SSD) | 1.0 | 1.1 | API验证 |
| ESSD PL2+ (≤600G) | SSD云硬盘 (CLOUD_SSD) | 1.0 | 1.1 | API验证 |
| ESSD PL2+ (>600G) | 增强型SSD云硬盘 (CLOUD_HSSD) | 1.0 | 1.5 | API验证 |
| 高效云盘 | 高性能云硬盘 (CLOUD_PREMIUM) | 0.35 | 0.35 | API验证 |
官方文档参考: cloud.tencent.com/document/product/362/2413
阶梯计费模型(包月,上海地域):
| 带宽范围 | 单价(元/Mbps/月) | 来源 |
|---|---|---|
| :--- | :--- | :--- |
| ≤2M | 20 | InquiryPriceRunInstances API BandwidthPrice 验证 |
| 3-5M | 25 | API验证 |
| >5M | 90 | API验证 |
def calc_bandwidth_monthly(mbps):
if mbps <= 0: return 0
if mbps <= 2: return mbps * 20
elif mbps <= 5: return 2 * 20 + (mbps - 2) * 25
else: return 2 * 20 + 3 * 25 + (mbps - 5) * 90
计算示例:
| 项目 | 值 | 来源 |
|---|---|---|
| :--- | :--- | :--- |
| 实例费(共享型,包月) | 144 元/月 | 文档 buy-guide/214/8848 |
| LCU费 | 按实际用量另计 | - |
> 以下价格均需从腾讯云官方文档或 API 获取,不得使用第三方价格。
| 阿里云产品 | 腾讯云对标 | 规格 | 刊例价(元/月) | 价格来源 |
|---|---|---|---|---|
| :--- | :--- | :--- | :--- | :--- |
| OSS对象存储 | COS对象存储 | 标准存储 10TB | 1,208.32 | 0.118元/GB/月 (文档 product/436/6239) |
| 云安全中心(企业版) | 主机安全(云镜)旗舰版 | 12台+日志600GB | 2,460 | 授权180元/台+日志0.5元/GB (文档 product/296/50497) |
| RDS MySQL | TencentDB for MySQL | 8核32G+1000GB HA | 3,984 | DescribeDBPrice API 精确验证 |
| Redis集群版 | TencentDB for Redis | 64GB(8×8GB×2节点) | 5,376 | 42元/GB×8GB×2×8 (官方计费文档) |
| 实时数仓Hologres | 云数据仓库TCHouse-D | 按集群配置 | 按需计算 | 文档 product/1387/52627 |
| 云原生数据仓库AnalyticDB(ADB) | 云数据仓库TCHouse-D | 按集群配置 | 按需计算 | 文档 product/1387/52627 |
| E-MapReduce(EMR) | 弹性MapReduce(EMR) | 按集群节点配置 | 按需计算 | 文档 product/589/19098 |
| DataWorks | WeData | 专业版+基础调度 | 5,790 | 专业版4800+调度990 |
| MaxCompute | DLC数据湖计算 | 独享引擎64CU | 9,600 | 150元/CU/月 (文档 product/1342/50371) |
| SLS日志 | CLS日志服务 | 1000U资源包 | 1,000 | 3000元/3个月÷3 (文档 product/614/45803) |
| 堡垒机 | 堡垒机(BH)基础版 | 50资产 | 3,000 | 文档 product/1025/55176 |
| 数据库审计 | DSAudit基础版 | 3个数据资产 | 3,800 | 官方报价 |
| NAT网关 | NAT网关(标准型) | 按量 | 165.6 | 实例费0.23元/h×720h (文档 product/552/18172) |
运行 scripts/generate_quote.py 脚本生成格式化的 Excel 报价单。
使用方式:
python3 {{SKILL_PATH}}/scripts/generate_quote.py <竞品清单路径> <输出路径> [地域]
参数说明:
<竞品清单路径>:竞品(阿里云或华为云)应用清单 Excel 文件(需包含 ECS 和应用 sheet)<输出路径>:输出报价单 xlsx 文件路径[地域]:可选,默认为 "上海"。如果需求中指定了地域则使用指定地域,没有指定则默认上海Logo:
输出报价单的标题行固定显示腾讯云官方 logo(自动从 COS 下载:https://test-wanxiang-1253451316.cos.ap-shanghai.myqcloud.com/logo_gem_1.jpg),无需手动指定。logo 缩放至高度 60px 放在标题行左侧,标题文字居中。
竞品来源自动检测:
ecs. 开头s/c/m/r/e 等华为云系列前缀开头输出报价单包含列:
序号、{竞品}产品、{竞品}规格、腾讯云产品、腾讯云机型、腾讯云规格、配置详情、地域、数量、实例刊例价(元/月)、磁盘刊例价(元/月)、单台合计(元/月)、小计(元/月)、备注、价格计算说明
> 注意: 输出报价单中的"地域"列为必填字段。如果输入清单中有"地域"列则使用清单指定的地域,否则使用命令行参数指定的地域(默认上海)。每一行数据都必须包含地域信息。
生成报价单后,必须通过以下方式验证关键价格的准确性:
InquiryPriceRunInstances API 验证所有 CVM 配置(含系统盘+数据盘),而非抽验InquiryPriceCreateDisks API 或差分法验证磁盘单价,境外地域单价可能不同DescribeDBPrice API 验证> 价格验证原则:所有价格必须可追溯到腾讯云官方 API 返回值或官方文档页面。CVM 价格应通过 InquiryPriceRunInstances API 在目标地域含系统盘+数据盘一起查询,确保总价口径一致。发现价格变动时,应更新 references/pricing-model.md 中的定价模型。
> 核心原则:获取价格时,必须严格遵守以下优先级顺序。严禁使用第三方网站价格。
优先级 1:腾讯云官方价格查询 API
对于有官方询价 API 的产品,必须优先通过 API 获取价格。API 返回的刊例价为最权威来源。
> ⚠️ 重要:InquiryPrice 接口同时返回"刊例价"和"官网折扣价",必须两个都用
>
> 报价场景常被要求"官网折扣价"。严禁自行套用通用折扣口径(如"1年8.3折、3年5折"),因为腾讯云不同产品/不同周期的实际折扣差异极大(实测 CVM 包 3 年约 4.2 折,而非 5 折)。正确做法是直接读接口返回字段:
>
> | 产品 | 接口 | 刊例价字段 | 官网折扣价字段 | 单位 |
> |:---|:---|:---|:---|:---|
> | CVM | InquiryPriceRunInstances | Price.InstancePrice.OriginalPrice | Price.InstancePrice.DiscountPrice | 元(直接是元) |
> | CDB/MySQL | DescribeDBPrice | OriginalPrice | Price | 分(÷100 转元) |
> | Redis | InquiryPriceCreateInstance | (无原价字段,需按月单价×期数推算) | Price | 分(÷100 转元) |
> | CLB | InquiryPriceCreateLoadBalancer | Price.InstancePrice.OriginalPrice + Price.BandwidthPrice.OriginalPrice | 对应的 DiscountPrice | 元 |
>
> 调用包年时传 Period=12,包 3 年传 Period=36。CLB 包 3 年部分场景接口未返折扣(OriginalPrice == DiscountPrice),此时需在备注中标明、商务再议。
>
> 对于无询价接口的产品(COS/EIP/CDN/TSE/ES 等),才退回到按月单价×周期 + 公开折扣口径(1年8.3折/3年5折)估算,并在报价单中明确标注"[估算]"以区分。
| 产品 | API 名称 | API 文档链接 | 请求域名 |
|---|---|---|---|
| :--- | :--- | :--- | :--- |
| CVM 云服务器 | InquiryPriceRunInstances | cloud.tencent.com/document/product/213/15726 | cvm.tencentcloudapi.com |
| CBS 云硬盘 | InquiryPriceCreateDisks | cloud.tencent.com/document/api/362/16314 | cbs.tencentcloudapi.com |
| MySQL | DescribeDBPrice | cloud.tencent.com/document/api/236/18566 | cdb.tencentcloudapi.com |
| Redis | InquiryPriceCreateInstance | cloud.tencent.com/document/api/239/41159 | redis.tencentcloudapi.com |
| CVM 带宽 | InquiryPriceRunInstances (BandwidthPrice) | cloud.tencent.com/document/product/213/15726 | cvm.tencentcloudapi.com |
| CVM 调整配置 | InquiryPriceResetInstancesType | cloud.tencent.com/document/product/213/15744 | cvm.tencentcloudapi.com |
| CBS 扩容询价 | InquiryPriceResizeDisk | cloud.tencent.com/document/product/362/16320 | cbs.tencentcloudapi.com |
| TDSQL-C MySQL | InquirePriceCreate | cloud.tencent.com/document/product/1003/77738 | cynosdb.tencentcloudapi.com |
| TDSQL MySQL分布式 | DescribeDCDBPrice | cloud.tencent.com/document/product/557/16131 | dcdb.tencentcloudapi.com |
优先级 2:腾讯云官方文档(产品定价/计费概述页面)
对于没有询价 API 的产品,从官方文档的定价或计费概述页面获取价格。
| 产品 | 官方定价文档链接 |
|---|---|
| :--- | :--- |
| CBS 云硬盘价格总览 | cloud.tencent.com/document/product/362/2413 |
| CLB 负载均衡购买指南 | cloud.tencent.com/document/buy-guide/214/8848 |
| COS 对象存储定价 | cloud.tencent.com/document/product/436/6239 |
| 主机安全(云镜)购买指南 | cloud.tencent.com/document/product/296/50497 |
| 堡垒机(BH)购买指南 | cloud.tencent.com/document/product/1025/55176 |
| DLC 数据湖计算计费概述 | cloud.tencent.com/document/product/1342/50371 |
| CLS 日志服务计费概述 | cloud.tencent.com/document/product/614/45803 |
| NAT 网关计费概述 | cloud.tencent.com/document/product/552/18172 |
| EIP 弹性公网IP计费 | cloud.tencent.com/document/product/1199/51694 |
| TCHouse-D 数据仓库计费概述 | cloud.tencent.com/document/product/1387/52627 |
| 弹性MapReduce(EMR) 计费概述 | cloud.tencent.com/document/product/589/19098 |
优先级 3:腾讯云官方购买页面
对于文档中也无法获取的价格,可通过购买页面的价格计算器确认。
| 产品 | 购买/定价页面 |
|---|---|
| :--- | :--- |
| 腾讯云通用价格计算器 | buy.cloud.tencent.com/price |
| CVM 购买页 | buy.cloud.tencent.com/cvm |
| CBS 购买页 | buy.cloud.tencent.com/cbs |
| MySQL 购买页 | buy.cloud.tencent.com/cdb |
| Redis 购买页 | buy.cloud.tencent.com/redis |
| TCHouse-D 定价页 | buy.cloud.tencent.com/price/cdwdoris/overview |
| EMR 定价页 | buy.cloud.tencent.com/emr |
API 调用需要腾讯云 SecretId/SecretKey,从环境变量获取:
import os
secret_id = os.environ.get("TENCENTCLOUD_SECRET_ID")
secret_key = os.environ.get("TENCENTCLOUD_SECRET_KEY")
generate_quote.py — 完整的报价单生成脚本,读取阿里云清单并输出腾讯云报价 Excelpricing-model.md — 详细的定价模型文档,包含所有产品的定价公式、API 验证记录、官方文档链接共 1 个版本