本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS 区域 为 适用于 Rust 的 AWS SDK
您可以使用访问 AWS 服务 在特定地理区域运营的内容 AWS 区域。这既可以实现冗余,又可以让您的数据和应用程序在靠近您和您的用户访问它们的地方运行。有关如何使用区域的更多信息,请参阅AWS SDKs 和工具参考指南AWS 区域中的。
重要
大多数资源都位于特定的区域 AWS 区域 ,在使用 SDK 时,您必须为该资源提供正确的区域。
你必须为 Rust AWS 区域 的 SDK 设置默认值才能用于 AWS 请求。此默认值用于未在区域中指定的任何 SDK 服务方法调用。
有关如何通过共享 AWS config
文件或环境变量设置默认区域的示例,请参阅AWS SDKs 和工具参考指南AWS 区域中的。
AWS 区域 提供者链
从执行环境加载服务客户端的配置时,将使用以下查找过程。SDK 找到的第一个值用于客户端的配置。有关创建服务客户端的更多信息,请参阅从环境中配置客户端。
-
任何以编程方式设置的显式区域。
-
系统会检查
AWS_REGION
环境变量。-
如果您正在使用该 AWS Lambda 服务,则此环境变量由 AWS Lambda 容器自动设置。
-
-
已选中共享 AWS
config
文件中的region
属性。-
AWS_CONFIG_FILE
环境变量可用于更改共享config
文件的位置。要详细了解此文件的保存位置,请参阅《工具参考指南》config
和《工具参考指南》中的共享credentials
文件AWSSDKs 和文件的位置。 -
AWS_PROFILE
环境变量可用于选择命名配置文件而不是默认配置文件。要了解有关配置不同配置文件的更多信息,请参阅config
和工具参考指南中的共享AWS SDKs 和credentials
文件。
-
-
软件开发工具包尝试使用亚马逊 EC2 实例元数据服务来确定当前运行的亚马逊 EC2 实例的区域。
-
适用于 Rust 的 AWS SDK 唯一的支持 IMDSv2。
-
在RegionProviderChain
创建用于服务客户端的基本配置时,会自动使用,无需其他代码:
let config = aws_config::defaults(BehaviorVersion::latest()) .load() .await;
设置输入 AWS 区域 代码
在代码中显式设置区域
如果要显式设置区域,请Region::new()
直接在配置中使用。
未使用区域提供商链,它不检查环境、共享config
文件或 Amazon EC2 实例元数据服务。
use aws_config::{defaults, BehaviorVersion}; use aws_sdk_s3::config::Region; #[tokio::main] async fn main() { let config = defaults(BehaviorVersion::latest()) .region(Region::new("us-west-2")) .load() .await; println!("Using Region: {}", config.region().unwrap()); }
请务必为输入有效的字符串 AWS 区域;所提供的值未经过验证。
自定义 RegionProviderChain
AWS 区域 提供者链当你想有条件地注入 Region、覆盖它或自定义分辨率链时,请使用。
use aws_config::{defaults, BehaviorVersion}; use aws_config::meta::region::RegionProviderChain; use aws_sdk_s3::config::Region; use std::env; #[tokio::main] async fn main() { let region_provider = RegionProviderChain::first_try(env::var("CUSTOM_REGION").ok().map(Region::new)) .or_default_provider() .or_else(Region::new("us-east-2")); let config = aws_config::defaults(BehaviorVersion::latest()) .region(region_provider) .load() .await; println!("Using Region: {}", config.region().unwrap()); }
之前的配置将:
-
首先看看
CUSTOM_REGION
环境变量中是否设置了字符串。 -
如果不可用,请回退到默认的区域提供商链。
-
如果失败了,请使用 “us-east-2” 作为最后的后备选项。