Lambda не поддерживает перегрузку функций, а только вызов определенной функции. Кроме того, метод main ожидает получения содержимого в первом аргументе, поэтому в вашем примере это либо APIGatewayProxyRequest
, либо filename
. Это может быть другой объект, основанный на источнике триггера, например S3Event
, если функция Lambda была вызвана S3.
Вы можете определить общую сигнатуру метода, например FunctionHandler(Stream inputStream, ILambdaContext context)
, которая анализирует аргумент inputStream
для APIGatewayProxyRequest
объекта.
Например:
Amazon.Lambda.Serialization.Json.JsonSerializer jsonSerializer =
new Amazon.Lambda.Serialization.Json.JsonSerializer();
APIGatewayProxyRequest request =
jsonSerializer.Deserialize<APIGatewayProxyRequest>(inputStream);
Таким образом, вы сможете использовать один и тот же метод для нескольких типов триггеров.