如何使用Python中的Boto3库连接不同的AWS服务?

如何使用Python中的Boto3库连接不同的AWS服务?

在本文中,我们将看到如何使用Python中的Boto3库与不同的AWS服务进行连接。

示例

  • 连接AWS S3。

  • 连接AWS Glue Job。

  • 连接AWS SQS和其他服务。

阅读更多:Python 教程

解决这个问题的方法/算法

步骤1 - 使用Boto3库创建AWS会话。

步骤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: The ‘glue’ resource does not exist.

考虑改用boto3.client(’glue’)代替’resource’连接’glue’

以下服务受资源支持 –

  • cloudformation

  • cloudwatch

  • dynamodb

  • ec2

  • glacier

  • iam

  • opsworks

  • s3

  • sns

  • sqs

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程