private static void ProcessYamlServerlessTemplateFunctionBased()

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);
            }
        }