// ReSharper disable once UnusedMember.Global
        public Stream Run(GeneConfig config, ILambdaContext context)
        {
            string snsTopicArn = null;
            var    runLog      = new StringBuilder();

            try
            {
                LogUtilities.UpdateLogger(context.Logger, runLog);
                LogUtilities.LogLambdaInfo(context, CommandLineUtilities.InformationalVersion);
                LogUtilities.LogObject("Config", config);
                LogUtilities.Log(new[] { LambdaUrlHelper.UrlBaseEnvironmentVariableName, LambdaUtilities.SnsTopicKey });

                LambdaUtilities.GarbageCollect();

                snsTopicArn = LambdaUtilities.GetEnvironmentVariable(LambdaUtilities.SnsTopicKey);

                config.Validate();
                string result = GetGeneAnnotation(config, _saManifestUrl, _saPathPrefix);

                return(LambdaResponse.Create(config.id, LambdaUrlHelper.SuccessMessage, result));
            }
            catch (Exception e)
            {
                return(HandleException(config.id, snsTopicArn, e));
            }
        }
        private static Stream HandleException(string id, string snsTopicArn, Exception e)
        {
            Logger.Log(e);

            string snsMessage = SNS.CreateMessage(e.Message, "exception", e.StackTrace);

            SNS.SendMessage(snsTopicArn, snsMessage);

            return(LambdaResponse.Create(id, e.Message, null));
        }