in Tools/LambdaTestTool/src/Amazon.Lambda.TestTool/Runtime/LambdaDefaultsConfigFileParser.cs [261:298]
private static void ProcessYamlServerlessTemplateFunctionBased(LambdaConfigInfo configInfo, YamlMappingNode resources)
{
if (resources == null)
return;
foreach (var resource in resources.Children)
{
var resourceBody = (YamlMappingNode) resource.Value;
var handler = resourceBody.Children.ContainsKey("handler")
? ((YamlScalarNode) resourceBody.Children["handler"])?.Value
: null;
if (handler == null) continue;
if (string.IsNullOrEmpty(handler)) continue;
var functionInfo = new LambdaFunctionInfo
{
Name = resource.Key.ToString(),
Handler = handler
};
if (resourceBody.Children.TryGetValue("Environment", out var environmentProperty) && environmentProperty is YamlMappingNode)
{
foreach (var kvp in ((YamlMappingNode)environmentProperty).Children)
{
if(kvp.Key is YamlScalarNode keyNode && keyNode.Value != null &&
kvp.Value is YamlScalarNode valueNode && valueNode.Value != null)
{
functionInfo.EnvironmentVariables[keyNode.Value] = valueNode.Value;
}
}
}
configInfo.FunctionInfos.Add(functionInfo);
}
}