<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def resolve(self):
 """ Resolves the values from different sources and returns a dict of environment variables to use when running the function locally. :return dict: Dict where key is the variable name and value is the value of the variable. Both key and values are strings """


        # AWS_* variables must always be passed to the function, but user has the choice to override them
        result = self._get_aws_variables()

        # Default value for the variable gets lowest priority
        for name, value in self.variables.items():

            # Shell environment values, second priority
            if name in self.shell_env_values:
                value = self.shell_env_values[name]

            # Overridden values, highest priority
            if name in self.override_values:
                value = self.override_values[name]

            # Any value must be a string when passed to Lambda runtime.
            # Runtime expects a Map<String, String> for environment variables
            result[name] = self._stringify_value(value)

        return result