aws / aws/aws-lambda-rust-runtime

Consider documenting AWS_LC_SYS_NO_JITTER_ENTROPY

Abierto
#1,101 2 comentarios 1 reacción 0 asignados Ver en GitHub
Lenguaje dominante
Rust
Estrellas
3.6k
Forks
396
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

Context: https://github.com/aws/aws-lc-rs/issues/899

Docs: https://aws.github.io/aws-lc-rs/resources.html#entropy-configuration

Recent versions of `AWS_LC` enable a new entropy source, CPU jitter, which is somewhat expensive to initialize. It adds ~50ms of latency to startup in their testing, though I've seen signs of a decent amount higher on small instance sizes. CPU jitter is enabled by default, but can be opted out of.

Since lambdas are frequently cold-start latency sensitive, this might be relevant to our userbase. For context, java lambdas using snapstart, have it disabled by default, based on a built in AWS LC check.

We don't directly use AWS_LC, but it is widely used by lambda applications as aws-sdks default to using it as the TLS backend (along with reqwest and much of the rest of the async ecosystem). So, we can expect most lambdas to be impacted by this behavior.

The workaround is to inject an environment variable via eg your `.cargo/config.toml`:
```
[env]
AWS_LC_SYS_NO_JITTER_ENTROPY=1
```

The implication of disabling this is, you would only have 1-2 other entropy sources (OS source + CPU source). CPU source availability varies based on environment. You generally want >= 2 entropy sources, hence the new default.

However, on casual examination, I think pretty much any hardware that aws lambda runs on, should anyway have cpu source? (I have not looked deeply though, some might not, this needs more research).

It seems like this is something our users would appreciate knowing about. Not sure exactly where though. Perhaps it belongs in the aws-side lambda docs instead?

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Comience con el issue de AWS LC enlazado y la sección de configuración de entropía de la documentación de recursos; después determine si estas indicaciones deben incluirse en la documentación de Lambda. Documente el workaround AWS_LC_SYS_NO_JITTER_ENTROPY, su motivación relacionada con los cold starts y el equilibrio entre las fuentes de entropía; debe incluirse el ejemplo correspondiente de .cargo/config.toml.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
aws, rust
Área
cloud, documentation
Tipo de issue
Documentación
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
38/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.