| 715 | } |
| 716 | |
| 717 | async 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 | |
| 747 | fn log_group_already_exists_error(err: &SdkError<CreateLogGroupError>) -> bool { |
| 748 | match err { |