MCPcopy Create free account
hub / github.com/cargo-lambda/cargo-lambda / set_log_retention

Function set_log_retention

crates/cargo-lambda-deploy/src/functions.rs:717–745  ·  view source on GitHub ↗
(sdk_config: &SdkConfig, retention: i32, name: &str)

Source from the content-addressed store, hash-verified

715}
716
717async fn set_log_retention(sdk_config: &SdkConfig, retention: i32, name: &str) -> Result<()> {
718 let cw_client = aws_sdk_cloudwatchlogs::Client::new(sdk_config);
719 let log_group_name = format!("/aws/lambda/{name}");
720
721 match cw_client
722 .create_log_group()
723 .log_group_name(&log_group_name)
724 .send()
725 .await
726 {
727 Ok(_) => (),
728 Err(err) if log_group_already_exists_error(&err) => (),
729 Err(err) => {
730 return Err(err)
731 .into_diagnostic()
732 .wrap_err("failed to create log group");
733 }
734 }
735
736 cw_client
737 .put_retention_policy()
738 .log_group_name(log_group_name)
739 .retention_in_days(retention)
740 .send()
741 .await
742 .into_diagnostic()
743 .wrap_err("failed to set log retention")?;
744 Ok(())
745}
746
747fn log_group_already_exists_error(err: &SdkError<CreateLogGroupError>) -> bool {
748 match err {

Callers 3

deployFunction · 0.85
test_set_log_retentionFunction · 0.85

Calls 2

newFunction · 0.85

Tested by 2

test_set_log_retentionFunction · 0.68