API端获取已认证用户:Cognito Client构造SdkConfig类型不匹配求助
解决AWS Rust SDK中Cognito客户端构造的类型不匹配问题
修复后的代码
use aws_config::SdkConfig; use aws_sdk_cognitoidentityprovider::Client; #[tokio::main] async fn main() { let region_provider = aws_config::RegionProviderChain::default_provider() .or_else("us-east-1"); let config: SdkConfig = aws_config::from_env() .region(region_provider) .load() .await; let cognito = Client::new(&config); }
问题原因及解决要点
- 核心问题是依赖版本不匹配或类型推断错误:AWS SDK for Rust v1.x中,
aws_config::from_env().load().await返回的是aws_config::SdkConfig(与aws_types::sdk_config::SdkConfig为同一类型,只是重导出),而非aws_config::Config。若编译器推断出aws_config::Config,大概率是aws-config和aws-sdk-cognitoidentityprovider版本不一致。 - 确保Cargo.toml中所有AWS相关crate版本完全一致,示例:
[dependencies] aws-config = "1.1.0" aws-sdk-cognitoidentityprovider = "1.1.0" tokio = { version = "1.0", features = ["full"] } - 显式指定
config的类型为SdkConfig,可以强制编译器正确识别类型,避免混淆。
内容的提问来源于stack exchange,提问作者geo10
相关产品推荐
相关产品推荐

