## Problem
Currently, even if `LAMBDA_REMOTE_DOCKER=1`, we unzip the zip files in the directory they are in, which is usually /var/lib/localstack, which usually has a bind mount to the host.
On docker desktop, due to the use of grpc-FUSE (on macos), this can be very slow, about 200 times slower than on volumes / directly on the host. With experimental virtio filesystem enabled (also on macos), this can be reduced to about 30 times as slow, but still problematic.
This means a lambda may take a lot of time processing, for each additional layer some more. This especially affects nodejs lambdas with huge node_modules folders.

## Probable solution
At least if `LAMBDA_REMOTE_DOCKER=1`, we should leave the initial zip files on the bind mount (for persistence etc), but the working directories after unzipping should be located on non-bind mounts, to speed up the IO for unzipping.
return self.on_successful_invocation is not None or self.on_failed_invocation is not None
    def get_version(self, version):
        return self.versions.get(version)
    def max_version(self):
        versions = [int(key) for key in self.versions.keys() if key != self.QUALIFIER_LATEST]
        return versions and max(versions) or 0
    def name(self):
        
        return self.id.split(":")[6]
    def region(self):
        return self.id.split(":")[3]
    def arn(self):
        return self.id
    def get_qualifier_version(self, qualifier: str = None) -> str:
        if not qualifier:
            qualifier = self.QUALIFIER_LATEST
        return (
            qualifier
            if qualifier in self.versions
            else self.aliases.get(qualifier).get("FunctionVersion")
        )
    def qualifier_exists(self, qualifier):
        return qualifier in self.aliases or qualifier in self.versions
    def __str__(self):
        return "<%s:%s>" % (self.__class__.__name__, self.name())
class DynamoDB(Component):