in Tools/LambdaTestTool/src/Amazon.Lambda.TestTool/Runtime/LambdaDefaultsConfigFileParser.cs [33:81]
public static LambdaConfigInfo LoadFromFile(LambdaConfigFile configFile)
{
var configInfo = new LambdaConfigInfo
{
AWSProfile = !string.IsNullOrEmpty(configFile.Profile) ? configFile.Profile : "default",
AWSRegion = !string.IsNullOrEmpty(configFile.Region) ? configFile.Region : null,
FunctionInfos = new List<LambdaFunctionInfo>()
};
if (string.IsNullOrEmpty(configInfo.AWSProfile))
configInfo.AWSProfile = "default";
var templateFileName = !string.IsNullOrEmpty(configFile.Template) ? configFile.Template : null;
var functionHandler = !string.IsNullOrEmpty(configFile.DetermineHandler()) ? configFile.DetermineHandler() : null;
if (!string.IsNullOrEmpty(templateFileName))
{
var directory = Directory.Exists(configFile.ConfigFileLocation) ? configFile.ConfigFileLocation : Path.GetDirectoryName(configFile.ConfigFileLocation);
var templateFullPath = Path.Combine(directory, templateFileName);
if (!File.Exists(templateFullPath))
{
throw new FileNotFoundException($"Serverless template file {templateFullPath} not found");
}
ProcessServerlessTemplate(configInfo, templateFullPath);
}
else if(!string.IsNullOrEmpty(functionHandler))
{
var info = new LambdaFunctionInfo
{
Handler = functionHandler
};
info.Name = !string.IsNullOrEmpty(configFile.FunctionName) ? configFile.FunctionName : null;
if (string.IsNullOrEmpty(info.Name))
{
info.Name = functionHandler;
}
if(configFile.EnvironmentVariables != null)
{
ParseKeyValueOption(configFile.EnvironmentVariables, info.EnvironmentVariables);
}
configInfo.FunctionInfos.Add(info);
}
configInfo.FunctionInfos.Sort((x, y ) => string.CompareOrdinal(x.Name, y.Name));
return configInfo;
}