Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Configuración y uso del registro en AWS SDK de Rust
AWS SDK para Rust utiliza el marco de rastreotracing-subscriber e inicialícela en su aplicación Rust. Los registros incluyen marcas de tiempo, niveles de registro y rutas de módulos, lo que contribuye a depurar las solicitudes de la API y el comportamiento del SDK. Use la variable de entorno RUST_LOG para controlar el detalle de los registros y filtre por módulo si es necesario.
Cómo habilitar el registro en AWS SDK para Rust
-
En la línea de comandos del directorio del proyecto, agregue la caja tracing-subscriber
como dependencia: $cargo add tracing-subscriber --features tracing-subscriber/env-filterDe esta forma, se agrega la caja a la sección
[dependencies]del archivoCargo.toml. -
Inicialización del suscriptor. Por lo general, esto se hace al principio de la función
mainantes de llamar a cualquier operación de SDK para Rust:use aws_config::BehaviorVersion; type BoxError = Box<dyn Error + Send + Sync>; #[tokio::main] async fn main() -> Result<(), BoxError> { tracing_subscriber::fmt::init(); // Initialize the subscriber. let config = aws_config::defaults(BehaviorVersion::latest()) .load() .await; let s3 = aws_sdk_s3::Client::new(&config); let _resp = s3.list_buckets() .send() .await?; Ok(()) } -
Active el registro mediante la variable de entorno
RUST_LOG. Para habilitar la visualización de la información de registro, en una línea de comandos, defina la variable de entornoRUST_LOGen el nivel en el que desea registrar. En el siguiente ejemplo, el nivel de registro se establece endebug. -
Ejecute el programa:
$cargo runDebería ver un información adicional en la ventana de la consola o del terminal.
Para obtener más información, consulte el filtrado de eventos con variables de entornotracing-subscriber.
Interpretación del resultado del registro
Una vez que haya activado el registro siguiendo los pasos de la sección anterior, la información adicional del registro se imprimirá en la salida estándar de forma predeterminada.
Si utiliza el formato de salida del registro predeterminado (denominado «completo» por el módulo de rastreo), la información que aparece en la salida del registro es similar a la siguiente:
2024-06-25T16:10:12.367482Z DEBUG invoke{service=s3 operation=ListBuckets sdk_invocation_id=3434933}:try_op:try_attempt:lazy_load_identity: aws_smithy_runtime::client::identity::cache::lazy: identity cache miss occurred; added new identity (took 480.892ms) new_expiration=2024-06-25T23:07:59Z valid_for=25066.632521s partition=IdentityCachePartition(7) 2024-06-25T16:10:12.367602Z DEBUG invoke{service=s3 operation=ListBuckets sdk_invocation_id=3434933}:try_op:try_attempt: aws_smithy_runtime::client::identity::cache::lazy: loaded identity 2024-06-25T16:10:12.367643Z TRACE invoke{service=s3 operation=ListBuckets sdk_invocation_id=3434933}:try_op:try_attempt: aws_smithy_runtime::client::orchestrator::auth: resolved identity identity=Identity { data: Credentials {... }, expiration: Some(SystemTime { tv_sec: 1719356879, tv_nsec: 0 }) } 2024-06-25T16:10:12.367695Z TRACE invoke{service=s3 operation=ListBuckets sdk_invocation_id=3434933}:try_op:try_attempt: aws_smithy_runtime::client::orchestrator::auth: signing request
Cada entrada incluye lo siguiente:
-
La marca de tiempo de la entrada del registro.
-
El nivel de registro de la entrada. Se trata de una palabra como
INFO,DEBUGoTRACE. -
El conjunto anidado de intervalos
a partir del cual se generó la entrada de registro, separados por dos puntos («:»). Esto le ayuda a identificar el origen de la entrada de registro. -
La ruta del módulo de Rust que contiene el código que generó la entrada de registro.
-
El texto del mensaje de registro.
Los formatos de salida estándar del módulo de rastreo utilizan códigos de escape ANSI para colorear la salida. Tenga en cuenta estas secuencias de escape al filtrar o buscar la salida.
nota
El sdk_invocation_id que aparece dentro del conjunto anidado de intervalos es un ID único generado por el SDK en el lado del cliente para correlacionar los mensajes de registro. No está relacionado con el ID de solicitud que se encuentra en la respuesta de un Servicio de AWS.
Refinamiento de niveles de registro
Si utiliza una caja que admite el filtrado de entornos, como tracing_subscriber, puede controlar el detalle de los registros por módulo.
Puede activar el mismo nivel de registro para todos los módulos. A continuación, se establece el nivel de registro en trace para todos los módulos:
$RUST_LOG=tracecargo run
Puede activar el registro a nivel de rastreo para un módulo específico. En el siguiente ejemplo, solo los registros de aws_smithy_runtime entrarán en el nivel trace.
$RUST_LOG=aws_smithy_runtime=trace
Puede especificar un nivel de registro diferente para varios módulos separándolos con comas. El siguiente ejemplo establece el módulo aws_config en el nivel de registro de trace y el módulo aws_smithy_runtime en el nivel de registro debug.
$RUST_LOG=aws_config=trace,aws_smithy_runtime=debugcargo run
En la tabla siguiente se describen algunos de los módulos que puede usar para filtrar los mensajes de registro:
| Prefix | Descripción |
|---|---|
|
|
Registro de solicitudes y respuestas |
|
|
Carga de credenciales |
|
|
Solicitudes de firma y solicitudes canónicas |
Una forma de averiguar qué módulos debe incluir en la salida del registro es registrarlo todo primero y, a continuación, buscar el nombre de la caja en la salida del registro para obtener la información que necesita. A continuación, puede configurar la variable de entorno según corresponda y volver a ejecutar el programa.