From 9c38a61416df5b44bf3bd039c09015ddb35850b5 Mon Sep 17 00:00:00 2001 From: Abdel Jaidi Date: Mon, 7 Jun 2021 12:05:56 +0100 Subject: [PATCH] [skip ci] - wait for bucket exists --- awswrangler/athena/_utils.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/awswrangler/athena/_utils.py b/awswrangler/athena/_utils.py index 639e330cd..19e39e216 100644 --- a/awswrangler/athena/_utils.py +++ b/awswrangler/athena/_utils.py @@ -396,10 +396,17 @@ def create_athena_bucket(boto3_session: Optional[boto3.Session] = None) -> str: session: boto3.Session = _utils.ensure_session(session=boto3_session) account_id: str = sts.get_account_id(boto3_session=session) region_name: str = str(session.region_name).lower() - s3_output = f"s3://aws-athena-query-results-{account_id}-{region_name}/" - s3_resource = _utils.resource(service_name="s3", session=session) - s3_resource.Bucket(s3_output) - return s3_output + bucket_name = f"aws-athena-query-results-{account_id}-{region_name}" + path = f"s3://{bucket_name}/" + resource = _utils.resource(service_name="s3", session=session) + bucket = resource.Bucket(bucket_name) + args = {} if region_name == "us-east-1" else {"CreateBucketConfiguration": {"LocationConstraint": region_name}} + try: + bucket.create(**args) + except resource.meta.client.exceptions.BucketAlreadyOwnedByYou as err: + _logger.debug("Bucket %s already exists.", err.response["Error"]["BucketName"]) + bucket.wait_until_exists() + return path @apply_configs