### 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)

conn = MagicMock(name="conn")
@pytest.fixture
def hook():
    return LambdaHookForTests()
class TestLambdaHook:
    def test_get_conn_returns_a_boto3_connection(self, hook):
        assert hook.conn is not None
    @mock.patch(
        "airflow.providers.amazon.aws.hooks.lambda_function.LambdaHook.conn", new_callable=mock.PropertyMock
    )
    def test_invoke_lambda(self, mock_conn):
        hook = LambdaHook()
        hook.invoke_lambda(function_name=FUNCTION_NAME, payload=PAYLOAD)
        mock_conn().invoke.assert_called_once_with(
            FunctionName=FUNCTION_NAME,
            Payload=PAYLOAD,
        )
    @pytest.mark.parametrize(
        "hook_params, boto3_params",
        [
            pytest.param(
                {
                    "function_name": FUNCTION_NAME,
                    "runtime": RUNTIME,
                    "role": ROLE,
                    "handler": HANDLER,
                    "code": CODE,
                    "package_type": "Zip",
                },