def _construct_lambda_layer(self, intrinsics_resolver):
<EOL>self.LayerName = self._resolve_string_parameter(intrinsics_resolver, self.LayerName, '<STR_LIT>')<EOL>self.LicenseInfo = self._resolve_string_parameter(intrinsics_resolver, self.LicenseInfo, '<STR_LIT>')<EOL>self.Description = self._resolve_string_parameter(intrinsics_resolver, self.Description, '<STR_LIT>')<EOL>self.RetentionPolicy = self._resolve_string_parameter(intrinsics_resolver, self.RetentionPolicy,<EOL>'<STR_LIT>')<EOL>retention_policy_value = self._get_retention_policy_value()<EOL>attributes = self.get_passthrough_resource_attributes()<EOL>if attributes is None:<EOL><INDENT>attributes = {}<EOL><DEDENT>attributes['<STR_LIT>'] = retention_policy_value<EOL>old_logical_id = self.logical_id<EOL>new_logical_id = logical_id_generator.LogicalIdGenerator(old_logical_id, self.to_dict()).gen()<EOL>self.logical_id = new_logical_id<EOL>lambda_layer = LambdaLayerVersion(self.logical_id, depends_on=self.depends_on, attributes=attributes)<EOL>if not self.LayerName:<EOL><INDENT>self.LayerName = old_logical_id<EOL><DEDENT>lambda_layer.LayerName = self.LayerName<EOL>lambda_layer.Description = self.Description<EOL>lambda_layer.Content = construct_s3_location_object(self.ContentUri, self.logical_id, '<STR_LIT>')<EOL>lambda_layer.CompatibleRuntimes = self.CompatibleRuntimes<EOL>lambda_layer.LicenseInfo = self.LicenseInfo<EOL>return lambda_layer<EOL>
Constructs and returns the Lambda function.

        :returns: a list containing the Lambda function and execution role resources
        :rtype: list