2016-07-19 6 views
6

के साथ उपलब्ध क्षेत्रों की सूची कैसे करें AWS विस्तार और नए क्षेत्रों को जोड़ता है, इसलिए मैं अपना कोड स्वचालित रूप से इसका पता लगाना चाहता हूं। वर्तमान में, "अपना क्षेत्र चुनें" हार्ड कोड किया गया है लेकिन मैं केवल क्षेत्रनाम के लिए निम्नलिखित को पार्स करना चाहता हूं।Boto3 (पायथन)

import boto3 

ec2 = boto3.client('ec2') 
regions = ec2.describe_regions() 
print(regions) 

मेरे उत्पादन JSON तो की तरह है:

{'Regions': [{'Endpoint': 'ec2.ap-south-1.amazonaws.com', 'RegionName': 'ap-south-1'}, {'Endpoint': 'ec2.eu-west-1.amazonaws.com', 'RegionName': 'eu-west-1'}, {'Endpoint': 'ec2.ap-southeast-1.amazonaws.com', 'RegionName': 'ap-southeast-1'}]}

मैं अंतरिक्ष के लिए दोहराई जाने वाली डेटा और ResponseMetadata बंद छंटनी की है।

मैं क्षेत्र नाम को सूची में कैसे पार्स कर सकता हूं?

उत्तर

11

निम्नलिखित आपको प्रत्येक क्षेत्र के लिए क्षेत्रनाम और एंडपॉइंट वापस कर देगा।

# List all regions 
client = boto3.client('ec2') 
regions = [region['RegionName'] for region in client.describe_regions()['Regions']] 
+1

धन्यवाद! मैं इसकी सराहना करता हूं – Shawn

+1

'ग्राहक = boto3.client ('ec2') 'त्रुटि के साथ विफल रहता है" botocore.exceptions.NoRegionError: आपको एक क्षेत्र निर्दिष्ट करना होगा। " – jononomo

+0

क्षेत्र को सेट करने के कई तरीके हैं (इसके लिए अच्छा दस्तावेज़ है) लेकिन आप सीधे 'client = boto3.client (' ec2 ', region_name =' us-west-2 ') से प्राप्त कर सकते हैं' –

13

फ़्रेडेरिक के उत्तर के अतिरिक्त, आप सेवा सेवा के बिना प्रत्येक सेवा के लिए ज्ञात क्षेत्र भी प्राप्त कर सकते हैं। हालांकि, मैं आपको सावधानी बरतूंगा कि चूंकि यह अंतराल को मारने के बजाए बॉटोकोर के स्थानीय मॉडल से खींच रहा है, इसलिए यह हमेशा अद्यतन नहीं होगा क्योंकि आपको सूची अपडेट करने के लिए बॉटोकोर अपडेट करने की आवश्यकता है।

from boto3.session import Session 

s = Session() 
dynamodb_regions = s.get_available_regions('dynamodb') 

इसके अतिरिक्त, आप इस सूची के क्षेत्रों तक ही सीमित नहीं हैं। यदि आप बोटोकोर के पुराने संस्करण का उपयोग कर रहे हैं तो भी आप उन्हें निर्दिष्ट करके नए क्षेत्रों का उपयोग कर सकते हैं। वे सिर्फ इस सूची में नहीं दिखाई देंगे।

संबंधित मुद्दे