Skip to content

Commit b020915

Browse files
authored
wait for bucket exists (#738)
1 parent 333bb22 commit b020915

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

awswrangler/athena/_utils.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -396,10 +396,17 @@ def create_athena_bucket(boto3_session: Optional[boto3.Session] = None) -> str:
396396
session: boto3.Session = _utils.ensure_session(session=boto3_session)
397397
account_id: str = sts.get_account_id(boto3_session=session)
398398
region_name: str = str(session.region_name).lower()
399-
s3_output = f"s3://aws-athena-query-results-{account_id}-{region_name}/"
400-
s3_resource = _utils.resource(service_name="s3", session=session)
401-
s3_resource.Bucket(s3_output)
402-
return s3_output
399+
bucket_name = f"aws-athena-query-results-{account_id}-{region_name}"
400+
path = f"s3://{bucket_name}/"
401+
resource = _utils.resource(service_name="s3", session=session)
402+
bucket = resource.Bucket(bucket_name)
403+
args = {} if region_name == "us-east-1" else {"CreateBucketConfiguration": {"LocationConstraint": region_name}}
404+
try:
405+
bucket.create(**args)
406+
except resource.meta.client.exceptions.BucketAlreadyOwnedByYou as err:
407+
_logger.debug("Bucket %s already exists.", err.response["Error"]["BucketName"])
408+
bucket.wait_until_exists()
409+
return path
403410

404411

405412
@apply_configs

0 commit comments

Comments
 (0)