Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

จะเชื่อมต่อบริการ AWS ต่างๆ โดยใช้ไลบรารี Boto3 ใน Python ได้อย่างไร


ในบทความนี้ เราจะมาดูกันว่าคุณสามารถใช้ไลบรารี Boto3 ใน Python เพื่อเชื่อมต่อกับบริการต่างๆ ของ AWS ได้อย่างไร

ตัวอย่าง

  • เชื่อมต่อกับ AWS S3

  • เชื่อมต่อกับงานกาว AWS

  • เชื่อมต่อกับ AWS SQS และอื่นๆ อีกมากมาย

แนวทาง/อัลกอริทึมในการแก้ปัญหานี้

ขั้นตอนที่ 1 − สร้างเซสชัน AWS โดยใช้ไลบรารี Boto3

ขั้นตอนที่ 2 − ส่งชื่อบริการ AWS ในไคลเอนต์เพื่อรับการเข้าถึงบริการระดับต่ำ

หรือส่งชื่อบริการของ AWS ในทรัพยากรเพื่อรับการเข้าถึงบริการเชิงวัตถุระดับสูง/อินเทอร์เฟซระดับสูง

ตัวอย่าง

รหัสต่อไปนี้เชื่อมต่อกับบริการต่างๆ ของ AWS -

import boto3
# To get AWS Client
def getconnection_AWSClient(service_name):
   session = boto3.session.Session()
   # User can pass customized access key, secret_key and token as well
   s3_client = session.client(service_name)
   return s3_client
print(getconnection_AWSClient('s3')) # for s3 connection
print(getconnection_AWSClient('glue')) # for glue connection
print(getconnection_AWSClient('sqs')) # for sqs connection and other services

# To get AWS Resource
def getconnection_AWSResource(service_name):
   session = boto3.session.Session()
   # User can pass customized access key, secret_key and token as well
   s3_resource = session.resource(service_name)
   return s3_resource

print(getconnection_AWSResource('s3')) # for s3 connection
print(getconnection_AWSResource('sqs')) # for sqs connection and other services

ผลลัพธ์

<botocore.client.S3 object at 0x00000216C4CB89B0>
<botocore.client.Glue object at 0x00000216C5129358>
<botocore.client.SQS object at 0x00000216C4E03E10>
s3.ServiceResource()
sqs.ServiceResource()

โปรดทราบว่าทรัพยากรไม่รองรับบริการทั้งหมดที่จะเชื่อมต่อ ตัวอย่างเช่น หากผู้ใช้พยายามเชื่อมต่อบริการกาวโดยใช้ทรัพยากร จากนั้น AWS จะแสดงข้อยกเว้นต่อไปนี้ −

boto3.exceptions.ResourceNotExistsError:ไม่มีทรัพยากร 'กาว'

ลองใช้ boto3.client('glue') แทนทรัพยากรสำหรับ 'glue'

บริการต่อไปนี้ได้รับการสนับสนุนโดยทรัพยากร -

  • การก่อตัวของเมฆ

  • นาฬิกาคลาวด์

  • ไดนาโมดบ

  • ec2

  • ธารน้ำแข็ง

  • ฉัน

  • opsworks

  • s3

  • sns

  • sqs