forked from wangqifan/calc
258 lines
14 KiB
Python
258 lines
14 KiB
Python
import os
|
||
from dotenv import load_dotenv
|
||
|
||
# 加载环境变量
|
||
load_dotenv()
|
||
|
||
# AWS EBS定价(GP3)
|
||
AWS_PRICING_EBS = {
|
||
"us-east-1": 0.08,
|
||
"us-east-2": 0.08,
|
||
"us-west-1": 0.096,
|
||
"us-west-2": 0.08,
|
||
"af-south-1": 0.1047,
|
||
"ap-east-1": 0.1056,
|
||
"ap-south-1": 0.0912,
|
||
"ap-northeast-3": 0.096,
|
||
"ap-northeast-2": 0.0912,
|
||
"ap-southeast-1": 0.096,
|
||
"ap-southeast-2": 0.096,
|
||
"ap-northeast-1": 0.096,
|
||
"ca-central-1": 0.088,
|
||
"eu-central-1": 0.0952,
|
||
"eu-west-1": 0.088,
|
||
"eu-west-2": 0.0928,
|
||
"eu-west-3": 0.0928,
|
||
"eu-north-1": 0.0836,
|
||
"me-central-1": 0.0968,
|
||
"sa-east-1": 0.152,
|
||
}
|
||
|
||
# 区域中文名称映射
|
||
AWS_REGION_NAMES = {
|
||
"Asia Pacific (Malaysia)":"区域:亚太地区(马来西亚)",
|
||
"Asia Pacific (Taipei)":"区域:亚太地区(台北)",
|
||
"Asia Pacific (Thailand)":"区域:亚太地区(泰国)",
|
||
"Mexico (Central)":"区域:墨西哥(中部)",
|
||
"Africa (Cape Town)":"区域:非洲(开普敦)",
|
||
"Asia Pacific (Hong Kong)":"区域:亚太地区(香港)",
|
||
"Asia Pacific (Hyderabad)":"区域:亚太地区(海得拉巴)",
|
||
"Asia Pacific (Jakarta)":"区域:亚太地区(雅加达)",
|
||
"Asia Pacific (Melbourne)":"区域:亚太地区(墨尔本)",
|
||
"Asia Pacific (Osaka)":"区域:亚太地区(大阪)",
|
||
"Canada West (Calgary)":"区域:加拿大西部(卡尔加里)",
|
||
"EU (Milan)":"区域:欧洲地区(米兰)",
|
||
"EU (Spain)":"区域:欧洲(西班牙)",
|
||
"EU (Stockholm)":"区域:欧洲地区(斯德哥尔摩)",
|
||
"EU (Zurich)":"区域:欧洲(苏黎世)",
|
||
"Israel (Tel Aviv)":"区域:以色列(特拉维夫)",
|
||
"Middle East (Bahrain)":"区域:中东(巴林)",
|
||
"Middle East (UAE)":"区域:中东(阿联酋)",
|
||
"US West (N. California)":"区域:美国西部(北加利福尼亚)",
|
||
"Argentina (Buenos Aires)":"本地区域:阿根廷(布宜诺斯艾利斯)",
|
||
"Asia Pacific (KDDI) - Osaka":"运营商区域:亚太地区(KDDI)– 大阪",
|
||
"Asia Pacific (KDDI) - Tokyo":"运营商区域:亚太地区(KDDI)– 东京",
|
||
"Asia Pacific (SKT) - Daejeon":"运营商区域:亚太地区(SKT)– 大田",
|
||
"Asia Pacific (SKT) - Seoul":"运营商区域:亚太地区(SKT)– 首尔",
|
||
"Australia (Perth)":"本地区域:澳大利亚(珀斯)",
|
||
"Canada (BELL) - Toronto":"运营商区域:加拿大(BELL)– 多伦多",
|
||
"Chile (Santiago)":"本地区域:智利(圣地亚哥)",
|
||
"Denmark (Copenhagen)":"本地区域:丹麦(哥本哈根)",
|
||
"EU (British Telecom) - Manchester":"运营商区域:欧洲(英国电信)- 曼彻斯特",
|
||
"EU (Vodafone) - Berlin":"运营商区域:欧洲(Vodafone)– 柏林",
|
||
"EU (Vodafone) - Dortmund":"运营商区域:欧洲(Vodafone)– 多特蒙德",
|
||
"EU (Vodafone) - London":"运营商区域:欧洲(Vodafone)– 伦敦",
|
||
"EU (Vodafone) - Manchester":"运营商区域:欧洲(Vodafone)– 曼彻斯特",
|
||
"EU (Vodafone) - Munich":"运营商区域:欧洲(Vodafone)– 慕尼黑",
|
||
"Finland (Helsinki)":"本地区域:芬兰(赫尔辛基)",
|
||
"Germany (Hamburg)":"本地区域:德国(汉堡)",
|
||
"India (Delhi)":"本地区域:印度(德里)",
|
||
"India (Kolkata)":"本地区域:印度(加尔各答)",
|
||
"Mexico (Queretaro)":"本地区域:墨西哥(克雷塔罗)",
|
||
"Morocco (Casablanca)":"运营商区域:摩洛哥(卡萨布兰卡)",
|
||
"New Zealand (Auckland)":"本地区域:新西兰(奥克兰)",
|
||
"Nigeria (Lagos)":"本地区域:尼日利亚(拉各斯)",
|
||
"Oman (Muscat)":"本地区域:阿曼(马斯喀特)",
|
||
"Peru (Lima)":"本地区域:秘鲁(利马)",
|
||
"Philippines (Manila)":"本地区域:菲律宾(马尼拉)",
|
||
"Poland (Warsaw)":"本地区域:波兰(华沙)",
|
||
"Senegal (Dakar)":"运营商区域:塞内加尔(达喀尔)",
|
||
"Taiwan (Taipei)":"本地区域:台湾(台北)",
|
||
"Thailand (Bangkok)":"本地区域:泰国(曼谷)",
|
||
"US East (Atlanta)":"本地区域:美国东部(亚特兰大)",
|
||
"US East (Boston)":"本地区域:美国东部(波士顿)",
|
||
"US East (Chicago)":"本地区域:美国东部(芝加哥)",
|
||
"US East (Dallas)":"本地区域:美国东部(达拉斯)",
|
||
"US East (Houston)":"本地区域:美国东部(休斯顿)",
|
||
"US East (Kansas City 2)":"本地区域:美国东部(堪萨斯城 2)",
|
||
"US East (Lenexa)":"运营商区域:美国东部(列涅萨)",
|
||
"US East (Miami)":"本地区域:美国东部(迈阿密)",
|
||
"US East (Minneapolis)":"本地区域:美国东部(明尼阿波利斯)",
|
||
"US East (New York City)":"本地区域:美国东部(纽约市)",
|
||
"US East (Philadelphia)":"本地区域:美国东部(费城)",
|
||
"US East (Verizon) - Atlanta":"运营商区域:美国东部(威瑞森)– 亚特兰大",
|
||
"US East (Verizon) - Boston":"运营商区域:美国东部(威瑞森)– 波士顿",
|
||
"US East (Verizon) - Charlotte":"运营商区域:美国东部(威瑞森)– 夏洛特",
|
||
"US East (Verizon) - Chicago":"运营商区域:美国东部(威瑞森)– 芝加哥",
|
||
"US East (Verizon) - Dallas":"运营商区域:美国东部(威瑞森)– 达拉斯",
|
||
"US East (Verizon) - Detroit":"运营商区域:美国东部(威瑞森)– 底特律",
|
||
"US East (Verizon) - Houston":"运营商区域:美国东部(威瑞森)– 休斯顿",
|
||
"US East (Verizon) - Miami":"运营商区域:美国东部(威瑞森)– 迈阿密",
|
||
"US East (Verizon) - Minneapolis":"运营商区域:美国东部(威瑞森)– 明尼阿波利斯",
|
||
"US East (Verizon) - Nashville":"运营商区域:美国东部(威瑞森)- 纳什维尔",
|
||
"US East (Verizon) - New York":"运营商区域:美国东部(威瑞森)– 纽约",
|
||
"US East (Verizon) - Tampa":"运营商区域:美国东部(威瑞森)– 坦帕",
|
||
"US East (Verizon) - Washington DC":"运营商区域:美国东部(威瑞森)– 华盛顿特区",
|
||
"US West (Denver)":"本地区域:美国西部(丹佛)",
|
||
"US West (Honolulu)":"本地区域:美国西部(檀香山)",
|
||
"US West (Las Vegas)":"本地区域:美国西部(拉斯维加斯)",
|
||
"US West (Los Angeles)":"本地区域:美国西部(洛杉矶)",
|
||
"US West (Phoenix)":"本地区域:美国西部(菲尼克斯)",
|
||
"US West (Portland)":"本地区域:美国西部(波特兰)",
|
||
"US West (Seattle)":"本地区域:美国西部(西雅图)",
|
||
"US West (Verizon) - Denver":"运营商区域:美国西部(威瑞森)- 丹佛",
|
||
"US West (Verizon) - Las Vegas":"运营商区域:美国西部(威瑞森)- 拉斯维加斯",
|
||
"US West (Verizon) - Los Angeles":"运营商区域:美国西部(威瑞森)– 洛杉矶",
|
||
"US West (Verizon) - Phoenix":"运营商区域:美国东部(威瑞森)– 凤凰城",
|
||
"US West (Verizon) - San Francisco Bay Area":"运营商区域:美国西部(威瑞森)– 旧金山港湾区",
|
||
"US West (Verizon) - Seattle":"运营商区域:美国西部(威瑞森)- 西雅图",
|
||
"AWS GovCloud (US)":"区域:AWS GovCloud(美国西部)",
|
||
"AWS GovCloud (US-East)":"区域:AWS GovCloud(美国东部)",
|
||
"Asia Pacific (Mumbai)":"区域:亚太地区(孟买)",
|
||
"Asia Pacific (Seoul)":"区域:亚太地区(首尔)",
|
||
"Asia Pacific (Singapore)":"区域:亚太地区(新加坡)",
|
||
"Asia Pacific (Sydney)":"区域:亚太地区(悉尼)",
|
||
"Asia Pacific (Tokyo)":"区域:亚太地区(东京)",
|
||
"Canada (Central)":"区域:加拿大(中部)",
|
||
"EU (Frankfurt)":"区域:欧洲地区(法兰克福)",
|
||
"EU (Ireland)":"区域:欧洲地区(爱尔兰)",
|
||
"EU (London)":"区域:欧洲地区(伦敦)",
|
||
"South America (Sao Paulo)":"区域:南美洲(圣保罗)",
|
||
"US East (N. Virginia)":"区域:美国东部(弗吉尼亚州北部)",
|
||
"US East (Ohio)":"区域:美国东部(俄亥俄州)",
|
||
"US West (Oregon)":"区域:美国西部(俄勒冈州)",
|
||
"EU (Paris)":"区域:欧洲地区(巴黎)"
|
||
}
|
||
|
||
|
||
AWS_REGION_NAMES_EN = {
|
||
"Asia Pacific (Malaysia)":"Asia Pacific (Malaysia)",
|
||
"Asia Pacific (Taipei)":"Asia Pacific (Taipei)",
|
||
"Asia Pacific (Thailand)":"Asia Pacific (Thailand)",
|
||
"Mexico (Central)":"Mexico (Central)",
|
||
"Africa (Cape Town)":"Africa (Cape Town)",
|
||
"Asia Pacific (Hong Kong)":"Asia Pacific (Hong Kong)",
|
||
"Asia Pacific (Hyderabad)":"Asia Pacific (Hyderabad)",
|
||
"Asia Pacific (Jakarta)":"Asia Pacific (Jakarta)",
|
||
"Asia Pacific (Melbourne)":"Asia Pacific (Melbourne)",
|
||
"Asia Pacific (Osaka)":"Asia Pacific (Osaka)",
|
||
"Canada West (Calgary)":"Canada West (Calgary)",
|
||
"EU (Milan)":"EU (Milan)",
|
||
"EU (Spain)":"EU (Spain)",
|
||
"EU (Stockholm)":"EU (Stockholm)",
|
||
"EU (Zurich)":"EU (Zurich)",
|
||
"Israel (Tel Aviv)":"Israel (Tel Aviv)",
|
||
"Middle East (Bahrain)":"Middle East (Bahrain)",
|
||
"Middle East (UAE)":"Middle East (UAE)",
|
||
"US West (N. California)":"US West (N. California)",
|
||
"External":"External",
|
||
"Amazon CloudFront":"Amazon CloudFront",
|
||
"Argentina (Buenos Aires)":"Argentina (Buenos Aires)",
|
||
"Asia Pacific (KDDI) - Osaka":"Asia Pacific (KDDI) - Osaka",
|
||
"Asia Pacific (KDDI) - Tokyo":"Asia Pacific (KDDI) - Tokyo",
|
||
"Asia Pacific (New Zealand)":"Asia Pacific (New Zealand)",
|
||
"Asia Pacific (SKT) - Daejeon":"Asia Pacific (SKT) - Daejeon",
|
||
"Asia Pacific (SKT) - Seoul":"Asia Pacific (SKT) - Seoul",
|
||
"Australia (Perth)":"Australia (Perth)",
|
||
"Canada (BELL) - Toronto":"Canada (BELL) - Toronto",
|
||
"Chile (Santiago)":"Chile (Santiago)",
|
||
"Denmark (Copenhagen)":"Denmark (Copenhagen)",
|
||
"EU (British Telecom) - Manchester":"EU (British Telecom) - Manchester",
|
||
"EU (Vodafone) - Berlin":"EU (Vodafone) - Berlin",
|
||
"EU (Vodafone) - Dortmund":"EU (Vodafone) - Dortmund",
|
||
"EU (Vodafone) - London":"EU (Vodafone) - London",
|
||
"EU (Vodafone) - Manchester":"EU (Vodafone) - Manchester",
|
||
"EU (Vodafone) - Munich":"EU (Vodafone) - Munich",
|
||
"Finland (Helsinki)":"Finland (Helsinki)",
|
||
"Germany (Hamburg)":"Germany (Hamburg)",
|
||
"India (Delhi)":"India (Delhi)",
|
||
"India (Kolkata)":"India (Kolkata)",
|
||
"Mexico (Queretaro)":"Mexico (Queretaro)",
|
||
"Morocco (Casablanca)":"Morocco (Casablanca)",
|
||
"New Zealand (Auckland)":"New Zealand (Auckland)",
|
||
"Nigeria (Lagos)":"Nigeria (Lagos)",
|
||
"Oman (Muscat)":"Oman (Muscat)",
|
||
"Peru (Lima)":"Peru (Lima)",
|
||
"Philippines (Manila)":"Philippines (Manila)",
|
||
"Poland (Warsaw)":"Poland (Warsaw)",
|
||
"SG Government (Singapore)":"SG Government (Singapore)",
|
||
"Senegal (Dakar)":"Senegal (Dakar)",
|
||
"Taiwan (Taipei)":"Taiwan (Taipei)",
|
||
"Thailand (Bangkok)":"Thailand (Bangkok)",
|
||
"US East (Atlanta)":"US East (Atlanta)",
|
||
"US East (Boston)":"US East (Boston)",
|
||
"US East (Chicago)":"US East (Chicago)",
|
||
"US East (Dallas)":"US East (Dallas)",
|
||
"US East (Houston)":"US East (Houston)",
|
||
"US East (Kansas City 2)":"US East (Kansas City 2)",
|
||
"US East (Kansas City)":"US East (Kansas City)",
|
||
"US East (Lenexa)":"US East (Lenexa)",
|
||
"US East (Miami)":"US East (Miami)",
|
||
"US East (Minneapolis)":"US East (Minneapolis)",
|
||
"US East (New York City)":"US East (New York City)",
|
||
"US East (Philadelphia)":"US East (Philadelphia)",
|
||
"US East (South Bend)":"US East (South Bend)",
|
||
"US East (Verizon) - Atlanta":"US East (Verizon) - Atlanta",
|
||
"US East (Verizon) - Boston":"US East (Verizon) - Boston",
|
||
"US East (Verizon) - Charlotte":"US East (Verizon) - Charlotte",
|
||
"US East (Verizon) - Chicago":"US East (Verizon) - Chicago",
|
||
"US East (Verizon) - Dallas":"US East (Verizon) - Dallas",
|
||
"US East (Verizon) - Detroit":"US East (Verizon) - Detroit",
|
||
"US East (Verizon) - Houston":"US East (Verizon) - Houston",
|
||
"US East (Verizon) - Miami":"US East (Verizon) - Miami",
|
||
"US East (Verizon) - Minneapolis":"US East (Verizon) - Minneapolis",
|
||
"US East (Verizon) - Nashville":"US East (Verizon) - Nashville",
|
||
"US East (Verizon) - New York":"US East (Verizon) - New York",
|
||
"US East (Verizon) - Tampa":"US East (Verizon) - Tampa",
|
||
"US East (Verizon) - Washington DC":"US East (Verizon) - Washington DC",
|
||
"US West (Denver)":"US West (Denver)",
|
||
"US West (Honolulu)":"US West (Honolulu)",
|
||
"US West (Las Vegas)":"US West (Las Vegas)",
|
||
"US West (Los Angeles)":"US West (Los Angeles)",
|
||
"US West (Phoenix)":"US West (Phoenix)",
|
||
"US West (Portland)":"US West (Portland)",
|
||
"US West (Seattle)":"US West (Seattle)",
|
||
"US West (Verizon) - Denver":"US West (Verizon) - Denver",
|
||
"US West (Verizon) - Las Vegas":"US West (Verizon) - Las Vegas",
|
||
"US West (Verizon) - Los Angeles":"US West (Verizon) - Los Angeles",
|
||
"US West (Verizon) - Phoenix":"US West (Verizon) - Phoenix",
|
||
"US West (Verizon) - San Francisco Bay Area":"US West (Verizon) - San Francisco Bay Area",
|
||
"US West (Verizon) - Seattle":"US West (Verizon) - Seattle",
|
||
"AWS GovCloud (US)":"AWS GovCloud (US)",
|
||
"AWS GovCloud (US-East)":"AWS GovCloud (US-East)",
|
||
"Asia Pacific (Mumbai)":"Asia Pacific (Mumbai)",
|
||
"Asia Pacific (Seoul)":"Asia Pacific (Seoul)",
|
||
"Asia Pacific (Singapore)":"Asia Pacific (Singapore)",
|
||
"Asia Pacific (Sydney)":"Asia Pacific (Sydney)",
|
||
"Asia Pacific (Tokyo)":"Asia Pacific (Tokyo)",
|
||
"Canada (Central)":"Canada (Central)",
|
||
"EU (Frankfurt)":"EU (Frankfurt)",
|
||
"EU (Ireland)":"EU (Ireland)",
|
||
"EU (London)":"EU (London)",
|
||
"South America (Sao Paulo)":"South America (Sao Paulo)",
|
||
"US East (N. Virginia)":"US East (N. Virginia)",
|
||
"US East (Ohio)":"US East (Ohio)",
|
||
"US West (Oregon)":"US West (Oregon)",
|
||
"EU (Paris)":"EU (Paris)"
|
||
}
|
||
# 可以添加其他云平台的配置
|
||
AZURE_REGION_NAMES = {
|
||
# 待添加Azure区域
|
||
}
|
||
|
||
ALIYUN_REGION_NAMES = {
|
||
# 待添加阿里云区域
|
||
}
|
||
|
||
# 支持的平台列表
|
||
SUPPORTED_PLATFORMS = ["aws", "azure", "aliyun"] |