

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用環境變數全域設定 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 和命令提示字元工作階段中持續存在，請使用 **Control Panel** (控制面板) 中的 **System** (系統) 應用程式。或者，您也可以將變數新增到 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 的機制。請務必參閱您所使用的容器官方文件，以判斷如何處理環境變數，以及是否有任何限制。