Amazon web services 为什么在使用regional endpoint时boto3.client中的某些aws服务需要region_名称?
如果我们已经在使用区域端点,为什么我们需要提供区域名称 而且,如果我没有为sqs指定区域\u名称,那么它将给出一个错误Amazon web services 为什么在使用regional endpoint时boto3.client中的某些aws服务需要region_名称?,amazon-web-services,boto3,aws-regions,Amazon Web Services,Boto3,Aws Regions,如果我们已经在使用区域端点,为什么我们需要提供区域名称 而且,如果我没有为sqs指定区域\u名称,那么它将给出一个错误(NoRegionError:您必须指定一个区域)。为s3创建客户端时,不需要区域名称 client = boto3.client( "sqs", aws_access_key_id=key_id, aws_secret_access_key=secret_key, aws_session_token=token, en
(NoRegionError:您必须指定一个区域)
。为s3创建客户端时,不需要区域名称
client = boto3.client(
"sqs",
aws_access_key_id=key_id,
aws_secret_access_key=secret_key,
aws_session_token=token,
endpoint_url="https://sqs.us-east-1.amazonaws.com",
region_name="us-east-1", # For some reason region name is required here
)
client = boto3.client(
"s3",
aws_access_key_id=key_id,
aws_secret_access_key=secret_key,
aws_session_token=token,
endpoint_url="https://s3.ap-south-1.amazonaws.com", # While this works perfect
)
因为
region\u name
用于在botocore中构造端点URL,但它不是AWS拥有多个区域之前存在的.S3。我猜是向后兼容。