

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在外部配置适用于 Rust 的 AWS SDK 服务客户端
<a name="config-external"></a>

许多配置设置可以通过代码以外的方式来处理。在外部处理配置时，配置将应用于您的所有应用程序。大多数配置设置可以设置为环境变量，也可以在单独的共享 AWS `config` 文件中设置。共享 `config` 文件可以维护多组独立的设置（称为配置文件），以便为不同的环境或测试提供不同的配置。

环境变量和共享 `config` 文件设置都已标准化，可在 AWS SDK 和工具之间共享，从而支持在不同编程语言和应用程序之间保持一致的功能。

请参阅《AWS SDK 和工具参考指南》**，了解如何通过这些方法配置应用程序，以及每个跨 SDK 设置的详细信息。要查看 SDK 可以从环境变量或配置文件中解析的所有设置，请参阅《AWS SDK 和工具参考指南》**中的[设置参考](https://docs.aws.amazon.com/sdkref/latest/guide/settings-reference.html)。

要向 AWS 服务发出请求，请先实例化该服务对应的客户端。您可以为服务客户端配置常用设置，例如超时、HTTP 客户端及重试配置。

每个服务客户端都需要一个 AWS 区域和一个凭证提供程序。SDK 使用这些值将您的资源请求发送到正确的区域，并使用正确的凭证对请求进行签名。您可以在代码中以编程方式指定这些值，也可以让它们从环境变量中自动加载。

该 SDK 有一系列地点（或来源），它会检查这些地点（或来源），以便找到配置设置的值。

1. 在代码中或服务客户端本身上设置的任何显式设置均优先于其他任何设置。

1. 环境变量
   + 有关设置环境变量的详细信息，请参阅《AWS SDK 和工具参考指南》**中的[环境变量](https://docs.aws.amazon.com/sdkref/latest/guide/environment-variables.html)。
   + 请注意，您可以在不同作用域层级为 shell 配置环境变量：系统级、用户级，以及特定终端会话级。

1. 共享`config`文件和`credentials`文件
   + 有关设置这些文件的详细信息，请参阅《AWS SDK 和工具参考指南》**中的[共享 `config` 和 `credentials` 文件](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html)。

1. 最后才会使用 SDK 源代码本身提供的任何默认值。
   + 某些属性（例如“区域”）没有默认值。您必须在代码、环境设置或共享 `config` 文件中明确指定这些属性。如果 SDK 无法解析所需的配置，API 请求在运行时会失败。