इस लेख में, हम देखेंगे कि Python में Boto3 लाइब्रेरी का उपयोग करके विभिन्न AWS सेवाओं से कैसे कनेक्ट किया जा सकता है।
उदाहरण
AWS S3 से कनेक्ट करें।
AWS Glue Job से कनेक्ट करें
AWS SQS और कई अन्य सेवाओं से कनेक्ट करें।
इस समस्या को हल करने का दृष्टिकोण/एल्गोरिदम
चरण 1 - Boto3 लाइब्रेरी का उपयोग करके AWS सत्र बनाएं।
चरण 2 - निम्न-स्तरीय सेवा एक्सेस प्राप्त करने के लिए क्लाइंट में AWS सेवा नाम पास करें।
या, उच्च-स्तरीय ऑब्जेक्ट-ओरिएंटेड सेवा एक्सेस/उच्च-स्तरीय इंटरफ़ेस प्राप्त करने के लिए रिसोर्स में AWS सेवा नाम पास करें।
उदाहरण
विभिन्न AWS सेवाओं से कनेक्ट करने के लिए निम्न कोड -
import boto3
# AWS Client प्राप्त करने के लिए
def getconnection_AWSClient(service_name):
session = boto3.session.Session()
# उपयोगकर्ता कस्टमाइज़्ड एक्सेस कुंजी, सीक्रेट कुंजी और टोकन भी पास कर सकता है
s3_client = session.client(service_name)
return s3_client
print(getconnection_AWSClient('s3')) # S3 कनेक्शन के लिए
print(getconnection_AWSClient('glue')) # Glue कनेक्शन के लिए
print(getconnection_AWSClient('sqs')) # SQS कनेक्शन और अन्य सेवाओं के लिए
# AWS Resource प्राप्त करने के लिए
def getconnection_AWSResource(service_name):
session = boto3.session.Session()
# उपयोगकर्ता कस्टमाइज़्ड एक्सेस कुंजी, सीक्रेट कुंजी और टोकन भी पास कर सकता है
s3_resource = session.resource(service_name)
return s3_resource
print(getconnection_AWSResource('s3')) # S3 कनेक्शन के लिए
print(getconnection_AWSResource('sqs')) # SQS कनेक्शन और अन्य सेवाओं के लिए
आउटपुट
<botocore.client.S3 object at 0x00000216C4CB89B0> <botocore.client.Glue object at 0x00000216C5129358> <botocore.client.SQS object at 0x00000216C4E03E10> s3.ServiceResource() sqs.ServiceResource()
ध्यान दें कि रिसोर्स सभी सेवाओं से कनेक्ट करने का समर्थन नहीं करता। उदाहरण के लिए, यदि उपयोगकर्ता रिसोर्स का उपयोग करके glue सेवा से कनेक्ट करने का प्रयास करता है, तो AWS निम्न अपवाद फेंकता है -
boto3.exceptions.ResourceNotExistsError: The 'glue' resource does not exist.
glue के लिए boto3.client('glue') का उपयोग करने पर विचार करें बजाय रिसोर्स के।
निम्न सेवाएं रिसोर्स द्वारा समर्थित हैं -
cloudformation
cloudwatch
dynamodb
ec2
glacier
iam
opsworks
s3
sns
sqs