### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

When invoking a lambda with a nodejs runtime and local executor, localstack is unable to handle payloads containing a single quote.

### Expected Behavior

Locally executed nodejs lambdas should be able to handle any stringified json payload

### How are you starting LocalStack?

With a docker-compose file

### Steps To Reproduce

https://github.com/alxyuu/localstack-issue

### Environment

```markdown
- OS: MacOS 11.5.2
- LocalStack: latest (0.12.18)
```


### Anything else?

The culprit appears to be in how node gets executed locally, with a single quoted eval:
https://github.com/localstack/localstack/blob/812acc1226537ee92477bd91596de200b8888a6c/localstack/services/awslambda/lambda_executors.py#L1262-L1270

doing something like `event_json_string.replace("'", "'\\''")` may be a simple resolution to the issue.
import uuid
from multiprocessing import Process, Queue
from typing import Any, Callable, Dict, List, Optional, Tuple, Union
from localstack import config
from localstack.services.awslambda.lambda_utils import (
    API_PATH_ROOT,
    LAMBDA_RUNTIME_PROVIDED,
    get_main_endpoint_from_container,
    get_record_from_event,
    is_java_lambda,
    is_nodejs_runtime,
    rm_docker_container,
    store_lambda_logs,
)
from localstack.services.install import GO_LAMBDA_RUNTIME, INSTALL_PATH_LOCALSTACK_FAT_JAR
from localstack.utils.aws import aws_stack
from localstack.utils.aws.aws_models import LambdaFunction
from localstack.utils.aws.dead_letter_queue import (
    lambda_error_to_dead_letter_queue,
    sqs_error_to_dead_letter_queue,
)
from localstack.utils.cloudwatch.cloudwatch_util import cloudwatched
from localstack.utils.common import (
    TMP_FILES,
    CaptureOutput,
    get_all_subclasses,
    get_free_tcp_port,
    json_safe,
    last_index_of,
    long_uid,