JVM 系統屬性支援 - AWS SDKs 和 工具

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

JVM 系統屬性支援

JVM 系統屬性提供了另一種方法,可為在 JVM 上執行的 SDK (例如和) 指定組態選項 AWS SDK for Java 和認證。 適用於 Kotlin 的 AWS SDK如需 SDK 支援的 JVM 系統屬性清單,請參閱設定參考

選項的優先順序
  • 如果您使用其 JVM 系統屬性指定設定,它會覆寫在環境變數中找到的任何值,或從共用 AWS configcredentials檔案中的設定檔載入的任何值。

  • 如果您使用其環境變數指定設定,它會覆寫從共用 AWS configcredentials檔案中的設定檔載入的任何值。

如何設置 JVM 系統屬性

您可以多種方式設定 JVM 系統屬性。

在命令行上

使用參數叫用命令時,在java命令列上設定 JVM 系統屬性。-D除非您明確覆寫程式碼中的值,否則下列命令會針對所有服務用戶端進行 AWS 區域 全域設定。

java -Daws.region=us-east-1 -jar <your_application.jar> <other_arguments>

如果您需要設定多個 JVM 系統屬性,請多次指定-D參數。

使用環境變數

如果您無法存取命令列來叫用 JVM 來執行應用程式,您可以使用JAVA_TOOL_OPTIONS環境變數來設定命令列選項。此方法在 Java 執行階段上執行 AWS Lambda 函式或在嵌入式 JVM 中執行程式碼等情況下非常有用。

下列範例會針對所有服務用戶端進行 AWS 區域 全域設定,除非您明確覆寫程式碼中的值。

Linux, macOS, or Unix
$ export JAVA_TOOL_OPTIONS="-Daws.region=us-east-1"

設定環境變數會變更使用的數值,直到 Shell 工作階段結束或直到您將該變數設為其他數值。您可以在 Shell 的啟動指令碼中設定變數,讓它們跨未來的工作階段持續生效。

Windows Command Prompt
C:\> setx JAVA_TOOL_OPTIONS -Daws.region=us-east-1

set來設定環境變數會變更使用的值,直到目前的「指令提示字元」階段作業結束,或將變數設定為不同的值為止。用setx來設定環境變數,會變更目前「命令提示字元」階段作業和您在執行指令之後建立的所有「命令提示字元」階段作業中使用的值。不會影響您執行命令當時已執行的其他命令 Shell。

在運行時

您也可以通過使用如下面的例子中的System.setProperty方法在運行時在代碼中設置 JVM 系統屬性。

System.setProperty("aws.region", "us-east-1");
重要

在初始化 SDK 服務用戶端之前,請先設定任何 JVM 系統屬性,否則服務用戶端可能會使用其他值。