我在CN和US两个地区有两个不同的AWS账户,我可以使用boto3连接到不同的区域服务吗?看起来像是跟进代码。
Boto2代码:
sqs = boto.sqs.connect_to_region(
region, aws_access_key_id=access_key, aws_secret_access_key=secret_key)
Boto3如何做到像boto2
答案 0 :(得分:3)
一种可能的方法是使用boto Session
from boto3 import Session
# Example: connecting to 'us-east-1' region
session = Session(aws_access_key_id=*****,aws_secret_access_key=****,region_name='us-east-1')
sqs_client = session.client('sqs')
sqs_resource = session.resource('sqs')
答案 1 :(得分:1)
有很多方法可以做到这一点。请参阅credential configuration guide 了解一下。
您可以快速从boto3.Session
获取信息# use aws credential profile
session = boto3.Session(profile_name='dev')
# Or hardcoded your credentail
session = boto3.Session(
aws_access_key_id="****",
aws_secret_access_key="****",
region_name="us-east-1"
)
第二种方式是在客户端调用中提供硬编码凭证。注意:您不能使用客户端指定profile_name。
client = boto3.client(
's3',
aws_access_key_id="****",
aws_secret_access_key="****",
region_name="us-east-1"
)
注意:如果使用STS /临时安全凭证设置EC2实例,则可以像这样检索会话令牌。
sts = boto3.client('sts')
my_token = sts.get_session_token()
s3 = boto3.client(
's3',
region_name="us-east-1",
aws_session_token = my_token
)