@@ -13,7 +13,12 @@ use std::error::Error;
13
13
async fn main ( ) -> Result < ( ) , Box < dyn Error > > {
14
14
tracing_subscriber:: fmt:: init ( ) ;
15
15
16
- let shared_config = aws_config:: load_defaults ( BehaviorVersion :: latest ( ) ) . await ;
16
+ let mut shared_config = aws_config:: defaults ( BehaviorVersion :: latest ( ) ) ;
17
+ if use_localstack ( ) {
18
+ shared_config = shared_config. endpoint_url ( LOCALSTACK_ENDPOINT ) ;
19
+ } ;
20
+ let shared_config = shared_config. load ( ) . await ;
21
+
17
22
let sqs_client = sqs_client ( & shared_config) ;
18
23
let s3_client = s3_client ( & shared_config) ;
19
24
@@ -59,18 +64,14 @@ fn use_localstack() -> bool {
59
64
const LOCALSTACK_ENDPOINT : & str = "http://localhost:4566/" ;
60
65
61
66
fn sqs_client ( conf : & aws_config:: SdkConfig ) -> aws_sdk_sqs:: Client {
62
- let mut sqs_config_builder = aws_sdk_sqs:: config:: Builder :: from ( conf) ;
63
- if use_localstack ( ) {
64
- sqs_config_builder = sqs_config_builder. endpoint_url ( LOCALSTACK_ENDPOINT )
65
- }
67
+ // Copy config from aws_config::SdkConfig to aws_sdk_sqs::Config
68
+ let sqs_config_builder = aws_sdk_sqs:: config:: Builder :: from ( conf) ;
66
69
aws_sdk_sqs:: Client :: from_conf ( sqs_config_builder. build ( ) )
67
70
}
68
71
69
72
fn s3_client ( conf : & aws_config:: SdkConfig ) -> aws_sdk_s3:: Client {
70
- let mut s3_config_builder = aws_sdk_s3:: config:: Builder :: from ( conf) ;
71
- if use_localstack ( ) {
72
- s3_config_builder = s3_config_builder. endpoint_url ( LOCALSTACK_ENDPOINT ) ;
73
- }
73
+ // Copy config from aws_config::SdkConfig to aws_sdk_s3::Config
74
+ let s3_config_builder = aws_sdk_s3:: config:: Builder :: from ( conf) ;
74
75
aws_sdk_s3:: Client :: from_conf ( s3_config_builder. build ( ) )
75
76
}
76
77
// snippet-end:[localstack.rust.use-localstack]
0 commit comments