我在中国和美国两个区域有两个不同的 AWS 账户,我可以使用 boto3 连接到不同区域的服务吗?看起来像后续代码。
波托2代码:
sqs = boto.sqs.connect_to_region(
region, aws_access_key_id=access_key, aws_secret_access_key=secret_key)
Run Code Online (Sandbox Code Playgroud)
Boto3 如何像 boto2 那样做
有很多方法可以做到这一点。首先 请参阅凭据配置指南。
您可以从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"
)
Run Code Online (Sandbox Code Playgroud)
第二种方法是在客户端调用中提供硬编码凭据。注意:您不能使用 client 指定 profile_name。
client = boto3.client(
's3',
aws_access_key_id="****",
aws_secret_access_key="****",
region_name="us-east-1"
)
Run Code Online (Sandbox Code Playgroud)
注意:如果您使用 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
)
Run Code Online (Sandbox Code Playgroud)
一种可能的方法是使用 botoSession
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')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17119 次 |
| 最近记录: |