### Is there an existing issue for this?

- [X] I have searched the existing issues

### Enhancement description

AWS Lambda recently added support for Java 17 as managed runtime:
https://aws.amazon.com/about-aws/whats-new/2023/04/aws-lambda-java-17/



### 🧑‍💻 Implementation

_No response_

### Anything else?

_No response_
def factory(queue_url: str, expected_messages: int, max_iterations: int = 3):
        all_messages = []
        for _ in range(max_iterations):
            try:
                messages = sqs_receive_messages_delete(queue_url, wait_time=5)
            except KeyError:
                
                continue
            all_messages.extend(messages)
            if len(all_messages) >= expected_messages:
                return all_messages[:expected_messages]
        raise AssertionError(f"max iterations reached with {len(all_messages)} messages received")
    return factory
@pytest.fixture
def sqs_queue(sqs_create_queue):
    return sqs_create_queue()
@pytest.fixture
def sqs_queue_arn(aws_client):
    def _get_arn(queue_url: str) -> str:
        return aws_client.sqs.get_queue_attributes(QueueUrl=queue_url, AttributeNames=["QueueArn"])[
            "Attributes"
        ]["QueueArn"]
    return _get_arn
@pytest.fixture
def sqs_queue_exists(aws_client):
    def _queue_exists(queue_url: str) -> bool: