

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

# 使用环境变量进行全局配置 AWS SDKs 和工具
<a name="environment-variables"></a>

环境变量提供了另一种在使用和工具时指定配置选项 AWS SDKs 和凭据的方法。环境变量在编写脚本或将某个命名配置文件临时设置为默认配置文件时非常实用。有关大多数支持的环境变量的列表 SDKs，请参阅[环境变量列表](settings-reference.md#EVarSettings)。

**选项的优先顺序**
+ 如果您使用环境变量来指定设置，则该设置将覆盖从共享 AWS `config`和`credentials`文件中的配置文件加载的任何值。
+ 如果您在 AWS CLI 命令行中使用参数来指定设置，则该设置将覆盖配置文件中相应环境变量或配置文件中的任何值。

## 如何设置环境变量
<a name="envvars-set"></a>

下面的示例介绍您如何可以为默认用户配置环境变量。

------
#### [ Linux, macOS, or Unix ]

```
$ export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
$ export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
$ export AWS_SESSION_TOKEN=AQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
$ export AWS_REGION=us-west-2
```

设置环境变量会更改使用的值，直到 Shell 会话结束或直到您将该变量设置为其他值。通过在 shell 的启动脚本中设置变量，可使变量在未来的会话中继续有效。

------
#### [ Windows Command Prompt ]

```
C:\> setx AWS_ACCESS_KEY_ID AKIAIOSFODNN7EXAMPLE
C:\> setx AWS_SECRET_ACCESS_KEY wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
C:\> setx AWS_SESSION_TOKEN AQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
C:\> setx AWS_REGION us-west-2
```

使用 `[set](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/set_1)` 设置环境变量会更改使用的值，直到当前命令提示符会话结束，或者直到您将该变量设置为其他值。使用 [https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/setx](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/setx) 设置环境变量会更改当前命令提示符会话和运行该命令后创建的所有命令提示符会话中使用的值。它***不*** 影响在运行该命令时已经运行的其他命令 shell。

------
#### [ PowerShell ]

```
PS C:\> $Env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE"
PS C:\> $Env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
PS C:\> $Env:AWS_SESSION_TOKEN="AQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk"
PS C:\> $Env:AWS_REGION="us-west-2"
```

如果您在 PowerShell 提示符处设置环境变量（如前面的示例所示），则它只会在当前会话的持续时间内保存该值。要使环境变量设置在所有会话 PowerShell 和命令提示符会话中保持不变，请使用**控制面板**中的**系统**应用程序将其存储。或者，您可以通过将变量添加到您的 PowerShell 个人资料中来为所有将来的 PowerShell 会话设置该变量。有关存储环境变量或跨会话保存环境变量的更多信息，请参阅[PowerShell 文档](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_environment_variables)。

------

## 无服务器环境变量设置
<a name="serverless"></a>

 如果您使用无服务器架构进行开发，则还有其他设置环境变量的选项。根据您的容器，您可以对在这些容器中运行的代码使用不同的策略来查看和访问环境变量，这与非云环境类似。

例如，使用 AWS Lambda，您可以直接设置环境变量。有关详细信息，请参阅《*AWS Lambda 开发人员指南》*中的[使用 AWS Lambda 环境变量](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html)。

在无服务器框架中，通常可在环境设置下的提供者密钥下的 `serverless.yml` 文件中设置 SDK 环境变量。有关该 `serverless.yml` 文件的信息，请参阅无服务器框架文档中的 [ 常规功能设置 ](https://www.serverless.com/framework/docs/providers/aws/guide/serverless.yml#general-function-settings)。

无论您使用哪种机制来设置容器环境变量，都有一些变量由容器保留，例如在 [ 定义的运行时系统环境变量 ](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-runtime) 中为 Lambda 记录的变量。请务必查阅所用容器的官方文档，以确定如何处理环境变量以及是否存在任何限制。