我有以下代码:
import boto3
my_session = boto3.session.Session()
region = boto3.session.Session().region_name
print "region : ",region
pricing_client=boto3.client("pricing")
locationList = pricing_client.get_attribute_values(ServiceCode="AmazonEC2",AttributeName="location")
print "locationList : ",locationList["AttributeValues"]
以上代码的输出如下:
region : ap-south-1
locationList : [
{
u'Value': u'AWS GovCloud (US)'
},
{
u'Value': u'AWS GovCloud (US-East)'
},
{
u'Value': u'Asia Pacific (Mumbai)'
},
{
u'Value': u'Asia Pacific (Osaka-Local)'
},
{
u'Value': u'Asia Pacific (Seoul)'
},
{
u'Value': u'Asia Pacific (Singapore)'
},
{
u'Value': u'Asia Pacific (Sydney)'
},
{
u'Value': u'Asia Pacific (Tokyo)'
},
{
u'Value': u'Canada (Central)'
},
{
u'Value': u'EU (Frankfurt)'
},
{
u'Value': u'EU (Ireland)'
},
{
u'Value': u'EU (London)'
},
{
u'Value': u'EU (Paris)'
},
{
u'Value': u'EU (Stockholm)'
},
{
u'Value': u'South America (Sao Paulo)'
},
{
u'Value': u'US East (N. Virginia)'
},
{
u'Value': u'US East (Ohio)'
},
{
u'Value': u'US West (N. California)'
},
{
u'Value': u'US West (Oregon)'
}
]
是否可以使用区域名称映射区域名称?
我可以按以下方式使用字典:
{'ap-south-1': 'Asia Pacific (Mumbai)'}
但是我想这样做而不必定义所有区域,以便以后进行更改时更新aws配置将自动影响我正在编写的代码。
我想做的是编写一个boto函数来检索使用价格区域的价目表。
答案 0 :(得分:0)
通过在 botocore / data / endpoints.json 中进行查找可以解决相同的需求 https://github.com/powdahound/ec2instances.info/blob/master/ec2.py#L35
我看不到更好的选择。
还存在一个问题gh1411