awslabs / awslabs/aws-lambda-cpp

Question about timeouts

Abierto
#119 4 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
C++
Estrellas
465
Forks
98
Merge medio
12 h 47 min
PR fusionados (30 d)
3

Descripción

Hello,

I have followed the examples here: https://aws.amazon.com/blogs/compute/introducing-the-c-lambda-runtime/

When I run my internal execution so that it takes 5 seconds everything works fine. But when I run it for 70 seconds I never get any response and the lambda function seems to be restarting several times. My guess is that is has to do with some timeouts. But how do I configure them? I cannot find any good developer reference.

```
static invocation_response my_handler(invocation_request const& req, Aws::S3::S3Client const& client) {
using namespace Aws::Utils::Json;
JsonValue json(req.payload);
if (!json.WasParseSuccessful()) {
return invocation_response::failure("Failed to parse input JSON", "InvalidJSON");
}

auto v = json.View();

if (!v.ValueExists("s3bucket") || !v.ValueExists("s3key") || !v.GetObject("s3bucket").IsString() ||
!v.GetObject("s3key").IsString()) {
return invocation_response::failure("Missing input value s3bucket or s3key", "InvalidJSON");
}

auto bucket = v.GetString("s3bucket");
auto key = v.GetString("s3key");

AWS_LOGSTREAM_INFO(TAG, "Attempting to download file from s3://" << bucket << "/" << key);

// Internal execution about 70 seconds...
string response = "Success!";

return invocation_response::success("We did it! Response: " + response, "application/json");
}

std::function()> GetConsoleLoggerFactory() {
return [] {
return Aws::MakeShared(
"console_logger", Aws::Utils::Logging::LogLevel::Info);
};
}

Aws::Client::ClientConfiguration getS3Config() {

Aws::Client::ClientConfiguration config;
config.region = "us-east-1";
config.scheme = Aws::Http::Scheme::HTTP;

return config;
}

Aws::Client::ClientConfiguration getS3ConfigWithBundle() {

cout << "USING S3 REGION: " << Aws::Environment::GetEnv("AWS_REGION") << endl;

Aws::Client::ClientConfiguration config;
config.region = Aws::Environment::GetEnv("AWS_REGION");
config.scheme = Aws::Http::Scheme::HTTP;

return config;
}

void run_lambda_handler() {

Aws::S3::S3Client client(getS3ConfigWithBundle());
auto handler_fn = [&client](aws::lambda_runtime::invocation_request const& req) {
return my_handler(req, client);
};
run_handler(handler_fn);
}

int main(int argc, const char **argv) {
Aws::SDKOptions options;
options.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Info;
options.loggingOptions.logger_create_fn = GetConsoleLoggerFactory();
Aws::InitAPI(options);

run_lambda_handler();

Aws::ShutdownAPI(options);

return 0;
}
```

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.