### Apache Airflow version

2.6.2

### What happened

I instantiate LambdaInvokeFunctionOperator in my DAG. 

I want to call the lambda function with some payload. After following code example from official documentation, I created a dict, and passed its json string version to the operator:

```
d = {'key': 'value'}
invoke_lambda_task = LambdaInvokeFunctionOperator(..., payload=json.dumps(d))
```

When I executed the DAG, this task failed. I got the following error message:

```
Invalid type for parameter Payload, value: {'key': 'value'}, type: <class 'dict'>, valid types: <class 'bytes'>, <class 'bytearray'>, file-like object
```

Then I went to official boto3 documentation, and found out that indeed, the payload parameter type is `bytes` or file. See https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/lambda/client/invoke.html

### What you think should happen instead

To preserve backward compatibility, The API should encode payload argument if it is str, but also accept bytes or file, in which case it will be passed-through as is.

### How to reproduce

1. Create lambda function in AWS
2. Create a simple DAG with LambdaInvokeFunctionOperator
3. pass str value in the payload parameter; use json.dumps() with a simple dict, as lambda expects json payload
4. Run the DAG; the task is expected to fail

### Operating System

ubuntu

### Versions of Apache Airflow Providers

apache-airflow-providers-amazon==7.3.0

### Deployment

Virtualenv installation

### Deployment details

_No response_

### Anything else

_No response_

### Are you willing to submit PR?

- [X] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

:param timeout: The amount of time (in seconds) that Lambda
            allows a function to run before stopping it.
        :param memory_size: The amount of memory available to the function at runtime.
            Increasing the function memory also increases its CPU allocation.
        :param publish: Set to true to publish the first version of the function during creation.
        :param vpc_config: For network connectivity to Amazon Web Services resources in a VPC,
            specify a list of security groups and subnets in the VPC.
        :param package_type: The type of deployment package.
            Set to `Image` for container image and set to `Zip` for .zip file archive.
        :param dead_letter_config: A dead-letter queue configuration that specifies the queue or topic
            where Lambda sends asynchronous events when they fail processing.
        :param environment: Environment variables that are accessible from function code during execution.
        :param kms_key_arn: The ARN of the Key Management Service (KMS) key that's used to
            encrypt your function's environment variables.
            If it's not provided, Lambda uses a default service key.
        :param tracing_config: Set `Mode` to `Active` to sample and trace
            a subset of incoming requests with X-Ray.
        :param tags: A list of tags to apply to the function.
        :param layers: A list of function layers to add to the function's execution environment.
            Specify each layer by its ARN, including the version.
        :param file_system_configs: Connection settings for an Amazon EFS file system.
        :param image_config: Container image configuration values that override
            the values in the container image Dockerfile.
        :param code_signing_config_arn: To enable code signing for this function,
            specify the ARN of a code-signing configuration.
            A code-signing configuration includes a set of signing profiles,
            which define the trusted publishers for this function.
        :param architectures: The instruction set architecture that the function supports.
        """
        if package_type == "Zip":